现在的位置: 首页 > 综合 > 正文

(8)Traceroute程序

2018年04月01日 ⁄ 综合 ⁄ 共 1004字 ⁄ 字号 评论关闭

一、简介

    Traceroute程序可以让我们看到IP数据报从一台主机传到另一台住进所经过的路由及IP源路由选项。

二、Traceroute程序的操作

    为什么不使用IP记录路由选项,而是重新开发一个新的应用程序,原因有以下三点:

    (1)原来不是所有的路由器都支持记录路由选项;

    (2)记录路由一般是单向的选项。发送端设置了该选项,那么接收端不得不从收到的IP首部中提取出所有的信息,然后全部返回给发送端;

    (3)IP首部中留给选项的空间有限。

    Traceroute程序使用ICMP报文和IP首部中的TTL字段。TTL初始值一般为64,每个处理数据报的路由器都需要把TTL值减1。TTL值相当于一个跳站计数器。

    TTL字段的目的是防止数据报在选路时不休止的在网络中流动。即它给数据报上加上了一个生存上限。路由器丢弃TTL字段为0或1的数据报,并给信源机发一份ICMP超时信息,Traceroute程序的关键在于包含这份ICMP信息的IP报文的信源地址是该路由器的IP地址。

    Traceroute程序操作过程是这样的:它发送一份TTL字段为1的UDP数据报给目的主机,处理这份数据报的第一个路由器将TTL值减1,丢弃该数据报,并发回一份超时ICMP报文。这样就得到了该路径中的第一个路由器的地址。然后,“Traceroute”程序发送一份TTL值为2的数据报,这样我们就可以得到第二个路由器的地址。继续这个过程,直至该数据报到达目的主机。Traceroute程序发送一份UDP数据报给目的主机,但它选择一个不可能的值作为UDP端口号(大于30000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报到达时,将使目的主机的UDP模块产生一份“端口不可达”错误的ICMP报文。这样,Traceroute程序就可以分析接收到的ICMP报文是端口不可达的还是超时报文来判断是否到达目的主机。

三、IP源站选路选项

    源站选路的思想是由发送者指定路由。它可以采用以下两种形式:

    (1)严格的源路由选择。发送端指明IP数据报所必须采用的确切路由。如果一个路由器发现源路由所指定的下一个路由器不在其直接连接的网络上,那么它就返回一个“源站路由失败”的ICMP差错报文。

    (2)宽松的源站选路。发送端指明了一个数据报经过的IP地址清单,但是数据报在清单上指明的任意两个地址之间可以通过其他路由器。

抱歉!评论已关闭.