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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章