版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第 5 章 運輸層1第 5 章 運輸層 5.1 運輸層協(xié)議概述 5.1.1 進程之間的通信 5.1.2 運輸層中的兩個協(xié)議 5.1.3 運輸層的端口5.2 用戶數(shù)據(jù)報協(xié)議 UDP 5.2.1 UDP 概述5.2.2 UDP 的首部格式2第 8章 運輸層(續(xù))5.3 傳輸控制協(xié)議 TCP 5.3.1 TCP 概述5.3.2 TCP 報文段的首部5.3.3 TCP 的數(shù)據(jù)編號與確認5.3.4 TCP 的流量控制與擁塞控制5.3.5 TCP 的重傳機制 5.3.6 TCP 的運輸連接管理 5.3.7 TCP 的有限狀態(tài)機 35.1 運輸層協(xié)議概述5.1.1 進程之間的通信 從通信和信息處理的角度看,
2、運輸層向它上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,同時也是用戶功能中的最低層。 物理層網(wǎng)絡(luò)層運輸層應(yīng)用層數(shù)據(jù)鏈路層面向信息處理面向通信用戶功能網(wǎng)絡(luò)功能4運輸層為相互通信的應(yīng)用進程提供了邏輯通信 54321運輸層提供應(yīng)用進程間的邏輯通信主機 A主機 B應(yīng)用進程應(yīng)用進程路由器 1路由器 2AP1LAN2WANAP2AP3AP4IP 層LAN1AP1AP2AP4端口端口54321IP 協(xié)議的作用范圍運輸層協(xié)議 TCP 和 UDP 的作用范圍AP35應(yīng)用進程之間的通信兩個主機進行通信實際上就是兩個主機中的應(yīng)用進程互相通信。 應(yīng)用進程之間的通信又稱為端到端的通信。 運輸層的一個很重要的功能
3、就是復(fù)用和分用。應(yīng)用層不同進程的報文通過不同的端口向下交到運輸層,再往下就共用網(wǎng)絡(luò)層提供的服務(wù)。當(dāng)報文到達目的主機時,目的主機的運輸層使用分用功能,通過不同的端口將報文分別交付給不同的應(yīng)用進程。“運輸層提供應(yīng)用進程間的邏輯通信”。“邏輯通信”的意思是:運輸層之間的通信好像是沿水平方向傳送數(shù)據(jù)。但事實上這兩個運輸層之間并沒有一條水平方向的物理連接。6運輸層協(xié)議和網(wǎng)絡(luò)層協(xié)議的主要區(qū)別 應(yīng)用進程應(yīng)用進程IP 協(xié)議的作用范圍(提供主機之間的邏輯通信)TCP 和 UDP 協(xié)議的作用范圍(提供進程之間的邏輯通信)因 特 網(wǎng)7運輸層的主要功能 運輸層為應(yīng)用進程之間提供端到端的邏輯通信(但網(wǎng)絡(luò)層是為主機之間提
4、供邏輯通信)。運輸層還要對收到的報文進行差錯檢測。運輸層需要有兩種不同的運輸協(xié)議,即面向連接的 TCP 和無連接的 UDP。 8運輸層與其上下層之間的關(guān)系的 OSI 表示法 運輸實體運輸實體運輸協(xié)議運輸層層接口 運輸服務(wù)用戶(應(yīng)用層實體) 運輸服務(wù)用戶 (應(yīng)用層實體)層接口 網(wǎng)絡(luò)層(或網(wǎng)際層)應(yīng)用層主機 A主機 B運輸層服務(wù)訪問點TSAP網(wǎng)絡(luò)層服務(wù)訪問點NSAP9運輸層向上提供可靠的和不可靠的邏輯通信信道 ?應(yīng)用層運輸層發(fā)送進程接收進程接收進程數(shù)據(jù)數(shù)據(jù)全雙工可靠信道數(shù)據(jù)數(shù)據(jù)使用 TCP 協(xié)議使用 UDP 協(xié)議不可靠信道發(fā)送進程10TCP/IP的運輸層有兩個不同的協(xié)議:(1) 用戶數(shù)據(jù)報協(xié)議 U
5、DP (User Datagram Protocol)(2) 傳輸控制協(xié)議 TCP (Transmission Control Protocol)5.1.2 運輸層中的兩個協(xié)議11TCP/IP 體系中的運輸層協(xié)議 TCPUDPIP應(yīng)用層與各種網(wǎng)絡(luò)接口運輸層12兩個對等運輸實體在通信時傳送的數(shù)據(jù)單位叫作運輸協(xié)議數(shù)據(jù)單元 TPDU (Transport Protocol Data Unit)。TCP 傳送的數(shù)據(jù)單位協(xié)議是 TCP 報文段(segment) UDP 傳送的數(shù)據(jù)單位協(xié)議是 UDP 報文或用戶數(shù)據(jù)報。 TCP 與 UDP 13TCP 與 UDP UDP 在傳送數(shù)據(jù)之前不需要先建立連接。對
6、方的運輸層在收到 UDP 報文后,不需要給出任何確認。雖然 UDP 不提供可靠交付,但在某些情況下 UDP 是一種最有效的工作方式。TCP 則提供面向連接的服務(wù)。TCP 不提供廣播或多播服務(wù)。由于 TCP 要提供可靠的、面向連接的運輸服務(wù),因此不可避免地增加了許多的開銷。這不僅使協(xié)議數(shù)據(jù)單元的首部增大很多,還要占用許多的處理機資源。 145.1.3 運輸層的端口端口就是運輸層服務(wù)訪問點 TSAP。端口的作用就是讓應(yīng)用層的各種應(yīng)用進程都能將其數(shù)據(jù)通過端口向下交付給運輸層,以及讓運輸層知道應(yīng)當(dāng)將其報文段中的數(shù)據(jù)向上通過端口交付給應(yīng)用層相應(yīng)的進程。從這個意義上講,端口是用來標(biāo)志應(yīng)用層的進程。 15端
7、口在進程之間的通信中所起的作用 應(yīng)用層運輸層網(wǎng)絡(luò)層TCP 報文段UDP用戶數(shù)據(jù)報應(yīng)用進程TCP 復(fù)用IP 復(fù)用UDP 復(fù)用TCP 報文段UDP用戶數(shù)據(jù)報應(yīng)用進程端口端口TCP 分用UDP 分用IP 分用IP 數(shù)據(jù)報IP 數(shù)據(jù)報發(fā)送方接收方16端口 端口用一個 16 位端口號進行標(biāo)志。端口號只具有本地意義,即端口號只是為了標(biāo)志本計算機應(yīng)用層中的各進程。在因特網(wǎng)中不同計算機的相同端口號是沒有聯(lián)系的。17三類端口 (1) 熟知端口:其數(shù)值一般為 01023。這類端口由ICANN負責(zé)分配給一些常用的應(yīng)用層程序固定使用。(2) 登記端口:其數(shù)值為 102449151。這類端口是 ICANN 控制的,使用
8、這個范圍的端口必須在 ICANN 登記,以防止重復(fù)。(3) 動態(tài)端口:其數(shù)值為 4915165535。這類端口是留給客戶進程選擇作為臨時端口。185.2 用戶數(shù)據(jù)報協(xié)議 UDP 5.2.1 UDP 概述 UDP 只在 IP 的數(shù)據(jù)報服務(wù)之上增加了很少一點的功能,即端口的功能和差錯檢測的功能。雖然 UDP 用戶數(shù)據(jù)報只能提供不可靠的交付,但 UDP 在某些方面有其特殊的優(yōu)點。發(fā)送數(shù)據(jù)之前不需要建立連接UDP 的主機不需要維持復(fù)雜的連接狀態(tài)表。UDP 用戶數(shù)據(jù)報只有 8 個字節(jié)的首部開銷。網(wǎng)絡(luò)出現(xiàn)的擁塞不會使源主機的發(fā)送速率降低。這對某些實時應(yīng)用是很重要的。 19UDP 的特點UDP 是無連接的,
9、即發(fā)送數(shù)據(jù)之前不需要建立連接(當(dāng)然發(fā)送數(shù)據(jù)結(jié)束時也沒有連接可釋放),因此減少了開銷和發(fā)送數(shù)據(jù)之前的時延。UDP 使用盡最大努力交付,即不保證可靠交付,同時也不使用擁塞控制,因此主機不需要維持具有許多參數(shù)的、復(fù)雜的連接狀態(tài)表。20UDP 的特點(續(xù))由于 UDP 沒有擁塞控制,因此網(wǎng)絡(luò)出現(xiàn)的擁塞不會使源主機的發(fā)送速率降低。這對某些實時應(yīng)用是很重要的。很多的實時應(yīng)用(如 IP 電話、實時視頻會議等)要求源主機以恒定的速率發(fā)送數(shù)據(jù),并且允許在網(wǎng)絡(luò)發(fā)生擁塞時丟失一些數(shù)據(jù),但卻不允許數(shù)據(jù)有太大的時延。UDP 正好適合這種要求。 21UDP 的特點(續(xù))UDP 是面向報文的。這就是說,UDP 對應(yīng)用程序交
10、下來的報文不再劃分為若干個分組來發(fā)送,也不把收到的若干個報文合并后再交付給應(yīng)用程序。應(yīng)用程序交給 UDP 一個報文,UDP 就發(fā)送這個報文;而 UDP 收到一個報文,就把它交付給應(yīng)用程序。應(yīng)用程序必須選擇合適大小的報文。22UDP 的特點(續(xù))UDP 支持一對一、一對多、多對一和多對多的交互通信。用戶數(shù)據(jù)報只有 8 個字節(jié)的首部開銷,比 TCP 的 20 個字節(jié)的首部要短。235.2.2 UDP 用戶數(shù)據(jù)報的首部格式 偽首部源端口目的端口長 度檢驗和數(shù) 據(jù)首 部UDP長度源 IP 地址目的 IP 地址017IP 數(shù)據(jù)報字節(jié)44112122222字節(jié)發(fā)送在前數(shù) 據(jù)首 部UDP 用戶數(shù)據(jù)報24偽首
11、部源端口目的端口長 度檢驗和數(shù) 據(jù)首 部UDP長度源 IP 地址目的 IP 地址017IP 數(shù)據(jù)報字節(jié)44112122222字節(jié)發(fā)送在前數(shù) 據(jù)首 部UDP 用戶數(shù)據(jù)報用戶數(shù)據(jù)報 UDP 有兩個字段:數(shù)據(jù)字段和首部字段。首部字段有 8 個字節(jié),由 4 個字段組成,每個字段都是兩個字節(jié)。 25偽首部源端口目的端口長 度檢驗和數(shù) 據(jù)首 部UDP長度源 IP 地址目的 IP 地址017IP 數(shù)據(jù)報字節(jié)44112122222字節(jié)發(fā)送在前數(shù) 據(jù)首 部UDP 用戶數(shù)據(jù)報在計算檢驗和時,臨時把“偽首部”和 UDP 用戶數(shù)據(jù)報連接在一起。偽首部僅僅是為了計算檢驗和。265.3 傳輸控制協(xié)議 TCP 5.3.1
12、TCP 概述 端口發(fā)送 TCP 報文段TCPTCP接收緩存發(fā)送緩存報文段報文段報文段端口發(fā)送方接收方向發(fā)送緩存寫入數(shù)據(jù)塊從接收緩存讀取數(shù)據(jù)塊應(yīng)用進程應(yīng)用進程27TCP 發(fā)送報文段通信是全雙工方式。發(fā)送方的應(yīng)用進程按照自己產(chǎn)生數(shù)據(jù)的規(guī)律,不斷地把數(shù)據(jù)塊陸續(xù)寫入到 TCP 的發(fā)送緩存中。TCP 再從發(fā)送緩存中取出一定數(shù)量的數(shù)據(jù),將其組成 TCP 報文段(segment)逐個傳送給 IP 層,然后發(fā)送出去。接收方從 IP 層收到 TCP 報文段后,先把它暫存在接收緩存中,然后讓接收方的應(yīng)用進程從接收緩存中將數(shù)據(jù)塊逐個讀取。 由于運輸層的通信是面向連接的,因此TCP 每一條連接上的通信只能是一對一的,
13、而不可能是一對多、多對一或多對多的。28運輸層實現(xiàn)可靠通信的基本原理傳輸層采用確認和超時重傳機制保證報文段的可靠傳輸。在IP層通信不可靠的情況下,使運輸層之間的通信成為可靠的。 29運輸層 A運輸層 B發(fā)送報文段 1確認報文段 1發(fā)送報文段 2出錯!丟棄出錯的報文段丟失!超時重傳報文段 2超時重傳報文段 2確認報文段 2發(fā)送報文段 3時間時間每發(fā)送一個報文段都要啟動計時器但圖中未畫出沒有起作用的計時器30應(yīng)當(dāng)注意A 在發(fā)送完一個報文段后,必須留有該報文段的副本,以便在必要時進行重傳。超時重傳時間的設(shè)定。如果重傳時間設(shè)定得很長,那么通信的效率就會很低。但如果重傳時間設(shè)定得很短,就浪費了網(wǎng)絡(luò)資源,
14、在網(wǎng)絡(luò)上增加了不必要的通信量。重傳時間的設(shè)定是相當(dāng)復(fù)雜。31運輸層 A運輸層 B發(fā)送報文段 1確認報文段 1發(fā)送報文段 2超時重傳報文段 2丟棄重復(fù)的報文段確認報文段 2發(fā)送報文段 3時間時間每發(fā)送一個報文段都要啟動計時器。但圖中未畫出沒有起作用的計時器。丟失!確認報文段 232確認也可能出錯或丟失B 所發(fā)送的對報文段 2 的確認丟失了。A無法知道是自己發(fā)送的報文段出錯、丟失或者是對方發(fā)送的確認丟失了。因此要對報文段 2 超時重傳。B 正確收到了報文段 2,采取兩個行動。丟棄這個報文段。向 A 發(fā)送確認。33TCP 可靠通信的具體實現(xiàn)很復(fù)雜TCP 的報文段的長度是不確定的,以報文段作為確認的單
15、位不夠方便。TCP 提供全雙工通信,可以在發(fā)送自己的數(shù)據(jù)報文段的同時,捎帶地把確認信息附上。為了提高通信傳輸效率,發(fā)送數(shù)據(jù)報文段的一方,可以連續(xù)發(fā)送多個數(shù)據(jù)報文段,而不需要在收到一個確認后才發(fā)送下一個報文段。要使用特定的算法來估算比較合適的重傳時間。34TCP 的首部格式TCP 報文段分為首部和數(shù)據(jù)兩部分。TCP 的全部功能都體現(xiàn)在它首部中各字段的作用。TCP 報文段首部的前 20個 字節(jié)是固定的,后面有 4N 字節(jié)是根據(jù)需要而增加的選項(N 必須是整數(shù))。因此 TCP 首部的最小長度是 20 字節(jié)。 35TCP首部20 字節(jié)的固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)
16、源 端 口序 號緊 急 指 針窗 口確 認 號保 留FIN32 位SYNRSTPSHACKURG位 0 8 16 24 31填 充TCP 數(shù)據(jù)部分TCP 首部TCP 報文段IP 數(shù)據(jù)部分IP 首部發(fā)送在前36TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充源端口和目的端口字段各占 2 字節(jié)。端口是運輸層與應(yīng)用層的服務(wù)接口。運輸層的復(fù)用和分用功能都要通過端口才能實現(xiàn)。 37TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (
17、長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充序號字段占 4 字節(jié)。TCP 連接中傳送的數(shù)據(jù)流中的每一個字節(jié)都編上一個序號。序號字段的值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。 38TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充確認號字段占 4 字節(jié),是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號。 39TCP首部20字節(jié)固定首部目
18、 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充數(shù)據(jù)偏移占 4 位,它指出 TCP 報文段的數(shù)據(jù)起始處距離 TCP 報文段的起始處有多遠(即報文的首部長度)?!皵?shù)據(jù)偏移”的單位是4 字節(jié)(32位)。 40TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充保留字段占 6 位,保留為今后使用,但目前應(yīng)置為 0。 41
19、TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充緊急位 URG 當(dāng) URG 1 時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級的數(shù)據(jù))。 42TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充確認位 ACK 只有當(dāng) ACK 1 時確認號字段才有效。
20、當(dāng) ACK 0 時,確認號無效。 43TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充推送位 PSH (PuSH) 接收 TCP 收到 PSH = 1 的報文段,就盡快地交付給接收應(yīng)用進程,而不再等到整個緩存都填滿了后再向上交付。 44TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充
21、復(fù)位位 RST (ReSeT) 當(dāng) RST 1 時,表明 TCP 連接中出現(xiàn)嚴重差錯(如由于主機崩潰或其他原因),必須釋放連接,然后再重新建立運輸連接。 45TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充同步位 SYN 當(dāng) SYN = 1 時,表示這是一個連接請求或連接接受報文。 46TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRST
22、PSHACKURG位 0 8 16 24 31填 充終止位 FIN (FINal) 用來釋放連接。當(dāng) FIN 1 時,表明此報文段的發(fā)送方的數(shù)據(jù)已發(fā)送完畢,并要求釋放運輸連接。 47TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充窗口字段 占 2 字節(jié)。窗口字段用來控制對方發(fā)送的數(shù)據(jù)量,單位為字節(jié)。TCP 連接的一端根據(jù)設(shè)置的緩存空間大小確定自己的接收窗口大小,然后通知對方以確定對方的發(fā)送窗口的上限。48TCP首部20字節(jié)固定首部目 的
23、端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充檢驗和 占 2 字節(jié)。檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分。在計算檢驗和時,要在 TCP 報文段的前面加上 12 字節(jié)的偽首部。49TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充緊急指針字段 占 16 位。緊急指針指出在本報文段中的緊急數(shù)據(jù)的最后一個字節(jié)的序號。
24、 50TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充選項字段 長度可變。TCP 只規(guī)定了一種選項,即最大報文段長度 MSS (Maximum Segment Size)。MSS 告訴對方 TCP:“我的緩存所能接收的報文段的數(shù)據(jù)字段的最大長度是 MSS 個字節(jié)?!?MSS 是 TCP 報文段中的數(shù)據(jù)字段的最大長度。數(shù)據(jù)字段加上 TCP 首部才等于整個的 TCP 報文段。51TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項
25、 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充填充字段 這是為了使整個首部長度是 4 字節(jié)的整數(shù)倍。 525.3.3 TCP 的數(shù)據(jù)編號與確認 TCP 協(xié)議是面向字節(jié)的。TCP 將所要傳送的報文看成是字節(jié)組成的數(shù)據(jù)流,并使每一個字節(jié)對應(yīng)于一個序號。在連接建立時,雙方要商定初始序號。TCP 每次發(fā)送的報文段的首部中的序號字段數(shù)值表示該報文段中的數(shù)據(jù)部分的第一個字節(jié)的序號。 TCP 的確認是對接收到的數(shù)據(jù)的最高序號表示確認。接收方返回的確認號是已收到的數(shù)據(jù)的最高序號加 1。因此確認號表示接收方期望下次收
26、到的數(shù)據(jù)中的第一個數(shù)據(jù)字節(jié)的序號。 535.3.4 TCP 的流量控制與擁塞控制1. 滑動窗口的概念TCP 采用大小可變的滑動窗口進行流量控制。窗口大小的單位是字節(jié)。在 TCP 報文段首部的窗口字段寫入的數(shù)值就是當(dāng)前給對方設(shè)置的發(fā)送窗口數(shù)值的上限。發(fā)送窗口在連接建立時由雙方商定。但在通信的過程中,接收方可根據(jù)自己的資源情況,隨時動態(tài)地調(diào)整對方的發(fā)送窗口上限值(可增大或減小)。 54收到確認即可前移1002003004005006007008009001012013014015016017018011發(fā)送窗口可發(fā)送不可發(fā)送指針發(fā)送方要發(fā)送 900 字節(jié)長的數(shù)據(jù),劃分為 9 個 100 字節(jié)長的報
27、文段,而發(fā)送窗口確定為 500 字節(jié)。發(fā)送方只要收到了對方的確認,發(fā)送窗口就可前移。發(fā)送 TCP 要維護一個指針。每發(fā)送一個報文段,指針就向前移動一個報文段的距離。55收到確認即可前移1002003004005006007008009001012013014015016017018011可發(fā)送不可發(fā)送指針1002003004005006007008009001012013014015016017018011發(fā)送窗口可發(fā)送不可發(fā)送指針發(fā)送窗口前移發(fā)送方已發(fā)送了 400 字節(jié)的數(shù)據(jù),但只收到對前 200 字節(jié)數(shù)據(jù)的確認,同時窗口大小不變?,F(xiàn)在發(fā)送方還可發(fā)送 300 字節(jié)。 已發(fā)送并被確認已發(fā)送但未
28、被確認561002003004005006007008009001012013014015016017018011已發(fā)送并被確認已發(fā)送但未被確認可發(fā)送不可發(fā)送指針1002003004005006007008009001012013014015016017018011已發(fā)送并被確認可發(fā)送不可發(fā)送指針發(fā)送窗口前移發(fā)送窗口縮小發(fā)送方收到了對方對前 400 字節(jié)數(shù)據(jù)的確認,但對方通知發(fā)送方必須把窗口減小到 400 字節(jié)?,F(xiàn)在發(fā)送方最多還可發(fā)送 400 字節(jié)的數(shù)據(jù)。 57利用可變窗口大小進行流量控制開始雙方確定的窗口值是 400 seq = 1, DATAseq = 201, DATAseq = 401
29、, DATAseq = 301, DATAseq = 101, DATAseq = 501, DATAACK = 1, ack = 201, win = 300ACK = 1, ack = 601, win = 0ACK = 1, ack = 501, win = 100主機 A主機 B允許 A 發(fā)送序號 201 500 共 300 字節(jié)的數(shù)據(jù)A 發(fā)送了數(shù)據(jù)(序號 301400),還能發(fā)送 100 字節(jié)A 超時重發(fā)舊的數(shù)據(jù)允許 A 發(fā)送序號 501 至 600 共 100 字節(jié)的數(shù)據(jù)A 發(fā)送 了數(shù)據(jù)(序號 501 至 600),發(fā)送窗口已用完不允許 A 再發(fā)送數(shù)據(jù)seq = 201, DATA
30、丟失!A 發(fā)送了數(shù)據(jù)(序號 1100),還能發(fā)送 300 字節(jié)A 發(fā)送了數(shù)據(jù)(序號 101200),還能發(fā)送 200 字節(jié)A 發(fā)送了數(shù)據(jù)(序號 401500) ,發(fā)送窗口已用完582. 慢開始和擁塞避免不講593. 快重傳和快恢復(fù)不講605.3.7 TCP 的運輸連接管理1. 運輸連接的三個階段 運輸連接就有三個階段,即:連接建立、數(shù)據(jù)傳送和連接釋放。運輸連接的管理就是使運輸連接的建立和釋放都能正常地進行。連接建立過程中要解決以下三個問題:要使每一方能夠確知對方的存在。要允許雙方協(xié)商一些參數(shù)(如最大報文段長度,最大窗口大小,服務(wù)質(zhì)量等)。能夠?qū)\輸實體資源(如緩存大小,連接表中的項目等)進行分
31、配。 61客戶服務(wù)器方式 TCP 的連接和建立都是采用客戶服務(wù)器方式。主動發(fā)起連接建立的應(yīng)用進程叫做客戶(client)。被動等待連接建立的應(yīng)用進程叫做服務(wù)器(server)。 62用三次握手建立 TCP 連接 SYN = 1, seq = x主機 BSYN = 1, ACK = 1, seq = y, ack= x 1ACK = 1, seq = x + 1, ack = y 1被動打開主動打開B 發(fā)送確認A 發(fā)送確認主機 A連接請求連接建立狀態(tài)63建立 TCP 連接A 的 TCP 向 B 發(fā)出連接請求報文段,其首部中的同步位 SYN = 1,并選擇序號 x,表明下一個報文段的第一個數(shù)據(jù)字節(jié)的序號是 x + 1。 B 的 TCP 收到連接請求報文段后,如同意,則發(fā)回確認,在確認報文段中使 SYN = 1 和 ACK = 1,其確認號應(yīng)為 ack = x 1,并選擇序號seq = y。A 收到此報文段后,向 B 給出確認,其 ACK = 1,序號應(yīng)為 seq = x + 1,確認號應(yīng)為 ack = y 1。A 的 TCP 通知上層應(yīng)用進程,連接已經(jīng)建立。當(dāng)運行服務(wù)器進程的主機 B 的 TCP 收到主機 A 的確認后,也通知其上層應(yīng)用進程,連接已經(jīng)建立。 64三次
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度文化傳播公司公司掛靠文化傳播合作協(xié)議3篇
- 2025年度食堂員工綜合培訓(xùn)與服務(wù)合同3篇
- 二零二五年度全日制勞務(wù)合同書(新能源發(fā)電運維)3篇
- 二零二五年度農(nóng)村土地承包權(quán)與農(nóng)業(yè)科技應(yīng)用合作合同3篇
- 2025年度養(yǎng)羊產(chǎn)業(yè)市場調(diào)研與分析合作協(xié)議2篇
- 二零二五年度勞動合同集合與勞動爭議預(yù)防合同3篇
- 二零二五年度衛(wèi)浴行業(yè)綠色環(huán)保產(chǎn)品認證合同3篇
- 2025年度光伏電站設(shè)備維修保養(yǎng)合同3篇
- 2025年度員工合同模板匯編:員工培訓(xùn)與發(fā)展計劃篇2篇
- 2025年度新能源汽車充電樁合作股權(quán)協(xié)議書模板3篇
- 2024-2030年全球與中國汽車音頻DSP芯片組市場銷售前景及競爭策略分析報告
- 2025禮品定制合同范本
- 醫(yī)院消毒隔離制度范文(2篇)
- 2024年01月11026經(jīng)濟學(xué)(本)期末試題答案
- 烘干煤泥合同范例
- 2025年“三基”培訓(xùn)計劃
- 第20課 北洋軍閥統(tǒng)治時期的政治、經(jīng)濟與文化 教案
- 住房公積金稽核審計工作方案例文(4篇)
- 山東省青島實驗高中2025屆高三物理第一學(xué)期期末綜合測試試題含解析
- 物理人教版2024版八年級上冊6.2密度課件03
- 2024-2030年中國光纖傳感器行業(yè)競爭格局及發(fā)展趨勢分析報告
評論
0/150
提交評論