我正在尝试调整 TCP reno 参数,以便在此处重现图 21 。作者使用 TCP New Reno 作为拥塞控制算法。
我正在调整参数:
- rto_min = 10 毫秒
- 使用 ip route 将 sender cwnd 设置为 10
- 使用 ip route 将接收器 rwnd 设置为 10
- 禁用slow_start_after_idle
- 将 max rmem 和 wmem 设置为 16777216
- 默认情况下启用 ECN
所有其他选项都是内核 v 3.19 的默认选项
我的拓扑如下:我有两台通过 1Gbps 链路连接到交换机(由机器模拟)的机器和一个通过 1Gbps 链路连接到交换机的接收器。RTT 约为 590 微秒。
连接到接收器的交换机端口在拖尾模式下运行,最大缓冲区大小为 700KB,使用 tc-pfifo 实现
我使用 iperf3 生成流量。我使用 iperf3 创建了两个长期流,每个流都从一个发送者到公共接收者,如第 4.2.2 节所述。当我开始短流程时,我得到了 150 毫秒的完成时间。我知道队列已满,因此数据包被延迟。我也明白发送方没有使用慢启动并直接进入拥塞避免。我的理解有误吗?根据作者的说法,TCP New Reno 的短传输必须在 15-35 毫秒的数量级。
有人可以帮助我了解我哪里出错并提出可以帮助我克服这个问题的可能解决方案吗?