TCP中的流量控制和擁塞控制

皮皮甜一定要會(huì)降龍十八掌镰吆,這樣走遍天下就無(wú)敵手


流量控制和擁塞控制都是為了保證TCP的可靠傳輸?shù)摹?br> 區(qū)別:
(一)流量控制:
控制發(fā)送方發(fā)送的數(shù)據(jù)速度小于接受法接受數(shù)據(jù)的速度
目的:防止因?yàn)榻邮辗絹?lái)不及接收數(shù)據(jù)造成數(shù)據(jù)丟失
發(fā)送方如何知道接收方的接受窗口大性颉:當(dāng)接收方收到發(fā)送方的數(shù)據(jù)以后秋度,會(huì)發(fā)送一個(gè)ACK吮炕,接受方會(huì)將控制窗口(cwnd)的大小寫在ACK里面
如何做到流量控制:每次接收方發(fā)送回的ACK都會(huì)返回最新控制窗口的大小,當(dāng)cwnd的大小為0時(shí),發(fā)送方將不能在發(fā)送數(shù)據(jù)了

擁塞控制:避免過(guò)多數(shù)據(jù)注入到網(wǎng)絡(luò)中
如何控制:
1)慢開(kāi)始算法+擁塞避免算法
實(shí)現(xiàn)思路:
發(fā)送方維護(hù)一個(gè)叫做擁塞窗口的變量祝谚,只要網(wǎng)絡(luò)沒(méi)有出現(xiàn)擁塞围小,擁塞窗口就再增大一些昵骤,以便把更多的數(shù)據(jù)發(fā)送出去。但只要網(wǎng)絡(luò)出現(xiàn)擁塞吩抓,擁塞窗口就減小一些涉茧,以減少注入到網(wǎng)絡(luò)中的數(shù)據(jù)。
慢開(kāi)始:開(kāi)始發(fā)送數(shù)據(jù)時(shí)疹娶,并不清楚網(wǎng)絡(luò)的負(fù)荷情況伴栓,會(huì)先設(shè)置擁塞窗口的大小為1,當(dāng)收到接收方的確認(rèn)后,會(huì)將擁塞窗口設(shè)置為2钳垮,繼而4個(gè)惑淳,8個(gè)以此指數(shù)類推。
PayAttention:慢開(kāi)始的“慢”并不是指擁塞窗口的增長(zhǎng)速率慢饺窿,而是指在TCP開(kāi)始發(fā)送報(bào)文時(shí)先設(shè)置擁塞窗口=1歧焦。
擁塞避免:擁塞窗口緩慢地增大,每次收到接收方發(fā)送的ACK以后擁塞窗口增長(zhǎng)1肚医,而不是爆炸式增長(zhǎng)
一個(gè)典型例子绢馍,放大招上圖:

擁塞控制-1.jpg

這種模式的擁塞控制都會(huì)設(shè)置一個(gè)門限(ssthresh),為了防止擁塞窗口(cwnd)增長(zhǎng)過(guò)快肠套,這里為16舰涌。
a)當(dāng) cwnd < ssthresh 時(shí),使用上述的慢開(kāi)始算法
b)當(dāng) cwnd > ssthresh 時(shí)你稚,停止使用慢開(kāi)始算法而改用擁塞避免算法
c)當(dāng) cwnd = ssthresh 時(shí)瓷耙,既可使用慢開(kāi)始算法,也可使用擁塞控制避免算法

無(wú)論在慢開(kāi)始階段還是在擁塞避免階段刁赖,只要發(fā)送方?jīng)]有收到ACK搁痛,就認(rèn)為這時(shí)候擁塞了,就要把慢開(kāi)始門限ssthresh設(shè)置為此時(shí)發(fā)送方窗口值的一半(上例中是把發(fā)送方窗口值24修改為12)宇弛。然后把擁塞窗口cwnd重新設(shè)置為1鸡典,執(zhí)行慢開(kāi)始算法。

2)快重傳+快恢復(fù)
快重傳:如果發(fā)送端接收到3個(gè)以上重復(fù)ACK涯肩,不需要等到重傳定時(shí)器溢出就重新傳遞轿钠,所以叫做快重傳,而快重傳以后病苗,因?yàn)樽叩牟皇锹龁?dòng)而是擁塞避免算法,所以又叫做快速恢復(fù)算法
如果沒(méi)有快速重傳和快速恢復(fù)症汹,TCP將會(huì)使用定時(shí)器來(lái)要求傳輸暫停硫朦。在暫停這段時(shí)間內(nèi),沒(méi)有新的數(shù)據(jù)包被發(fā)送背镇。所以快速重傳和快速恢復(fù)旨在快速恢復(fù)丟失的數(shù)據(jù)包

迷惑.jpg

文字真是蒼白無(wú)力咬展,需要生動(dòng)的圖片詳解

快重傳.jpg

接收方發(fā)現(xiàn)M3丟失,立即發(fā)送對(duì)M2的重復(fù)確認(rèn)瞒斩。一旦發(fā)送方一連收到三個(gè)M2的重復(fù)確認(rèn)就應(yīng)當(dāng)立即重傳M3破婆,也就是發(fā)送方收到第四個(gè)對(duì)M2的確認(rèn)時(shí)


擁塞控制-2.jpg

a)當(dāng)發(fā)送方在cwnd=24時(shí)連續(xù)收到三個(gè)重復(fù)確認(rèn),就把慢開(kāi)始門限ssthresh減半(就是上圖中的24修改為12)胸囱。
b)快恢復(fù):把cwnd值設(shè)置為門限ssthresh減半后的數(shù)值(即12)祷舀,然后開(kāi)始執(zhí)行的是擁塞避免算法,使擁塞窗口緩慢地線性增大
快恢復(fù)就是擁塞窗口不會(huì)從1開(kāi)始而是從門限的二分之一處開(kāi)始使用擁塞避免算法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市裳扯,隨后出現(xiàn)的幾起案子抛丽,更是在濱河造成了極大的恐慌,老刑警劉巖饰豺,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亿鲜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡冤吨,警方通過(guò)查閱死者的電腦和手機(jī)蒿柳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)漩蟆,“玉大人其馏,你說(shuō)我怎么就攤上這事”玻” “怎么了叛复?”我有些...
    開(kāi)封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)扔仓。 經(jīng)常有香客問(wèn)我褐奥,道長(zhǎng),這世上最難降的妖魔是什么翘簇? 我笑而不...
    開(kāi)封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任撬码,我火速辦了婚禮,結(jié)果婚禮上版保,老公的妹妹穿的比我還像新娘呜笑。我一直安慰自己,他們只是感情好彻犁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布叫胁。 她就那樣靜靜地躺著,像睡著了一般汞幢。 火紅的嫁衣襯著肌膚如雪驼鹅。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天森篷,我揣著相機(jī)與錄音输钩,去河邊找鬼。 笑死仲智,一個(gè)胖子當(dāng)著我的面吹牛买乃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播钓辆,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼剪验,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼肴焊!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起碉咆,我...
    開(kāi)封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抖韩,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后疫铜,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體茂浮,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年壳咕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了席揽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谓厘,死狀恐怖幌羞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情竟稳,我是刑警寧澤属桦,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站他爸,受9級(jí)特大地震影響聂宾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诊笤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一系谐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧讨跟,春花似錦纪他、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至混聊,卻和暖如春弹谁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背句喜。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沟于,地道東北人咳胃。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像旷太,于是被迫代替她去往敵國(guó)和親展懈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子销睁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 運(yùn)輸層協(xié)議概述 從通信和信息處理的角度看,運(yùn)輸層向它上面的應(yīng)用層提供通信服務(wù)存崖,它屬于面向通信部分的最高層冻记,同時(shí)也是...
    srtianxia閱讀 2,407評(píng)論 0 2
  • TCP/IP協(xié)議 作者:xinyuans 本文為參考TCP/IP詳解卷一,某些知識(shí)點(diǎn)加上了作者自己的理解来惧,如有錯(cuò)誤...
    xinyuans閱讀 810評(píng)論 0 1
  • 本篇文章主要是從運(yùn)輸層協(xié)議概述冗栗、UDP、TCP供搀、可靠傳輸?shù)墓ぷ髟碛缇印CP首部格式、TCP可靠傳輸?shù)膶?shí)現(xiàn)葛虐、TCP流...
    SeanMa閱讀 3,880評(píng)論 2 13
  • 前言 這篇文章是整個(gè)讀書總結(jié)系列的最后一篇胎源,有關(guān)TCP我想總結(jié)的內(nèi)容都會(huì)在這篇文章結(jié)束。當(dāng)然這并不是TCP的全部屿脐,...
    Noskthing閱讀 2,069評(píng)論 1 27
  • 六涕蚤、TCP可靠傳輸?shù)膶?shí)現(xiàn) 首先介紹以字節(jié)為單位的滑動(dòng)窗口。為了講述可靠傳輸原理的方便的诵,假定數(shù)據(jù)傳輸只在一個(gè)方向進(jìn)行...
    dmmy大印閱讀 1,695評(píng)論 0 1