TCP可靠傳輸

特點

  1. 面向連接(可靠的連接建立和連接關(guān)閉)
  2. 點對點通信(一對一)
  3. 可靠的
  4. 面向字節(jié)流(把上層協(xié)議的數(shù)據(jù)當(dāng)成字節(jié)傳輸)
  5. 全雙工通信

采用的技術(shù)

  1. 排序技術(shù)(處理分組重復(fù)和亂序)
  2. 重傳技術(shù)(處理分組丟失)
  3. 避免分組重復(fù)的技術(shù)
  4. 流量控制(機器間的速度不一致)
  5. 擁塞控制(網(wǎng)絡(luò)延遲)

1.排序技術(shù)

分組
為每一個分組附加一個序號

接收方保存

  • 當(dāng)前按順序收到的最后一個分組的序號
  • 亂序到達的分組列表

接收方執(zhí)行

  • 如果分組是所期待的下一個分組炸枣,遞交給上一層協(xié)議,并檢查亂序分組列表中有沒有可以繼續(xù)遞交的分組等曼;
  • 如果是亂序到達的分組侧纯,添加到亂序分組列表
  • 如果是重復(fù)分組始花,丟棄
2.重傳技術(shù)

發(fā)送方發(fā)送分組的同時啟動一個計時器,如果在計時器超時之前岳掐,還未收到來自接收方的ACK確認(rèn)報文顽决,發(fā)送方將發(fā)送該分組的副本并再次啟動計時器

3.避免分組重復(fù)的技術(shù)

問題:較早的連接中的分組可能在未來的連接中被接收
解決:用唯一的ID標(biāo)記每一次會話(連接),并且保證在很長一段時間內(nèi)(如幾小時)都不重復(fù)使用相同的ID

4.流量控制

問題:速度快的計算機發(fā)送太多數(shù)據(jù)造成速度慢的計算機過載
解決:滑動窗口汉规。接收方通過通告發(fā)送方自己的窗口大小礼殊,從而控制發(fā)送方的發(fā)送速度

知乎·TCP協(xié)議的滑動窗口具體是怎樣控制流量的驹吮?
ACK報文包含兩個非常重要的信息:
1. 接收方期望接收到的下一字節(jié)的序號n针史。

  • 該n代表接收方已經(jīng)接收到了前n-1字節(jié)數(shù)據(jù),此時如果接收方收到第n+1字節(jié)數(shù)據(jù)而不是第n字節(jié)數(shù)據(jù)碟狞,接收方是不會發(fā)送序號為n+2的ACK的啄枕。
  • 舉個例子,假如接收端收到1-1024字節(jié)族沃,它會發(fā)送一個確認(rèn)號為1025的ACK,但是接下來收到的是2049-3072频祝,它是不會發(fā)送確認(rèn)號為3072的ACK,而依舊發(fā)送1025的ACK。

2. 接收方當(dāng)前的窗口大小m脆淹。

  • 如此發(fā)送方在接收到ACK包含的這兩個數(shù)據(jù)后就可以計算出還可以發(fā)送多少字節(jié)的數(shù)據(jù)給對方常空。
  • 假定當(dāng)前發(fā)送方已發(fā)送到第x字節(jié),則可以發(fā)送的字節(jié)數(shù)就是y=m-(x-n)盖溺。這就是滑動窗口控制流量的基本原理漓糙。

假設(shè)發(fā)送方和接收方同意滑動窗口的大小為5個分組。

來源:https://www.webfalse.com/article/7651254.html

(1)發(fā)送方提取數(shù)據(jù)填充這5個分組烘嘱,并發(fā)送分組的副本昆禽;
(2)此時最多可以發(fā)送5個分組蝗蛙,發(fā)送1個分組后,繼續(xù)發(fā)送剩余4個分組醉鳖;
(3)只有在收到來自接收方的ACK確認(rèn)報文之后捡硅,發(fā)送方才會丟棄該分組。此處收到第一個分組的ACK盗棵,可以丟棄第一個分組壮韭,窗口中剩下4個分組,還能再發(fā)送一個分組漾根。

5.擁塞控制

TCP利用分組延遲的變化來作為對網(wǎng)絡(luò)擁塞的測量泰涂,通過減小重傳數(shù)據(jù)的速率來應(yīng)對網(wǎng)絡(luò)擁塞。實際上辐怕,TCP不是直接改變傳輸速率逼蒙,而是通過減小窗口的大小,來降低速率寄疏。

擁塞窗口
接收方通告一個接收窗口大惺抢巍(接收緩沖區(qū)的大小)陕截,發(fā)送方可以在接收到ACK之前填滿接收窗口

*窗口分為滑動窗口和擁塞窗口
拓展鏈接:TCP的滑動窗口與擁塞窗口
知乎·既然有了滑動窗口驳棱,為什么還要有等同于滑動窗口的擁塞窗口?

慢開始
(開始一個新連接)
發(fā)送方先發(fā)送一個報文农曲,如果一個ACK確認(rèn)報文到達社搅,TCP就把發(fā)送的數(shù)據(jù)量加倍,即發(fā)送兩個報文乳规。如果對應(yīng)的兩個ACK也到達了形葬,就發(fā)送四個報文,以此類推暮的,直到TCP正在發(fā)送的數(shù)據(jù)量等于接收窗口大小的一半為止笙以。之后數(shù)據(jù)量改為線性增長,每次加一冻辩。
(出現(xiàn)報文丟失時)
如果發(fā)送方超過一定時間沒有收到ACK確認(rèn)報文猖腕,說明報文丟失,出現(xiàn)網(wǎng)絡(luò)擁塞恨闪,此時將窗口大小設(shè)置為1倘感,重新進行慢開始算法。

參考鏈接:TCP協(xié)議概述

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末咙咽,一起剝皮案震驚了整個濱河市老玛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖逻炊,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件互亮,死亡現(xiàn)場離奇詭異,居然都是意外死亡余素,警方通過查閱死者的電腦和手機豹休,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桨吊,“玉大人威根,你說我怎么就攤上這事∈永郑” “怎么了洛搀?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長佑淀。 經(jīng)常有香客問我留美,道長,這世上最難降的妖魔是什么伸刃? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任谎砾,我火速辦了婚禮,結(jié)果婚禮上捧颅,老公的妹妹穿的比我還像新娘景图。我一直安慰自己,他們只是感情好碉哑,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布挚币。 她就那樣靜靜地躺著,像睡著了一般扣典。 火紅的嫁衣襯著肌膚如雪妆毕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天激捏,我揣著相機與錄音设塔,去河邊找鬼凄吏。 笑死远舅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的痕钢。 我是一名探鬼主播图柏,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼任连!你這毒婦竟也來了蚤吹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎裁着,沒想到半個月后繁涂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡二驰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年扔罪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桶雀。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡矿酵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出矗积,到底是詐尸還是另有隱情全肮,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布棘捣,位于F島的核電站辜腺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏乍恐。R本人自食惡果不足惜哪自,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望禁熏。 院中可真熱鬧壤巷,春花似錦、人聲如沸瞧毙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宙彪。三九已至矩动,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間释漆,已是汗流浹背悲没。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留男图,地道東北人示姿。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像逊笆,于是被迫代替她去往敵國和親栈戳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

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