traceroute原理

1,531 阅读1分钟

traceroute通过udp和icmp两个协议的共同作用之下,实现线路探测功能。基本过程是:

  1. traceroute程序设置IP头部的ttl初始值为1,发送UDP报文
  2. UDP报文到达路由器R1,R1将TTL-1,TTL变为0,内核丢弃该数据包,并响应ICMP Time to live exceeded消息
  3. traceroute收到ICMP ttl exceeded消息之后,将IP头部ttl值设为2,再次发送UDP报文
  4. 如果没到达最终的目的IP所在的机器,重复2,3,依次累加ttl
  5. 如果到达最终目的地,此时回复ICMP Destination Unreachable消息。trace过程结束

traceroute capture

我在Mac上使用traceroute命令会重复针对每个ttl会重复三次。