Tracert是一种网络诊断工具,用于确地数据包从源主机到目标主机沿途经过的路由路径。其工作原理基于IP协议中的生存时间(Time-to-live,TTL)字段和ICMP(Internet Control Message Protocol)错误消息。下面是Tracert的工作过程:
1.初始化与发送:当在源主机上执行Tracert命令并制定一个目标地址时,Tracert首先会发送一个TTL值为1的UDP数据包(实际上,有些实现可能会使用ICMP Echo Request数据包)到目标地址。使用UDP数据包是因为它不需要响应,而我们关心的是沿途中路由器的行为。
2.TTL递增与路由器跟踪:当这个数据包到达网络中的第一个路由器时,路由器会减去数据包头部的TTL值。由于初始TTL为1,减去TTL变为0.这导致路由器丢弃该数据包,并根据ICMP协议向源端口发送一个“Time Exceeded”的错误信息。这个消息中包含了路由器的IP地址,这时Tracert能够记录下来的第一跳信息。
3.连续追踪:Tracert接下来会发送一个TTL值为2的数据包,这次它会通过第一跳路由器,并在第二跳路由器处因TTL到期而被丢弃,同样返回一个ICMP Time Exceeded消息。这个过程会持续进行,每次发送的TTL值加1,直到数据包到达目标地址或达到用户设定的跃点限制。
4.目标响应或达到最大TTL:如果数据包成功到达目标地址,目标要么响应(如果是UDP数据包,则目标通常没有监听该端口,因此会返回一个ICMP Port Unreachable错误),要么在之前的某个路由器就达到了用户设定的最大TTL值仍未到达目标,则追踪结束。
5.输出展示:Trac