ping 最小间隔?

ping 最小间隔?

不,不是非特权用户可用的 0.2 秒。

ping(来自 iputils s20190709)支持的最小间隔是多少?
我要求它:

ping -s 18 -W 2 -w 300 -qOni 0.000024 

...但似乎上限约为 1,200 PPS(723139 数据包/600 秒):

723139 packets transmitted, 723072 received, 0.00926516% packet loss, time 600000ms 
rtt min/avg/max/mdev = 0.463/0.750/26.080/0.249 ms, pipe 2, ipg/ewma 0.829/0.714 ms

根据我的计算,请求 18 个字节(通过以太网“在线”总共 60 个字节)@ ~42,000PPS(1s / 0.000024 间隔)应该只生成 ~20Mbps 流量 - 对于 1Gbps 路径来说并不算太多。

我尝试对同一个远程主机进行洪水攻击......

ping -n -w 60 -W 2 -s 18 -f

...它应该“以数据包返回的速度输出数据包或每秒输出一百次,以较高者为准”,结果是:

73338 packets transmitted, 73320 received, 0.0245439% packet loss, time 59999ms
rtt min/avg/max/mdev = 0.428/0.728/16.213/0.218 ms, pipe 2, ipg/ewma 0.818/0.740 ms

或~1,222 PPS。
考虑到 -f 标志的描述,至少会出现此结果。
(尝试不使用 -W 选项以防影响它 - 相同的结果。)

Ping 环回产生约 107,494 PPS :

ping -s 18 -W 2 -w 60 -qOnf 127.0.0.1
6449594 packets transmitted, 6449594 received, 0% packet loss, time 60000ms
rtt min/avg/max/mdev = 0.005/0.005/0.709/0.001 ms, ipg/ewma 0.009/0.006 ms

...所以我假设 ping 没有硬编码的最小间隔(当然不接近 ~1,200 PPS)。
我假设我的 ~1,200PPS 是因为 ping 正在等待 N 个回显回复,然后再触发间隔内的下一个请求,无论是使用 -f 还是 -i ?

我怎样才能要求 ping 到:

  1. 无限制的洪水(既不是 100 次/秒,也不是“返回时快”)?
  2. 在非洪水模式下遵守请求的 -i 间隔,无论收到的响应如何?

如果 ping 不能做到这一点,那么 fping/oping/nping 可以吗?
将尝试并行运行多个 ping 进程...

我正在使用Ubuntu。

相关内容