Gre*_*rey 5 networking ping high-load
我正在尝试测量两台机器之间的一种方式延迟,我想ping用来将ICMP数据包从一台机器发送到另一台机器。数据包之间的间隔应为 1 微秒 (1us),我想发送 100 万个数据包 (10^6),因此发送数据包总共需要 1 秒。
另外,我不关心另一台机器的响应(我只会在第二台机器上捕获数据包并对其进行分析)。
现在我已经尝试过:
ping -I eth0 -c 1000000 -l 1000000 -f -i 0.000001 -b 255.255.255.255
Run Code Online (Sandbox Code Playgroud)
我还通过停用-l和-f选项进行了试验。当我使用较大的值时,-l我收到一条警告,指出 rcvbuf 不足以保持预加载。
我正在使用 tcpdump 捕获来自我的机器的传出数据包以及传入另一台机器的数据包。
问题是数据包之间的间隔在大多数情况下在5us和15us之间,并且稍大一些。
当我直接发送到像谷歌这样的网站时,我遇到了同样的问题:
ping -I eth0 -c 1000000 -l 1000000 -f -i 0.000001 google.com
Run Code Online (Sandbox Code Playgroud)
我想要的是:
最好使用ping命令及其提供的选项(如果它们足够)来执行此操作。我有管理员权限。
更新
我的目标是测量不同电缆在数据包上引入的延迟。所以我需要准确的数据包生成和捕获。在硬件方面,我有合适的工具,但我没有得到我所期望的。我认为问题出在软件上。
我的问题是,当我使用该-i选项时,ping 似乎没有按预期工作。当我使用-f -l 1000000捕获时,每 3us 到 5us 发送一次。当我指定-f或不指定这两个时,数据包每 12 毫秒生成一次。
一般来说,我认为我无法控制广播 ping 的数据包距离。
sho*_*hok 11
ping -f会不会等待对方回复。
但是,连续数据包之间的 1us 延迟对于您的硬件 (CPU) 和软件 (IP 堆栈) 组合来说可能太过分了。
为了最大限度地提高性能(并最大限度地减少发送延迟),请尝试禁用任何电源管理功能,或者至少使用performanceCPU 调节器。