欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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增长太激进,导致网络突发流量,引起拥塞。

相关标签: TCP/IP协议栈