在跟踪路由中,后续的一跳怎么可能比先前的路由更less?

这是一个noob的问题,但我很确定serverfault是问最好的地方。 我了解traceroute及其function,但我不明白响应时间。

例如在这里,我正在tracerouting到cnn.com,但第5跳需要32ms,跳6只11ms。 数据包是不是必须通过路由器才能到达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 

你所缺less的是ICMP数据包所针对的跳需要响应那些ICMP数据包。 在开始跟踪时,第一跳必须响应指向它的数据包,然后第二跳响应指向它的数据包,而第一跳只是将这些数据包传递到第二跳。 你看到的差异是每一跳响应指向它的数据包的时间差异。 第5跳比第6跳需要更多的时间来响应ICMP数据包。

一般来说,跟踪路线是确定通往目的地的path的好工具,但不是决定path质量的好工具。

它确实,但到目的地的时间可能会有所不同。 每当输出中出现另一行时,就会发送一个新的数据包/一组数据包,每个数据包的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