unix Traceroute是如何工作的?[关闭]

dldeef67  于 5个月前  发布在  Unix
关注(0)|答案(2)|浏览(40)

**已关闭。**此问题为off-topic。目前不接受回答。
想改进这个问题吗?Update the question所以它是on-topic的堆栈溢出。

11年前关闭。
Improve this question
这看起来很神奇,traceroute命令是做什么的,以便绘制出到Internet上其他节点的整个路径?

arknldoa

arknldoa1#

Traceroute将TTL(Time To Live)字段设置为1,并在每一跳中递增。接收消息的路由器递减此值,当它达到0时,它们回复一条TTL已达到零的消息。通过此回复,客户端知道谁在中间。反复执行此操作,直到您的目的地和您获得(至少其中一个)路由。

guykilcj

guykilcj2#

Traceroute传输的数据包具有较小的TTL(生存时间)值。TTL是一个IP报头字段,用于防止数据包进入无限循环。当处理数据包的路由器从数据包的TTL中减去1时。数据包过期,当TTL达到零时被丢弃。
当发生这种情况时,Traceroute会将超时消息(RFC 792)发送回发送方。通过使用较小的TTL值,数据包将很快过期,因此traceroute会使数据包路径上沿着的所有路由器生成用于标识路由器的超时消息。
例如,TTL = 1应该产生来自第一个路由器的消息,TTL = 2产生来自路径中第二个路由器的消息,依此类推。

相关问题