Windows系统下,tracert路由跟踪指令详解

在Windows系统下是执行Tracert的命令:
Tracert hostname

参数说明:

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

参数
-d
指定不对计算机名解析地址。
-h maximum_hops
指定查找目标的跳转的最大数目。
-jcomputer-list
指定在 computer-list 中松散源路由。
-w timeout
等待由 timeout 对每个应答指定的毫秒数。
target_name
目标计算机的名称。

在windows下使用tracert命令并结合非常好用的Wireshark抓包软件测试分析,如下图:

Windows系统下,tracert路由跟踪指令详解

命令执行结果的说明:

1:tracert命令用于确定 IP数据包访问目标所采取的路径,显示从本地到目标网站所在网络服务器的一系列网络节点的访问速度,最多支持显示30个网络节点。

2:最左侧的,1,2,3,4~8,表明在我使用的宽带上,经过15(不算自己本地的)个路由节点,可以到达百度的服务;

3:中间的三列,单位是ms,表示我们连接到每个路由节点的速度,返回速度和多次链接反馈的平均值;

4:后面的IP,就是每个路由节点对应的IP;

5:如果返回消息是超时,则表示这个路由节点和当前我们使用的宽带,是无法联通的,至于原因,就有很多种了,比如:特意在路由上做了过滤限制,或者确实是路由的问题等,需要具体问题具体分析;

6:如果在测试的时候,大量的都是*和返回超时,则就说明这个IP,在各个路由节点都有问题

7:一般10个节点以内可以完成跟踪的网站,访问速度都是不错的;10到15个节点之内才完成跟踪的网站,访问速度则比较差,如果超过30个节点都没有完成跟踪的网站,则可以认为目标网站是无法访问的。

8:在Linux平台上,traceroute 命令就相当于windows平台上的 tracert 命令

使用wireshark抓包:

Windows系统下,tracert路由跟踪指令详解

Windows系统下,tracert路由跟踪指令详解

 

Windows系统下,tracert路由跟踪指令详解

  可以结合tracert和wireshark截图看到,默认情况下,tracert会追踪最多30个跃点追踪到目的地址,每次追踪会发送三个icmp报文,第一次设置TTL为1,后面每次增加1,直到追踪到目的地址;tracert命令是基于ICMP协议实现的,即直接发送一个ICMP回显请求(echo request)数据包,服务器在收到回显请求的时候会向客户端发送一个ICMP回显应答(echo reply)数据包,实现流程如下:

Windows系统下,tracert路由跟踪指令详解

  tracert跟踪路由时,每当TTL减为0时,路由就会往源主机发送一个ICMP超时报文,当到达目的主机时,目的主机回向源主机发送一个ICMP回显应答(echo reply)数据包,并将TTL设为较大的默认值,防止包丢失;通过tracert命令我们可以知道ip分组到达目的主机经过了哪些路由器,以及经过每一跳的网络延迟,是一个实用的网络诊断命令。

当然tracert还有其他的一些选项,如下图:

Windows系统下,tracert路由跟踪指令详解

好了,tracert命令主要的作用就是这样了,剩下的一些选项,有兴趣的小伙伴可以自己在电脑上试试,或许收获更多呢。