traceroute/MTR 是否会导致从源方向和目标方向的总体延迟相同,反之亦然?

traceroute/MTR 是否会导致从源方向和目标方向的总体延迟相同,反之亦然?

我非常确信从 A 到 B 和从 B 到 A 的 traceroute/MTR 在最后一跳将具有相同的总体延迟,因为回复将从相反方向返回,这意味着如果我从 A 到 B,icmp 将从 A 到 B 并从 B 返回到 A(通过当前 traceroute 中未反映的不同路径),因此延迟将与如果我从 B 到 A 相同,其中 icmp 将从 B 到 A 并通过上一个 traceroute 中的路径从 A 返回到 B。这应该导致两个 icp 都经过相同的完整路径,因此应该具有相同的延迟。

然而,我的同事坚持认为看到的延迟仅针对显示的路径。现在我只想确保在排除故障时没有使用错误的概念。

谢谢。

答案1

在互联网上,没有任何保证说 A→B 会和 B→A 走相同的路径;同样也没有保证说从 A 发送到 B 的两个连续数据包会走相同的路径。

换句话说,两个数据包 A→B 可能会发生以下情况:

Packet 1: A→x→y→z→B
Packet 2: A→x→z→B

类似地,返回数据包(B→A)不需要遵循相同的路径,它们可以是完全不同的路径;并且它们也不必每次都遵循相同的路径。

在封闭的网络上(即你维护的网络),你可以以确定性(可预测)的方式指定路由,以便力量路径相同,但只有当您控制 A 和 B 之间的所有中间路由器时才如此。

答案2

虽然另一个答案中的非对称路由参数有效,但它不适用于 ping/mtr/traceroute 情况。

数据包从 A 传输到 B 所需的时间通常与数据包从 B 传输到 A 所需的时间不同。但您几乎从来不会单独看到这些时间。

ping,,traceroute——mtr所有这些工具都衡量全面的延迟整个往返,即数据包从 A 到 B 的传输时间与答复从 B 到 A 的传输时间之和。他们发送数据包并等待答复,然后从看到答复的时间戳中减去发送数据包的时间戳。

如果您从 A 向 B 发送 PING,则 PING REPLY 必须从 B 传输到 A。如果您从 B 向 A 发送 PING,则 PING REPLY 必须从 A 传输到 B。从 A 向 B 发送 PING 或 PING REPLY 时地址相同,因此路由相同,反方向也是如此。在这两种情况下,我们都有一个从 A 到 B 的数据包和一个从 B 到 A 的数据包,我们测量它们的传输时间总和。如果我们从另一个方向 ping,唯一改变的是加数的顺序,这并不重要。

造成这种差异的唯一有效原因可能是中间系统对 PING 和 PING REPLY 的处理方式不同,例如对它们施加不同的路由延迟。这是非常不寻常的,我也不指望会这样。没有一个头脑正常的人会沿着某条路径将 PING 从 A 路由到 B,而沿着另一条路径将 PING REPLY 从 A 路由到 B。在配置中设置这样的细节是没有意义的。

ICMP 具有精确测量单程延迟的功能,即 TIMESTAMP 和 TIMESTAMP REPLY 数据包。它使用与 NTP 同步时钟类似的机制。然而,我提到的工具从不使用它们,通常也没有人回答它们。

此外,所有工具都会显示延迟的重要部分分配:平均值、最小值、最大值和标准偏差。虽然连续数据包延迟可能有很大差异,但分布是相同的。

因此,虽然您的同事可能在“向”的单向延迟与“向后”的延迟不同这一点上是正确的,但他们对您在工具报告中看到的内容的解释是错误的。这些报告应该是相同的分布

相关内容