除了“ping”程序之外,我们也经常与“Traceroute”程序打交道。本文简单介绍“Traceroute”,参考文献为《TCP/IP详解 卷1:协议》的第8章。
1. 什么是“Traceroute”?
“Traceroute”程序是由Van Jacobson编写,它可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由,它还可以让我们使用IP源路由选项。
2. “Traceroute”程序的操作
“Traceroute”程序使用ICMP报文和IP首部中的TTL字段(生存周期)。它的操作过程是这样的。它发送一份TTL字段为1的IP数据报给目的主机,处理这份数据报的第一个路由器将TTL值减1,丢弃该数据报,并发回一份超时ICMP报文。这样就得到了该路径中的第一个路由器的地址。然后,“Traceroute”程序发送一份TTL值为2的数据报,这样我们就可以得到第二个路由器的地址。继续这个过程,直至该数据报到达目的主机。
3. “Traceroute”程序的应用
“Traceroute”程序可以应用在局域网、广域网和IP源站选路选项等中。
对于每一个TTL值,发送三份数据报,每接收到一份ICMP报文,就计算并打印出往返时间。如果在5秒钟内仍未收到三份数据报的任一份的响应,则打印一个星号,并发送下一份数据报。
4. 总结
在一个TCP/IP网络中,“Traceroute”程序是一个不可缺少的工具。其操作很简单:开始时发送一个TTL字段为1的UDP数据报,然后将TTL字段每次加1,以确定路径中的每个路由器。各路由器在丢弃UDP数据报时都返回一个ICMP超时报文2,而最终目的主机则产生一个ICMP端口不可达的报文。
更多内容,请上网查询或阅读相关书籍。