![跳數含義(TTL測量)](https://rvso.com/image/1267892/%E8%B7%B3%E6%95%B8%E5%90%AB%E7%BE%A9%EF%BC%88TTL%E6%B8%AC%E9%87%8F%EF%BC%89.png)
當我使用 ping 命令時,我得到下一個結果(Windows):
C:\>ping example.microsoft.com
Pinging example.microsoft.com [192.168.239.132] with 32 bytes of data:
Reply from 192.168.239.132: bytes=32 time=101ms TTL=124
...
在此類實用程式的文檔中,TTL 的測量單位為啤酒花。根據ICMP規範RFC 792:
生存時間。 居住時間秒;由於該欄位在處理資料封包的每台機器上都會遞減,因此該欄位中的值應至少與該資料封包將遍歷的網關數量一樣大。
因此,每個主機將 TTL 至少減少 1第二。沒有說關於啤酒花。那為什麼要使用啤酒花呢?為什麼不使用,說多發性硬化症,如果主機處理資料封包太快?為什麼規範沒有說明啤酒花?
答案1
TTL 旨在在存在路由迴路時永遠停止資料包生存(並消耗資源)。
最初,路由器可能需要超過一秒的時間來處理一個資料包。
當路由器變得更快並且開始在一秒鐘內處理資料包時,將 TTL 減少為零對它們來說是愚蠢的,因為那樣就不會停止循環。
因此,它會將 TTL 減少一秒鐘。
此更改記錄在RFC 1716第 5.3.1 節。
IP 標頭的生存時間 (TTL) 欄位定義為限制資料封包生命週期的計時器。它是一個8位元字段,單位是秒。每個處理資料包的路由器(或其他模組)必須將 TTL 至少減少一,即使經過的時間遠小於一秒鐘。由於這種情況很常見,因此 TTL 實際上是對資料封包可以透過 Internet 傳播多遠的跳數限制。
當路由器轉送封包時,它必須將 TTL 至少減少 1。如果它持有一個資料包超過一秒,它可能會每秒將 TTL 減一。
也可以看看:
TTL 欄位由資料封包的傳送者設置,並由到達其目的地的路由上的每個主機減少。
封包經過的每個路由器都需要從 TTL 欄位中至少減去一個計數。