一、TTL是什么
TTL(Time To Live,生存時間)是IP協議包中的一個值,當我們使用Ping命令進行網絡連通測試或者是測試網速的時候,本地計算機會向目的主機發送數據包,但是有的數據包會因為一些特殊的原因不能正常傳送到目的主機,如果沒有設置TTL值的話,數據包會一直在網絡上面傳送,浪費網絡資源。數據包在傳送的時候至少會經過一個以上的路由器,當數據包經過一個路由器的時候,TTL就會自動減1,如果減到0了還是沒有傳送到目的主機,那么這個數據包就會自動丟失,這時路由器會發送一個ICMP報文給最初的發送者。
例如:如果一個主機的TTL是64,那么當它經過64個路由器后還沒有將數據包發送到目的主機的話,那么這個數據包就會自動丟棄
二、如何通過TTL來判斷目的主機的操作系統類型
三、如何確認從TTL值判斷的經過路由數
從TTL值,我們可以大致判斷主機的數據包經過多少個路由器到達目的主機,那么我們如何知道它經過了哪些路由器。
從TTL的值可以看出主機的數據包經過64-59=5個路由器到達目的主機,那么如何確認經過5個路由器的這個數值是正確的呢?答案是:使用cmd命令里面的tracert命令來查看。
四、如何修改本機電腦上面的默認TTL值
通過修改本機上的TTL值可以混淆攻擊者的判斷(當然,很少有用戶會這么做)。TTL值在注冊表的位置是:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters (通過在cmd命令里面輸入:regedit,然后回車的方式可以打開注冊表)。其中有個DefaultTTL的DWORD值,其數據就是默認的TTL值了,我們可以修改DefaultTTL里面的TTL默認值,但不能大於十進制的255。