Tracert(traceroute) 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的trace路由追踪用来跟踪到目的IP所经过路径
首先,tracert送出一个TTL是1的IP 数据包到目的地当路径上的第一個trace路由追踪器收到这个数据包时,它将TTL减1此时,TTL变为0所以该trace路由追踪器会将此数据包丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址IP包的所有内容及trace路由追踪器的IP地址),tracert 收到这个消息后便知道这个trace路由追踪器存在于这个路径上,接着tracert 再送出另一个TTL是2 的数据包发現第2 个trace路由追踪器...... tracert 每次将送出的数据包的TTL 加1来发现另一个trace路由追踪器,这个重复的动作一直持续到某个数据包 抵达目的地
LINUX下的目的地到達判断方法:
WINDOWS下的目的地到达判断方法
发送的报文如果到达终点,会向目的地地址发送ICMP请求回显数据包
tracert 有一个固定的时间等待响应(ICMP TTL到期消息)如果这个时间过了,它将打印出一系列的*号表明在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应然后,Tracert给TTL记数器加1继续进行。
1)解析域名主机发起查询DNS记录,并将请求转到网关处理(网关代理)网关返回域名的对应的IP
2)主机发送TTL=1, 等待第一个蕗径节点(一般是网关)返回ICMP time exceeded消息到主机后再次发送TTL=2的请求
4)路径不可达,则会在cmd窗口打印* * *然后将TTL+1,如下所示:
5)tracert发送的报文如果到達终点会向目的地地址发送ICMP请求回显数据包,如下图所示: