第8章 Traceroute程序

8.1 引言

Traceroute程序由Van Jacobson编写,用于查看IP数据报经过的路由。

8.2 Traceroute程序的操作

原理

  1. 发送TTL=1的UDP数据报
  2. 第一个路由器返回ICMP超时
  3. 发送TTL=2、3…直到到达目的主机
  4. 目的主机返回ICMP端口不可达

关键点

  • 使用UDP,目的端口号>30000
  • 每跳发送3个探测包
  • 打印RTT和路由器地址

8.3 局域网输出

traceroute to slip (140.252.13.65), 30 hops max 1 bsd (140.252.13.35) 20 ms 10 ms 10 ms 2 slip (140.252.13.65) 120 ms 120 ms 120 ms

text

ICMP超时报文

  • 类型:11
  • 代码:0(传送超时)/ 1(分片重装超时)

8.4 广域网输出

典型输出包含:

  • 本地路由器
  • 地区性网络
  • NSFNET主干网
  • 目标网络

8.5 IP源站选路选项

宽松源站选路(LSRR)

  • code:0x83
  • 指定必须经过的路由器列表
  • 可在列表之间自由选择路径

严格源站选路(SSRR)

  • code:0x89
  • 指定完整路径
  • 路由器不能选择其他路径

源路由处理

  1. 发送端指定路由清单
  2. 每个路由器将目的地址替换为清单中的下一项
  3. 记录经过的路由器地址

8.6 小结

Traceroute使用ICMP超时和端口不可达报文来发现路由。支持源站选路选项。