小编Tom*_*mas的帖子

为高带宽连接设置(非常)大的 initcwnd 可能有哪些缺点?

我一直在 Linux(使用 3.5 内核)中试验 TCP 参数。基本上关于这个连接:

服务器:数据中心的千兆上行链路,从另一个数据中心测试时,实际带宽(由于共享上行链路)约为 70 MB/s。

客户端:连接到 200mbit 光纤的千兆本地局域网。获取测试文件实际上达到了 20 MB/s。

延迟:往返约 50 毫秒。

远程服务器用作 10 到 100mb 范围内的文件的文件服务器。我注意到使用 10 的 initcwnd 时,这些文件的传输时间受到 TCP 慢启动的严重影响,需要 3.5 秒才能加载 10mb(达到最高速度:3.3 MB/s),因为它开始缓慢然后加速,但是它在达到最大速度之前完成。我的目标是调整这些文件的最小加载时间(因此不是最高的原始吞吐量或最低的往返延迟,如果这会减少加载文件所需的实际时间,我愿意牺牲两者)

所以我尝试了一个简单的计算来确定理想的 initcwnd 应该是什么,忽略任何其他连接和可能对其他人的影响。带宽延迟积为 200 Mbit/s * 50ms = 10 Mbit 或 1.310.720 字节。考虑到 initcwnd 以 MSS 为单位设置,并假设 MSS 大约为 1400 字节,这将需要设置:1.310.720 / 1400 = 936

这个值与默认值相差很远(Linux 中为 10*MSS,Windows 中为 64kb),因此将其设置为这样感觉并不是一个好主意。像这样配置它的预期缺点是什么?例如:

  • 它会影响同一网络的其他用户吗?
  • 它会为其他连接造成不可接受的拥塞吗?
  • 路径上某处的洪水路由器缓冲区?
  • 增加少量丢包的影响?

linux tcp tcp-slow-start

9
推荐指数
1
解决办法
1515
查看次数

标签 统计

linux ×1

tcp ×1

tcp-slow-start ×1