首先,我对 TCP 还很陌生,如果我错过了任何明显的东西,抱歉。此外,欢迎任何帮助我调查的建议。
根据我的理解,如果我有一个设置:
SENDER------SWITCH------RECEIVER
A B
如果链路 A 和 B 的丢失率均为 0% 且带宽为 100Mbps,但是:
场景1)A有1~301ms的延迟,B有1ms

场景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 线路)
