关于TCP三个冗余ACK启动快速重传
转自:https://blog.csdn.net/u010202588/article/details/54563648
1.分析
收到冗余ACK的原因:
- 收到后面的乱序包
- 未收到包
未收到包的原因:
- 包的校验和出错
- 网络拥塞
- 断网
那么目前遇到的问题是,收到了冗余ACK,既然能够收到ACK,大概率说明网络没有拥塞,更可能是收到乱序包的原因,也可能是当前包校验和出错了。
所以就不用去做网络拥塞控制那一套,比如说cwnd/2,发送速率减半。
综上,在超时时间内收到<=2个ACK,则认为大概率是乱序问题;
收到>=3个冗余ACK,大概率丢包或包出错,则不降低发送速度,快速重传一次,如果收到正确的ACK,那么一切正常,如果还是冗余ACK,那么认为是网络拥塞,降低发送速度。