【问题标题】:Ping TTL doesn't correspond to number of hops using traceroutePing TTL 与使用 traceroute 的跳数不对应
【发布时间】:2021-09-05 22:11:56
【问题描述】:

我正在尝试找出我的作业所在网站所在的服务器的操作系统。

我想我可以通过结合使用 tracert 和 ping 命令来做到这一点。

但是,当我使用 tracert 时,我总是比我应该获得的跳数少 1(我认为?)。

当我 ping www.google.com 时,我得到的 TTL 值为 119,但 tracert 仅显示 8 个跃点。我假设这两个值的总和应该等于 128。

同样,当我 ping 我的虚拟机时,它显示 1 跳和 64 的 TTL。由于我正在 ping 本地主机,因此我预计 0 跳。

我确信对此有一个简单的解释,但我无法在网上找到它,或者我可能只是措辞不佳。

感谢您对此的任何帮助。

【问题讨论】:

  • 我认为这是由于跟踪路由的工作原理,一些 ISP 不会响应过期数据包但仍会转发数据包,请查看 wiki 页面。
  • 经过进一步搜索,我发现 Tracert 不会报告不减少 TTL 的设备。我想这可能是原因。但是,我仍然不清楚为什么它会显示到虚拟机的跃点。

标签: ping ttl traceroute


【解决方案1】:

互联网上的路径往往是不对称的。换句话说,从您的计算机到 Google 的路径可以(并且可能)与返回的路径不同。

您在 ping 命令中看到的 TTL 表明从 Google 到您的路径上有 128-119=9 个跃点。使用 TTL 为 128 谷歌 ICMP Echo 回复(ping 回复),结果为 119。

但是,Traceroute 会跟踪从您的机器到 google 的路径,并且很有可能该路径上少了一跳。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-13
    • 2016-06-11
    • 1970-01-01
    • 2011-10-05
    • 2012-12-24
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多