龙空技术网

一篇搞懂tracert命令

ICT技术社区 780

前言:

如今同学们对“tracert命令的作用和工作原理”都比较关注,朋友们都需要剖析一些“tracert命令的作用和工作原理”的相关内容。那么小编同时在网摘上网罗了一些对于“tracert命令的作用和工作原理””的相关知识,希望你们能喜欢,朋友们一起来了解一下吧!

1.tracert命令的作用

简单网络诊断工具,探测数据包从源地址到目的地址经过的路由器IP地址。

2.实现原理

图片来自网络方便理解

源端(SwitchA)向目的端(日志主机)发送一个UDP报文,TTL值为1,目的UDP端口号是大于30000的一个数,因为在大多数情况下,大于30000的UDP端口号是任何一个应用程序都不可能使用的端口号。

第一跳(SwitchB)收到源端发出的UDP报文后,判断出报文的目的IP地址不是本机IP地址,将TTL值减1后,判断出TTL值等于0,则丢弃报文并向源端发送一个ICMP超时(Time Exceeded)报文(该报文中含有第一跳的IP地址10.1.1.2),这样源端就得到了SwitchB的地址。

源端收到SwitchB的ICMP超时报文后,再次向目的端发送一个UDP报文,TTL值为加一,此时为2。

第二跳(SwitchC)收到源端发出的UDP报文后,回应一个ICMP超时报文,这样源端就得到了SwitchC的地址(10.1.2.2)。

以上过程不断进行,直到目的端收到源端发送的UDP报文后,判断出目的IP地址是本机IP地址,则处理此报文。根据报文中的目的UDP端口号寻找占用此端口号的上层协议,因目的端没有应用程序使用该UDP端口号,则向源端返回一个ICMP端口不可达(Destination Unreachable)报文(该报文含有目的端的IP地址10.1.3.2)。

源端收到ICMP端口不可达报文后,判断出UDP报文已经到达目的端,则停止Tracert程序,从而得到数据报文从源端到目的端所经历的路径(10.1.1.2;10.1.2.2;10.1.3.2)。

有人可能疑惑最后为什么源端收到ICMP端口不可达报文后,判断出UDP报文已经到达目的端口,其实原理不难理解,因为我们用了一个不可达的端口(端口号大于30000,没有应用程序使用的端口),只要找到目的ip后就会依照端口号寻找应用程序,但此时显然找不到,所以会返回一个ICMP端口不可达报文,但我们找到目的ip地址的目的确是达到了,简单来说就是跳转到下一个路由时候,判断IP地址是否为目的IP,是就返回一个端口不可达的报文,不是就继续跳转,直到到达目的ip或者目的ip不可到达,就算结束。

3.tracert命令详解

命令行输入tracert就可以打开这个选项菜单按照上述格式编写指令即可

例如我们跟踪一下的路由,输入以下指令

tracert 

这些IP地址,一般为中国电信骨干路服务器或省级骨干或信息信息港等。那些ms结尾的是服务器返回的ttl值,这个值越小越好,越小表示延时短,访问速度就越快。

例如:

121.14.14.162 广东省广州市 电信

113.96.4.166 广东省广州市 电信

这里注意最后一个IP是目的IP地址也就是的IP地址(14.215.177.38),第一个ip(192.168.93.74)是自己路由器的地址,也是第一跳的地址,从上面的图片来看我访问百度一个经过了12个路由节点,一般来说10个以内的路由节点的网站访问是很快的,15个以内的较慢,超过30个路由节点的网站认为是无法访问的网站。

标签: #tracert命令的作用和工作原理