traceroute程序原理
首先源主机发送一份TTL为1的IP数据报给目的主机。处理这份数据报的第一个路由器将TTL值减1,丢弃该数据报,并发回一份超时ICMP报文,这样就得到了该路径中的第一个路由器的地址。然后发送一份TTL为2的IP数据报给目的主机,这样会得到该路径中的第二个路由器的地址。继续这个过程直至该数据报到达目的主机。
但是由于目的主机不会发送超时ICMP报文,traceroute程序发送一份UDP数据报给目的主机,并且设置一个无效端口,这样到达目的主机会发送一个端口不可达ICMP报文,traceroute程序通过判断决定什么时候结束。