怀疑在默认生存时间(TTL)255?


7

我知道,默认生存时间值是255,每次ipv4数据包越过一个值减1的路由器。

但是,当我ping我的adsl路由器时,它显示TTL为64

Pinging 192.168.0.1 with 32 bytes of data:
Reply from 192.168.0.1: bytes=32 time=1ms TTL=64
Reply from 192.168.0.1: bytes=32 time=2ms TTL=64
Reply from 192.168.0.1: bytes=32 time=2ms TTL=64
Reply from 192.168.0.1: bytes=32 time=2ms TTL=64

pc到路由器只有一个b / w跳,所以我的预期TTL是254,但为什么这里ping显示TTL为64 ..

任何帮助都可以得到赞赏......

Answers:


10

以下是ping联机帮助页的相关引用:

TTL详细信息IP数据包的TTL值表示数据包在被丢弃之前可以通过的最大IP路由器数。在当前的实践中,您可以期望Internet中的每个路由器将TTL字段减少一个。

TCP / IP规范建议将IP数据包的TTL字段设置为64,但许多系统使用较小的值(4.3BSD使用30,4.2BSD使用15)。

并引用RFC 1700:

当前建议的Internet协议(IP)的默认生存时间(TTL)为64。


如果64为默认值。如果它交叉另一个跳跃它减少为63,62等..它是正确的还是它从254,253递减...

7
TTL字段的初始值由发送分组的主机设置。如本回答所述,该值会有所不同,通常留给操作系统。如果初始值是64,那么在它通过第一个路由器后,它就会降低到63,如你所说。您在ping响应中看到的TTL是从网关路由器上的操作系统使用的默认值开始倒计时。ICMP回应响应是一个新的数据包,将填入一个新的TTL,它不会从ICMP回应请求的TTL中剩下的数据倒计时。
拉塞尔海林2014年

@Rusell但是我们在ipv4中使用TTL为255的原因是什么

4

最大TTL为255,但不是默认值。默认值取决于操作系统,如此处所示

例如,在Windows vs Linux中查看ping到127.0.0.1:

我的Windows 7:

Windows ping

我的Linux机器:

Linux ping

因此,您似乎从默认为64的计算机获得回复。


那是不对的。那是返回数据包的TTL。向您展示自己的数据包的TTL几乎没有意义。例如,如果你从Windows机器ping 8.8.8.8,你将得到一个低于64的TTL。
麦芽

啊,我明白你的意思了。你是对的。我会编辑。
麦芽

0

TTL值由远程机器确定。例如,如果你ping一台Linux机器,它的原始TTL值是64.根据它通过多少网络返回给你,TTL被减去值1.所以如果你ping 8.8.8.8,这是谷歌名称服务器,它的起源值为128.当它返回给你时,它可能有一个值121(它对我来说)。这意味着它穿过7个网络来找我,这是一台Windows机器。

常见的TTL值 - 路由器 - 255 Windows - 128 Linux-Mac - 64

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.