1. 首页
  2. 系统运维
  3. Windows

Windows系统路由跟踪命令tracert命令使用详解

上一篇文章讲了ping命令的使用,在网络问题排查时候结合tracert可能更加有效果。tracert 一个探测路由的程序,可以让我们看见IP数据报到达目的地经过的路由

Tracert利用ICMP数据报和IP数据报头部中的TTL值。TTL(Time To Live)是一个IP数据报的生存时间,当每个IP数据报经过路由器的时候都回把TTL值减去1或者减去在路由器中停留的时间,但是大多数数据报在路由器中停留的时间都小于1秒种,因此实际上就是在TTL值减去了1。这样,TTL值就相当于一个路由器的计数器。

当路由器接收到一个TTL为0或者1的IP数据报的时候,路由器就不再转发这个数据了,而直接丢弃,并且发送一个ICMP“超时”信息给源主机。Tracert程序的关键就是这个回显的ICMP报文的IP报头的信源地址就是这个路由器的IP地址。同时,如果到达了目的主机,我们并不能知道,于是,Tracert还同时发送一个UDP信息给目的主机,并且选择一个很大的值作为UDP的端口,使主机的任何一个应用程序都不使用这个端口。所以,当达到目的主机的时候,UDP模块就产生一个“端口不可到达”的错误,这样就能判断是否是到达目的地了。

使用 tracert 跟踪网络连接

Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其它主机的路由。

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。

Windows系统路由跟踪命令tracert命令使用详解

可以使用 tracert 命令确定数据包在网络上的停止位置,对于解决大网络问题非常有用,此时可以采取几条路径到达同一个点。

Tracert 命令行选项

 tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name 

-d 指定不将 IP 地址解析到主机名称。

-h maximum_hops 指定跃点数以跟踪到称为 target_name 的主机的路由。

-j host-list 指定 Tracert 实用程序数据包所采用路径中的路由器接口列表。

-w timeout 等待 timeout 为每次回复所指定的毫秒数。

target_name 目标主机的名称或 IP 地址。

总结

tracert 命令跟踪 TCP/IP 数据包从该计算机到其它远程计算机所采用的路径。tracert 命令使用 ICMP 响应请求并答复消息(和 ping 命令类似),产生关于经过的每个路由器及每个跃点的往返时间 (RTT) 的命令行报告输出。

如果 tracert 失败,可以使用命令输出来帮助确定哪个中介路由器转发失败或耗时太多。

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code