首页 理论教育 利用tracert工具显示网络路径

利用tracert工具显示网络路径

时间:2023-06-30 理论教育 版权反馈
【摘要】:tracert 命令显示用于将数据包从计算机传递到目标位置的一组IP 路由器,以及每个跃点所需的时间。tracert 发送TTL 为1 的第一条“回响请求”消息,并在随后的每次发送过程中将TTL 递增1,直到目标响应(或跃点)达到最大值,从而确定路径。但是,某些路由器不会为其TTL 值已过期的数据包返回“已超时”消息,而且这些路由器对于tracert 命令不可见。这样可加速显示tracert 的结果。

利用tracert工具显示网络路径

tracert 命令显示用于将数据包从计算机传递到目标位置的一组IP 路由器,以及每个跃点所需的时间。

tracert 通过向目标位置发送具有变化的“生存时间(TTL)”值的“ICMP 回响请求”消息来确定到达目标的路径。tracert 要求路径上的每个路由器在转发数据包之前,至少将IP数据包中的TTL 递减1。这样,TTL 就成为最大链路计数器。数据包上的TTL 到达0 时,路由器应该将“ICMP 已超时”的消息发回源计算机。tracert 发送TTL 为1 的第一条“回响请求”消息,并在随后的每次发送过程中将TTL 递增1,直到目标响应(或跃点)达到最大值,从而确定路径。默认情况下,跃点的最大数量是30,可使用-h 参数指定。检查中间路由器返回的“ICMP 超时”消息与目标返回的“回显答复”消息,即可确定路径。但是,某些路由器不会为其TTL 值已过期的数据包返回“已超时”消息,而且这些路由器对于tracert 命令不可见。在这种情况下,将为该跃点显示一行星号(∗)。

语法格式:

tracert [-d] [-h maximum-hops] [-j host-list] [-w timeout] [-R] [-S srcaddr][-4] [-6] target-name

参数说明:

●-d: 防止tracert 试图将中间路由器的IP 地址解析为它们的名称。这样可加速显示tracert 的结果。

●-h maximum-hops: 指定搜索目标(目的)的路径中存在的跃点的最大数。其默认值为30 个跃点。

●-j host-list: 指定回显请求消息,将IP 报头中的松散源路由选项与host-list 中指定的中间目标集一起使用。使用松散源路由时,连续的中间目标可以由一个或多个路由器分隔开。host-list 中的地址或名称的最大数量为9。host- list 是一系列由空格分隔的IP 地址(用带点的十进制符号表示)。仅当跟踪IPv4 地址时,才使用该参数。

●-w timeout: 指定等待“ICMP 已超时”或“回显答复”消息(对应于要接收的给定“回现请求”消息)的时间(以毫秒为单位)。如果在超时时间内未收到消息,则显示一个星号(∗)。默认的超时时间为4000,即4 秒。

●-R: 指定IPv6 路由扩展报头应用,将“回显请求”消息发送到本地主机,使用目标作为中间目标并测试反向路由。

●-S srcaddr: 指定在“回显请求”消息中使用的源地址。仅当跟踪IPv6 地址时,才使用该参数。

●-4: 指定tracert.exe 只能将IPv4 用于本跟踪。

●-6: 指定tracert.exe 只能将IPv6 用于本跟踪。

●target-name: 指定目标,可以是IP 地址或主机名。

●-?: 在命令提示符下显示帮助。

【实例分析】

从图4-4-1 所示的tracert 命令运行界面可知,从源主机发送数据包到www.bnu.edu.cn需要经过4 个路由器。

图4-4-1 “tracert www.bnu.edu.cn”的运行界面

图4-4-2 所示的数据是运行“tracert www.bnu.edu.cn”命令时抓包得到的数据,“数据列表”子窗口显示了前18 个数据包,第8、9 帧数据的解析信息和数据内容分别如图4-4-3和图4-4-4 所示。(www.xing528.com)

图4-4-2 “tracert www.bnu.edu.cn”的抓包数据

图4-4-3 “tracert www.bnu.edu.cn”的第8 帧数据内容

图4-4-4 “tracert www.bnu.edu.cn”的第9 帧数据内容

第8 帧数据是源主机“172.19.251.37”发送给目标主机“202.112.88.96”的“请求”ICMP 数据包。

在这帧数据中可以看到,ICMP 报文中的“类型”为11,表明这是超时报文;在ICMP报文中又包含一个IP 报文,其IP 首部的“生存时间”字段被设置为“01”,表明该帧数据跳到下一个路由器时会“死亡”,下一个路由器会丢弃该帧数据,然后向源主机发送一个“超时”ICMP 报文,且将该帧数据的IP 首部及IP 数据部分的前8 字节数据均作为“超时”ICMP 报文的ICMP 数据部分,用以验证是针对丢弃数据帧而发送的超时报文。

因此,源主机如果收到针对第8 帧数据的“超时”ICMP 数据包,则查询该数据包的源IP 地址,即可获取丢弃第8 帧数据报的路由器的IP 地址。

第9 帧数据的ICMP 首部“类型”字段值为“08”,如图4-4-4 所示,表明这是一个“请求”ICMP 数据包。

由IP 首部的“源IP 地址”和“目的IP 地址”字段值,可知这是由“202.112.88.96”发送给“60.247.18.7”的数据包。

对比第10 帧数据的ICMP 数据部分的IP 部分“45 00 00 5c …”和第9 帧数据的IP 首部及随后的8 字节的数据,可以看到是完全一样的,这表明该帧数据是主机“202.112.88.96”丢弃了第9 帧数据后发回的“超时”报文。

因此,该帧数据的源IP 地址“172.19.251.37”就是源主机“202.112.88.96”发往目标主机“60.247.18.7”的数据包所经过的第一个路由器的IP 地址。

在DOS 窗口的tracert 运行界面(图4-4-1)上,可以看到第1 行出现的IP 地址正好是“172.19.251.37”,这和抓包分析的结果完全一致。

进一步分析抓包数据,可以看到“生存时间”字段值为“1”的“请求”ICMP 数据包被发送了3 次,收获了相应的3 个“超时”数据包,然后发送3 个“生存时间”字段值为“2”的“请求”ICMP 数据包,再发送1 个“生存时间”字段值为“3”的“请求”ICMP数据包,直到收到目标主机反馈的“超时”ICMP 数据包为止。接下来,根据不同路由器反馈回的“超时”ICMP 数据包,可以得到途经的不同跳数的路由器的IP 地址。

图4-4-5 所示为第9 帧数据和第10 帧IP 段数据的对比,由图可知,第9 帧数据的IP部分和第10 帧中ICMP 报文中的IP 部分完全一样,只不过,第9 帧数据的ID 是28517,检验和是0000,第10 帧中ICMP 报文中的IP 部分ID 是28517,检验和是“d8 6d”。此时,可以认为,其余的ICMP 部分的8 字节也完全一样。从图4-4-5 中可以看出,在第9 帧的数据中,检查和是0,表明传输中出现了错误。在第10 帧数据中,检验和是“d8 6d”,表明传输是正确的。

图4-4-5 第9 帧数据和第10 帧IP 段数据的对比

(a)第9 帧数据;(b)第10 帧数据

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈