WINDOWS平台命令:
tracert
LINUX平台命令:
traceroute
简介:
Tracert(traceroute) 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。用来跟踪到目的IP所经过路径
原理简介
首先,tracert送出一个TTL是1的IP 数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1。此时,TTL变为0,所以该路由器会将此数据包丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),tracert 收到这个消息后,便知道这个路由器存在于这个路径上,接着tracert 再送出另一个TTL是2 的数据包,发现第2 个路由器...... tracert 每次将送出的数据包的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个数据包 抵达目的地。
LINUX下的目的地到达判断方法:
当数据包到达目的地后,该主机则不会送回ICMP time exceeded消息,一旦到达目的地,由于tracert通过UDP数据包向不常见端口(30000以上)发送数据包给目的主机,因此会收到「ICMP port unreachable」消息,故可判断到达目的地。
WINDOWS下的目的地到达判断方法
发送的报文如果到达终点,会向目的地地址发送ICMP请求回显数据包
注意:
tracert 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号,表明在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,Tracert给TTL记数器加1,继续进行。
示例如下:
在windows cmd命令窗口执行命令tracert www.baidu.com,结果如下:
过程分析如下:
1)解析域名,主机发起查询DNS记录,并将请求转到网关处理(网关代理),网关返回域名的对应的IP
2)主机发送TTL=1, 等待第一个路径节点(一般是网关)返回ICMP time exceeded消息到主机后,再次发送TTL=2的请求
3)第二个路径节点返回ICMP time exceeded消息到主机后,再次发送TTL=3的请求
4)路径不可达,则会在cmd窗口打印* * *,然后将TTL+1,如下所示:
5)tracert发送的报文如果到达终点,会向目的地地址发送ICMP请求回显数据包。
本文地址:https://gpu.xuandashi.com/8047.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!