TCP的慢啟動、擁塞機(jī)制和滑動窗口

TCP和UDP的對比

1.面向連接可靠 / 無連接的不可靠
2.面向字節(jié)流的晚唇,無邊界的巫财,每次發(fā)送后可以分包發(fā)送,最后進(jìn)行數(shù)據(jù)合并(透明的保證了數(shù)據(jù)的依次哩陕,可靠) / 面向報文的翁涤,有邊界的桥言,每次發(fā)送一個報文,不能合并(效率更高但是需要自己保證數(shù)據(jù)的依次可靠)
3.有流量控制和擁塞控制 / 無
4.全雙工 / 一對一葵礼,一對多号阿,多對一,多對多
5.慢 / 快

TCP的慢啟動

由于TCP連接會隨著時間進(jìn)行自我調(diào)諧鸳粉,起初會限制連接的最大速度扔涧,如果數(shù)據(jù)傳輸成功,會隨著時間的推移提高傳輸速度届谈,這就是TCP的慢啟動枯夜,所以http性能的優(yōu)化關(guān)鍵并不在于高帶寬而是低延遲,多路復(fù)用就是讓所有的數(shù)據(jù)流通用一個TCP連接艰山,讓高帶寬真正的服務(wù)于http性能的提升湖雹。2.0中解決了這個問題。

HTTP Pipelining其實是把多個HTTP請求放到一個TCP連接中一一發(fā)送曙搬,而在發(fā)送過程中不需要等待服務(wù)器對前一個請求的響應(yīng)摔吏;只不過,客戶端還是要按照發(fā)送請求的順序來接收響應(yīng)纵装!而在2.0中通過二進(jìn)制流標(biāo)識而不需要按照順序來接受響應(yīng)
https://www.ucloud.cn/yun/76567.html

TCP的擁塞機(jī)制

更多:https://www.cnblogs.com/liangyc/p/11628757.html
1征讲、慢開始:設(shè)置一個“擁塞窗口cwnd”,該變量和接受窗口共同決定了發(fā)送者的發(fā)送窗口橡娄,開始從1開始指數(shù)2遞增诗箍,當(dāng)達(dá)到了設(shè)置的“慢開始門限ssthresh”,則可以根據(jù)情況來執(zhí)行擁塞避免算法——每次經(jīng)過一個往返時間RTT就給擁塞窗口+1挽唉,線性增長
2滤祖、快重傳,快恢復(fù):
每次發(fā)出一個包都設(shè)置一個定時器瓶籽,在定時器結(jié)束還沒有收到確認(rèn)則表示該包丟失氨距,需要進(jìn)行重傳,當(dāng)然定時器是后置的手段棘劣,快重傳是當(dāng)發(fā)送方收到了三個一樣的確認(rèn)俏让,就知道該包出現(xiàn)了錯誤,立即重傳該包茬暇,這時也會設(shè)置一個重傳定時器首昔,如果收到確認(rèn)則執(zhí)行擁塞避免算法(此時執(zhí)行快恢復(fù),慢開始門限減半糙俗,cwnd設(shè)置為此時的門限值勒奇,高起點,線性增長)巧骚,如果仍然超時則執(zhí)行慢開始算法(慢開始門限設(shè)置為原來的一半赊颠,將cwnd設(shè)置為1格二,執(zhí)行慢開始算法,低起點竣蹦,指數(shù)增長))


超時重傳是TCP協(xié)議保證數(shù)據(jù)可靠性的一個重要機(jī)制顶猜,其原理是在發(fā)送一個數(shù)據(jù)以后就開啟一個計時器RTO,在一定時間內(nèi)如果沒有得到發(fā)送數(shù)據(jù)報的ACK報文痘括,那么就重新發(fā)送數(shù)據(jù)长窄,直到發(fā)送成功為止。這是數(shù)據(jù)包丟失的情況下給出的一種修補(bǔ)機(jī)制纲菌。一般來說挠日,重傳發(fā)生在超時之后,但是如果發(fā)送端接收到3個以上的重復(fù)ACK翰舌,就應(yīng)該意識到嚣潜,數(shù)據(jù)丟了,需要重新傳遞椅贱。這個機(jī)制不需要等到重傳定時器溢出懂算,所以叫做快速重傳,而快速重傳以后夜涕,因為走的不是慢啟動而是擁塞避免算法,所以這又叫做快速恢復(fù)算法属愤。

  • 收到三個重復(fù)的ACK是因為數(shù)據(jù)是傳遞是按序的女器,如果M1之后的M2丟失,服務(wù)端接受到M3M4M5都會返回M2的ACK
    快速重傳和快速恢復(fù)旨在:快速恢復(fù)丟失的數(shù)據(jù)包住诸。沒有快速重傳和快速恢復(fù)驾胆,TCP將會使用定時器來要求傳輸暫停。在暫停這段時間內(nèi)贱呐,沒有新的數(shù)據(jù)包被發(fā)送

TCP滑動窗口

滑動窗口進(jìn)行流量控制丧诺,為了數(shù)據(jù)的不丟失,平衡不同設(shè)備之間的性能奄薇,需要接受方告知發(fā)送端它所擁有的緩存區(qū)大小驳阎,發(fā)送方根據(jù)這個數(shù)據(jù)來計算自己最多能發(fā)送的數(shù)據(jù)量,A發(fā)給B
image.png

馁蒂,為了防止B窗口的反饋信息空間rwnd丟失呵晚,會造成死鎖,為了處理這種情況給A設(shè)置一個定時器沫屡,當(dāng)時間到了則發(fā)送一個1字節(jié)的探測報文饵隙。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市沮脖,隨后出現(xiàn)的幾起案子金矛,更是在濱河造成了極大的恐慌芯急,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件驶俊,死亡現(xiàn)場離奇詭異娶耍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)废睦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門伺绽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嗜湃,你說我怎么就攤上這事奈应。” “怎么了购披?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵杖挣,是天一觀的道長。 經(jīng)常有香客問我刚陡,道長惩妇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任筐乳,我火速辦了婚禮歌殃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蝙云。我一直安慰自己氓皱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布勃刨。 她就那樣靜靜地躺著波材,像睡著了一般。 火紅的嫁衣襯著肌膚如雪身隐。 梳的紋絲不亂的頭發(fā)上廷区,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機(jī)與錄音贾铝,去河邊找鬼隙轻。 笑死,一個胖子當(dāng)著我的面吹牛垢揩,可吹牛的內(nèi)容都是我干的大脉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼水孩,長吁一口氣:“原來是場噩夢啊……” “哼镰矿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起俘种,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤秤标,失蹤者是張志新(化名)和其女友劉穎绝淡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苍姜,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡牢酵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了衙猪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馍乙。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖垫释,靈堂內(nèi)的尸體忽然破棺而出丝格,到底是詐尸還是另有隱情,我是刑警寧澤棵譬,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布显蝌,位于F島的核電站,受9級特大地震影響订咸,放射性物質(zhì)發(fā)生泄漏曼尊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一脏嚷、第九天 我趴在偏房一處隱蔽的房頂上張望骆撇。 院中可真熱鬧,春花似錦父叙、人聲如沸神郊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屿岂。三九已至践宴,卻和暖如春鲸匿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背阻肩。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工带欢, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人烤惊。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓乔煞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親柒室。 傳聞我的和親對象是個殘疾皇子渡贾,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

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