什么是 Traceroute?

介绍

Traceroute 是一种全面的网络诊断工具,可帮助用户了解数据包在 IP 网络中从源头到目的地的路径。 它能提供有关网络性能、路由问题和潜在故障点的宝贵见解。
本文将探讨 traceroute、其工作原理、在网络管理中的重要性以及有效使用的最佳实践。

什么是 Traceroute?

Traceroute 是一种网络诊断工具,可跟踪数据包从源计算机到目标主机的路径。
它可以显示路径上的每一跳,包括每一跳所需的时间,从而帮助识别网络瓶颈和路由问题。
Traceroute 的功能是发送一系列实时时间(TTL)值逐渐增加的数据包,并记录路径上每个路由器的响应时间。

跟踪路由如何工作

  • 启动跟踪路由:运行 traceroute 命令时,它会首先发送一个 TTL 值为
    1.该数据包到达第一个路由器(第一跳)后,路由器会将 TTL 值减 1,使 TTL 值为 0。
    然后,路由器会丢弃数据包,并发送 “超时 “ICMP 消息回源。
  • 递增 TTL:Traceroute 以 2 的 TTL 发送下一个数据包,该数据包到达第二个路由器后被丢弃。
    然后继续这个过程,每个后续数据包的 TTL 值都递增 1。
  • 记录路由和时间:对于每个回复 “超时 “信息的路由器,traceroute 都会记录路由器的 IP 地址和往返时间 (RTT)。
    这个过程一直持续到数据包到达目标主机或达到最大 TTL 值。
  • 最终目的地:一旦数据包到达最终目的地,它就会发回一条 ICMP “回音回复 “信息,表明目的地已到达。

使用跟踪路由命令

许多操作系统都有 traceroute 命令,可以直接从命令行界面执行。
下面介绍如何使用它:

Windows/Unix/Mac 命令提示符:

traceroute example.com

运行 traceroute 命令时,会看到类似下面的输出:

traceroute 至 example.com (93.184.216.34),最大 30 跳,60 字节数据包

1 192.168.1.1 (192.168.1.1) 2.123 ms 1.953 ms 2.054 ms

2 10.10.10.1 (10.10.10.1) 5.234 ms 4.567 ms 4.789 ms

3 172.16.0.1 (172.16.0.1) 12.345 ms 11.987 ms 12.456 ms

4 93.184.216.34 (93.184.216.34) 24.678 ms 23.789 ms 24.123 ms

解释跟踪路由结果

  • 跳数:traceroute 输出中的每一行代表一个跳数,即数据包从一个网络设备(通常是路由器)传递到另一个网络设备的点。
  • IP 地址:显示每个跳转点的 IP 地址,显示数据包通过网络的路径。
  • 主机名:除 IP 地址外,traceroute 还可显示与每个 IP 地址相关的主机名,从而提供有关每个网络设备的更多信息。
  • 往返时间 (RTT):数据包传输到每一跳再返回源所需的时间,单位为毫秒(ms)。
    显示每个跳的多个 RTT 测量值,以提供平均值。
  • 星号 (*):如果看到的是星号而不是 RTT 值,则表示跳转点在超时时间内没有响应。
    这可能表示数据包丢失、过滤或防火墙限制。

ICMP 数据包和跟踪路由

Traceroute 主要使用 ICMP 数据包来跟踪数据包在网络中的路径。
每个 ICMP 数据包都包含一个报头和一个有效载荷。
报头包括 ICMP 报文类型、代码、校验和及标识符等信息。
有效载荷包含跟踪路由工具用来识别和跟踪数据包的附加数据。

网络管理中跟踪路由的重要性

  • 识别网络瓶颈:Traceroute 可帮助识别路径上运行缓慢或无响应的路由器,这可能表明网络拥塞或硬件问题。
  • 诊断路由问题:通过显示数据包的路径,traceroute 可以发现可能导致网络问题的次优路由或不正确配置。
  • 监控网络性能:定期使用 traceroute 可以帮助网络管理员监控网络性能和健康状况,确保数据高效流动。
  • 排除连接问题:当用户报告连接问题时,traceroute 可以帮助确定问题发生在本地网络、ISP 或目的地。
  • 分析延迟:通过测量到每一跳的 RTT,traceroute 可以深入了解路径上出现延迟的位置,从而帮助识别和解决性能问题。

常见问题和解决方案

  • 高 RTT 值:某一跳上的 RTT 值持续偏高可能表明网络拥塞或路由器出现故障。
    调查受影响的跳数,必要时考虑重新路由流量。
  • 数据包丢失:跟踪路由输出中的星号表示数据包丢失。
    这可能是由于网络拥塞、过滤或硬件故障造成的。
    调查数据包丢失的原因并采取纠正措施。
  • 超时:如果 traceroute 在到达目的地前超时,可能是由于防火墙或安全策略阻止了 ICMP 流量。
    验证网络配置,确保允许 ICMP 流量。
  • 无法到达的目的地:如果跟踪路由结果显示无法到达目的地,请检查是否存在路由问题、不正确的 IP 地址或可能阻止流量的防火墙设置。

使用跟踪路由的最佳实践

  • 定期监控:定期使用 traceroute 监控网络性能,以便在潜在问题影响用户之前排除故障。
  • 比较结果:从不同地点和时间运行 traceroute,全面查看网络性能并找出间歇性问题。
  • 记录结果:保留跟踪路由结果的记录,以跟踪所记录的网络性能指标随时间的变化,并确定重复出现的问题。
  • 与其他工具结合使用:将 traceroute 与其他网络诊断工具(如 ping 和网络分析仪)结合使用,可全面了解网络健康状况。

高级跟踪路由选项

Traceroute 提供各种选项,可以提供更详细的信息,或根据特定需求定制命令:

ICMP 追踪路由:使用 -I 选项(在 Linux 上)使用 ICMP Echo Request 数据包而不是 UDP 数据包。

traceroute -I example.com

TCP 追踪路由:使用 -T 选项(Linux 上)使用 TCP 数据包,这对追踪特定端口的路径非常有用。

traceroute -T example.com

最大跳数:使用 -m 选项指定跟踪的最大跳数。

traceroute -m 20 example.com

超时:使用 -w 选项设置每个探测器的超时时间。

traceroute -w 2 example.com

IPv6 和跟踪路由

Traceroute 还支持 IPv6,允许网络管理员诊断 IPv6 网络中的路由问题。
IPv6 traceroute 命令通常包含一个指定 IPv6 的选项,如 Linux 上的 traceroute6。

traceroute6 example.com

Tracepath:Traceroute 的替代方案

Tracepath 是另一种网络诊断工具,类似于 Linux 系统上的 traceroute。
它的工作原理是追踪数据包到达目的地的路径,但不需要超级用户权限。
Tracepath 可自动确定最大 TTL 值,并可用于 IPv4 和 IPv6。

节点和跟踪路由

在 traceroute 中,节点指的是在数据包从源头到目的地的过程中处理数据包的路由器或网络设备。
每个节点都代表跟踪路由输出中的一个跳转点,可帮助用户深入了解网络的结构和性能。

跟踪路由的功能

Traceroute 的主要功能是映射数据包通过网络的路线,突出显示每个中间节点(路由器)并测量到每个节点的延迟。
这些信息有助于网络管理员了解可能出现延迟或问题的位置,从而更快地诊断和解决网络问题。

互联网控制消息协议(ICMP)

Traceroute 可以使用互联网控制报文协议(ICMP)来执行诊断功能。
ICMP 对于发送错误信息和操作信息至关重要,可显示网络服务是否可用或路由器是否可连接。
通过利用 ICMP,traceroute 可以提供有关网络数据包路径和性能的详细信息。

结论

Traceroute 已成为网络管理员和 IT 专业人员的必备工具。
它能提供有关网络数据包路径和性能的重要信息。
通过了解 traceroute 如何工作以及如何解释其结果,您可以有效地诊断和解决网络问题,确保最佳性能和可靠性。
定期使用 traceroute,并结合最佳实践和高级选项,有助于维护健康高效的网络基础设施。

准备好了解为什么您需要开发和使用我们对 traceroute 的关键增强功能,使您能够直观地映射网络中的数据包路径了吗?
立即注册免费试用或预约演示,了解它的实际应用!