为什么 Linux(较新版本)拥塞控制不遵循RFC5681?



我刚刚学习TCP拥塞控制。当我读到关于慢启动的章节时,我转向RFC5681,我发现标准显示

  • 如果SMS>2190字节:IW=2*SMSS字节,且不得超过2个段
  • 如果(SMSS>1095字节(和(SMSS<=2190字节(:IW=3*SMSS字节,且不得超过3个段
  • 如果SMSS<=1095字节:IW=4*SMSS字节,且不得超过4个段

但我在我的ubuntu服务器上进行了测试,并在谷歌上查找了材料,我发现init cwnd大约是10。
我就是听不懂。帮助。

同时查看https://news.ycombinator.com/item?id=1942442和https://developers.google.com/speed/pagespeed/service/tcp_initcwnd_paper.pdf

大约在2010年,谷歌使用了10的初始拥塞窗口,而不是遵循RFC,这引起了很大的争议。基本思想是网络可以处理负载,而且,当连接刚刚开始时,接收器缓冲区是空的,所以没有溢出的机会,那么为什么要经历漫长而缓慢的启动过程呢?

这样做,他们减少了很多往返行程,节省了时间、带宽和移动设备、电池。更重要的是,客户更快地获得数据,这让他们更快乐。

最新更新