TTL 生存時間 介紹

2021-05-22 13:42:04 字數 1455 閱讀 9514

ttl:(time to live)生存時間,是ip協議包中的乙個值,它告訴網路路由器包在網路中的時間是否太長而應被丟棄。有很多原因使包在一定時間內不能被傳遞到目的地。例如,不正確的路由表可能導致包的無限迴圈。乙個解決方法就是在一段時間後丟棄這個包,然後給傳送者乙個報文,由傳送者決定是否要重發。ttl的初值通常是系統預設值,是包頭中的8位的域。ttl的最初設想是確定乙個時間範圍,超過此時間就把包丟棄。由於每個路由器都至少要把ttl域減一,ttl通常表示包在被丟棄前最多能經過的路由器個數。當記數到0時,路由器決定丟棄該包,並傳送乙個icmp報文給最初的傳送者。 例如,以下資料表示資料經過7個路由器到達目的。

pinging www.a.shifen.com [121.14.88.76] with 32 bytes of data:

reply from 121.14.88.76: bytes=32 time=44ms ttl=57

reply from 121.14.88.76: bytes=32 time=354ms ttl=57

windows 95/98中ttl的預設值為32。有人建議當到達乙個節點比較困難時,把此值設為128。ping和tracerouter都使用ttl值以嘗試到達給定的主機或跟蹤到那個主機的路由。

traceroute把包的ttl值設得較小,使它在到達目的的路上被各個路由器連續的丟棄。發出包到受到返回的icmp報文之間的時間用來計算從乙個路由器到另乙個路由器的時間。

由於不同的作業系統的預設ttl值不同,因此有文章說可以通過返回的ttl值判斷目標系統的型別,這是正確的,但不是ttl的功能,只是對ttl理解的乙個應用。ttl的值可以修改。

有些特殊的、系統(如nids)會定義特殊的ttl值,以拒絕非法訪問資料進入。我們在執行ping命令時可以用-i引數指定ttl值,大家可以將ttl設定為0,則該包將被立即丟棄。有時我們執行了乙個ping 命令,在繁華時卻繁華了另乙個位址,並帶有乙個英語的提示(大致意思是ttl無效),則表示該包在到達目標之前(也就是到返回ip位置時),包所帶的ttl已經為0了或小於下一網段許可通過的ttl值了,該包已經被路由丟棄了。以下是常見作業系統的預設ttl值。

ttl=32 windows 9x/me

ttl=64 linux

ttl=128 windows 200x/xp

ttl=255 unix

檢視本機的ttl值

開始-執行-輸入cmd回車,在游標閃動的地方輸入 ping 127.0.0.1然後回車就行了。

修改本機的ttl值

開啟登錄檔編輯器,展開「hkey_local_machine/system/currentcontrolset/services/tcpip/parameters」,找到「defaultttl」,將該值修改為十進位制的小於255的數字,如果沒有「defaultttl」項,那麼新建乙個dword型別的「defaultttl」項並指定希望設定的值,然後重啟機器就可以了。

TTL生存時間

ttl 生存時間 ttl是ip協議包中的乙個值,它告訴網路路由器包在網路中的時間是否太長而應被丟棄。有很多原因使包在一定時間內不能被傳遞到目的地。例如,不正確的路由表可能導致包的無限迴圈。乙個解決方法就是在一段時間後丟棄這個包,然後給傳送者乙個報文,由傳送者決定是否要重發。ttl的初值通常是系統預設...

RabbitMQ設定TTL生存時間

public static void main string args throws ioexception,timeoutexception connection connection factory.newconnection channel channel connection.createc...

redis生存時間

2016年12月02日 16 44 42 wu yangchun 閱讀數 313 標籤 redis 生存時間 更多個人分類 jvm 快取expire命令設定失效時間,單位秒。redis set session 1 aaa okredis expire session 1 900 integer 1 ...