为什么 tracert 延迟与 ping 延迟不相等?

为什么 tracert 延迟与 ping 延迟不相等?

人们可能预期延迟总和tracert等于 267 毫秒:

ping命令

答案1

Traceroute 涉及沿途向每个节点发送 UDP 数据包,并等待其超时响应(然后继续转到下一个节点),而 ping 只是转发。您看到的是每个节点响应请求所需的时间,而不仅仅是转发一个小数据包。

这是对整个过程及其差异的相当好的解释。

http://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/ios-software-releases-121-mainline/12778-ping-traceroute.html

看一下性能部分,这也解释了为什么 ping 不是确定延迟的特别准确的方法。

答案2

路由器倾向于将超时和回显响应处理置于比数据包转发更低的优先级。这允许交换机更高效地运行,因为转发比生成新的 ICMP 响应要简单得多。因此,繁忙的交换机将需要更长的时间来生成响应。

有些交换机可能禁用 ICMP 生成,这使得诊断网络问题变得困难。其他交换机可能偶尔会变得非常繁忙,以至于无法响应。

如果你使用一个显示沿途路由器 IP 地址的工具,你通常会看到速度较慢的交换机是大城市的核心交换机。我倾向于mtr每 15 到 60 秒运行一次。

答案3

这些数字代表着什么?

跟踪路由每一跳的时间是往返时间 (RTT). 在你的ping测试四回应请求每次都267毫秒收到回显答复220.181.111.85。在tracert测试中,三个回声请求292毫秒收到答复。

为什么25毫秒不同之处?

  1. 样本量较小。应进行更多测试以提高测量差异的准确性。

  2. tracert(或traceroute -I)具有不同大小有效载荷ping。使用数据包嗅探器检查跟踪程序使用的有效负载的大小。使用或根据您的 ping 程序将ping有效负载的大小设置为该值。ping -l <size>ping -s <size>

  3. 回显答复需要使用 CPU,因此与空闲的机器相比,繁忙的机器可能具有较大的 RTT 标准偏差。

我还应该了解什么?

域名可以解析为多个 IP 地址。在命令中使用 IP 地址可确保测试沿同一路径进行。

mtr或者WinMTR是另一个用于追踪路径的程序,它还计算 RTT 标准差、损失和其他统计数据。

Wireshark 是一种流行的数据包分析器,用于查看发送和接收的数据包的内容。

相关内容