为什么在tracert跳转中这个recursion?

在经历了一个非常缓慢的互联网,“连接拒绝”,“无法协商链接”等跨网站(fb,stackoverflow,雅虎,谷歌之间)我随意打了tracert。

跟踪输出如下

C:\Documents and Settings\G0D>tracert in.yahoo.com Tracing route to any-fp-in.wa1.b.yahoo.com [98.139.183.24] over a maximum of 30 hops: 1 12 ms * 11 ms 1.64.95.59.in-addr.arpa [59.95.64.1] 2 35 ms 34 ms 34 ms 218.248.255.58 3 142 ms 140 ms 140 ms 115.114.57.249.static-Mumbai.vsnl.net.in [115.114.57.249] 4 481 ms 478 ms 475 ms ix-0-100.tcore1.MLV-Mumbai.as6453.net [180.87.38.5] 5 * * * Request timed out. 6 * * * Request timed out. 7 * * * Request timed out. 8 551 ms 555 ms 543 ms if-8-2.tcore2.SV8-Highbridge.as6453.net [80.231.91.26] 9 * * 514 ms if-2-2.tcore1.SV8-Highbridge.as6453.net [80.231.139.2] 10 547 ms 552 ms 554 ms if-6-2.tcore1.NJY-Newark.as6453.net [80.231.138.18] 11 * 549 ms 721 ms if-2-2.tcore2.NJY-Newark.as6453.net [66.198.70.2] 12 528 ms 543 ms 547 ms if-3-2.tcore2.AEQ-Ashburn.as6453.net [216.6.87.9] 13 341 ms 341 ms 342 ms 54.27.58.209.in-addr.arpa [209.58.27.54] 14 356 ms 351 ms 351 ms ae-6.pat2.dcp.yahoo.com [216.115.102.178] 15 354 ms 381 ms * ae-7.pat2.che.yahoo.com [216.115.100.137] 16 362 ms 362 ms 362 ms ae-2.pat2.bfz.yahoo.com [216.115.100.74] 17 384 ms 365 ms 385 ms ge-1-0-0.pat1.bfz.yahoo.com [216.115.97.211] 18 426 ms * 366 ms ae-4.msr2.bf1.yahoo.com [216.115.100.73] 19 364 ms 370 ms 383 ms xe-7-0-0.clr2-a-gdc.bf1.yahoo.com [98.139.128.19] 20 368 ms 388 ms 394 ms et-17-1.fab3-1-gdc.bf1.yahoo.com [98.139.128.41] 21 477 ms 450 ms * ir2.fp.vip.bf1.yahoo.com [98.139.183.24] 22 435 ms 416 ms 480 ms ir2.fp.vip.bf1.yahoo.com [98.139.183.24] Trace complete. 

似乎有3个以上的瓶颈。

特别令人惊讶的是,第13跳出现了明显的recursion。

什么可能是这个recursion的原因?

Traceroute如何工作的简要概述:
Traceroute将大量数据包发送到目的地。 每个数据包(或可能是数据包组)以TTL为1(跳过多less跳直到数据包死亡)开始。 当路由器接收到一个TTL的数据包时,它会停止转发,并且可能会发送一个ICMP(Time Control Protocol,因特网控制消息协议)超时消息。

对于下一个数据包(或数据包组)的TTL 2两个。 第一个路由器转发数据包并将TTL递减为1.因此,下一个路由器是可能发送超时消息的那个路由器。

这个机制需要注意的重要的事情是,路由器可以决定永不发送时间超时的消息,或限制他们,所以你只能得到部分命中。 知道数据包的返回path没有显示在跟踪路由中并且可能不同,这一点也很重要。 最后,路由可能会改变,所以跟踪路由可能会每时每刻都有所不同。

另一个简要概述,互联网路线如何:
Internet路由器使用称为BGP的协议来构build其路由表。 BGP具有互联网的macros观视angular,基本上是整个networking的连接。 所以在这个例子中,你看到你从“as6453.net”到“[209.58.27.54]”,然后到雅虎。 就BGP而言,它采用这个macros观视图,并不担心这些networking中的跳数。

还有更多,但这是基本的想法。

recursion:
不太确定你在这里的意思,但是如果你的意思是在54.27.58.209.in-addr.arpa [209.58.27.54] IP地址相反的方式,那么这只是反向DNS条目的“默认”像ae-6.pat2.dcp.yahoo.com这样的ae-6.pat2.dcp.yahoo.com 。 在这种情况下,您可以使用whois来查找所有者:

 kbrandt@alpine:~$ whois 209.58.27.54 ... NetRange: 209.58.0.0 - 209.58.127.255 CIDR: 209.58.0.0/17 OriginAS: AS6453 ... OrgName: Tata Communications OrgId: TATAC Address: 1555 Carrie-Derick City: Montreal StateProv: QC ... 

第13跳与第12跳位于不同的networking上。因此,最有可能的情况是从第13跳返回的数据包采用了不同的path,并且可能是更好的path返回给您,从而导致该跳跃和后续跳跃的时间较短。

我还应该指出,5号,6号和7号的跳数可能并不意味着什么。 他们可能只是不能够返回本地来源的数据包给你的设备。 *在后面的行中可能意味着什么,也可能不意味着什么。 这可能意味着路由器太忙了,不愿意为你返回一个数据包,但更有可能反映真正的数据包丢失。