我对 traceroute 有点困惑。
我知道每行列出的时间都是从我的机器到目标主机的往返时间(traceroute 发送 3 个单独的数据包)。我试图弄清楚如何获取跳数之间的中间延迟(例如从 1 到 2,然后从 2 到 3,然后从 3 到 4),因为我需要将其映射到图表中。
我认为只需取一行(第一行除外),计算出该行的平均 RTT,然后从前一行的平均 RTT 中减去该平均 RTT 即可获得中间延迟。但如果时间减少怎么办?我得到的肯定是负数,这肯定不正确吧?
traceroute to www.draw.io (104.20.56.14), 30 hops max, 60 byte packets
1 gateway (155.198.142.80) 0.308 ms 0.270 ms 0.282 ms
2 192.168.100.1 (192.168.100.1) 0.321 ms 0.302 ms 0.342 ms
3 192.168.210.2 (192.168.210.2) 0.142 ms 0.130 ms 0.162 ms
4 192.168.210.6 (192.168.210.6) 0.407 ms 0.420 ms 0.411 ms
5 xe-5-0-0.londpg-ban1.ja.net (146.97.137.37) 0.904 ms 0.894 ms 0.863 ms
6 ae26.londpg-sbr2.ja.net (146.97.35.233) 0.852 ms 0.926 ms 0.906 ms
7 ae30.londtw-sbr2.ja.net (146.97.33.6) 1.423 ms 1.452 ms 1.442 ms
8 ae29.londtn-sbr1.ja.net (146.97.33.10) 1.385 ms 1.482 ms 1.469 ms
9 ae0.londtn-ban3.ja.net (146.97.35.170) 1.662 ms 1.691 ms 1.682 ms
10 linx-juniper.as13335.net (195.66.225.179) 1.537 ms 1.508 ms 1.505 ms
11 104.20.56.14 (104.20.56.14) 1.553 ms 1.527 ms 1.547 ms
非常感谢这里的帮助。
答案1
经过精细测量,网络延迟在每一毫秒内都会有很大差异,并且每次测量间隔几秒,因此您无法通过对每一跳的单次测量获得想要的答案。
最好的办法可能是重复测试多次,并记录每次跳跃的时间。然后,您可以根据给定跳跃的平均值进行分析,或者更复杂地计算标准偏差的范围等,这还可以让您丢弃会显著影响结果的异常值。