trace命令工作原理

traceroute是用来跟踪路由的命令,可以查看数据包从一端到另一端的路线。查看了一下RFC上的资料,原来traceroute是用不同的TTL来找到下一跳的。

当路由器要去traceroute的时候,第一个数据包的TTL设置为1,那么下一跳的路由器收到数据包之后会丢弃数据包,并且会向源路由器发送一条错误信息,源路由器通过阅读错误信息从而得知发送错误信息的路由器就是第一跳。源路由器第二次发送数据包的时候把TTL的值设置为2,第二跳的路由器发送错误信息过来,源路由器就可以知道第二跳是谁。以此类推,直到发现目标为止。每次traceroute源路由器都会发送3个数据包,所以我们在traceroute的时候每跳都能看到三个时间。

优点

路由器本来就有发送TTL超时的能力,不需要任何另外的配置。

缺点

1、附近的路由器经常收到重复的数据包。

2、在traceroute的过程中,路线可能会改变。

3、没有跟踪回来的路线,数据包到达和回来的路线可能不同。

展望

具体的展望查看RFC1393

1 Comment