Ping

ICMP echo-r eply 數據包的 TTL (-190) 比 ICMP 超時數據包低得多

  • September 11, 2013

當我從我的位置ping到 facebook.com 的 traceroute 路徑的最後三跳時,我返回的 ICMP echo-r​​eply 數據包的TTL分別為58、57 和 56。有問題的躍點是我機器上的第 6、第 7 和第 8 個躍點。

另一方面,在這三個躍點上過期的數據包的 ICMP 超時消息的 TTL都有一個合理的值:246、248、249。

現在,返迴路徑很可能與前向路徑不同,並且對於不同類型的 ICMP 消息也可能不同。

但這樣的差異從何而來?沿路徑的 200 跳**循環?**或者 ICMP echo-r​​eply 數據包生成的 TTL 較低(遠低於 255:這甚至會發生嗎?)?

正如使用者 kwaio 所建議的,在生成ICMP echo- r​​equest和echo- r​​eply數據包時使用的預設(或通用)TTL 值為64.

在我的例子中,我選擇的路徑上的第一個路由器以 TTL=255(在源端)的 echo-r​​eply 消息進行響應,而最後一個路由器的 TTL=64。

相反,似乎在所有情況下都創建了ICMP 超時消息,其 TTL 為 255。

經過一番探勘,我發現不同的供應商和不同的作業系統對不同的協議採用不同的初始 TTL:binbert.com/blog/2009/12/default-time-to-live-ttl-values

一個有趣的含義是,您可以通過讓數據包在其上過期並向其發送 ping 來辨識給定路由器的製造商。更多詳細資訊: 基於 TTL 的指紋辨識和 MPLS以及完整的文章:“網路指紋辨識:基於 TTL 的路由器簽名”

引用自:https://serverfault.com/questions/537782