Unix traceroute是如何工作的?

Unix traceroute是如何工作的?,unix,networking,traceroute,Unix,Networking,Traceroute,这似乎很神奇。traceroute命令是如何将整个路径映射到Internet上的其他节点的?traceroute将TTL(生存时间)字段设置为1,并为每个跃点递增。接收消息的路由器将减小该值,当该值达到0时,路由器将回复TTL已达到0的消息。通过这个回复,客户知道谁在中间。重复执行此操作,直到您的目的地和(至少其中一个)路由到达为止。跟踪路由使用较小的TTL(生存时间)值传输数据包。TTL是一个IP报头字段,用于防止数据包进入无限循环。当处理数据包的路由器从数据包的TTL中减去1时。当TTL为零

这似乎很神奇。traceroute命令是如何将整个路径映射到Internet上的其他节点的?

traceroute将TTL(生存时间)字段设置为1,并为每个跃点递增。接收消息的路由器将减小该值,当该值达到0时,路由器将回复TTL已达到0的消息。通过这个回复,客户知道谁在中间。重复执行此操作,直到您的目的地和(至少其中一个)路由到达为止。

跟踪路由使用较小的TTL(生存时间)值传输数据包。TTL是一个IP报头字段,用于防止数据包进入无限循环。当处理数据包的路由器从数据包的TTL中减去1时。当TTL为零时,数据包过期并被丢弃

发生这种情况时,跟踪路由将ICMP超时消息()发送回发件人。通过使用较小的TTL值,数据包将很快过期,因此traceroute会使数据包路径上的所有路由器生成标识路由器的ICMP消息


例如,TTL=1应该从第一个路由器生成消息,TTL=2从路径中的第二个路由器生成消息,依此类推

这是否意味着您可以通过指定ttl=5从跃点5启动跟踪路由