在跟踪路由中,后续一跳花费的时间怎么可能比前一跳更短呢?

在跟踪路由中,后续一跳花费的时间怎么可能比前一跳更短呢?

这是一个新手问题,但我确信 serverfault 是提问的最佳场所。我了解 traceroute 及其功能,但我不了解响应时间。

例如,我在这里跟踪到 cnn.com,但第 5 跳需要 32 毫秒,而第 6 跳仅需 11 毫秒。数据包是否必须经过第 5 跳的路由器才能到达第 6 跳并返回?或者数据包下次会通过不同的路由到达第 6 跳?

4  gig-3-0-0-nycmnyrdc-rtr01.nyc.rr.com (24.29.157.197)  11.482 ms  9.982 ms  11.259 ms
 5  tenge-0-0-0-nycsnyoo-rtr1.nyc.rr.com (24.29.119.102)  32.916 ms  13.796 ms  11.527 ms
 6  66.109.6.76 (66.109.6.76)  11.558 ms  10.471 ms  11.295 ms
 7  ae-0-0.pr0.nyc30.tbone.rr.com (66.109.6.159)  14.572 ms  11.505 ms  59.635 ms
 8  xe-9-0-0.edge2.newark1.level3.net (4.59.20.29)  13.848 ms  13.372 ms  16.891 ms
 9  ae-32-52.ebr2.newark1.level3.net (4.68.99.62)  22.635 ms  14.799 ms  16.064 ms
10  ae-4-4.ebr2.washington1.level3.net (4.69.132.101)  21.666 ms  15.879 ms  16.639 ms
11  ae-82-82.csw3.washington1.level3.net (4.69.134.154)  20.728 ms
    ae-62-62.csw1.washington1.level3.net (4.69.134.146)  21.352 ms  29.861 ms

答案1

您忽略了这样一个事实:ICMP 数据包所指向的跃点必须响应这些 ICMP 数据包。当您开始跟踪时,第一跃点必须响应指向它的数据包,然后第二跃点响应指向它的数据包,而第一跃点只是将这些数据包传递到第二跃点。您看到的差异是每个跃点响应指向它的数据包的时间差异。第 5 跃点响应 ICMP 数据包所花的时间比第 6 跃点更长。

一般来说,跟踪路由是确定到达目的地的路径的良好工具,但不是确定该路径质量的良好工具。

答案2

确实如此,但到达目的地的时间可能会有所不同。每次输出中出现另一行时,都会发送一个新数据包/一组数据包,每个数据包的 TTL 值都会增加。

例如:

 1st run: 1st hop -> report back
 2nd run: 1st hop -> 2nd hop -> report back
 3rd run: 1st hop -> 2nd hop -> 3rd hop -> report back
 ...

等等。

因此,如果第一跳在第一次运行中花费 10 毫秒,但下一次运行中仅花费 2 毫秒,则可以得到变化。

参考:http://en.wikipedia.org/wiki/Traceroute

相关内容