跟踪路由如何工作?

跟踪路由如何工作?

Traceroute 是嵌入在大多数操作系统中的命令行工具,它是解锁这些路径的关键,可以深入了解数据包从源到目的地的复杂旅程。此工具不仅适用于网络管理员;对于任何想要诊断网络问题或只是对互联网内部运作感到好奇的人来说,它都是一项宝贵的资产。

什么是 Traceroute?

跟踪路由是一种网络诊断命令或工具,用于跟踪 Internet 协议 (IP) 数据包从源(您的计算机)到目的地(通常是网站或服务器)所经过的路径。它提供了数据包在网络中的详细路由图,显示了数据包在到达目的地之前经过的每个跃点或节点(如路由器和交换机)。此工具对于诊断网络问题、了解网络结构和优化网络性能非常有用。

Traceroute 的定义和目的

从本质上讲,Traceroute 旨在回答一个简单的问题:“我的数据从这里到那里要经过什么路径?”当您在浏览器中输入网站地址时,您的请求不会直接发送到托管该网站的服务器。相反,它会经过一系列路由器和网络,每一步都会使其更接近最终目的地。Traceroute 会绘制出这些步骤,提供每个跳跃的 IP 地址以及您的数据从一个点传输到下一个点所需的时间。

traceroute 的主要目的包括:

  • 网络故障排除: 通过显示数据包停止或减慢的位置,traceroute 有助于识别网络拥塞、配置错误或故障。
  • 性能分析: 跳跃之间的时间测量可以指示延迟发生的位置,有助于查明性能瓶颈。
  • 路径可视化: Traceroute 说明了数据通过互联网时通常采用的复杂路径,这对于理解网络如何互连很有用。

Traceroute 的演变:从 UNIX 到现代操作系统

traceroute 的起源可以追溯到 20 世纪 80 年代的 UNIX 操作系统,当时互联网还处于起步阶段。该工具最初旨在通过识别网络故障点来帮助网络管理员排除故障。

从那时起,traceroute 已经发展并适应了不同操作系统的各种形式,包括 Windows 的 tracert 和 Linux 和 macOS 等类 UNIX 系统的标准 traceroute 命令。

尽管互联网不断发展,网络诊断工具也越来越复杂,但路由跟踪仍然是一项基本实用工具。它经久不衰的重要性证明了我们了解数据传输路径的能力。随着网络变得越来越复杂,路由跟踪在诊断和解决连接问题方面的实用性也越来越强。

Traceroute 从 UNIX 实用程序发展为现代操作系统的标准工具,反映了网络诊断在我们日益互联的世界中日益增长的重要性。

Traceroute 为我们了解支撑我们数字生活的复杂连接网络提供了一个窗口,无论是用于故障排除、优化网络性能,还是满足对互联网内部运作的好奇心。

Traceroute 不仅仅是一个诊断工具,它还是连接用户和互联网看不见的路径的桥梁。它从一个简单的 UNIX 实用程序演变为现代操作系统的主要功能,凸显了它在导航促进我们数字世界的复杂网络方面的价值。

无论您是网络专业人士还是好奇的互联网用户,了解跟踪路由的基础知识都是揭开连接我们所有人的数字通路神秘面纱的一步。

Traceroute 的工作原理:技术概述

Traceroute 利用 IP 数据包头中的 TTL(生存时间)字段,该字段决定数据包在被丢弃之前可以进行多少次跳转。以下是 Traceroute 工作原理的分步说明:

  1. 引发: 该工具首先向目的地发送一系列 TTL 值为 1 的数据包。这意味着这些数据包在到达路径中的第一个路由器时就会“过期”。
  2. 啤酒花识别: 在收到数据包时,每个路由器都会将其 TTL 减 1。如果 TTL 达到 0,路由器将停止转发数据包,并向源发回 ICMP“超出时间”消息,显示路由器的 IP 地址。
  3. 增加 TTL: 然后,Traceroute 发送另一组数据包,这次的 TTL 为 2,因此它们会在过期之前到达第二个路由器。此过程重复进行,每次将 TTL 增加 1,直到数据包到达目的地或达到最大跳数限制。
  4. 记录响应时间: 对于发送的每组数据包,traceroute 都会记录往返时间 (RTT),即数据包从源到路由器再返回所需的时间。通常,每跳发送三个数据包以提供平均响应时间。

Traceroute 命令示例

在 Windows 系统上,您可以使用 tracert 命令如下:

tracert example.com

在 macOS 或 Linux 上,命令如下:

traceroute example.com

示例输出

traceroute 输出的简化示例 example.com 可能看起来像这样:

 1  router1.local (192.168.1.1)  1.123 ms  1.456 ms  1.789 ms
 2  isp-gateway.example.net (203.0.113.1)  2.345 ms  2.678 ms  2.901 ms
 3  isp-core-router.example.net (203.0.113.2)  3.567 ms  3.890 ms  4.123 ms
 4  internet-backbone1.example.com (198.51.100.1)  10.456 ms  11.789 ms  12.345 ms
 5  datacenter-edge.example.com (198.51.100.2)  20.678 ms  21.901 ms  22.345 ms
 6  example.com (93.184.216.34)  30.123 ms  31.456 ms  32.789 ms

在此输出中,每一行代表路径中的一跳 example.com。各列显示跳数、路由器的主机名和 IP 地址以及三个 RTT 测量值(以毫秒为单位)。最后一行表示数据包已到达目的地。

了解数据包的路径

数据包所采用的路径可能受到各种因素的影响,包括路由协议、网络拥塞和互联网基础设施的物理布局。Traceroute 提供特定时间点的此路径快照,该快照可能会随着网络调整路由以提高效率或规避问题而发生变化。

从本质上讲,traceroute 揭开了数据在互联网上复杂旅程的神秘面纱,提供了对网络结构和性能的洞察。无论是网络专业人员用来排除故障和优化,还是好奇的个人用来探索连接我们世界的数字路径,traceroute 仍然是网络工具包中必不可少的工具。

跟踪路由的重要性

Traceroute 是几乎所有操作系统中都内置的诊断工具,在理解这一点方面发挥着关键作用。它的重要性涵盖了网络管理和优化的多个方面,使其成为网络管理员、工程师甚至希望解决连接问题的最终用户不可或缺的工具。

Traceroute 在网络中的诊断用途

Traceroute 主要用于诊断网络问题。当无法访问网站或在线服务,或者互联网连接速度慢或断断续续时,Traceroute 可以帮助确定问题所在。通过绘制数据包到达目的地的路径,Traceroute 可以逐步说明延迟或丢失发生的位置。

例如,如果对某个网站的跟踪路由显示数据包到达中间网络但没有继续前进,则问题可能出在该网络内。这些信息对于网络管理员来说至关重要,他们可以直接与受影响网络的运营商合作或重新路由流量以绕过问题区域。

示例:诊断慢速连接

假设有这样一种情况,用户报告与云服务的连接速度很慢。网络管理员可能会运行以下 traceroute 命令:

traceroute cloudservice.com

输出可能显示数据包以合理的响应时间通过几个路由器,直到到达特定路由器,而该路由器的响应时间显著增加,表明网络该点可能存在瓶颈或问题。

性能分析

除了诊断问题之外,traceroute 还用于性能分析。通过检查每跳的往返时间 (RTT),管理员可以识别网络中的潜在瓶颈。这在数据在到达目的地之前要经过多个路由器和网络的复杂网络中尤其有用。

Traceroute 能够测量路径每段的延迟,从而帮助用户深入了解网络性能。它有助于区分用户本地网络相关的问题和外部问题,例如互联网主干网拥塞或服务提供商网络内部的问题。

示例:优化网络性能

组织可以使用跟踪路由来优化其与关键服务的网络连接的性能。通过定期监控跟踪路由输出,他们可以确定网络延迟趋势并与 ISP 合作优化路由,甚至决定更换提供商以获得更好的连接。

路径可视化

Traceroute 以可视化方式呈现数据在网络中的路径。这种可视化不仅仅是一种技术输出,更是数字旅程的地图,它提供了对互联网结构以及不同网络如何互连的洞察。

traceroute 的这个功能在教育环境中尤其具有启发性,学习网络知识的学生可以看到路由协议的实际应用和互联网的真实结构。它揭开了互联网作为“云”的抽象概念的神秘面纱,并将其替换为有形的连接图。

例如:教育用途

在课堂环境中,教师可能会使用跟踪路由来展示数据如何从学校网络传输到国际网站。此演示可以揭示所涉及的跳数、互联网连接的国际性质以及数据如何穿越多个服务提供商到达目的地。

如何执行跟踪路由

了解数据在互联网上传输的路径对于诊断网络问题、优化性能和深入了解互联网结构至关重要。Traceroute 是一款功能强大的工具,它通过映射数据包从源到目的地的旅程来提供这种理解。在这里,我们深入研究如何在不同的操作系统上执行 traceroute,并提供包含演示和示例的综合指南。

准备使用 Traceroute:系统要求

在深入了解执行跟踪路由的具体细节之前,必须确保您的系统已准备就绪。好消息是,在大多数操作系统上,跟踪路由不需要安装任何特殊软件 - 它是内置的。但是,您应该具有:

  • 稳定的互联网连接: 为了准确追踪到目的地的路线,您的设备必须连接到互联网。
  • 终端或命令提示符访问: Traceroute 命令在 macOS 和 Linux 上的终端或 Windows 上的命令提示符中执行。
  • 管理权限或根权限(可选): 虽然并非总是必要的,但一些 traceroute 命令或选项可能需要更高的权限,尤其是在类 UNIX 系统上。

在 Windows 上执行跟踪路由的分步指南

Windows 用户可以利用 tracert 命令执行跟踪路由。操作方法如下:

  1. 打开命令提示符:
  • 在 Windows 10/11 上,输入 cmd 在开始菜单搜索栏中,然后按 Enter。
  • 对于旧版本,您可能需要通过“开始”菜单中的“附件”文件夹访问命令提示符。
  1. 运行 Traceroute 命令:
  • 在命令提示符窗口中,键入命令 tracert <destination>,替换 <destination> 替换为您想要跟踪的域名或 IP 地址。例如:
    cmd tracert example.com
  • 按 Enter 执行命令。
  1. 分析输出:
  • 命令提示符将实时显示跟踪路由的进度,显示每个跳跃以及数据包来回传输所需的时间。

Windows 上的示例输出:

Tracing route to example.com [93.184.216.34]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  router.local [192.168.1.1]
  2    10 ms     9 ms    11 ms  isp-gateway.example.net [203.0.113.1]
  3    15 ms    14 ms    16 ms  isp-core-router.example.net [203.0.113.2]
  ...

在类 UNIX 系统 (macOS、Linux) 上执行跟踪路由

在 macOS 和 Linux 上,该过程类似,但使用 traceroute 命令。

  1. 打开终端:
  • 在 macOS 上,在应用程序 > 实用程序中找到终端。
  • 在 Linux 上,终端通常可以在应用程序菜单中找到,但具体位置可能因发行版而异。
  1. 运行 Traceroute 命令:
  • 类型 traceroute <destination> 在终端中,替换 <destination> 替换为目标域名或 IP 地址。例如:
    bash traceroute example.com
  • 按 Enter 键开始跟踪路由。
  1. 查看结果:
  • 终端将显示每个跳跃,类似于 Windows,但可能包含附加信息或使用略有不同的格式。

UNIX 类系统上的示例输出:

traceroute to example.com (93.184.216.34), 64 hops max, 52 byte packets
 1  router.local (192.168.1.1)  1.206 ms  0.911 ms  0.892 ms
 2  isp-gateway.example.net (203.0.113.1)  10.183 ms  9.872 ms  10.123 ms
 3  isp-core-router.example.net (203.0.113.2)  14.673 ms  15.062 ms  14.892 ms
 ...

解释跟踪路由结果

无论使用哪种操作系统,解释跟踪路由结果都遵循相同的原则。每行代表从您的计算机到目的地的旅程中的一个跳跃。列显示:

  • 跳數: 指示路由器在路径中的位置的序列号。
  • IP 地址/主机名: 此跳的路由器的地址或名称。
  • 往返时间 (RTT): 数据包往返所需的时间,通常以毫秒为单位。每跳尝试三次,以提供平均响应时间。

了解这些结果有助于确定延迟或数据包丢失发生的位置,为解决网络问题或优化性能提供有价值的见解。

高级跟踪路由技术

虽然基本 traceroute 命令可以提供有关数据包通过网络的路径的宝贵见解,但高级 traceroute 技术可以提供更深入的分析和更详细的信息,并帮助克服标准 traceroute 命令的某些限制。这些技术涉及使用 traceroute 命令的附加选项和标志、使用替代工具以及了解如何解释复杂的 traceroute 输出。

调整跟踪路由设置以进行详细分析

高级用户可以修改 traceroute 命令的行为以满足特定的诊断需求或绕过可能阻止标准 traceroute 成功完成的网络限制。以下是一些最常用的选项和标志:

指定数据包类型

默认情况下,traceroute 在类 UNIX 系统上使用 ICMP 回显请求,在 Windows 上使用 UDP 数据包。但是,您可以指定要使用的数据包类型,如果默认数据包被防火墙过滤或阻止,这将很有帮助。

  • 在类 UNIX 系统 (Linux/macOS) 上: 使用 -I 选项发送 ICMP 数据包,这些数据包被阻止的可能性较小。例如:
  traceroute -I example.com
  • 在 Windows 上:tracert 该命令本身使用ICMP,因此不需要修改数据包类型。

更改端口号

在类 UNIX 系统中,traceroute 默认将 UDP 数据包发送到高权限的非特权端口。更改目标端口有助于避免对某些端口进行过滤或速率限制:

traceroute -p 80 example.com

此命令将目标端口设置为 80(HTTP),这可能为优先处理 Web 流量的防火墙提供更清晰的路径。

调整每跳查询数

为了更准确地测量延迟和数据包丢失,您可以增加发送到每一跳的查询数量:

traceroute -q 5 example.com

此命令每跳发送五个查询而不是默认的三个,从而为分析网络性能提供了更强大的数据集。

在各种操作系统上进行跟踪路由:Windows、Mac、Linux

不同的操作系统以略有不同的方式实现跟踪路由,这可能会影响该工具的行为和输出。例如,虽然 Windows 默认使用 ICMP,但 Linux 和 macOS 通常使用 UDP 数据包,这可能会导致路径上的路由器响应方式出现差异。在解释跟踪路由结果或跨不同网络环境进行故障排除时,了解这些差异至关重要。

每个操作系统都为 traceroute 提供了独特的标志和选项,允许用户自定义他们的诊断方法:

Windows(tracert)

  • 最大跳数: 使用 -h 指定最大跳数的选项(默认为 30):
  tracert -h 40 example.com
  • 指定超时:-w 选项设置每次回复的超时时间(以毫秒为单位):
  tracert -w 5000 example.com

macOS/Linux(跟踪路由)

  • 设置第一个和最后一个 TTL:-f-m 选项,您可以分别设置第一个和最大 TTL 值,从而允许您从中点开始跟踪或限制其范围:
  traceroute -f 5 -m 15 example.com
  • 使用 TCP SYN 进行跟踪:-T 选项(在某些类 UNIX 系统上可用)使用 TCP SYN 数据包而不是 UDP 或 ICMP,这对于通过阻止 ICMP 的网络进行跟踪很有用:
  traceroute -T -p 80 example.com

排除常见的 Traceroute 问题

Traceroute 是诊断网络连接问题必不可少的工具,但解读其输出有时可能很困难。Traceroute 期间可能会出现各种问题,每个问题都表明网络内存在不同的可能问题。了解如何解决这些常见问题对于网络管理员和任何参与维护网络健康的人来说都至关重要。

处理不完整或不准确的跟踪路由结果

导致结果不完整或不准确的原因有很多,包括防火墙阻止、数据包过滤或网络拥塞。以下是解决这些问题的方法:

防火墙和数据包过滤

防火墙或数据包过滤器配置为丢弃 ICMP 数据包或特定 UDP/TCP 端口,这会导致 traceroute 输出中出现“* * *”(星号),表示未收到来自某个跳点的响应。这会使网络看起来好像在某个点之后无法访问,但实际上并非如此。

解决方案: 尝试更改 traceroute 使用的数据包类型或端口。例如,如果您使用的是类 UNIX 系统,并且怀疑 ICMP 数据包被过滤,请使用 -T 选项并指定一个通常开放的端口,如 80 (HTTP) 或 443 (HTTPS):

traceroute -T -p 443 example.com

网络拥塞

跟踪路由结果中反映的高延迟或数据包丢失有时可以归因于网络拥塞,而不是网络本身的故障。

解决方案: 随着时间的推移执行多次跟踪路由,以查看问题是否仍然存在。延迟或数据包丢失的暂时高峰可能只是由于短暂的网络拥塞造成的。MTR(My Traceroute)等工具在这里特别有用,因为它们将跟踪路由的功能与连续 ping 相结合,以提供更动态的网络路径视图。

了解并解决 Traceroute 输出中的常见错误

某些错误经常出现在 traceroute 输出中,每个错误都指向不同类型的网络问题。以下是一些常见问题及其解释方法:

“!H”、“!N” 和 “!P” 错误

这些错误表明无法到达目的地:

  • !H – 主机不可访问
  • – 网络不可达
  • !P – 协议不可访问

解决方案: 这些错误表明存在路由问题或防火墙阻止了数据包。请检查路由表中是否存在错误条目,并确保没有防火墙规则无意中阻止往返于目的地的流量。

超时

一系列星号(* * *)没有后续跳转,表示超时,其中跟踪路由无法从跳转收到回复。

解决方案: 在某些情况下,超时是正常的,因为某些路由器配置为不响应 ICMP 或 UDP 请求。但是,如果在跟踪路由的早期就出现超时,或者在多个跳数中持续出现超时,则可能表示存在更严重的连接问题。请验证网络配置,如果问题仍然存在,请联系 ISP 或中间网络的管理员寻求帮助。

超时及其对 Traceroute 结果的影响

跟踪路由结果中的超时并不总是表示存在问题。但是,如果多个跟踪路由中同一跳点出现一致的超时,或者导致跟踪路由无法完成的超时,则需要进一步调查。

分析持续超时

如果在特定跳转处持续出现超时,但后续跳转可到达,则很可能是该跳转处的路由器配置为忽略跟踪路由请求。如果超时导致跟踪路由无法到达目的地,则可能表示网络阻塞或路由器已关闭。

解决方案: 对于持续超时,尤其是阻止跟踪路由完成的超时,请尝试使用其他跟踪路由选项,例如更改数据包类型或端口(如前所述)。如果无法在内部解决问题,可能需要联系网络提供商或有问题的跳转的管理员。

读取和解释跟踪路由结果

Traceroute 是一款功能强大的诊断工具,可绘制数据包从源到目标在网络中的旅程。虽然执行 Traceroute 相对简单,但解释其结果可能很复杂,尤其是当输出包含意外延迟、超时或错误时。了解如何读取和解释这些结果对于诊断网络问题、优化性能和深入了解网络结构至关重要。

理解 Traceroute 输出的每一行

典型的 traceroute 输出会显示数据包在到达目的地途中经过的跃点(路由器或交换机)列表。每行对应一个跃点,并提供有关数据包所采用路径的具体信息。以下是每行所显示信息的细分:

  • 跳數: 输出中的第一列表示跳数的序列号。它从 1 开始,数据包经过的每个路由器的序列号加一。
  • IP 地址/主机名: 此部分显示当前跳数的路由器 IP 地址。有时,如果反向 DNS 查找成功,则会显示路由器的主机名,而不是 IP 地址,或者与 IP 地址一起显示。
  • 往返时间 (RTT): 通常,三个 RTT 值以毫秒 (ms) 为单位显示,表示数据包从源传输到跳转并返回所需的时间。这些值可能会因网络拥塞、路由更改或路由器上的负载而变化。

跟踪路由输出示例:

 1  router.local (192.168.1.1)  1.206 ms  0.911 ms  0.892 ms
 2  isp-gateway.example.net (203.0.113.1)  10.183 ms  9.872 ms  10.123 ms
 3  isp-core-router.example.net (203.0.113.2)  14.673 ms  15.062 ms  14.892 ms
 ...

路由跟踪结果中的常见模式及其含义

Traceroute 输出可以揭示各种模式,每种模式都指示网络性能或配置的不同方面:

到达目的地时延迟增加

随着数据包越来越接近目的地,RTT 值逐渐增加是正常现象,这反映了距离和跳数的增加。但是,特定跳数的延迟突然增加可能表示该跳数或其与下一跳数的连接出现拥塞或问题。

起始跳数延迟较高

前几跳的延迟值较高,尤其是在本地网络或 ISP 内,表明源头附近存在问题。这可能是由于本地网络拥塞、配置错误或 ISP 与更广泛互联网的连接问题造成的。

开始跳跃时的超时

跟踪路由开始时偶尔出现超时(以星号表示)不一定表示存在问题,因为某些路由器出于安全或性能原因配置为不响应 ICMP 请求。但是,如果持续出现超时而无法显示进一步的跳数,则需要进行调查。

报告结束时的超时

跟踪路由结束时的超时(尤其是当前面的跳数显示正常延迟的情况下)可能表示目标服务器或其直接网络正在阻止 ICMP 请求或由于网络问题而无法访问。

在不同操作系统上运行 Traceroute 的详细指南

虽然解释 traceroute 结果的基本原理在不同的操作系统中是相同的,但可用的具体命令和选项可能会有所不同。下面简要回顾一下如何在不同的平台上执行 traceroute:

视窗:

使用 tracert 命令提示符中的命令:

tracert example.com

macOS 和 Linux:

使用 traceroute 命令。在 macOS 上,您可能需要使用 Homebrew 安装 traceroute(brew install traceroute)如果默认情况下不可用:

traceroute example.com

对于这两个平台,请考虑使用以下选项 -I 使用 ICMP 数据包或 -T 使用 TCP SYN 数据包进行跟踪路由,特别是在默认 UDP 数据包被过滤或阻止的情况下。

将 Traceroute 与其他诊断工具集成

虽然 traceroute 是一款功能强大的工具,可以映射数据包通过网络的路径,但将其与其他诊断工具集成可以更全面地了解网络健康状况、性能和问题。这种整体网络诊断方法可以帮助更有效地识别、诊断和解决复杂的网络问题。

Ping 在网络诊断中的作用

Ping 是测试网络连接和性能的最简单但最有效的工具之一。它的工作原理是向目标主机发送 ICMP 回显请求数据包并监听回显回复数据包。测量这些数据包的往返时间 (RTT) 以评估源和目标之间的延迟。Ping 还提供数据包丢失信息,让您深入了解网络可靠性。

如何在不同的操作系统上执行 Ping 测试

  • 视窗: 打开命令提示符并使用 ping 命令:
  ping example.com
  • macOS/Linux: 打开终端并使用相同的 ping 命令:
  ping example.com

解释 Ping 测试结果

Ping 测试结果包括几个关键指标:

  • RTT 值: 指示网络延迟。较高的 RTT 值可能表示网络拥塞或距离较远。
  • 数据包丢失: 数据包丢失以百分比表示,表示连接的可靠性。高数据包丢失率可能导致网络不稳定和性能问题。

将 ping 结果与跟踪路由数据相结合,可以帮助查明路径中延迟或数据包丢失开始发生的位置,为故障排除提供有价值的线索。

结合 Traceroute 和 Ping 进行全面的网络分析

traceroute 显示路径并识别每个跳数,而 ping 则直接测试目标的连接性和性能。通过结合使用这些工具,您可以更清楚地了解网络路径和端到端性能。

使用MTR进行连续分析

MTR(My Traceroute)是一款功能强大的网络诊断工具,它将 traceroute 和 ping 的功能整合到一个界面中。它会持续向目标发送数据包,并更新路径上每一跳的实时统计数据。这种持续分析可以揭示 traceroute 或 ping 提供的单个快照中可能无法发现的间歇性问题。

运行MTR

  • Linux: MTR 可能已预装,或者可以通过发行版的包管理器安装。要运行 MTR,只需输入:
  mtr example.com
  • 苹果系统: 可以使用 Homebrew 安装 MTR:
  brew install mtr
  mtr example.com
  • 视窗: 虽然 MTR 在 Windows 上不是原生可用的,但可以使用第三方版本或类似工具。

解释 MTR 结果

MTR 显示到达目的地的每跳动态输出,包括平均、最佳和最差 RTT 以及数据包丢失。这些数据不仅有助于识别路径,还有助于识别路由每段随时间变化的性能指标。

使用 PathPing 进行高级诊断

PathPing 是 Windows 上另一个结合了 ping 和 traceroute 元素的工具。它会在一段时间内向每个跳点发送多个数据包,从而提供每个点网络性能的详细视图。

跑步路径Ping

在命令提示符中输入:

pathping example.com

分析 PathPing 输出

PathPing 首先显示路由(类似 traceroute),然后跟进每跳的 ping 统计信息。这可能需要几分钟,但可以全面了解数据包可能延迟或丢失的位置。

Traceroute 替代方案和增强功能

虽然 traceroute 是网络诊断的基本工具,但一些替代方案和增强功能提供了附加功能、更高的准确性或不同的方法来跟踪数据包通过网络的路径。这些工具可以更深入地了解网络性能、拓扑和问题,使其成为网络诊断工具包的宝贵补充。

超越基本 Traceroute:MTR、Tracepath 和 Paris Traceroute 等工具

MTR(我的跟踪路线)

MTR 结合了 traceroute 和 ping 的功能,提供源和目标之间路由的动态实时视图。它不断向路径中的每一跳发送数据包,提供有关每个点的延迟和数据包丢失的最新统计数据。

特征:

  • 实时更新
  • 结合 ping 和 traceroute 功能
  • 显示每一跳的数据包丢失和延迟

Linux 上的使用示例:

mtr example.com

解释MTR输出:
MTR 的输出包括跳数、IP 地址、数据包丢失百分比以及每跳的平均延迟。持续更新有助于识别在单次跟踪路由或 ping 测试中可能无法发现的间歇性网络问题。

追踪路径

Tracepath 与 traceroute 类似,但不需要 root 权限即可运行。它在用户无权使用 ICMP 数据包执行 traceroute 的系统上特别有用。

特征:

  • 无需 root 权限
  • 自动调整数据包大小
  • 识别路径上的 MTU(最大传输单元)

Linux 上的使用示例:

tracepath example.com

解释 Tracepath 输出:
Tracepath 提供的输出比 traceroute 更简单,重点关注路径和 MTU。它对于识别可能导致数据包碎片或丢失的 MTU 问题特别有用。

巴黎跟踪路线

Paris Traceroute 是 traceroute 的增强版本,旨在解决由负载平衡路径引起的不准确性。传统的 traceroute 可以从多条路径接收响应,从而导致混乱或误导性的输出。Paris Traceroute 可确保所有数据包都遵循相同的路径,从而提供更准确的路由表示。

特征:

  • 处理负载平衡网络
  • 确保数据包遵循相同的路径
  • 提供更清晰的网络路径视图

用法示例:
Paris Traceroute 可能需要单独安装,其使用方法可能因安装而异。请查看特定于您版本的文档以获取详细的使用说明。

解释巴黎跟踪路由的输出:
输出类似于传统的跟踪路由,但避免了负载平衡路径中出现的不一致性,提供了数据包所采用的路由的更清晰的图像。

IPv6 Traceroute:在现代网络中跟踪路由

随着互联网逐渐转向 IPv6,了解如何在 IPv6 网络中执行跟踪路由变得越来越重要。大多数跟踪路由工具都支持具有特定标志或版本的 IPv6。

Linux 上针对 IPv6 的 Traceroute 使用示例:

traceroute -6 example.com

解释 IPv6 Traceroute 输出:
输出格式类似于 IPv4 跟踪路由,显示每个跳的 IPv6 地址以及延迟测量值。了解 IPv6 路由对于诊断使用 IPv6 的现代网络中的连接问题至关重要。

在线路由跟踪测试和用于路由跟踪分析的移动应用程序

一些在线工具和移动应用程序提供跟踪路由功能,无需命令行工具。这些对于快速检查或不熟悉命令行界面的用户特别有用。

在线工具:

  • 类似网站 ping.euwhatismyip.com 提供可通过网络浏览器使用的在线跟踪路由工具。

移动应用程序:

  • Fing 等应用程序(适用于 iOS 和 Android)提供跟踪路由和其他网络诊断功能。

好处:

  • 用户友好界面
  • 无需命令行知识
  • 可从任何地方访问

其他资源

对于那些希望加深对跟踪路由和网络诊断的理解的人来说,有大量的资源可供使用。以下是一些建议,可帮助您进一步提高知识和技能:

书籍和出版物

  • 《TCP/IP 图解,第 1 卷:协议》(作者:W. Richard Stevens): 本书深入介绍了 TCP/IP 协议,包括 traceroute 等工具的基本原理。
  • Joseph D. Sloan 撰写的“网络故障排除工具”: 各种网络故障排除工具(包括 traceroute)的综合指南以及如何有效地使用它们。

在线课程和教程

  • 思科网络学院(NetAcad): 提供网络基础课程,包括网络故障排除和诊断模块。
  • Coursera 和 Udemy: 两个平台均提供网络管理和故障排除课程,涵盖跟踪路由和相关工具的使用。

网站和在线工具

  • RIPE 网络协调中心 (RIPE NCC) 工具: 提供一套用于网络分析的在线工具,包括来自世界各地的跟踪路由。
  • CAIDA 工具: 应用互联网数据分析中心 (CAIDA) 提供网络测量和分析工具和资源,包括基于跟踪路由的工具。

论坛和社区

  • Stack Exchange 网络工程: 网络专业人士的问答社区,您可以在此提出问题并分享有关跟踪路由和网络诊断的知识。
  • Reddit r/networking: 一个致力于交流的 subreddit,爱好者和专业人士可以在其中讨论工具、技术和故障排除技术。

软件和应用程序

  • Wireshark: 虽然 Wireshark 不是一个跟踪路由工具,但它是一个功能强大的网络协议分析器,它可以通过提供对网络流量的详细了解来补充跟踪路由诊断。
  • GNS3: 提供网络模拟器,可用于模拟复杂网络并在受控环境中使用跟踪路由和其他诊断工具进行练习。

对 traceroute 及其各个方面的探索表明,它在任何负责管理或排除网络故障的工具包中都具有不可或缺的价值。随着数字网络的复杂性和规模不断演变,诊断和优化网络性能的技能变得越来越重要。通过利用所讨论的资源和工具,个人可以增强自己的能力,确保网络为所有用户顺利高效地运行。