为什么双向流量会导致 TCP 性能下降?

为什么双向流量会导致 TCP 性能下降?

我对TCP传输性能做了一个简单的实验,实验如下:

有两台机器A、B,每台机器都安装了Ubuntu 12.04 Server,我在两台机器上都安装了iperf,用来测试传输速率。A、B之间通过100Mbps链路连接,实验如下:

  1. 我使用 iperf 从 A 向 B 以 TCP 模式进行发送,结果发现两端 iperf 输出的速率均为 100Mbps,且非常稳定。

  2. 我使用另一个 iperf 进程从 B 发送到 A,使用相同的设置。结果是两边的速率输出都稍低一些,稳定在 99Mbps。但这是可以理解的。

  3. 我使用另一个 iperf 进程再次从 A 发送到 B,同时保留之前的两个流量。现在有线情况发生了。三条流量的速率均为 50Mbps,两边都是。速率都非常稳定。

我理解流 1 和流 3 共享单向链路且带宽均为 50Mbps 的原因。但是反向流(流 2)也受到影响且带宽也是 50Mbps 的原因是什么?双向链路不应该被视为两个互不干扰的不同链路吗?

答案1

我认为——

  1. 需要考虑确认流量,即确认数据包已发送。
  2. 以太网可能受每秒数据包数量的限制 - 您应该能够使用巨型帧来测试这个假设并查看您的性能是否提高。

相关内容