我正在使用 iperf 监控两端两台 Windows 机器之间的 WAN 链路的性能。
令人惊讶的是(对我来说),TCP 单个会话默认窗口的吞吐量达到 12Mbps,而 UDP 限制(0% 数据包丢失)约为 4Mbps。高于 5Mbps 的带宽会导致 UDP 出现不可接受的数据包丢失(>20%)。
怎么会这样?
这些结果也得到了通过链路发送的一些 UDP 实际流量(带宽低于预期容量)的证实,这会导致数据包丢失。
提前感谢任何建议。
编辑:忘记提及一个重要细节:这是一个私人网络,因此它不是一个拥塞的链路,并且在这些测试期间(使用 iperf 和实际流量)通过链路的额外流量几乎可以忽略不计。
编辑:有人可以提供一些建议,关于如何排除在何处(网络的哪个部分)丢失流量吗?
答案1
Iperf 没有逻辑来最大化 WAN 链路上 UDP 流量的效率。与大多数现代操作系统一样,Windows 已经付出了巨大努力来尽可能减少 TCP 吞吐量。
TCP 具有调整窗口的确认、复杂的传输速度等等。Iperf 只是定期发送 UDP 数据包。
根本就没有可比性。