TCP/IP 之TCP协议(5):拥塞控制

1、如果网络上的负载(发送到网络上的分组数)大于网络上的容量(网络同时能处理的分组数),就可能引起拥塞,判断网络拥塞的两个因素:延时和吞吐量。拥塞控制机制是:开环(预防)和闭环(消除)(见网络原理相关书籍,略)

tcp处理拥塞的三种策略:慢启动(指数增大),拥塞避免(加法增大),拥塞检测(除2减少,或叫做乘法减少)

2、慢启动:指数增大

/* ssthresh是慢开始门限,slow start threshold表示一个上限,一般的实现为65535B */


cwnd = 1;(1表示一个MSS报文段,不是一个字节)
while ( cwnd < ssthresh )
    if( 发出的报文段确认 )
       cwd *= 2;

3、拥塞避免:加法增大

当到达ssthresh之后,就是加法阶段了,每收到一个确认,cwd += 1;       
 
4、拥塞检测:乘法减少(除2减少)

当报文需要重传时,说明拥塞可能发生了,由于重传有2种情况,所以也分两种处理

(1)、由于超时重传,这是拥塞的可能性比较大,如下做强反映调整

a、 ssthresh /= 2;
b、 cwnd = 1;
重新慢启动过程


(2)、由于收到3个重复的ACK的重传,采取弱反映:

a、ssthresh /= 2;
b、cwnd = ssthresh;
c、开始拥塞避免过程




发布了54 篇原创文章 · 获赞 16 · 访问量 34万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章