TCP的擁塞控制

1、引言

計算機網(wǎng)絡中的帶寬官觅、交換結(jié)點中的緩存和處理機等,都是網(wǎng)絡的資源阐污。在某段時間缰猴,若對網(wǎng)絡中某一資源的需求超過了該資源所能提供的可用部分,網(wǎng)絡的性能就會變壞疤剑。這種情況就叫做擁塞。擁塞控制就是防止過多的數(shù)據(jù)注入網(wǎng)絡中闷堡,這樣可以使網(wǎng)絡中的路由器或鏈路不致過載隘膘。擁塞控制是一個全局性的過程,和流量控制不同杠览,流量控制指點對點通信量的控制弯菊。


2、慢開始與擁塞避免

發(fā)送方維持一個叫做 擁塞窗口cwnd(congestion window) 的狀態(tài)變量踱阿。擁塞窗口的大小取決于網(wǎng)絡的擁塞程度管钳,并且動態(tài)地在變化。發(fā)送方讓自己的發(fā)送窗口等于擁塞窗口软舌,另外考慮到接受方的接收能力才漆,發(fā)送窗口可能小于擁塞窗口。慢開始算法的思路就是佛点,不要一開始就發(fā)送大量的數(shù)據(jù)醇滥,先探測一下網(wǎng)絡的擁塞程度,也就是說由小到大逐漸增加擁塞窗口的大小超营。這里用報文段的個數(shù)的擁塞窗口大小舉例說明慢開始算法鸳玩,實時擁塞窗口大小是以字節(jié)為單位的。如下圖:

當然收到單個確認但此確認多個數(shù)據(jù)報的時候就加相應的數(shù)值演闭。所以一次傳輸輪次之后擁塞窗口就加倍不跟。這就是乘法增長,和后面的擁塞避免算法的加法增長比較米碰。為了防止cwnd增長過大引起網(wǎng)絡擁塞窝革,還需設置一個慢開始門限ssthresh狀態(tài)變量。ssthresh的用法如下:當cwnd<ssthresh時见间,使用慢開始算法聊闯。****當cwnd>ssthresh時,改用擁塞避免算法米诉。****當cwnd=ssthresh時菱蔬,慢開始與擁塞避免算法任意。擁塞避免算法讓擁塞窗口緩慢增長,即每經(jīng)過一個往返時間RTT就把發(fā)送方的擁塞窗口cwnd加1拴泌,而不是加倍魏身。這樣擁塞窗口按線性規(guī)律緩慢增長。無論是在慢開始階段還是在擁塞避免階段蚪腐,只要發(fā)送方判斷網(wǎng)絡出現(xiàn)擁塞(其根據(jù)就是沒有收到確認箭昵,雖然沒有收到確認可能是其他原因的分組丟失,但是因為無法判定回季,所以都當做擁塞來處理)家制,就把慢開始門限設置為出現(xiàn)擁塞時的發(fā)送窗口大小的一半。然后把擁塞窗口設置為1泡一,執(zhí)行慢開始算法颤殴。如下圖:

** 再次提醒這里只是為了討論方便而將擁塞窗口大小的單位改為數(shù)據(jù)報的個數(shù),實際上應當是字節(jié)鼻忠。**


3涵但、快重傳和快恢復

快重傳要求接收方在收到一個失序的報文段后就立即發(fā)出重復確認(為的是使發(fā)送方及早知道有報文段沒有到達對方)而不要等到自己發(fā)送數(shù)據(jù)時捎帶確認√快重傳算法規(guī)定矮瘟,發(fā)送方只要一連收到三個重復確認就應當立即重傳對方尚未收到的報文段,而不必繼續(xù)等待設置的重傳計時器時間到期塑娇。如下圖:


快重傳配合使用的還有快恢復算法澈侠,有以下兩個要點:①當發(fā)送方連續(xù)收到三個重復確認時,就執(zhí)行“乘法減小”算法埋酬,把ssthresh門限減半埋涧。但是接下去并不執(zhí)行慢開始算法。②考慮到如果網(wǎng)絡出現(xiàn)擁塞的話就不會收到好幾個重復的確認奇瘦,所以發(fā)送方現(xiàn)在認為網(wǎng)絡可能沒有出現(xiàn)擁塞棘催。所以此時不執(zhí)行慢開始算法,而是將cwnd設置為ssthresh的大小耳标,然后執(zhí)行擁塞避免算法醇坝。如下圖:



4、隨機早期檢測RED

以上的擁塞避免算法并沒有和網(wǎng)絡層聯(lián)系起來次坡,實際上網(wǎng)絡層的策略對擁塞避免算法影響最大的就是路由器的丟棄策略呼猪。在簡單的情況下路由器通常按照先進先出的策略處理到來的分組。當路由器的緩存裝不下分組的時候就丟棄到來的分組砸琅,這叫做尾部丟棄策略宋距。這樣就會導致分組丟失,發(fā)送方認為網(wǎng)絡產(chǎn)生擁塞症脂。更為嚴重的是網(wǎng)絡中存在很多的TCP連接谚赎,這些連接中的報文段通常是復用路由路徑淫僻。若發(fā)生路由器的尾部丟棄,可能影響到很多條TCP連接壶唤,結(jié)果就是這許多的TCP連接在同一時間進入慢開始狀態(tài)雳灵。這在術(shù)語中稱為全局同步。全局同步會使得網(wǎng)絡的通信量突然下降很多闸盔,而在網(wǎng)絡恢復正常之后悯辙,其通信量又突然增大很多。為避免發(fā)生網(wǎng)路中的全局同步現(xiàn)象迎吵,路由器采用隨機早期檢測(RED:randomearly detection)躲撰。該算法要點如下:使路由器的隊列維持兩個參數(shù),即隊列長隊最小門限min和最大門限max击费,每當一個分組到達的時候茴肥,RED就計算平均隊列長度。然后分情況對待到來的分組:①平均隊列長度小于最小門限——把新到達的分組放入隊列排隊荡灾。②平均隊列長度在最小門限與最大門限之間——則按照某一概率將分組丟棄。③平均隊列長度大于最大門限——丟棄新到達的分組瞬铸。

以概率p隨機丟棄分組批幌,讓擁塞控制只在個別的TCP連接上執(zhí)行,因而避免全局性的擁塞控制嗓节。RED的關(guān)鍵就是選擇三個參數(shù)最小門限荧缘、最大門限、丟棄概率和計算平均隊列長度拦宣。平均隊列長度采用加權(quán)平均的方法計算平均隊列長度截粗,這和往返時間(RTT)的計算策略是一樣的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸵隧,一起剝皮案震驚了整個濱河市绸罗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌豆瘫,老刑警劉巖珊蟀,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異外驱,居然都是意外死亡育灸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門昵宇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來磅崭,“玉大人,你說我怎么就攤上這事瓦哎≡矣鳎” “怎么了柔逼?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恩够。 經(jīng)常有香客問我卒落,道長,這世上最難降的妖魔是什么蜂桶? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任儡毕,我火速辦了婚禮,結(jié)果婚禮上扑媚,老公的妹妹穿的比我還像新娘腰湾。我一直安慰自己,他們只是感情好疆股,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布费坊。 她就那樣靜靜地躺著,像睡著了一般旬痹。 火紅的嫁衣襯著肌膚如雪附井。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天两残,我揣著相機與錄音永毅,去河邊找鬼。 笑死人弓,一個胖子當著我的面吹牛沼死,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播崔赌,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼意蛀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了健芭?” 一聲冷哼從身側(cè)響起县钥,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慈迈,沒想到半個月后魁蒜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡吩翻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年兜看,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狭瞎。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡细移,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出熊锭,到底是詐尸還是另有隱情弧轧,我是刑警寧澤雪侥,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站精绎,受9級特大地震影響速缨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜代乃,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一旬牲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搁吓,春花似錦原茅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至摩骨,卻和暖如春通贞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背恼五。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工昌罩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人唤冈。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像银伟,于是被迫代替她去往敵國和親你虹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

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

  • 原文鏈接:TCP的擁塞控制 1.引言 計算機網(wǎng)絡中的帶寬彤避、交換結(jié)點中的緩存和處理機等傅物,都是網(wǎng)絡的資源。在某段時間琉预,...
    環(huán)球探測閱讀 885評論 0 1
  • 六董饰、TCP可靠傳輸?shù)膶崿F(xiàn) 首先介紹以字節(jié)為單位的滑動窗口。為了講述可靠傳輸原理的方便圆米,假定數(shù)據(jù)傳輸只在一個方向進行...
    dmmy大印閱讀 1,671評論 0 1
  • 擁塞:在某段時間卒暂,若對網(wǎng)絡中某一資源的需求超過了該資源所能提供的可用部分,網(wǎng)絡的性能就會變壞娄帖。這種情況就叫做擁塞也祠。...
    元素周期表的十七君閱讀 525評論 0 1
  • 簡介 ** 擁塞 ** :即對資源的需求超過了可用的資源。當網(wǎng)絡中資源供應不足近速,導致出現(xiàn)資源競爭時诈嘿,就會出現(xiàn)擁塞現(xiàn)...
    LilacZiyun閱讀 810評論 0 2
  • 1.這篇文章不是本人原創(chuàng)的堪旧,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,049評論 6 174