我正在学习 ping 命令的实现。
我有一个疑问,如果我提供 -f 或 -A 选项,最后在统计报告中,与正常 ping 相比,它有两个额外的字段。
额外的字段是 ipg 和 ewma。
我知道ipg有什么用以及如何计算。
但我不知道ewma有什么用以及ewma如何计算。
我在谷歌搜索。但我没有得到确切的答案。
谁能向我解释一下吗?
答案1
它代表指数权重移动平均线。这是一种使用连续运行的输出(例如长时间运行的 fping/ping -f )来获得更相关的结果的方法。对于长时间运行的 ping,所有旧值(无论多旧)仍用于计算最小/最大/平均值,但使用 EWMA 可为您提供与最近的 ping 更相关的结果。
更新
您正在使用 iputils 包中的显然 ping 。 “标准”Ping 的第一个可见变化是 mdev。 mdev 给出平均偏差,即测量 RTT 的标准偏差。以下是 ipg 和 EWMA 源代码的摘录:
int ipg = (1000000 * (long long) tv.tv_sec + tv.tv_usec) / (ntransmitted-1);
printf ( "ipg / EWMA% d.% 03d /% d.% 03d ms"
ipg / 1000, ipg% 1000 rtt / 8000, (rtt / 8)% 1000);