tracert也被称为Windows路由跟踪实用程序,在命令提示符(cmd)中使用tracert命令可以用于确定IP数据包访问目标时所选择的路径。这个命令在网络中使用的比较多,尤其是在排除网络故障这块,本文主要探讨了tracert命令的各个功能。现在网络四通八达,网线光纤基站卫星,只要运营商能收费的地方,就有网络,覆盖了全世界所有的区域。彻底改变了以前通讯基本靠吼的情况。那么宽广的网络世界,超过100米就得需要中继放大信号的网线,即使现在的光纤线缆距离也是有限。全世界那么大,有没有统计过,在有限的IPV4里,全球有多少的路由器,没有答案。

一、tracert命令基础详解

1、进入Windows命令提示符程序。

Win7系统直接在开始菜单下方的输入框中输入"cmd"或"命令提示符"就可以进入了。XP系统需要在开始菜单中找到运行(或按下快捷键R),在运行对话框中输入cmd,然后单击"确定"按钮。




wireshark 终点不可达 tracert不可达_tracert请求超时


2、在命令行中输入"tracert "并在后面加入一个IP地址,可以查询从本机到该IP地址所在的电脑要经过的路由器及其IP地址。下图中后面的IP地址为同一个路由器下的局域网中的另一个电脑的IP地址。


wireshark 终点不可达 tracert不可达_windows cmd post请求_02


3、从左到右的5条信息分别代表了"生存时间"(每途经一个路由器结点自增1)、"三次发送的ICMP包返回时间"(共计3个,单位为毫秒ms)和"途经路由器的IP地址"(如果有主机名,还会包含主机名)。


wireshark 终点不可达 tracert不可达_tracert 请求超时_03


4、也可以输入"tracert "后面接一个网址,DNS解析会自动将其转换为IP地址并探查出途经的路由器信息。如这回在后面输入了百度经验的URL地址,可以发现共查询到10条信息,其中带有星号(*)的信息表示该次ICMP包返回时间超时。

5、如果在"tracert"命令后添加一个不存在的IP地址,tracert程序则会报错。如下图所示。

6、在"tracert"命令与IP地址或URL地址中间输入"-d",可以不将IP地址解析到主机名称。从下图可以看出,添加了"-d"后将不显示出"PC-helei"字样,即不显示主机名称。

7、在"tracert"命令与IP地址或URL地址中间输入"-h",并在之后添加一个数字,可以指定本次tracert程序搜索的最大跳数。如下图中加入" -h 5 "后,搜索只在路由器间跳转5次,就无条件结束了。


wireshark 终点不可达 tracert不可达_tracert请求超时_04


8、在"tracert"命令与IP地址或URL地址中间输入"-w",并在之后添加一个数字,可以指定tracert为每次回复所指定的毫秒数。


wireshark 终点不可达 tracert不可达_tracert请求超时_05


9、另外,tracert中还有如"-j"、"-r"、"-s"、"-4"、"-6"等命令,其用法都可以在命令行中输入命令"tracert"直接查到,这里就不一一赘述了。


wireshark 终点不可达 tracert不可达_windows cmd post请求_06


二、Tracert命令使用案例


wireshark 终点不可达 tracert不可达_windows cmd post请求_07


那我们访问一个网站的时候,从手下的主机到底经过了多少个路由器?才能达到目的地服务器。

Windows有个网络命令可以实现,它就是Tracert。

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

Tracert命令对于了解包括解决大型网络非常使用,它能摸索所处大型局域网里网络拓扑架构,除了一些禁止ping的路由器(一般出口路由器或者防火墙上)。

Tracert命令功能同Ping类似,但它所获得的信息要比Ping命令详细得多,它把数据包所走的全部路径、节点的IP以及花费的时间都显示出来。该命令比较适用于大型网络。

Tracert 先发送 TTL 为 1 的回应数据包,当数据包上的 TTL在路由器收到后TTL自动减1 ,一旦某个服务器将TTL减1后,等于了0,路由器应该将"ICMP Time Exceeded"的消息发回源计算机,源计算机就根据收到的信息判断达到的路由器和所用时间。下次再次发送数据包时,将TTL递增 1,继续上述测试,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的"ICMP 已超时"的消息确定路由。某些路由器不经询问直接丢弃 TTL过期的数据包,这在 Tracert 实用程序中看不到,我们会显示请求超时的请求信息。

使用ping命令测试www.qq.com服务器设置的TTL初始值为52,如下图


wireshark 终点不可达 tracert不可达_tracert 请求超时_08


下图所示,我们测试到www.qq.com的路经过了16道路由,结合上图ping命令结果,得知小编在ping www.qq.com时候得到TTL=52。又由下图得知经过16道路由后到达我们客户机,52+16=68,说明www.qq.com设置的TTL初始值为68。下图中请求超时的反馈信息是因为路由器对ping命令做了处理,关闭了ping的响应,所以我们收不到发给他的反馈信息。


wireshark 终点不可达 tracert不可达_wireshark 终点不可达_09


总结

Tracert命令适合大型网络,能测算出当前主机到目的主机之间经过了多少个路由,并详细记录所经过所有路由的地址。