tracert工作原理

linux 上为traceroute

Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。

首先,tracert送出一个TTL1IP 数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL1。此时,TTL变为0,所以该路由器会将此数据包丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),tracert 收到这个消息后,便知道这个路由器存在于这个路径上,接着tracert 再送出另一个TTL的数据包,发现第2个路由器...... tracert 每次将送出的数据包的TTL 1来发现另一个路由器,这个重复的动作一直持续到某个数据包 抵达目的地。当数据包到达目的地后,该主机则不会送回ICMP time exceeded消息,一旦到达目的地,由于tracert通过UDP数据包向不常见端口(30000以上)发送数据包,因此会收到「ICMP port unreachable」消息,故可判断到达目的地。

tracert 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,TracertTTL记数器加1,继续进行。(注意:默认是最多30跳就结束 )

                                                                                     图4-5-1 Tracert命令

tracert工作原理_第1张图片

                                                                                        图4-5-2 Tracert发送的数据包 (TTL递增顺序)

tracert工作原理_第2张图片

4-5-3 Tracert接收的数据包

你可能感兴趣的:(tracert工作原理)