当绘制吞吐量与时间的关系图时,为什么 2 个具有 X 延迟的链路与 1 个具有 2X 延迟的链路不同?

网络工程 通讯协议 吞吐量
2021-08-02 21:42:41

首先,我对 TCP 还很陌生,如果我错过了任何明显的东西,抱歉。此外,欢迎任何帮助我调查的建议。

根据我的理解,如果我有一个设置:

SENDER------SWITCH------RECEIVER
        A           B

如果链路 A 和 B 的丢失率均为 0% 且带宽为 100Mbps,但是:

场景1)A有1~301ms的延迟,B有1ms 场景1)A有1~301ms的延迟,B有1ms

场景2)A有1~151ms的延迟,B有1~151ms 场景2)A有1~151ms的延迟,B有1~151ms

由于网络的总延迟在两种情况下应该相同,发送方的吞吐量与时间的关系图是否应该完全相同?

以两个图中的 60ms 线为例。尽管场景 2 的总延迟在网络中仍然是 60 毫秒,但它在大约 1 秒到达到带宽上限之间从未遇到过另一个拥塞事件,不像场景 1 那样有很多。

两个主要问题是:

  • 为什么前期低延迟线的形状不一样?
  • 为什么一些以前无法达到上限的情况现在可以达到上限?

一些可能/可能无济于事的背景信息:

  • 我使用 mininet(带有 ubuntu 的虚拟网络)进行测试设置。
  • linux,所以 TCP CUBIC 用于拥塞避免算法。
  • 使用的 iperf 命令

recvr.cmd('iperf -s -p', port, '> %s/iperf_server.txt' % args.dir, '&') sender.sendCmd('iperf -c %s -p %s -t %d -i 1 -yc > %s/iperf_%s.txt' % (recvr.IP(), port, seconds, args.dir, 'h1'))

  • cwnd for link A 121ms delay, link B 1ms (scenario 1, 120ms line) 在此处输入图片说明
  • cwnd 用于链路 A 61ms 延迟,链路 B 61ms(场景 2,120ms 线路) 在此处输入图片说明
1个回答

我想我可能已经找到了原因,但我不确定。欢迎任何反馈。

为什么一些以前无法达到上限的情况现在可以达到上限?

问题在于交换机的缓冲区大小。

  • 在场景 1(链路 A 有 2X 延迟)中,真正的瓶颈情况是 2X 延迟,缓冲区大小为 K。
  • 在场景 2(链接 A&b 都有 X 延迟)中,真正的瓶颈情况是 X 延迟和 K 缓冲区大小。

由于这是无损链接,一旦我调高缓冲区大小,每个案例似乎都能达到网络上限。