mtr命令输出含义以及standard deviation

这里说的mtr是一个网络工具,结合了"traceroute"和"ping"功能于一身,非常好用的一个工具。

debian的apt中,只需要安装“mtr-tiny ”即可使用mtr命令。

linux下面的mtr输出大概如下面所列:

~$ mtr -r -n -c 100 www.163.com
HOST: hz**-**                     Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. **.**.**.**                   0.0%   100    1.9   3.6   1.8  23.0   3.3
  2. 61.164.42.69                  0.0%   100    0.6   0.8   0.5   7.1   0.6
  3. 61.153.8.230                  0.0%   100    0.6   0.6   0.4   2.2   0.2
  4. 220.191.129.129               0.0%   100    0.5   0.5   0.4   4.3   0.5
  5. 202.97.41.245                 0.0%   100    7.8  16.7   7.7 182.6  30.0
  6. 202.97.34.65                  0.0%   100   33.7  43.3  33.7 228.4  34.7
  7. 220.181.16.149                0.0%   100   31.6  32.2  31.4  44.1   2.4
  8. 220.181.16.10                 0.0%   100   46.5  42.9  32.7  55.6   5.8
  9. 220.181.17.54                 0.0%   100   42.4  41.5  36.1  49.7   3.0
10. 220.181.28.50                 0.0%   100   30.4  30.3  30.2  30.5   0.1

输出各项的意思如下:

Loss%  --很明显是丢包率,单位是"%";
Snt   -- sent包的数量,如果是winmtr的话,还有一个"recv"表示收到回复包的数量,不过既然有"Loss"和"Snt",其实"recv"也很容易算出来,个人感觉winmtr有点画蛇添足了;
Last -- 最后一个包的延时;
Avg  -- 所有包的平均延时,同"ping"的"Avg";
Best  -- 延时最小的包,同"ping"的"Min";
Wrst -- Worst,延时最大的包,同"ping"的"Max";
StDev -- Standard Deviation,标准差,winmtr无该项。
StDev的概念和计算方法参见这里(请自备爬墙工具)

个人认为,如果StDev很大,表示各个包的延时的差别很大,网络不太稳定。不过由于中间点是路由器,一般路由器可能会对icmp包做限制或者优先丢弃,所以中间节点的StDev可以忽略不看。