该诊断实用程序将包含不同生存时间 (TTL) 值的 Internet 控制消息协议 (ICMP) 回显数据包发送到目标,以确定到达目标采用的路由。要在转发数据包上的 TTL 之前至少递减 1,必需路径上的每个路由器,所以 TTL 是有效的跃点计数。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送 ICMP time exceeded消息。Tracert 先发送 TTL 为 1 的回显数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。路由通过检查中级路由器发送回的“ICMP 已超时”的消息来确定路由。不过,有些路由器悄悄地下传包含过期 TTL 值的数据包,而 tracert 看不到。
1、tracert常用在跟踪路由上,运维人员为了验证数据包转发的路径是否按照设定的路径转发。
2、tracert的使用方法
tracert IP地址或主机名 [-d][-h maximumhops][-j host_list] [-w timeout]
用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]
[-R] [-S srcaddr] [-4] [-6] target_name
选项:
-d 不将地址解析成主机名。
-h maximum_hops 搜索目标的最大跃点数。
-j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。
-w timeout 等待每个回复的超时时间(以毫秒为单位)。
-R 跟踪往返行程路径(仅适用于 IPv6)。
-S srcaddr 要使用的源地址(仅适用于 IPv6)。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
3、数据包分析
①工作原理:tracert在测试时通过通过发送TTL=1的ICMP数据包,随后逐渐+1递增的发送ICMP数据包,从CMD可以看到每个节点测试3次,每次测试发送2个ICMP包。
②延时计算:以下图中节点2(100.64.0.1)的三次测试延时为例计算,可以得出结论是在tracert进程发出ICMP包为时间1,到节点2回复的ICMP包为时间2;时间2减时间1即为测试的延时。