为什么我的 UDP 带宽明显低于 iperf 中的 TCP 带宽

为什么我的 UDP 带宽明显低于 iperf 中的 TCP 带宽

我正在使用 iperf 在两个虚拟机之间运行简单的带宽测试。我得到的 TCP 和 UDP 带宽读数非常不同,其中 UDP 带宽远低于 TCP。

TCP:

root@i-sahmed-node2: ~ # iperf -c 10.160.24.123
-------------------------------------------------- ----------
客户端连接到 10.160.24.123,TCP 端口 5001
TCP 窗口大小:85.0 KByte(默认)
-------------------------------------------------- ----------
[3]本地10.160.24.170端口48339与10.160.24.123端口5001连接
[ ID] 间隔传输带宽
[3] 0.0-10.0 秒 7.41 GB 6.36 GB/秒
root@i-sahmed-node2: ~ #

UDP:

root@i-sahmed-node2: ~ # iperf -c 10.160.24.123 -u -b 6g
-------------------------------------------------- ----------
客户端连接到10.160.24.123,UDP端口5001
发送 1470 字节数据报
UDP 缓冲区大小:208 KByte(默认)
-------------------------------------------------- ----------
[3]本地10.160.24.170端口51922与10.160.24.123端口5001连接
[ ID] 间隔传输带宽
[3] 0.0-10.0 秒 962 MBytes 807 Mbits/秒
[3]发送了686548个数据报
[3]服务器报告:
[ 3] 0.0-10.0 秒 630 MBytes 528 Mbits/秒 0.009 毫秒 237368/686547 (35%)
[ 3] 0.0-10.0 秒 9 个无序接收的数据报
root@i-sahmed-node2: ~ #

我几乎每次都能重现这一点。由于我在虚拟机上运行,​​因此我无法直接访问底层硬件。有谁知道为什么会发生这种情况?

答案1

./iPerf在UDP模式下必须跟踪每个UDP数据包的性能,而在TCP模式下,唯一的交互是最终的总结。

800Mb/秒大约是我见过的来宾虚拟机的限制。

相关内容