8. TCP流量控制

流量控制

所謂流量控制就是讓發(fā)送發(fā)送速率不要過快齐苛,以至于淹沒接收方疲牵,讓接收方來得及接收击吱。

如果能控制發(fā)送方的發(fā)送速率,就可以達到流量控制的目的们镜。

如何控制發(fā)送方速率

為了提高信道的利用率TCP協(xié)議不使用停等協(xié)議币叹,而是使用連續(xù)滑動窗口協(xié)議润歉,該協(xié)議允許發(fā)送方在停止并等待確認前可以連續(xù)發(fā)送多個分組模狭。允許發(fā)送的分組的數(shù)量即是窗口值。
如果控制了發(fā)送方的窗口大小踩衩,即控制發(fā)送方的發(fā)送速率嚼鹉,達到流量控制的目的。

滑動窗口協(xié)議

在這個圖中,我們將字節(jié)從 1至11進行標號驱富。
接收方通告的窗口稱為提出的窗口(offered window),它覆蓋了從第 4字節(jié)到第 9字節(jié)的區(qū)域,表明接收方已經(jīng)確認了包括第 3字節(jié)在內(nèi)的數(shù)據(jù),且通告窗口大小為 6锚赤。
當接收方確認數(shù)據(jù)后,這個滑動窗口不時地向右移動。窗口兩個邊沿的相對運動增加或減少了窗口的大小褐鸥。

流量控制過程

TCP的發(fā)送窗口的大小受TCP數(shù)據(jù)報中窗口大小的影響线脚,TCP數(shù)據(jù)報中的窗口大小是接收端通知發(fā)送端其還可以接收多少數(shù)據(jù),所以發(fā)送窗口根據(jù)接收的的窗口大小的值動態(tài)變化叫榕。
窗口改變動作有:
窗口左邊沿向右邊沿靠近為窗口合攏浑侥。這種現(xiàn)象發(fā)生在數(shù)據(jù)被發(fā)送和確認時。
窗口右邊沿向右移動時將允許發(fā)送更多的數(shù)據(jù),我們稱之為窗口張開晰绎。這種現(xiàn)象發(fā)生在另一端的接收進程讀取已經(jīng)確認的數(shù)據(jù)并釋放了 T C P的接收緩存時寓落。
右邊沿向左移動時,我們稱之為窗口收縮。 Host Requirements RFC強烈建議不要使
用這種方式荞下。但 T C P必須能夠在某一端產(chǎn)生這種情況時進行處理伶选。

發(fā)送速率調(diào)節(jié)

考慮一種特殊的情況,就是接收方若沒有緩存足夠使用尖昏,就會發(fā)送零窗口大小的報文仰税,此時發(fā)送放將發(fā)送窗口設(shè)置為0,停止發(fā)送數(shù)據(jù)抽诉。之后接收方有足夠的緩存陨簇,發(fā)送了非零窗口大小的報文,但是這個報文在中途丟失的掸鹅,那么發(fā)送方的發(fā)送窗口就一直為零導(dǎo)致死鎖塞帐。

解決這個問題拦赠,TCP為每一個連接設(shè)置一個持續(xù)計時器(persistence timer)。只要TCP的一方收到對方的零窗口通知葵姥,就啟動該計時器荷鼠,周期性的發(fā)送一個零窗口探測報文段。對方就在確認這個報文的時候給出現(xiàn)在的窗口大欣菩摇(注意:TCP規(guī)定允乐,即使設(shè)置為零窗口,也必須接收以下幾種報文段:零窗口探測報文段削咆、確認報文段和攜帶緊急數(shù)據(jù)的報文段)牍疏。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拨齐,隨后出現(xiàn)的幾起案子鳞陨,更是在濱河造成了極大的恐慌,老刑警劉巖瞻惋,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厦滤,死亡現(xiàn)場離奇詭異,居然都是意外死亡歼狼,警方通過查閱死者的電腦和手機掏导,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來羽峰,“玉大人趟咆,你說我怎么就攤上這事∶诽耄” “怎么了值纱?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長履植。 經(jīng)常有香客問我计雌,道長,這世上最難降的妖魔是什么玫霎? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任凿滤,我火速辦了婚禮,結(jié)果婚禮上庶近,老公的妹妹穿的比我還像新娘翁脆。我一直安慰自己,他們只是感情好鼻种,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布反番。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪罢缸。 梳的紋絲不亂的頭發(fā)上篙贸,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機與錄音枫疆,去河邊找鬼爵川。 笑死,一個胖子當著我的面吹牛息楔,可吹牛的內(nèi)容都是我干的寝贡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼值依,長吁一口氣:“原來是場噩夢啊……” “哼圃泡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起愿险,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤颇蜡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拯啦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體澡匪,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年褒链,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疑苔。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡甫匹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惦费,到底是詐尸還是另有隱情兵迅,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布薪贫,位于F島的核電站恍箭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瞧省。R本人自食惡果不足惜扯夭,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鞍匾。 院中可真熱鬧交洗,春花似錦、人聲如沸橡淑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至置森,卻和暖如春斗埂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凫海。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工蜜笤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盐碱。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓把兔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瓮顽。 傳聞我的和親對象是個殘疾皇子县好,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359