ping(8) 中的 mdev 是什么意思?

Dan*_*iel 54 networking linux ping

mdevping 输出是什么意思(下面的最后一行)?

me@callisto ~ % ping -c 1 example.org   
PING example.org (192.0.43.10) 56(84) bytes of data.
64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=1 ttl=245 time=119 ms

--- example.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 119.242/119.242/119.242/0.000 ms
Run Code Online (Sandbox Code Playgroud)

Vat*_*ine 54

它是标准偏差,本质上是每个 ping RTT 与平均 RTT 之间的距离的平均值。越高mdev,RTT 的可变性越大(随着时间的推移)。

由于 RTT 可变性高,您将遇到批量传输的速度问题(它们将花费比严格来说所需的更长的时间,因为可变性最终会导致发送方等待 ACK),并且您的 VoIP 质量将处于中等到差。

  • @dmourati 实际上,不,抖动是最低和最高 RTT 之间的差异(或者,同样地,从最小值到平均值的差异以及从平均值到最大值的差异,取决于您是否将其视为“I ms”或“- A/+B 毫秒”。 (4认同)
  • RTT - 是发送信号所需的时间加上接收信号确认所需的时间 (https://en.wikipedia.org/wiki/Round-trip_delay) (2认同)

小智 33

从源代码[1]:

            tsum += triptime;
            tsum2 += (long long)triptime * (long long)triptime
Run Code Online (Sandbox Code Playgroud)

和,

            tsum /= nreceived + nrepeats;
            tsum2 /= nreceived + nrepeats;
            tmdev = llsqrt(tsum2 - tsum * tsum);
Run Code Online (Sandbox Code Playgroud)

我们可以得出结论:

mdev = SQRT(SUM(RTT*RTT) / N – (SUM(RTT)/N)^2)

这是计算标准偏差的另一个公式(参见 [2])。这与上面 Vatine 的回答相符。

  1. http://www.skbuff.net/iputils
  2. http://www.brainkart.com/article/Calculation-of-Standard-Deviation_39437/在未分组数据的标准偏差计算下 -> 直接方法