跳数含义(TTL测量)


10

当我使用ping命令时,我得到下一个结果(Windows):

C:\>ping example.microsoft.com
Pinging example.microsoft.com [192.168.239.132] with 32 bytes of data:
Reply from 192.168.239.132: bytes=32 time=101ms TTL=124
...

在此类实用程序的文档中,TTL以跃点为单位进行度量。根据ICMP规范RFC 792

生存时间。 生存时间以秒计 ; 由于在处理数据报的每台计算机上该字段都会递减,因此该字段中的值至少应与该数据报将遍历的网关数量一样大。

因此,每个主机将TTL至少减少1 。关于蛇麻草什么也没说。那么为什么要使用啤酒花呢?如果主机处理数据报的速度过快,为什么不使用,例如ms呢?为什么规范中没有提到啤酒花呢?


好问题。如果我没记错的话,他们用IPv6中的跃点代替了TTL,但是我不确定。
AndrejaKo 2011年

1
@AndrejaKo,是的,他们做到了。但正式仅在IPv6中。
Kyrylo M

Answers:


7

如果存在路由循环,则TTL旨在永远停止数据包的生存(和消耗资源)。

最初,路由器可能需要超过一秒钟的时间来处理数据包。

当路由器变得更快时,并在一秒钟之内开始处理数据包时,将TTL降低零是很愚蠢的,因为那样就不会停止循环。

因此,相反,它会将TTL减少一秒。

RFC 1716第5.3.1节中记录了此更改。

IP报头的生存时间(TTL)字段定义为限制数据报生存期的计时器。它是一个8位字段,单位是秒。每个处理数据包的路由器(或其他模块)都必须将TTL至少减一,即使经过的时间大大少于一秒。由于通常是这种情况,因此TTL实际上是对数据报可以通过Internet传播的距离的跳数限制。

路由器转发数据包时,必须将TTL至少减少1。如果它持有一个包超过一秒钟,则它可能每秒将TTL减一。

也可以看看:

维基百科-生存时间

TTL字段由数据报的发送方设置,并由到达其目的地的路由上的每个主机减少。

Maxi-pedia-生存时间(TTL)

数据包通过的每个路由器都需要从TTL字段中减去至少一个计数。


没有看到任何有关跃点的信息,以及为何使用跃点而不是秒或毫秒。
Kyrylo M

1
我添加了一个指向RFC 1716的链接。
Mikel
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.