TCP协议栈:RFC3465-拥塞控制中的ABC算法
程序员文章站
2022-03-07 09:50:54
...
1.背景
根据RFC2581,拥塞避免和慢启动中的cwnd的增长与ACK的数量相关,而RFC3465把cwnd的增长修改为与ACK的字节数相关。
2.拥塞避免阶段
总目标是,在一个RTT,cwnd增加一个SMSS。
2.1 RFC2581的方法
//收到ACK
cwnd += 1/cwnd
2.2 RCF3465的方法
bytes_acked变量存储被确认的字节数。
//收到ACK
bytes_acked += ACKed 字节数
if bytes_acked >= cwnd
bytes_acked -= cwnd
cwnd += SMSS
3. 慢启动阶段
3.1 RFC2581的方法
//收到ACK
cwnd += 1*SMSS
3.2 RFC3465的方法
//收到ACK
cwnd += min(ACKed的字节数,L)
通常 L = 2*SMSS,但是在RTO之后,L=SMSS。设置L不超过2*SMSS,是为了不让cwnd增长太激进,导致网络突发流量,引起拥塞。
下一篇: 使用Vue框架如何实现上拉刷新功能