富宙号

tracert命令详解步骤(一篇搞懂tracert命令)

1.tracert命令的作用


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


2.实现原理

tracert命令详解步骤(一篇搞懂tracert命令) 第1张


图片来自网络方便理解

源端(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命令) 第2张


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


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

tracert www.baidu.com


tracert命令详解步骤(一篇搞懂tracert命令) 第3张


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


例如:

121.14.14.162 广东省广州市 电信

113.96.4.166 广东省广州市 电信


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


版权声明:本文内容由互联网用户自发贡献以及网络收集编辑和原创所得,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任,详见本站的版权声明与免责声明。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 maliang853@foxmail.com 举报,一经查实,本站将立刻删除。 转载请注明出处:https://www.fzdnw.com/tgfx/11732.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~