TCP的慢開始和擁塞避免

Tcp的慢開始和擁塞避免

1、發(fā)送端主機(jī)在確認(rèn)發(fā)送報(bào)文段的速率時(shí),既要根據(jù)接收端的接收能力,又要從全局考慮不要使網(wǎng)絡(luò)發(fā)生擁塞。

2、因此,每一個(gè)tcp連接需要有以下兩個(gè)狀態(tài)變量:a、接收端窗口。b、擁塞窗口。

3、接收端窗口:是接收端根據(jù)其目前的接收緩存大小所許諾的最新窗口值,是來(lái)自接收端的流量控制。接收端將此窗口值放在TCP報(bào)文的首部中的窗口字段,傳給發(fā)送端。

4、擁塞窗口:是發(fā)送端根據(jù)自己估計(jì)的網(wǎng)絡(luò)擁塞程度而設(shè)置的窗口值,是來(lái)自發(fā)送端的流量控制。

5、發(fā)送端的發(fā)送窗口的上限值取自接收端窗口和擁塞窗口兩者中較小的一個(gè)。

慢開始算法原理

1、在主機(jī)剛剛開始發(fā)送報(bào)文段時(shí),可先把擁塞窗口的值設(shè)置為一個(gè)最大報(bào)文段的MSS的數(shù)值。

2、在每收到一個(gè)對(duì)新的報(bào)文段的確認(rèn)后,將擁塞窗口增加至多一個(gè)最大報(bào)文段MSS的數(shù)值。

3、用這種方法逐步增大發(fā)送端的擁塞窗口,這可以使分組注入到網(wǎng)絡(luò)的速率更加合理。

慢開始階段和擁塞避免階段

1、當(dāng)TCP連接進(jìn)行初始化時(shí),將擁塞窗口置為1。慢開始的門限值ssthresh初始值設(shè)置為16 。

2、發(fā)送端的發(fā)送窗口不能超過(guò)擁塞窗口和接收窗口中的最小值。假定接收端窗口值足夠大,那么發(fā)送窗口的值就等于擁塞窗口的數(shù)值。

3、在執(zhí)行慢開始算法時(shí),擁塞窗口初始值為1 。 發(fā)送第一個(gè)報(bào)文段M0 。 在發(fā)送端收到ACK(接收端確認(rèn)收到M0,期望收到M1)后,擁塞窗口增大到2,發(fā)送端連續(xù)發(fā)送M1和M2兩個(gè)報(bào)文,這樣擁塞窗口成指數(shù)增長(zhǎng),報(bào)文發(fā)送量同時(shí)增長(zhǎng)。直至達(dá)到慢開始的門限值ssthresh。然后進(jìn)入擁塞避免階段。此時(shí),改為擁塞窗口按線性規(guī)律增長(zhǎng)。

4、當(dāng)擁塞窗口增大到一定程度時(shí),發(fā)生超時(shí)(擁塞)時(shí),更新門限值ssthresh變?yōu)槌瑫r(shí)時(shí)的0.5 并執(zhí)行慢開始算法。

擁塞避免算法

1、乘法減小

a、“乘法減小”指不論在慢開始階段還是擁塞避免階段,只要出現(xiàn)一次超時(shí)(即網(wǎng)絡(luò)擁塞),就把慢開始門限值ssthresh設(shè)置為當(dāng)前擁塞窗口值乘以0.5。

b、當(dāng)網(wǎng)絡(luò)頻繁出現(xiàn)擁塞時(shí),ssthresh值就下降的很快,以大大減少注入到網(wǎng)絡(luò)中的分組數(shù)。

2、加法增大

“加法增大”是指執(zhí)行擁塞避免算法后,當(dāng)收到對(duì)所有報(bào)文段的確認(rèn)就將擁塞窗口增加一個(gè)報(bào)文MSS大小,是擁塞窗口緩慢增大,以防止網(wǎng)絡(luò)過(guò)早出現(xiàn)擁塞。

“擁塞避免”并非指能完全避免擁塞。只能控制擁塞窗口按線性增長(zhǎng)規(guī)律,使網(wǎng)絡(luò)比較不容易出現(xiàn)擁塞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 運(yùn)輸層協(xié)議概述 從通信和信息處理的角度看,運(yùn)輸層向它上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,同時(shí)也是...
    srtianxia閱讀 2,746評(píng)論 0 2
  • 本篇文章主要是從運(yùn)輸層協(xié)議概述、UDP、TCP、可靠傳輸?shù)墓ぷ髟?、TCP首部格式、TCP可靠傳輸?shù)膶?shí)現(xiàn)、TCP流...
    SeanMa閱讀 4,198評(píng)論 2 13
  • 六、TCP可靠傳輸?shù)膶?shí)現(xiàn) 首先介紹以字節(jié)為單位的滑動(dòng)窗口。為了講述可靠傳輸原理的方便,假定數(shù)據(jù)傳輸只在一個(gè)方向進(jìn)行...
    dmmy大印閱讀 2,174評(píng)論 0 1
  • 0. 基本要點(diǎn) 運(yùn)輸層是為相互通信的應(yīng)用進(jìn)程提供邏輯通信。 端口和套接字的意義 什么是無(wú)連接UDP 什么是面向連接...
    安安zoe閱讀 1,539評(píng)論 0 1
  • 前言 這篇文章是整個(gè)讀書總結(jié)系列的最后一篇,有關(guān)TCP我想總結(jié)的內(nèi)容都會(huì)在這篇文章結(jié)束。當(dāng)然這并不是TCP的全部,...
    Noskthing閱讀 2,230評(píng)論 1 27

友情鏈接更多精彩內(nèi)容