#ping #output #networking #tries #ms #variation #ewma

app wping

一个尝试提供更有用输出的ping命令

2个不稳定版本

使用旧的Rust 2015

0.3.0 2017年3月11日
0.2.0 2017年3月3日

#5 in #variation

GPL-3.0 许可证

33KB
671

wping

wpingping类似,但它试图产生更有用的输出

动机

使用ping估计丢包通常涉及查看输出或通过观察输出的时间来发展对丢失包百分比的直觉。或者,可以循环运行它,并在退出时观察ping打印的累计统计信息,然后尝试随着时间的推移跟踪它们。我们可以做得更好。

wping的工作原理

wping计算并显示往返时间(RTT)和明显丢包率的指数加权移动平均(EWMA)。为了计算丢包率,如果一个数据包在平滑(RTT)+ 2 * 变化(RTT)内没有收到响应,则认为该数据包已丢失。但是,如果之前发送的数据包收到了响应,wping将提高丢包率的估计。

当明显丢包率低于1%(即当丢包事件足够远时),则将丢包率报告为0%。

EWMA计算按照RFC6298执行。

每次发送间隔打印一次更新后的统计信息:当收到响应时,或者,如果没有收到响应,当下一个探测即将发送时。

安装

目前,安装wping的方法是通过cargo。如果cargo不是作为分发包提供的,那么获取它的最简单方法是通过安装rustup然后

$ cargo install wping
$ sudo setcap cap_net_raw+ep ~/.cargo/bin/wping

用法

在一个具有模拟丢包的接口上

$ wping en.wikipedia.org
PING 91.198.174.192 for en.wikipedia.org (91.198.174.192)
 Seq      RTT      smooth RTT   RTT variation   Packet loss
  1      96 ms       96 ms          48 ms           0%
  2      95 ms       96 ms          36 ms           0%
  3     108 ms       97 ms          30 ms           0%
  4     100 ms       98 ms          23 ms           0%
  -        -         98 ms          23 ms           12%
  6      97 ms       97 ms          17 ms           11%
  7      95 ms       97 ms          14 ms           10%
  8      95 ms       97 ms          10 ms           8%
  9      96 ms       97 ms          8 ms            7%
 10      97 ms       97 ms          6 ms            6%
 11      98 ms       97 ms          5 ms            6%
 12      97 ms       97 ms          3 ms            5%
  -        -         97 ms          3 ms            17%
 14      96 ms       97 ms          3 ms            15%
 15     108 ms       98 ms          5 ms            13%
 16      97 ms       98 ms          4 ms            11%
 17      97 ms       98 ms          3 ms            10%
  -        -         98 ms          3 ms            21%
 19      96 ms       98 ms          3 ms            18%
 20     111 ms       99 ms          5 ms            16%
 21      96 ms       99 ms          5 ms            14%

默认发送间隔为1秒,自适应丢包窗口包含20个探测(丢包事件的影响在该之后降至低于1%)。启动时,wping会打印出为目标域名检索到的所有IP地址,作为温和的提醒,轮询DNS可能正在发挥作用。

Usage:
    wping [OPTIONS] [ADDRESS]


positional arguments:
  address               Target hostname or IPv4 address

optional arguments:
  -h,--help             show this help message and exit
  -i                    Send interval
  -s,--packet-size PACKET_SIZE
                        Payload size in bytes
  --window WINDOW       Adaptive packet loss calculation for the last N probes
  -x,--extended         Include additional information in the output

当前限制

  • 不会注意/处理其他ICMP数据包类型(例如ICMP_REDIRECT)
  • 不支持IPv6

依赖关系

~5MB
~110K SLoC