Tracert与Ping中TTL值的区别

Tracert与Ping中TTL值的区别

当我在 Windows XP 系统上 ping localhost 时,返回的 TTL 值为 128,它显示我的系统 ping 中的默认 TTL 值为 128。然后,当我 ping google.com 时,返回的 TTL 值为 45,我假设这意味着 (128 - 45) / 2 跳数存在于我到 google 的路径中。当我 tracert google.com 时,它说数据包最多经过 30 个跳数,但它到达了目的地。

为什么会这样?ping 显示的 TTL 值和 tracert 的 TTL 值有区别吗?

提前致谢 。 。 。

答案1

为什么会发生这种情况?

某些主机在路径过滤中跟踪路由

ping 显示的TTL值和tracert的TTL值有区别吗?!

没有区别(ping ttl=55,tracepath ttl=back=55)...没有主机过滤跟踪

ping ya.ru
PING ya.ru (87.250.250.3) 56(84) bytes of data.
64 bytes from www.yandex.ru (87.250.250.3): icmp_seq=1 ttl=55 time=36.6 ms

 tracepath ya.ru

 ....................

 8:  l3-s550-s450.yandex.net (213.180.213.23)              97.070ms 
 9:  l3-s650-s550.yandex.net (213.180.213.29)              97.992ms 
10:  www.yandex.ru (77.88.21.3)                            91.306ms reached
     Resume: pmtu 1500 hops 10 back 55

然后,当我 ping google.com 时,返回的 TTL 值是 45,我假设这意味着在我到 google 的路上存在 (128 - 45) / 2 跳数。

路径编号 = 64(默认 google.com ttl)- 45(ping ttl)= 19 跳

答案2

不同的操作系统会以不同的 TTL 发送对 ping 的回复(它不取决于传入 ping 中的 TTL)。常见的起始值包括 64、128 和 255。也就是说,你说的“这意味着 (128 - 45) / 2 跳数存在于我去谷歌的路上”是错误的。假设他们使用常规 Linux 系统,他们发送 TTL = 64 的 ICMP 数据包,因此只有 19 个跳数。

相关内容