一、Traceroute概述
Traceroute是一种将数据包途经路由,IP地址回显的指令,基于ICMP协议实现,通过不断发送不可交付的IP数据报,获取从源主机到目标主机的路由IP。
二、Traceroute工作原理
Traceroute工具从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP用户数据报,预设数据包大小是40Bytes。。第一个数据报P1的生存时间TTL设置为1。当P1到达路径上的第一个路由器R1时,路由器R1先收下它,接着把TTL的值减一。由于TTL等于零了,R1就把P1丢弃了,并向源主机发送了一个ICMP时间超过差错报告报文。
源主机接着发送第二个数据包P2,并把TTL设置为2。P2先到达路由器R1,R1收下后把TTL减1再转发给路由器R2.R2收到P2时TTL为1,但减1后TTL变为零了。R2就丢弃P2,并向源主机发送一个ICMP时间超过差错报告报文。这样一直继续下去。当最后一个数据报刚刚到达目的主机时,数据报的TTL时1.主机不转发数据报,也不把TTL值减1。但因IP数据报中封装的是无法交付的运输层的UDP用户数据报,因此目的主机要向源主机发送ICMP终点不可达差错报告报文。
这样,源主机就达到了自己的目的,因为这些路由器和最后目的主机发来的ICMP报文正好给出了源主机想知道的路由信息———达到目的主机所经过的路由器的IP地址,以及到达其中的每一个路由器的往返时间。
路由跟踪所花费的时间受路由器数量以及网络拥塞程度影响。
三、Traceroute命令参数
-d 使用Socket层级的排错功能。
-f<存活数值> 设置第一个检测数