为什么ping和traceroute的丢包不一样

为什么ping和traceroute的丢包不一样

我有一个位于第 12 跳的 IP 地址。当我向此 IP 发送 TTL 为 11 的 icmp 请求数据包时,第 11 跳的数据包丢失率为 0%。

但是,如果我 ping 第 11 跳的 IP 地址,或者使用 TTL 11 来构建我的 icmp 请求数据包以跟踪第 11 跳,则数据包丢失将超过 20%。

我不明白这个结果的原因。路由器对回复数据包和超时数据包的处理有什么不同吗?

或者我应该像pathping一样,获取目标IP路由路径后,用ping计算丢包延迟,但不保留traceroute?

抱歉,由于某种原因我无法粘贴我的输出,但我的输出看起来像这样。第 1 跳到第 10 跳的 IP 是相同的。

trace 123.123.123.124       
IP             TTL  Loss
xxx.xxx.xxx.xxx 1   0%
xxx.xxx.xxx.xxx 2   0%
xxx.xxx.xxx.xxx 3   0%
xxx.xxx.xxx.xxx 4   0%
xxx.xxx.xxx.xxx 5   0%
xxx.xxx.xxx.xxx 6   0%
xxx.xxx.xxx.xxx 7   0%
xxx.xxx.xxx.xxx 8   0%
xxx.xxx.xxx.xxx 9   0%
xxx.xxx.xxx.xxx 10  0%
123.123.123.123 11  0%
123.123.123.124 12  20%

trace 123.123.123.123       
IP             TTL  Loss
xxx.xxx.xxx.xxx 1   0%
xxx.xxx.xxx.xxx 2   0%
xxx.xxx.xxx.xxx 3   0%
xxx.xxx.xxx.xxx 4   0%
xxx.xxx.xxx.xxx 5   0%
xxx.xxx.xxx.xxx 6   0%
xxx.xxx.xxx.xxx 7   0%
xxx.xxx.xxx.xxx 8   0%
xxx.xxx.xxx.xxx 9   0%
xxx.xxx.xxx.xxx 10  0%
123.123.123.123 11  20%

ping 123.123.123.123 loss 20%

答案1

IP 流量不一定遵循相同的路径。因此,在发送 ICMP 数据包的 traceroute 的情况下,它们也不一定总是遵循相同的路径(ICMP 在 IP 之上运行)。这就是为什么你会得到不同的结果。

相关内容