Linux

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

  • November 10, 2020

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

它是標準偏差,本質上是每個 ping RTT 與平均 RTT 相差多遠的平均值。越高mdev,RTT 的可變性就越大(隨著時間的推移)。

RTT 可變性高時,您將遇到批量傳輸的速度問題(它們將花費比嚴格來說必要的更長的時間,因為可變性最終會導致發送方等待 ACK),並且您的 VoIP 質量將處於中等到差的水平。

從原始碼

$$ 1 $$:

           tsum += triptime;
           tsum2 += (long long)triptime * (long long)triptime

和,

           tsum /= nreceived + nrepeats;
           tsum2 /= nreceived + nrepeats;
           tmdev = llsqrt(tsum2 - tsum * tsum);

我們可以得出結論:

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/在計算未分組數據的標準偏差 -> 直接方法

引用自:https://serverfault.com/questions/333116