问题描述
在traceroute中,我们知道当目的地(主机)收到一个TTL=1的数据包时,主机会抛出错误并且不会延迟。
那么traceroute如何计算源和目的之间的距离(延迟)?
解决方法
Traceroute 向目的地发送探测数据包,并增加 TTL。数据包超时的节点应该返回一个 ICMP Time exceeded 消息,然后将其报告为跳跃。
延迟只是发送探测和接收错误消息之间的时间。
最后一跳是目的地的拒绝(对于 UDP 探测)或其回声回复(对于 ICMP 回声探测)。
为了完整性:TTL=1 的数据包不会(通过网关)转发等等。仍然可以由目的地回复。