計(jì)算機(jī)網(wǎng)絡(luò)-運(yùn)輸層

計(jì)算機(jī)網(wǎng)絡(luò)-運(yùn)輸層

運(yùn)輸層協(xié)議概述

進(jìn)程間的通信

運(yùn)輸層向它上面的應(yīng)用層提供通信服務(wù)关带,它屬于面向通信部分的最高層,同時也是用戶功能中的最低層


image.png

通信的真正端點(diǎn)并不是主機(jī)而是主機(jī)中的進(jìn)程

網(wǎng)絡(luò)層和運(yùn)輸層的區(qū)別

image.png

運(yùn)輸層的兩個主要協(xié)議

  • TCP 傳輸控制協(xié)議
  • UDP 用戶數(shù)據(jù)報協(xié)議

UDP:一種無連接協(xié)議

提供無連接服務(wù)虚吟。
在傳送數(shù)據(jù)之前不需要先建立連接邀摆。
傳送的數(shù)據(jù)單位協(xié)議是 UDP 報文或用戶數(shù)據(jù)報羔挡。
對方的運(yùn)輸層在收到 UDP 報文后洁奈,不需要給出任何確認(rèn)。
雖然 UDP 不提供可靠交付绞灼,但在某些情況下 UDP 是一種最有效的工作方式利术。

TCP:一種面向連接的協(xié)議

提供面向連接的服務(wù)。
傳送的數(shù)據(jù)單位協(xié)議是 TCP 報文段 (segment)低矮。
TCP 不提供廣播或多播服務(wù)印叁。
由于 TCP 要提供可靠的、面向連接的運(yùn)輸服務(wù)军掂,因此不可避免地增加了許多的開銷轮蜕。這不僅使協(xié)議數(shù)據(jù)單元的首部增大很多,還要占用許多的處理機(jī)資源蝗锥。

運(yùn)輸層的端口

為了標(biāo)志本計(jì)算機(jī)應(yīng)用層中的各進(jìn)程

image.png

服務(wù)端端口跃洛!=客戶端端口

客戶端端口-短暫端口

當(dāng)服務(wù)器進(jìn)程收到客戶進(jìn)程的報文時,就知道了客戶進(jìn)程所使用的動態(tài)端口號终议。通信結(jié)束后汇竭,這個端口號可供其他客戶進(jìn)程以后使用。

UDP 協(xié)議

UDP 只在 IP 的數(shù)據(jù)報服務(wù)之上增加了很少一點(diǎn)的功能:

  • 復(fù)用和分用的功能
  • 差錯檢測的功能

特點(diǎn)

  • UDP 是無連接的穴张,發(fā)送數(shù)據(jù)之前不需要建立連接细燎,,因此減少了開銷和發(fā)送數(shù)據(jù)之前的時延陆馁。
  • UDP 使用盡最大努力交付找颓,即不保證可靠交付合愈,因此主機(jī)不需要維持復(fù)雜的連接狀態(tài)表叮贩。
  • UDP 是面向報文的击狮。UDP 對應(yīng)用層交下來的報文,既不合并益老,也不拆分彪蓬,而是保留這些報文的邊界。UDP 一次交付一個完整的報文捺萌。
  • UDP 沒有擁塞控制档冬,因此網(wǎng)絡(luò)出現(xiàn)的擁塞不會使源主機(jī)的發(fā)送速率降低。這對某些實(shí)時應(yīng)用是很重要的桃纯。很適合多媒體通信的要求酷誓。
  • UDP 支持一對一、一對多态坦、多對一和多對多的交互通信盐数。
  • UDP 的首部開銷小,只有 8 個字節(jié)伞梯,比 TCP 的 20 個字節(jié)的首部要短玫氢。
image.png

UDP 首部格式

image.png

偽首部僅僅是為了計(jì)算檢驗(yàn)和

端口分用

image.png

當(dāng)運(yùn)輸層從 IP 層收到 UDP 數(shù)據(jù)報時,就根據(jù)首部中的目的端口谜诫,把 UDP 數(shù)據(jù)報通過相應(yīng)的端口漾峡,上交最后的終點(diǎn)——應(yīng)用進(jìn)程

傳輸控制協(xié)議 TCP

  • TCP 是面向連接的運(yùn)輸層協(xié)議。
  • 每一條 TCP 連接只能有兩個端點(diǎn) (endpoint)喻旷,每一條 TCP 連接只能是點(diǎn)對點(diǎn)的(一對一)生逸。
  • TCP 提供可靠交付的服務(wù)。
  • TCP 提供全雙工通信掰邢。
  • 面向字節(jié)流
    • TCP 中的“流”(stream) 指的是流入或流出進(jìn)程的字節(jié)序列牺陶。
    • “面向字節(jié)流”的含義是:雖然應(yīng)用程序和 TCP 的交互是一次一個數(shù)據(jù)塊,但 TCP 把應(yīng)用程序交下來的數(shù)據(jù)看成僅僅是一連串無結(jié)構(gòu)的字節(jié)流辣之。
image.png

TCP 不關(guān)心應(yīng)用進(jìn)程一次把多長的報文發(fā)送到 TCP 緩存掰伸。
TCP 對連續(xù)的字節(jié)流進(jìn)行分段,形成 TCP 報文段
TCP 根據(jù)對方給出的窗口值和當(dāng)前網(wǎng)絡(luò)擁塞的程度來決定一個報文段應(yīng)包含多少個字節(jié)(UDP 發(fā)送的報文長度是應(yīng)用進(jìn)程給出的)

TCP連接

同一個 IP 地址可以有多個不同的 TCP 連接怀估。
同一個端口號也可以出現(xiàn)在多個不同的 TCP 連接中

TCP 連接的端點(diǎn)叫做套接字 (socket)

套接字

image.png

每一條 TCP 連接唯一地被通信兩端的兩個端點(diǎn)(即兩個套接字)所確定

image.png

可靠傳輸工作原理

理想傳輸條件

  • 傳輸信道不產(chǎn)生差錯狮鸭。
  • 不管發(fā)送方以多快的速度發(fā)送數(shù)據(jù),接收方總是來得及處理收到的數(shù)據(jù)多搀。

在這樣的理想傳輸條件下歧蕉,不需要采取任何措施就能夠?qū)崿F(xiàn)可靠傳輸。
然而實(shí)際的網(wǎng)絡(luò)都不具備以上兩個理想條件康铭。必須使用一些可靠傳輸協(xié)議惯退,在不可靠的傳輸信道實(shí)現(xiàn)可靠傳輸。

停止等待協(xié)議

每發(fā)送完一個分組就停止發(fā)送从藤,等待對方的確認(rèn)催跪。在收到確認(rèn)后再發(fā)送下一個分組锁蠕。

出現(xiàn)插查錯

  • 接收方B 接收數(shù)據(jù)后檢測出現(xiàn)錯誤,丟棄
  • 傳輸過程中丟失
超時重傳

接收方B 不會發(fā)送任何消息回發(fā)送方懊蒸,此時發(fā)送方A 超過一定時間后荣倾,會重新發(fā)送到接收方

確認(rèn)丟失

接收方發(fā)B 送給發(fā)送方A 的確認(rèn)丟失

這會觸發(fā)發(fā)送方A 超時重傳,接收方又收到了重傳的分組M1 骑丸。這時 接收方B 應(yīng)采取兩個行動:

  1. 丟棄這個重復(fù)的分組 M1舌仍,不向上層交付。
  2. 向 發(fā)送方A 發(fā)送確認(rèn)通危。不能認(rèn)為已經(jīng)發(fā)送過確認(rèn)就不再發(fā)送铸豁,因?yàn)?發(fā)送方A 之所以重傳分組M1 就表示 A 沒有收到對 M1 的確認(rèn)。

確認(rèn)遲到

傳輸過程中沒有出現(xiàn)差錯菊碟,但 接收方B 對分組 M1 的確認(rèn)遲到了推姻。
發(fā)送方A 會收到重復(fù)的確認(rèn)。對重復(fù)的確認(rèn)的處理很簡單:收下后就丟棄框沟。
接收方B 仍然會收到重復(fù)的 分組M1藏古,并且同樣要丟棄重復(fù)的 M1,并重傳確認(rèn)分組忍燥。

自動重傳請求 ARQ

重傳的請求是自動進(jìn)行的拧晕,接收方不需要請求發(fā)送方重傳某個出錯的分組。

連續(xù)ARQ協(xié)議

滑動窗口協(xié)議比較復(fù)雜梅垄,是 TCP 協(xié)議的精髓所在厂捞。
發(fā)送方維持的發(fā)送窗口,它的意義是:位于發(fā)送窗口內(nèi)的分組都可連續(xù)發(fā)送出去队丝,而不需要等待對方的確認(rèn)靡馁。這樣,信道利用率就提高了机久。
連續(xù) ARQ 協(xié)議規(guī)定臭墨,發(fā)送方每收到一個確認(rèn),就把發(fā)送窗口向前滑動一個分組的位置

累計(jì)確認(rèn)

對按序到達(dá)的最后一個分組發(fā)送確認(rèn)膘盖,到這個分組為止的所有分組都已正確收到了

Go-back-N

如果發(fā)送方發(fā)送了前 5 個分組胧弛,而中間的第 3 個分組丟失了。這時接收方只能對前兩個分組發(fā)出確認(rèn)侠畔。發(fā)送方無法知道后面三個分組的下落结缚,而只好把后面的三個分組都再重傳一次。
這就叫做 Go-back-N(回退 N)软棺,表示需要再退回來重傳已發(fā)送過的 N 個分組

TCP 報文段首部格式

image.png
  • 源端口和目的端口字段——各占 2 字節(jié)
    端口是運(yùn)輸層與應(yīng)用層的服務(wù)接口红竭。運(yùn)輸層的復(fù)用和分用功能都要通過端口才能實(shí)現(xiàn)。
  • 序號字段——占 4 字節(jié)
    TCP 連接中傳送的數(shù)據(jù)流中的每一個字節(jié)都編上一個序號。序號字段的值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號茵宪。
  • 確認(rèn)號字段——占 4 字節(jié)
    是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號
  • 數(shù)據(jù)偏移(即首部長度)——占 4 位
    它指出 TCP 報文段的數(shù)據(jù)起始處距離 TCP 報文段的起始處有多遠(yuǎn)斥黑。“數(shù)據(jù)偏移”的單位是 32 位字(以 4 字節(jié)為計(jì)算單位)
  • 保留字段——占 6 位
    保留為今后使用眉厨,但目前應(yīng)置為 0
  • 緊急 URG
    當(dāng) URG =1 時,表明緊急指針字段有效兽狭。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù)憾股,應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級的數(shù)據(jù))
  • 確認(rèn) ACK
    只有當(dāng) ACK = 1 時確認(rèn)號字段才有效。當(dāng) ACK = 0 時箕慧,確認(rèn)號無效服球。
  • 推送 PSH (PuSH)
    接收 TCP 收到 PSH = 1 的報文段,就盡快地交付接收應(yīng)用進(jìn)程颠焦,而不再等到整個緩存都填滿了后再向上交付
  • 復(fù)位 RST (ReSeT)
    當(dāng) RST = 1 時斩熊,表明 TCP 連接中出現(xiàn)嚴(yán)重差錯(如由于主機(jī)崩潰或其他原因),必須釋放連接伐庭,然后再重新建立運(yùn)輸連接
  • 同步 SYN
    同步 SYN = 1 表示這是一個連接請求或連接接受報文
  • 終止 FIN (FINish)
    用來釋放一個連接粉渠。FIN ? 1 表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接
  • 窗口字段
    占 2 字節(jié)圾另,用來讓對方設(shè)置發(fā)送窗口的依據(jù)霸株,單位為字節(jié)
  • 檢驗(yàn)和 —— 占 2 字節(jié)
    檢驗(yàn)和字段檢驗(yàn)的范圍包括首部和數(shù)據(jù)這兩部分。在計(jì)算檢驗(yàn)和時集乔,要在 TCP 報文段的前面加上 12 字節(jié)的偽首部(源ip去件,目的ip,0扰路,17尤溜,長度)

TCP 的運(yùn)輸連接管理

  • 連接建立
  • 數(shù)據(jù)傳送
  • 連接釋放
image.png

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市汗唱,隨后出現(xiàn)的幾起案子宫莱,更是在濱河造成了極大的恐慌,老刑警劉巖哩罪,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梢睛,死亡現(xiàn)場離奇詭異,居然都是意外死亡识椰,警方通過查閱死者的電腦和手機(jī)绝葡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腹鹉,“玉大人藏畅,你說我怎么就攤上這事。” “怎么了愉阎?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵绞蹦,是天一觀的道長。 經(jīng)常有香客問我榜旦,道長幽七,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任溅呢,我火速辦了婚禮澡屡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咐旧。我一直安慰自己驶鹉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布铣墨。 她就那樣靜靜地躺著室埋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪伊约。 梳的紋絲不亂的頭發(fā)上姚淆,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機(jī)與錄音屡律,去河邊找鬼肉盹。 笑死,一個胖子當(dāng)著我的面吹牛疹尾,可吹牛的內(nèi)容都是我干的上忍。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼纳本,長吁一口氣:“原來是場噩夢啊……” “哼窍蓝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起繁成,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤吓笙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后巾腕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體面睛,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年尊搬,在試婚紗的時候發(fā)現(xiàn)自己被綠了叁鉴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡佛寿,死狀恐怖幌墓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤常侣,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布蜡饵,位于F島的核電站,受9級特大地震影響胳施,放射性物質(zhì)發(fā)生泄漏溯祸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一舞肆、第九天 我趴在偏房一處隱蔽的房頂上張望焦辅。 院中可真熱鬧,春花似錦胆绊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至跟继,卻和暖如春种冬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背舔糖。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工娱两, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人金吗。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓十兢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親摇庙。 傳聞我的和親對象是個殘疾皇子旱物,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評論 2 350

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