网络tracert学习笔记

A.Tracert工作原理
Tracert为路由跟踪程序,用于确定本地主机到目标主机经过哪些路由结点。在Linux操作系统中,对应的命令为Traceroute,tracert为windows系统下的命令。

Tracert是利用ICMP和TTL进行工作的。首先tracert会发出TTL值为1的ICMP数据报(包含40个字节,包括源地址、目标地址和发出的时间标签,一般会连续发3个包)。当到达路径上的第一个路由器时,路由器会将TTL值减1,此时TTL值变成0,该路由器会将此数据报丢弃,并返回一个超时回应数据报(包括数据报的源地址、内容和路由器的IP地址)。当tracert收到该数据报时,它便获得了这个路径上的第一个路由器的地址。

接着,tracert再发送另一个TTL为2的数据报,第一个路由器会将此数据报转发给第二个路由器,而第二个路由器收到数据报时,TTL为0。第二个路由器便会返回一个超时回应数据报,从而tracert便获得了第二个路由器的地址。

Tracert每次发出数据报时便会将TTL加1(一般每次都是发3个数据报),来发现下一个路由器。这个动作一直重复,直到到达目的地或者确定目标主机不可到达为止。

当数据报到达目的地后,目标主机并不返回超时回应数据报。Tracert在发送数据报时,会选择一个一般应用程序不会使用的号码(30000以上)来作为接收端口号,所以当到达目的地后,目标主机会返回一个ICMP port unreachable(端口不可达)的消息。当tracert收到这个消息后,就知道目的地已经到达了。
Tracert会提取ICMP的超时回应数据报中的IP地址并作主机名解析(用-d参数表示不解析主机名,解析主机名会耽误一些时间),然后将所经过的路由器的主机名及IP地址、数据报每次往返花费的时间显示出来。Tracert有一个固定的等待响应时间,如果这个时间过了,tracert就会输出“*”来表示某个设备没有在规定的时间内作出响应,然后tracert会将TTL值加1,继续进行检测。
通过tracert命令,我们便知道源地址到目的地址所经过的路径。虽然数据报传输时,经过的路径并不是每次都一样,但是大部分时间是一样的。在目标主机响应时,tracert会显示完整的经过的理由以及到每个路由所花费的时间。如果目标主机没有响应,tracert仍会尝试寻找所经过的路径。

B.Tracert结果的实际意义
网络不稳定时,可以看出具体哪些结点不稳定,以及不稳定的结点的上一个结点和下一个结点分别是在什么位置,由此即可大致判断出不稳定的网络结点在什么位置。

我们可以通过查询IP地址的网站如http://www.iplocation.net/(查国外IP比较准)或者ip138.com(查国内IP比较准)查询下相应结点的位置。


 

C 举例介绍

命令执行结果的说明:

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

2:最左侧的,1,2,3,4~8,表明在我使用的宽带(北京宽带)上,经过7(不算自己本地的)个路由节点,可以到达百度的服务;如果是电信可能有不同;其他的IP,也有可能不同;各位可以自行测试一下;

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

4:后面的IP,就是每个路由节点对应的IP,每个IP代表什么,各位可以通过 4(推荐的站长工具)去了解

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

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

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

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

原创文章 96 获赞 48 访问量 6万+

猜你喜欢

转载自blog.csdn.net/wteruiycbqqvwt/article/details/105124786
今日推荐