了解 Tracert 的工作原理

了解 Tracert 的工作原理

从我目前收集到的信息来看,Tracert 的工作方式是发送 3 条 ICMP 回显消息。从 TTL 值 1 开始。对于数据包遇到的每个路由器,TTL 值都会减少。对于第一个路由器,1-1 = 0,因此 ICMP“超时”消息将发送回发送方计算机。接下来,发送方计算机将 TTL 值增加到 2,然后对第二个路由器重复此循环(2-->1-->0),依此类推。

如果我的理解不正确,请纠正我。

我很好奇,为什么 Tracert 在命令提示符中不显示 ICMP“超出时间”消息,因为它实际上是一个错误消息?循环只是继续进行。

谢谢。

答案1

正如您所说,“超出时间”的“错误”消息由 tracert 显示为获取该错误所需的毫秒数。该错误证明第 1、第 2、第 3 等路由器收到了数据包,并且上面有该路由器的地址,因此 tracert 知道数据包所走的路径。当它们回来后你会得到*打印的和Request timed out该路由器的地址。

答案2

“错误消息”(实际上与其说是错误,不如说是礼貌信息)没有显示,因为它没有被发送到 stderr tracert。我看不出当程序预期并正确处理数据时,发送无关的错误消息可能有什么价值。

您的其余解释是正确的。

相关内容