Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP数据包访问目标所采取的路径。Tracert命令使用用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由,其命令格式如下。Tracert[-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name

1、Tracert工作原理

通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。

Tracert先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert实用程序中看不到。

Tracert命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert实用程序不在每个 IP 地址上查询 DNS。

2、Tracert命令详解

不带选项

不带选项的Tracert命令将显示到达目标IP地址所经过的路径,并将IP地址解析为主机名一同显示。如下图所示,第一跳是网关地址,可以根据看到的主机名,判断我使用的是极路由。

v2-069c15fd02cd834922a110b585f23873_1440w.jpg

-d选项

不将地址解析成主机名,能够更快地显示路由器路径。与上图对比,路径是一样的,只是不将IP地址解析成主机名,速度更快。下图中红色框所示的主机名已消失。

v2-18d81cbece6e75d18a5fc7c4b2c11e90_720w.jpg

-h选项

指定跟踪的跃点数。以下的命令只显示5跳,可以看到命令只跟踪到5跳就结束了。一般来说,5跳之内可能还是本地省内链路。

v2-08f2e80bfc61237bd12cd1b963519ef2_720w.jpg

-w选项

指定等待每个应答的时间(以毫秒为单位)。默认值为 3000 毫秒(3 秒)。

另外,Tracert命令还有如“-j”、“-r”、“-s”、“-4”、“-6”等参数,用得较少,其用法都可以在命令行中输入命令“Tracert”直接查到,这里就不再赘述了。

v2-862a824237e396e1c390bd7aaaa96d33_720w.jpg

3、Tracert 实用程序怎么用?

Tracert诊断实用程序通过向目标地址发送 Internet 控制消息协议 (ICMP) 回显数据包来确定到目标地址的路由。 在这些数据包中,Tracert使用了不同的 IP“生存期”(TTL) 值。 由于要求沿途的路由器在转发数据包前至少必须将 TTL 减少 1,因此 TTL 实际上是一个跃点计数器 (hop counter)。 当某个数据包的 TTL 达到零 (0) 时,路由器就会向源计算机发送一个 ICMP“超时”的消息。

Tracert将发送 TTL 为 1 的第一个回显数据包,并在每次后续传输时将 TTL 增加 1,直到目标地址响应或达到 TTL 的最大值。 中间路由器发送回来的 ICMP“超时”消息显示了路由。 请注意,有些路由器会丢弃 TTL 失效的数据包而不发出消息,这些数据包对于 Tracert来说是不可见的。

Tracert将会显示一个返回 ICMP“超时”消息的中间路由器的顺序列表。 使用带有d选项的Tracert命令时,Tracert将不会对每个 IP 地址执行 DNS 查找,这样,Tracert将报告路由器近端接口的 IP 地址。

在以下Tracert命令和输出的示例中,数据包经过两个路由器(157.54.48.1 和 11.1.0.67)才到达主机 11.1.0.1。 在此示例中,默认网关是 157.54.48.1,网络 11.1.0.0 中的路由器的 IP 地址是 11.1.0.67。

命令:

C:/Tracert11.1.0.1

命令的输出:

v2-8fc8c5c12c038f3694411b955441b2f8_720w.png