根据我到目前为止收集到的信息,Tracert通过发送3条ICMP回波消息来工作。从TTL值1开始,对于数据包遇到的每一个路由器,TTL值都会减少。对于第一个路由器,1-1 = 0,因此ICMP“时间超过”消息将被发送回发件人机器。接下来,发送机将TTL值增加到2,第二个路由器的循环重复(2->1->0)等等。
如果我的未完好无损,请纠正我。
我很好奇为什么ICMP“时间超过”消息不会被Tracert显示在命令提示符中,因为它实际上是一条错误消息?这个周期只是在继续。
谢谢。
发布于 2012-12-17 02:38:26
正如您所说,“时间超过”“错误”消息由tracert显示为获得该错误所需的ms #。该错误证明第1、第2、第3等路由器收到了数据包,并在其上有该路由器的地址,因此tracert知道数据包正在走的路径。当他们不回来的时候,你就可以打印出*和Request timed out作为那个路由器的地址。
发布于 2012-12-17 02:36:27
没有显示“错误消息”(它实际上不是错误,而是礼貌信息),因为它没有由tracert发送到stderr。我不认为当程序期望并正确处理数据时,通过发送无关的错误消息可以收集到什么值。
你的其他解释是正确的。
https://serverfault.com/questions/458580
复制相似问题