了解Tracert如何工作

从我迄今为止收集的信息来看,Tracert通过发送3个ICMP回显消息来工作。 从TTL值1开始。对于数据包遇到的每个路由器,TTL值将递减。 对于第一个路由器,1-1 = 0,所以ICMP“超时”消息将被发送回发送者机器。 接下来,发送方机器将TTL值加2,循环重复第二个路由器(2→1→0),依此类推。

请纠正我,如果我的不足是有缺陷的。

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

谢谢。

正如你所说的那样,“超出时间”的错误信息被tracert显示为错误返回的ms数量。 这个错误certificate了第一,第二,第三等路由器收到了这个数据包,并且有这个路由器的地址,所以tracert知道这个数据包的path。 当他们没有回来的时候,你打印的Request timed out作为路由器的地址。

不会显示“错误消息”(实际上不是错误信息),因为它没有通过tracert发送到stderr。 当程序期望并正确处理数据时,我不会看到程序发送无关错误消息的可能值。

其余的解释是正确的。