为什么我得到两个不同的tracert和ping输出?
Ping结果显示总跳数为20,tracert为8。
我的Linux机器上的默认ttl值64,icmp echo reply ttl值44。
64-44=20
但是tracert只显示了8跳。
可能是什么原因?
如果tracert是使用ttl实现的,那么为什么我会为同一个域获得不同的值,不pipe我尝试了多less次?
对于Google和Google服务,ttl值和tracrt是相同的,但对于其他域则不同。
你在做什么是没有意义的,当它工作的时候,运气好运。 您不知道ping 回复数据包中的初始TTL值是什么。 这个数据包是由一个你无法控制的远程机器发送的(你所ping
那个)。 在不知道初始TTL值的情况下,您无法从收到的TTL值中确定跳数。
您知道出站跟踪路由数据包的初始TTL,因为您编写了这些数据包。 这就是为什么这与为此devise的traceroute一起工作。 如果试图理解在对跟踪路由数据包的ICMP响应中接收到的TTL值,那么会给出相同的无意义结果,只能通过ping得到运气。
试试看,如果你不相信我。 执行traceroute并查看ICMP回复中收到的TTL值。 你可能会看到从一个跳跃51和从下一个238。 发生这种情况是因为各种设备在回复中使用不同的初始TTL值。