如何诊断 Linux 主机的长非对称 ping 时间?

如何诊断 Linux 主机的长非对称 ping 时间?

我有两台计算机,都运行 Linux Mint Petra(一台 32 位,一台 64 位)。分别称为 A 和 B。它们位于无线网络中。

RTT 奇怪地不对称:

脱落酸

user@A $ ping B
~~ 5ms, consistent times ~~

巴西航空联合会

user@B $ ping A
~~ 100-2000ms, wildly inconsistent times ~~

我不知道该如何解决。显然,两个网络接口都涉及 ABA 或 BAB,所以我不怀疑驱动程序问题,但你永远不知道。是否有一些可能相关的配置可以让我查找?问题更可能出在 A 端还是 B 端?

答案1

主机A可能正在使用 802.11 省电模式,在该模式下,它会在流量突发之间关闭其接收器,并让 AP 为其排队数据包,直到下次唤醒其接收器,此时它会与 AP 进行检查以获取其排队的数据包,并对其进行处理。

大多数供应商实施 802.11 省电的方式是,当似乎有一连串的流量正在发生时,它们使接收器保持唤醒状态,然后当没有任何流量发送或接收时(比如说,一个信标间隔(~100 毫秒)),使其进入睡眠状态。

因此,当 A 向 B 发送 ping 时,B 始终处于唤醒状态并在 5 毫秒内收到响应,然后 A 才会让接收器进入睡眠状态。

但是当 B 向 A 发送 ping 时,A 的接收器已经处于睡眠状态,并且在几个信标间隔内不会唤醒,然后唤醒,从 AP 获取 B 的排队 ping 请求,然后将其 ping 响应发送给 B。由于该ping命令默认每秒发送一次 ping,因此 A 的接收器通常有充足的时间(几个 100 毫秒的信标间隔)进入睡眠状态,然后再收到下一个 ping 请求。

A 休眠的确切时间以及它如何与每秒一次的 ping 保持一致,可能会导致“相位效应”或 ping 时间的周期性振荡。此外,A 需要处理的其他流量有时可能会使 A 保持更长时间的唤醒状态,从而导致 ping 时间有时更短。

答案2

问题显然出在 A 方面,可能是处理时间问题,A ping B 时,B 几乎立即做出响应并发回一个数据包,而 B ping A 时,可能负载很重,需要更多时间才能发送回复数据包。

相关内容