我正在尝试通过在我的设备上运行 iperf 来进行一些带宽测试,
我的网络最大带宽为 100 Mbps(通过速度测试 CLI 进行测试 - https://github.com/sivel/speedtest-cli)
我运行了 iperf UDP 带宽测试(像这样 $(iperf3 -c $server_ip -u -b 500M ))
然后我得到结果(客户端消息中几乎 500Mbps)
结果对吗?
现在我认为所有的可能性是客户端 iperf 只是计算发送方带宽(因为 UDP)
我正在尝试通过在我的设备上运行 iperf 来进行一些带宽测试,
我的网络最大带宽为 100 Mbps(通过速度测试 CLI 进行测试 - https://github.com/sivel/speedtest-cli)
我运行了 iperf UDP 带宽测试(像这样 $(iperf3 -c $server_ip -u -b 500M ))
然后我得到结果(客户端消息中几乎 500Mbps)
结果对吗?
现在我认为所有的可能性是客户端 iperf 只是计算发送方带宽(因为 UDP)
udp 是一种尽力而为的协议,因此 iperf 可能不会检查数据包是否实际到达。此外 -b 设置“以比特/秒或每秒数据包发送的带宽”,您设置为 500M。所以我认为您只是在测试您的网卡驱动程序可以以 500Mbps 的速度发送。
如果您想测试节点之间的网络路径,我不会使用 udp 或限制带宽。IE。只是 iperf -c server_ip
使用 UDP 时,您确实应该检查服务器端的输出。UDP没有拥塞控制,所以是的,客户端只是创建一个恒定的比特率流。但是,服务器端的 iperf 会显示接收到的比特率,以及抖动和丢包。
使用UDP的原因是什么?它主要用于特殊情况,例如检查各种数据包大小的抖动。对于这种情况,TCP 对 iperf 更有用(如果客户端和服务器之间的延迟很大,则可能必须调整窗口大小)。
这是服务器端 UDP 模式下的示例输出: