Icmp

了解 Tracert 的工作原理

  • December 17, 2012

從我目前收集到的資訊來看,Tracert 通過發送 3 條 ICMP 回顯消息來工作。從 TTL 值 1 開始。對於數據包遇到的每個路由器,TTL 值將遞減。對於第一個路由器,1-1 = 0,因此 ICMP“超時”消息將被發送回發送方機器。接下來,發送方機器將 TTL 值增加到 2,並為第二個路由器(2–>1–>0)重複循環,依此類推。

如果我的理解有缺陷,請糾正我。

我很好奇為什麼 Tracert 沒有在命令提示符中顯示 ICMP“超時”消息,因為它實際上是一條錯誤消息?循環繼續進行。

謝謝。

正如您所說,“超過時間”“錯誤”消息由 tracert 顯示為恢復該錯誤所需的毫秒數。該錯誤證明第一個、第二個、第三個等路由器收到了數據包,並且上面有該路由器的地址,因此 Tracert 知道數據包所採用的路徑。當他們回來時,您會得到*列印並Request timed out作為該路由器的地址。

沒有顯示“錯誤消息”(實際上不是錯誤資訊,而是禮貌資訊),因為它不是由tracert. 我看不出程序在期望並正確處理數據時發送無關的錯誤消息可能會收集到什麼值。

你的其餘解釋是正確的。

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