深入理解TCP和UDP

簡介

OSI七層模型中,傳輸層(Transport Layer)為應(yīng)用進(jìn)程提供端到端的通信服務(wù)。傳輸層的協(xié)議主要包括TCP和UDP等協(xié)議缸兔。

TCP的全稱是Transmission Control Protocol,即傳輸控制協(xié)議卖氨。TCP是面向連接的笑窜、可靠的流協(xié)議尔当。TCP通過校驗(yàn)和配喳、序列號(hào)识补、確認(rèn)應(yīng)答族淮、重發(fā)控制、連接管理以及窗口控制等機(jī)制實(shí)現(xiàn)可靠性傳輸凭涂。此外祝辣,還具備流量控制、擁塞控制和提高網(wǎng)絡(luò)利用率等眾多功 能切油。

UDP的全稱是User Datagram Protocol,即用戶數(shù)據(jù)報(bào)協(xié)議蝙斜。UDP是一個(gè)非常簡單的傳輸層協(xié)議,并不提供可靠性澎胡。因此孕荠,UDP經(jīng)常應(yīng)用在以下幾個(gè)方面:

  • 包總量較少的通信(DNS娩鹉、SNMP)
  • 視頻、音頻等多媒體通信(即時(shí)通信)
  • 限定于LAN等特定網(wǎng)絡(luò)中的應(yīng)用通信
  • 廣播通信(廣播稚伍、多播)

數(shù)據(jù)格式

TCP通信過程中傳遞的數(shù)據(jù)單位是報(bào)文段,每一個(gè)報(bào)文段的首部是20字節(jié)弯予,如下圖所示

Sequence Number(Seq):代表序列號(hào),按順序給發(fā)送數(shù)據(jù)的每一個(gè)字節(jié)(8位字節(jié))都標(biāo)上號(hào)碼的編號(hào)个曙。確認(rèn)應(yīng)答處理锈嫩、重發(fā)控制以及重復(fù)控制等功能都可以聽過序列號(hào)實(shí)現(xiàn)。

Acknowledgment Number(ACK):負(fù)責(zé)確認(rèn)應(yīng)答垦搬,當(dāng)發(fā)送端的數(shù)據(jù)達(dá)到接收主機(jī)時(shí)呼寸,接收端主機(jī)會(huì)返回一個(gè)已收到消息的通知。這個(gè)消息叫做確認(rèn)應(yīng)答(ACK)悼沿。

TCP Flags:標(biāo)識(shí)位,其中S表示SYN,代表同步序號(hào)骚灸;F表示FIN糟趾,代表完成數(shù)據(jù)發(fā)送;R表示RST甚牲,代表復(fù)位連接义郑;P表示PSH,盡快發(fā)送數(shù)據(jù)丈钙,以上的標(biāo)志用bit的0或1表示非驮。

Window:窗口大小,用于流量控制和擁塞控制。

連接管理

TCP是一個(gè)面向連接的協(xié)議雏赦,因此在正式發(fā)送數(shù)據(jù)之前需要在通信的雙方建立一條連接劫笙。同樣,在完成數(shù)據(jù)傳遞后需要雙方將通信的連接斷開星岗。正常的通信過程至少來回發(fā)送7個(gè)包才能夠完成填大,這就是所謂的三次握手、四次揮手俏橘。

三次握手
三次握手
TCP狀態(tài)轉(zhuǎn)換圖

TCP狀態(tài)圖說明

實(shí)線:代表客戶端的正常狀態(tài)變遷

虛線:代表服務(wù)器的正常狀態(tài)變遷

應(yīng)用進(jìn)程:說明當(dāng)應(yīng)用執(zhí)行某種操作時(shí)發(fā)生的狀態(tài)變遷

收:說明當(dāng)收到TCP報(bào)文段時(shí)狀態(tài)變遷

發(fā):說明為了進(jìn)行某個(gè)狀態(tài)變遷要發(fā)送的TCP報(bào)文段

流量控制

擁塞控制

參考文獻(xiàn)

[https://zh.wikipedia.org/wiki/%E4%BC%A0%E8%BE%93%E5%B1%82]

[https://zh.wikipedia.org/wiki/%E7%94%A8%E6%88%B7%E6%95%B0%E6%8D%AE%E6%8A%A5%E5%8D%8F%E8%AE%AE]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末允华,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子寥掐,更是在濱河造成了極大的恐慌靴寂,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件召耘,死亡現(xiàn)場離奇詭異百炬,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)污它,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門收壕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來妓灌,“玉大人,你說我怎么就攤上這事蜜宪〕婀。” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵圃验,是天一觀的道長掉伏。 經(jīng)常有香客問我,道長澳窑,這世上最難降的妖魔是什么斧散? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮摊聋,結(jié)果婚禮上鸡捐,老公的妹妹穿的比我還像新娘。我一直安慰自己麻裁,他們只是感情好箍镜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著煎源,像睡著了一般色迂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上手销,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天歇僧,我揣著相機(jī)與錄音,去河邊找鬼锋拖。 笑死诈悍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的兽埃。 我是一名探鬼主播写隶,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼讲仰!你這毒婦竟也來了慕趴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤鄙陡,失蹤者是張志新(化名)和其女友劉穎冕房,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趁矾,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡耙册,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了毫捣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片详拙。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡帝际,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出饶辙,到底是詐尸還是另有隱情蹲诀,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布弃揽,位于F島的核電站脯爪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏矿微。R本人自食惡果不足惜痕慢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涌矢。 院中可真熱鬧掖举,春花似錦、人聲如沸娜庇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽思灌。三九已至俺叭,卻和暖如春恭取,著一層夾襖步出監(jiān)牢的瞬間泰偿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國打工蜈垮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耗跛,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓攒发,卻偏偏與公主長得像调塌,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惠猿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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

  • 個(gè)人認(rèn)為羔砾,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,051評(píng)論 0 8
  • 1 運(yùn)輸層協(xié)議概述 1.1 進(jìn)程之間的通信 網(wǎng)絡(luò)層是為主機(jī)之間提供邏輯通信偶妖,而運(yùn)輸層為應(yīng)用進(jìn)程之間提供端到端的邏輯...
    Mr希靈閱讀 8,073評(píng)論 0 34
  • 1.這篇文章不是本人原創(chuàng)的姜凄,只是個(gè)人為了對(duì)這部分知識(shí)做一個(gè)整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,037評(píng)論 6 174
  • 18.1 引言 TCP是一個(gè)面向連接的協(xié)議趾访。無論哪一方向另一方發(fā)送數(shù)據(jù)之前态秧,都必須先在雙方之間建立一條連接。本章將...
    張芳濤閱讀 3,344評(píng)論 0 13
  • 計(jì)算機(jī)網(wǎng)絡(luò)七層模型中扼鞋,傳輸層有兩個(gè)重要的協(xié)議:(1)用戶數(shù)據(jù)報(bào)協(xié)議UDP (User Datagram Proto...
    Q南南南Q閱讀 1,703評(píng)論 0 3