Ping 用于测试两台主机之间的连通性,但是不提供关于主机之间设备的详细信息。 Traceroute (tracert) 实用程序可以生成沿着路径成功到达的跳数列表。 此列表可以提供重要的验证和故障排除信息。 如果数据到达目的,则 Trace 就会列出主机之间路径中每台路由器上的接口。 如果数据在沿途的某一跳上失败,则回应 Trace 的最后一个路由器的地址可以提供指示,说明发现问题或有安全限制的地方。

往返时间 (RTT)

Traceroute 可提供沿路径每一跳的往返时间并指示是否有某一跳未响应。 往返时间是数据包到达远程主机以及从该主机返回响应所花费的时间。 星号 (*) 用于表示丢失的或无应答的数据包。

此信息可用于确定路径中存在问题的路由器。 如果显示器显示特定的某一跳响应时间长或数据丢失,这表示该路由器的资源或其连接可能压力过大。

IPv4 生存时间 (TTL) 和 IPv6 跳数限制

Traceroute 使用第 3 层报头中的 IPv4 TTL 字段功能和 IPv6 跳数限制字段功能以及 ICMP 超时消息。

播放图中的动画,观看 Traceroute 如何利用 TTL 功能。

从 traceroute 发送的第一个消息系列的 TTL 字段值为 1。 这会导致此 TTL 使 IPv4 数据包在第一台路由器处超时。 然后,此路由器用 ICMPv4 消息做出响应。 现在,Traceroute 知道了第一跳的地址。

随后,Traceroute 逐渐增加每个消息系列的 TTL 字段值(2、3、4...)。 这可为 Trace 提供数据包在该路径沿途再次超时所经过的每一跳的地址。 TTL 字段的值将不断增加,直至到达目的主机或增至预定义的最大值。

到达最终目的主机后,该主机将不再以 ICMP 超时消息做出应答,而会以 ICMP 端口无法到达消息或 ICMP 回应应答消息做出应答。