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、開始擁塞避免過程