TTL值

TTL=32 Windows 9x/Me
TTL=64 LINUX
TTL=128 Windows 200x/XP
TTL=255 Unix

TTL(生存時間)
TTL是IP協議包中的一個值,它告訴網絡路由器包在網絡中的時間是否太長而應被丟棄。有很多原因使包在一定時間內不能被傳遞到目的地。例如,不正確的路由表可能導致包的無限循環。一個解決方法就是在一段時間後丟棄這個包,然後給發送者一個報文,由發送者決定是否要重發。TTL的初值通常是系統缺省值,是包頭中的8位的域。TTL的最初設想是確定一個時間範圍,超過此時間就把包丟棄。由於每個路由器都至少要把TTL域減一,TTL通常表示包在被丟棄前最多能經過的路由器個數。當記數到0時,路由器決定丟棄該包,併發送一個ICMP報文給最初的發送者。

Windows 95/98中TTL的缺省值爲32。有人建議當到達一個節點比較困難時,把此值設爲128。ping和tracerouter都使用TTL值以嘗試到達給定的主機或跟蹤到那個主機的路由。traceroute把包的TTL值設得較小,使它在到達目的的路上被各個路由器連續的丟棄。發出包到受到返回的ICMP報文之間的時間用來計算從一個路由器到另一個路由器的時間。

使用多路複用的IP協議,TTL值表示一個包被轉發的範圍。有以下轉換:0, 限制在同一主機 1, 限制在同一子網 32, 限制在同一節點 64, 限制在同一區域(region)128,限制在同一大陸(continent)255,

由於不同的操作系統的默認TTL值不同,因此有文章說可以通過返回的TTL值判斷目標系統的類型,這是正確的,但不是TTL的功能,只是對TTL理解的一個應用。TTL的值可以修改。有些特殊的、系統(如NIDS)會定義特殊的TTL值,以拒絕非法訪問數據進入。我們在執行PING命令時可以用-i參數指定TTL值,大家可以將TTL設置爲0,則該包將被立即丟棄。有時我們執行了一個PING 命令,在繁華時卻繁華了另一個地址,並帶有一個英語的提示(大致意思是TTL無效),則表示該包在到達目標之前(也就是到返回IP位置時),包所帶的TTL已經爲0了或小於下一網段許可通過的TTL值了,該包已經被路由丟棄了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章