一 功能和原理:
(1)功能:
Traceroute程序可以让我们看到IP数据报从一台主机到另一台主机所经过的路由。
(2)原理:(使用UDP+ICMP)
Traceroute程序使用ICMP报文和IP首部中的TTL字段(生存周期)。
TTL字段是由发送端初始设置一个8bit字段,最大值为255。
以前TTL是用时间秒作为计量单位,如今是用”跳数“。
所经过的每一个路由器都把TTL的值减1.
路由器在转发数据报之前把TTL的值减1,如果TTL为0则丢弃这个报文,不再转发,并给ICMP发送一个”超时“报文。
原理总述:
1.Traceroute从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP用户数据报(使用了非法的端口号)。
2.首先,发送一个TTL为1的数据报给目的主机,处理这个数据报的第一个路由器将TTL减1,丢弃该数据报,并发回一个超时的ICMP报文,这样就得到了该路径中的第一个路由器的地址。
3.然后,traceroute发送一个TTL为2的数据报,这样就得到了第二个路由器的地址。继续这个过程直至数据报到达目的主机。
4.到达目的主机后,主机不把TTL减1,也不转发该数据报。但因为这个数据报封装的是无法交付的UDP数据报,目的主机要向源主机发送ICMP终点不可达差错数据报文。这样Traceroute程序所要做的是区分接受到的ICMP报文是超时还是端口不可达,以判断什么时候结束。