TCP 慢启动突发丢包

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

TCP 慢启动会导致持续突发丢包。

慢启动以 y = 2 x y=2^x y=2x 增加窗口在 BDP 已经填满时后续的慢启动过程如下
在这里插入图片描述
​每一个 ACK 触发 2 个 报文最终至少丢掉 1 个 BDP 的数据后 sender 才能检测到丢包而退出慢启动并进行重传。

这是尾丢的结果现实中很少部署尾丢因此很难实际观测到该结果但这是慢启动的理论伤。

HyStart 可以解决该问题可以参考 Linux CUBIC 代码的实现还有一个 HyStart++ 算法HyStart++: Modified Slow Start for TCP

但这些都很难奏效和 BBR 很难达到预期的原因一样这些依托的都是理想模型而现实并不是。连 RTT 测量都不能算数需要一个移指平均也不能太算数何况 HyStart 的测量。

现实的做法是 “不要总以 2 倍为增量”。一开始以 2 倍为增加后续逐渐递减比如以 1.5 倍为增量时即收到 2 个 ACK 后增加 3 个 cwnd以此类推
在这里插入图片描述
绿色曲线在后期比红色曲线平缓很多丢包就减少很多缓慢的增速虽然更慢探测到最大带宽但也不算太慢相反优点有两个首先减缓的慢启动过程增加的延迟大概率小于大量丢包重传增加的延迟其次减少了丢包重传在全局上提高了带宽利用效能。

浙江温州皮鞋湿下雨进水不会胖。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6