比如博主这台电脑,通过本地抵达百度服务器中间经过的所有设备的IP,这个在实际用处很大,比如A去往B不通,通过tracerroute看是不是走的对应的路径,有可能由于中间设备配置错误,导致它走了其他的线路出去了,这样就判断出来问题了。
它的原理就是利用IP包的生存期限,如上面主机tracertwww.baidu.com的时候主机会发送一个UDP的报文,目标端口号为高端口号(3000以上),并且把IP头部的TTL值改成1,遇到第一个网络设备的时候,变为0了,就会被丢弃,第一个网络设备会返回一个ICMP差错报文,类型是时间超时,比如图上的192.168.255.254就是出口的路由器,这样发送主机就得到了第一台设备的IP地址(入口的)
接下来主机继续发送TTL=2的数据包,这样在经过第二个三层设备的时候就会被丢弃,同时也会返回ICMP的差错报文,主机就知道了第二个路由器的地址,如图上的192.168.1.1,如此的重复,直到到达目的主机。
在图上会发现有请求超时的,这就是中途设备为了安全性关闭了ICMP报文的差错返回信息,这样就得不到信息了。
那么UDP的报文是干嘛用的呢,TTL值已经能够获取到中间设备的地址信息了,这个数据包最终是会抵达目的主机的,当目标主机收到这个UDP的包时,由于自己没有对应的服务,会返回一个端口不可达的ICMP差错报文信息,所以当发送者收到一个端口不可达这样的差错报文时,就知道这个数据包已经抵达目的主机了,否则发送方无法判断是否抵达了目的主机,会一直发送这个包,这样就失去了该功能的作用了。
在Windows主机中实用的命令
可能有的朋友还不知道在Windows中如何使用Ping命令与tracert命令,其实很简单
Ping命令
在CMD里面直接输入ping,其实会显示很多参数
除了经常使用ping ccieh3c.com来测试目标主机是不是可通的,另外一个就是ping ccieh3c.com -t,-t的意思是持续Ping,通常在测试网络稳定性的时候会用到。
Tracert命令
建议使用trcert -d ccieh3c.com, -d的作用是不解析地址的主机名,否则你会发现解析起来非常的慢。
作者:一天,公众号:网络之路博客(ID:NetworkBlog)。让你的网络之路不在孤单,一起学习,一起成长。