这似乎几乎是神奇的。为了将整个路径映射到 Internet 上的某个其他节点,traceroute 命令做了什么?
raldi
问问题
11952 次
2 回答
27
traceroute 将 TTL(生存时间)字段设置为 1,并为每一跳递增。收到消息的路由器会减少这个值,当它达到 0 时,它们会回复一条消息,说明 TTL 已达到零。有了这个回复,客户就知道谁在两者之间。反复执行此操作,直到您的目的地获得(至少其中一个)路线
于 2008-10-17T07:08:07.820 回答
25
Traceroute 传输具有小 TTL(生存时间)值的数据包。TTL 是一个 IP 头字段,用于防止数据包陷入无限循环。当处理数据包的路由器从数据包的 TTL 中减去 1 时。数据包过期并在 TTL 达到零时被丢弃。
发生这种情况时,Traceroute 会将 ICMP Time Exceeded 消息 ( RFC 792 ) 发送回发送者。通过使用较小的 TTL 值,数据包将很快过期,因此 traceroute 会导致数据包路径上的所有路由器生成标识路由器的 ICMP 消息。
例如,TTL = 1 应该从第一个路由器生成消息,TTL = 2 从路径中的第二个路由器生成消息,依此类推......
于 2008-10-17T07:22:31.240 回答