計算機網(wǎng)絡-謝希仁第六版第五講傳輸層zm2014下_第1頁
計算機網(wǎng)絡-謝希仁第六版第五講傳輸層zm2014下_第2頁
計算機網(wǎng)絡-謝希仁第六版第五講傳輸層zm2014下_第3頁
計算機網(wǎng)絡-謝希仁第六版第五講傳輸層zm2014下_第4頁
計算機網(wǎng)絡-謝希仁第六版第五講傳輸層zm2014下_第5頁
已閱讀5頁,還剩69頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、12本講要求本講要求1 理解傳輸層解決的基本問題理解傳輸層解決的基本問題2 理解數(shù)據(jù)源和目的地的標識問題理解數(shù)據(jù)源和目的地的標識問題3 理解理解UDP協(xié)議的基本功能、報文格式協(xié)議的基本功能、報文格式4 理解理解TCP協(xié)議的報文格式協(xié)議的報文格式5 掌握掌握TCP協(xié)議的連接建立、關閉過程協(xié)議的連接建立、關閉過程3傳輸層為應用提供端到端的控制傳輸層為應用提供端到端的控制比特流比特流物理層物理層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層網(wǎng)絡層網(wǎng)絡層傳輸層傳輸層應用層應用層比特流比特流物理層物理層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層網(wǎng)絡層網(wǎng)絡層物理層物理層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層網(wǎng)絡層網(wǎng)絡層傳輸層傳輸層應用層應用層主機主機A主機主機B點到點點

2、到點點到點點到點端到端端到端 “點到點點到點”到到“端到端端到端”是一次質的飛躍是一次質的飛躍 4網(wǎng)絡層沒有解決的問題網(wǎng)絡層沒有解決的問題 端到端的傳輸服務標識 網(wǎng)絡層僅有網(wǎng)絡層地址,還需要進程標識 端到端的服務質量問題 網(wǎng)絡層是一種盡最大努力交付Best-effort 服務, 不保證可靠性無法確定數(shù)據(jù)到達目的地的時間無法確定數(shù)據(jù)到達目的地的狀態(tài) 丟失 重復 亂序 無法解決!5傳輸層基本問題分析(脈傳輸層基本問題分析(脈 絡)絡) 通信源和目的地標識問題 數(shù)據(jù)從何而來?奔向何方?即數(shù)據(jù)傳輸?shù)淖畛踉嫉睾妥罱K目的地如何標識? 服務質量問題 傳輸層如何實現(xiàn)可靠性?擁塞控制機制?流量控制機制?其他相

3、關問題? 用戶數(shù)據(jù)報協(xié)議UDP 傳輸控制協(xié)議TCP進程之間的通信進程之間的通信 兩個主機進行通信實際上就是兩個主機中的 應用進程互相通信。 應用進程之間的通信又稱為端到端的通信。 “傳輸層提供應用進程間的邏輯通信”。 “邏輯通信”指:傳輸層之間的通信好像是沿 水平方向傳送數(shù)據(jù)。但事實上這兩個傳輸層 之間并沒有一條水平方向的物理連接。計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:進程標識進程標識 7傳輸層提供應用進程間的邏輯通信傳輸層提供應用進程間的邏輯通信54321傳輸層提供應用進程間的邏輯通信應用進程應用進程IP 層AP1AP2AP4端口端口54321AP3主機 A主機 B路由器 1路由器 2A

4、P1LAN2WANAP2AP3AP4LAN1IP 協(xié)議- 提供主機之間的邏輯通信傳輸層協(xié)議- 提供進程之間的邏輯通信計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:進程標識進程標識 8進程標識進程標識端口端口port 端口:是一種抽象的軟件結構 (包括一些數(shù)據(jù)結構和IO緩沖區(qū)) 用于標識應用層的進程 UDP和TCP都使用端口與上層的應用進程進行通信計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:進程標識進程標識 9端口號端口號 16 bit (065535) TCP和UDP各自的端口號相互獨立 端口號只具有本地意義 端口號只是為了標志本計算機應用層中的各進程 在因特網(wǎng)中不同計算機的相同端口號是沒有聯(lián)系的計

5、算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:進程標識進程標識 10端口號的分配端口號的分配 兩種基本分配方式 全局分配:集中式統(tǒng)一指派 本地分配: 動態(tài)指派 服務器端使用的端口號049151 全局分配或動態(tài)指派 客戶端使用的端口號4915265535 動態(tài)指派或OS隨機分配計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:進程標識進程標識 熟知端口號熟知端口號TCPPort NumbersFTPTransportLayerTELNETDNSSNMPTFTPHTTPUDPApplicationLayer2123805369161RIP520查閱:你常用的網(wǎng)絡應用的端口號?端口掃描?計算機網(wǎng)絡計算機網(wǎng)絡5.

6、傳輸層:傳輸層:進程標識進程標識 12TCP/IP通信五要素通信五要素 目的目的IP地址地址 要與之進行數(shù)據(jù)通信的目的主機所在位置 目的端口目的端口 定位遠程主機進行數(shù)據(jù)交換的進程 源源IP地址地址 數(shù)據(jù)的發(fā)送方,通過這個要素讓遠程主機系統(tǒng)知道對等通信的主機 源端口號源端口號 通過這個來定位本地處理通信數(shù)據(jù)的進程。 協(xié)議協(xié)議 定位具體的通信協(xié)議計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:進程標識進程標識 13用戶數(shù)據(jù)報協(xié)議用戶數(shù)據(jù)報協(xié)議UDP UDP特點 無連接 UDP不使用擁塞控制,不保證可靠交付 (除了提供校驗和機制) 面向報文(傳輸基本單位:用戶數(shù)據(jù)報) 傳輸效率較高 適用于傳輸量比較少的

7、情況 支持一對一、一對多、多對一、多對多通信 UDP適適合要求簡潔、快速、合要求簡潔、快速、可靠性要求不高的應用可靠性要求不高的應用 UDP作用 相對于IP協(xié)議,唯一增加的能力是提供協(xié)議 端口,以保證進行通信計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:UDP14UDP 報文封裝報文封裝 計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:UDP IP首部首部 IP數(shù)據(jù)區(qū)數(shù)據(jù)區(qū) 幀首部幀首部 幀數(shù)據(jù)區(qū)幀數(shù)據(jù)區(qū) UDP首部首部 UDP數(shù)據(jù)區(qū)數(shù)據(jù)區(qū) 應用層報文應用層報文 應用層傳輸層網(wǎng)絡層數(shù)據(jù)鏈路層15源端口目的端口長 度檢驗和數(shù) 據(jù)首 部IP 數(shù)據(jù)報2222字節(jié)發(fā)送在前數(shù) 據(jù)首 部UDP 用戶數(shù)據(jù)報 UDP

8、由兩部分組成:數(shù)據(jù)字段和首部字段 首部字段8 個字節(jié),由 4 個字段組成UDP 首部格式首部格式 計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:UDP16偽首部源端口目的端口長 度檢驗和數(shù) 據(jù)首 部UDP長度源 IP 地址目的 IP 地址017IP 數(shù)據(jù)報字節(jié)44112122222字節(jié)發(fā)送在前數(shù) 據(jù)首 部UDP 用戶數(shù)據(jù)報UDP校驗和計算校驗和計算u計算范圍:計算范圍:偽首部偽首部+UDP首部首部+UDP數(shù)據(jù)數(shù)據(jù)u計算方法:與計算方法:與IP首部校驗和的計算方法相同首部校驗和的計算方法相同計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:UDP17UDP偽首部偽首部 引入偽首部目的是驗證數(shù)據(jù)報是否已正確到

9、達終點引入偽首部目的是驗證數(shù)據(jù)報是否已正確到達終點 - 不僅檢查端口,還檢查了不僅檢查端口,還檢查了IP地址地址 偽首部既不向下傳送也不向上遞交偽首部既不向下傳送也不向上遞交 - 僅僅為了計算校驗和僅僅為了計算校驗和 偽首部的引入破壞了分層原則,是根據(jù)需要做的折中偽首部的引入破壞了分層原則,是根據(jù)需要做的折中計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:UDP18常見的使用常見的使用UDP的服務的服務 DNS:域名解析服務, 使用53端口 SNMP:簡單網(wǎng)絡管理協(xié)議,使用161端口 Oicq:Oicq的程序既接受服務,又提供服務 oicq服務器使用8000端口,偵聽是否有信息到來客戶端使用4000

10、端口,向外發(fā)送信息 TFTP:快速文件傳輸協(xié)議,端口號69 RPC:遠程過程調用,端口號111 計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:UDP19 TCP的特點的特點 面向連接面向連接 每一條連接只能有兩個端點每一條連接只能有兩個端點endpoint 保證可靠交付保證可靠交付 提供全雙工通信提供全雙工通信 傳送數(shù)據(jù)單元:報文段傳送數(shù)據(jù)單元:報文段TCP segment 面向字節(jié)流面向字節(jié)流TCP協(xié)議協(xié)議-可靠的可靠的計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP TCP是一個面向連接的、端到端的、提供可靠性服務的傳輸層協(xié)議20TCP的連接標識的連接標識 TCP 使用“連接”(而不僅僅是“端

11、口”)作為最基本的 抽象 如何標識一條TCP連接? 用IP地址可以嗎? 用端口號可以嗎? 需要IP地址和端口號共同使用 所以,端點標識!計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP21套接字套接字(socket) TCP 連接的端點稱為插口,套接字、套接口 套接字和端口、IP 地址的關系是: IP 地址3 端口號1500 3: 1500套接字(socket) 計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP每一條tcp連接唯一的被通信兩端的兩個端點(套接字)所確定 TCP 連接 := socket1, socket2 = (IP1: port1),

12、(IP2: port2) 22 TCP 是面向字節(jié)流的(是面向字節(jié)流的(1)7 68H發(fā)送 TCP 報文段發(fā)送方接收方把字節(jié)寫入發(fā)送緩存從接收緩存讀取字節(jié)應用進程應用進程1230181716151419202145131211H109 H加上 TCP 首部構成 TCP 報文段 TCP TCP字節(jié)流字節(jié)流H 表示 TCP 報文段的首部 x 表示序號為 x 的數(shù)據(jù)字節(jié) TCP 連接(虛連接) 計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP23 TCP 連接是一條虛連接而不是一條真正的物理連接 TCP 對應用進程一次把多長的報文發(fā)送到TCP 的緩存中是不關心的。 TCP 根據(jù)對方給出的窗口值和當前

13、網(wǎng)絡擁塞的程度來決定一個報文段應包含多少個字節(jié)(UDP 發(fā)送的報文長度是應用進程給出的)。 TCP 可把太長的數(shù)據(jù)塊劃分短一些再傳送。TCP 也可等待積累有足夠多的字節(jié)后再構成報文段發(fā)送出去 TCP 是面向字節(jié)流的(是面向字節(jié)流的(2)計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP24n 報文段格式報文段格式n 連接建立與關閉連接建立與關閉:三次握手:三次握手+ +四次握手四次握手n 可靠性機制可靠性機制 防丟失:確認與重傳防丟失:確認與重傳 防重復:報文段序號防重復:報文段序號n 流量控制流量控制:滑動窗口機制:滑動窗口機制n 擁塞控制擁塞控制:加速遞減與慢啟動技術:加速遞減與慢啟動技術T

14、CP實現(xiàn)可靠傳輸基本問題實現(xiàn)可靠傳輸基本問題要實現(xiàn)可靠的數(shù)據(jù)流傳輸服務,要實現(xiàn)可靠的數(shù)據(jù)流傳輸服務,必須解決哪幾個問題必須解決哪幾個問題?計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP25TCP報文段的首部報文段的首部TCP 數(shù)據(jù)部分數(shù)據(jù)部分TCP 首部首部TCP 報文段報文段TCP首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FIN32 bitSYNRSTPSHACKURG比特 0 8 16 24 31填 充IP 數(shù)據(jù)部分IP 首部發(fā)送在前固定首部20字節(jié)計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP報文段報文段26TC

15、P首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充源端口和目的端口字段各占 2 字節(jié)。端口是傳輸層與應用層的服務接口。傳輸層的復用和分用功能都要通過端口才能實現(xiàn)。 27TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充序號字段占 4 字節(jié)。TCP 連接中傳送的數(shù)據(jù)流中的每一個字節(jié)都編上一

16、個序號。序號字段的值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。 28TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù) 偏移 檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充確認號字段占 4 字節(jié),是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號。 若確認號=N, 則到序號N-1為止的所有數(shù)據(jù)都已正確收到!29TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG

17、比特 0 8 16 24 31填 充數(shù)據(jù)偏移(首部長度)占 4 bit,它指出 TCP 報文段的數(shù)據(jù)起始處距離 TCP 報文段的起始處有多遠?!皵?shù)據(jù)偏移”的單位不是字節(jié)而是 32 bit 字(4 字節(jié)為計算單位)首部長度范圍:20-60字節(jié)30TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充保留字段占 6 bit,保留為今后使用,但目前應置為 0 31TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源

18、 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充緊急比特 URG 當 URG 1 時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應盡快傳送(相當于高優(yōu)先級的數(shù)據(jù))。 32TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充確認比特 ACK 只有當 ACK 1 時確認號字段才有效。當 ACK 0 時,確認號無效。 33TCP首部20字節(jié)固定首部目 的 端 口

19、數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充推送比特 PSH (PuSH) 接收 方TCP 收到推送比特置 1 的報文段,就盡快地交付給接收應用進程,而不再等到整個緩存都填滿了后再向上交付。 34TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充復位比特 RST (ReSeT) 當 RST 1 時,表明 TCP 連接

20、中出現(xiàn)嚴重差錯(如由于主機崩潰或其他原因),必須釋放連接,然后再重新建立運輸連接。 35TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充同步比特 SYN 同步比特 SYN 置為 1,就表示這是一個連接請求或連接接受報文 36TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充終止比特

21、 FIN 用來釋放一個連接。當FIN 1 時,表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運輸連接 37TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充窗口字段 占 2 字節(jié)。窗口字段用來控制對方發(fā)送的數(shù)據(jù)量,單位為字節(jié)。窗口值告訴對方:我現(xiàn)在能接收多少數(shù)據(jù)!窗口值經(jīng)常變化!38TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTP

22、SHACKURG比特 0 8 16 24 31填 充檢驗和 占 2 字節(jié)。檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分。在計算檢驗和時,要在 TCP 報文段的前面加上 12 字節(jié)的偽首部。偽首部TCP長度源 IP 地址目的 IP 地址06441121239TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充緊急指針字段 占 16 bit。緊急指針指出在本報文段中的緊急數(shù)據(jù)的最后一個字節(jié)的序號。即使窗口為0,也可發(fā)送緊急數(shù)據(jù)! 40TCP首部2

23、0字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充選項字段 長度可變。第一版TCP只規(guī)定了一種選項,即最大報文段長度 MSS;第二版TCP增加了窗口擴大因子、時間戳等選項 MSS 是 TCP 報文段中的數(shù)據(jù)字段數(shù)據(jù)字段的最大長度 數(shù)據(jù)字段加上 TCP 首部才等于整個的 TCP 報文段 窗口和窗口和MSS的區(qū)別:的區(qū)別: MSS是一個報文的最大長度是一個報文的最大長度 而窗口則是所能發(fā)送的所有數(shù)據(jù)總數(shù)。它可以是多而窗口則是所能發(fā)送的所有數(shù)據(jù)總數(shù)。它可以

24、是多個報文段,但每個報文段必須滿足個報文段,但每個報文段必須滿足MSS的限制,同時的限制,同時其數(shù)據(jù)總和不能超過窗口大小其數(shù)據(jù)總和不能超過窗口大小41TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認 號保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充填充字段 這是為了使整個首部長度是 4 字節(jié)的整數(shù)倍。 42TCP連接管理連接管理 連接方式連接方式 C/S客戶服務器方式客戶服務器方式 主動發(fā)起連接建立的應主動發(fā)起連接建立的應用進程叫客戶用進程叫客戶 被動等待連接建立的應被動等待連接建立的

25、應用進程叫服務器用進程叫服務器 連接三個階段連接三個階段 建立連接建立連接 數(shù)據(jù)傳輸數(shù)據(jù)傳輸 釋放連接釋放連接 計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP連接與釋放連接與釋放43TCP建立連接建立連接連接建立過程要解決的問題:連接建立過程要解決的問題: 要使每一方都能夠確知對方的存在要使每一方都能夠確知對方的存在 要允許雙方協(xié)商一些參數(shù)要允許雙方協(xié)商一些參數(shù)(如最大報文段長度(如最大報文段長度MSS,最大窗口大小,服務質,最大窗口大小,服務質量量Qos等)等) 對傳輸實體資源進行分配對傳輸實體資源進行分配(如緩沖區(qū)大小,連接表中的項目等)(如緩沖區(qū)大小,連接表中的項目等)計算機網(wǎng)絡計算機

26、網(wǎng)絡5. 傳輸層:傳輸層:TCP連接與釋放連接與釋放44requestconfirmindicationresponseconfirmrequesttimeoutre-requestindicationindicationresponseresponseconfirm正常連接正常連接重復連接重復連接連接的建立過程問題連接的建立過程問題 -可能出現(xiàn)重復連接可能出現(xiàn)重復連接問題:兩次握手不能解決建立連接的延遲重復問題解決方法:三次握手(three-way handshake)計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP連接與釋放連接與釋放45TCP連接建立過程連接建立過程三次握手三次握手SYN

27、置1, seq = x主機 BSYN置1, ACK置1, seq= y, ack= x 1ACK置1, seq = x + 1, ack= y 1被動打開主動打開確認確認主機 A連接請求計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP連接與釋放連接與釋放SYN報文段占用一個序號;報文段占用一個序號;ACK報文段,如不攜帶數(shù)據(jù)則不占用序號;報文段,如不攜帶數(shù)據(jù)則不占用序號;發(fā)送數(shù)據(jù)的第一字節(jié)序號為:初始序列號發(fā)送數(shù)據(jù)的第一字節(jié)序號為:初始序列號+146TCP連接的終止連接的終止 半關閉半關閉 半關閉的概念半關閉的概念 關閉一個方向上的數(shù)據(jù)傳送,而另一個方向可關閉一個方向上的數(shù)據(jù)傳送,而另一個方向

28、可以傳輸數(shù)據(jù)以傳輸數(shù)據(jù) 因為一個因為一個TCP連接是全雙工,每個方向都可以獨立的連接是全雙工,每個方向都可以獨立的 傳輸數(shù)據(jù),因此每個方向必須單獨地進行關閉傳輸數(shù)據(jù),因此每個方向必須單獨地進行關閉 當一方完成它的數(shù)據(jù)發(fā)送任務后就能發(fā)送一個當一方完成它的數(shù)據(jù)發(fā)送任務后就能發(fā)送一個FIN來來 終止這個方向的連接。當一端收到一個終止這個方向的連接。當一端收到一個FIN,它必,它必須通知應用層另一端已經(jīng)終止了那個方向的數(shù)據(jù)傳送須通知應用層另一端已經(jīng)終止了那個方向的數(shù)據(jù)傳送 計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP連接與釋放連接與釋放47FIN 置 1, seq = uCLOSED主動關閉數(shù)據(jù)傳

29、送ESTAB-LISHEDESTAB-LISHEDAB客戶服務器CLOSEDTCP 的連接釋放的連接釋放四次握手四次握手 數(shù)據(jù)傳輸結束后,通信的雙方都可釋放連接 A 的應用進程先向其TCP 發(fā)出連接釋放報文段 A停止再發(fā)送數(shù)據(jù),主動關閉 TCP 連接 A 把連接釋放報文段首部的 FIN = 1,其序號seq = u,等待 B 的確認計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP連接與釋放連接與釋放48FIN 置1, seq = uCLOSED主動關閉數(shù)據(jù)傳送ESTAB-LISHEDESTAB-LISHEDAB客戶服務器CLOSEDTCP 的連接釋放的連接釋放 B 發(fā)出確認 確認號 ack =

30、 u 1,自己的序號 seq = v B方TCP 服務器進程通知高層應用進程 從 A 到 B 這個方向的連接就釋放了 TCP 連接處于半關閉狀態(tài)半關閉狀態(tài)。B 若發(fā)送數(shù)據(jù),A 仍要接收ACK置1, seq = v, ack= u 1通知應用進程計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP連接與釋放連接與釋放49置 1, seq = uCLOSED主動關閉數(shù)據(jù)傳送ESTAB-LISHEDESTAB-LISHEDAB客戶服務器CLOSEDTCP 的連接釋放的連接釋放 若 B 已經(jīng)沒有要向 A 發(fā)送的數(shù)據(jù),其應用進程就 通知 TCP 釋放連接ACK 置1, seq = v, ack= u 1通知

31、應用進程被動關閉FIN 置 1, ACK 置1, seq = w, ack= u 1數(shù)據(jù)傳送計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP連接與釋放連接與釋放50FIN 置 1, seq = uCLOSED主動關閉數(shù)據(jù)傳送ESTAB-LISHEDESTAB-LISHEDAB客戶服務器CLOSEDTCP 的連接釋放的連接釋放 A 收到連接釋放報文段后,必須發(fā)出確認 ACK=1,確認號 ackw1,自己的序號seq=u+1ACK 置 1, seq = v, ack= u 1通知應用進程被動關閉FIN 置 1, ACK 置1, seq = w, ack= u 1數(shù)據(jù)傳送ACK 置 1, seq =

32、 u + 1, ack = w 1計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:TCP連接與釋放連接與釋放51n 接收方收到數(shù)據(jù) 后向源站發(fā)確認 (ACK)報文n 發(fā)送方設置定時 器,源站在限定 時間內未收到 ACK,則重發(fā) 數(shù)據(jù)發(fā)送方數(shù)據(jù)發(fā)送方 數(shù)據(jù)接收方數(shù)據(jù)接收方 接收確認接收確認 發(fā)送報文段發(fā)送報文段 接收報文段接收報文段 發(fā)送發(fā)送ACK確認確認 接收確認接收確認 發(fā)送報文段發(fā)送報文段 接收報文段接收報文段 發(fā)送發(fā)送ACK確認確認 超時重傳超時重傳 確認機制確認機制 重傳機制重傳機制 可靠性問題可靠性問題 基本原理:確認機制、重傳機制基本原理:確認機制、重傳機制 停止等待協(xié)議停止等待協(xié)議 基

33、本問題:數(shù)據(jù)丟失、亂序、重復等基本問題:數(shù)據(jù)丟失、亂序、重復等計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:可靠性機制可靠性機制52確認問題再討論確認問題再討論 捎帶確認捎帶確認 累計確認累計確認 不設置專門的報文段反饋確認不設置專門的報文段反饋確認 對正確接收到的、對正確接收到的、連續(xù)的連續(xù)的、最高序、最高序 號的報文段進行確認號的報文段進行確認Piggybacking100, , 500, , 10001050, , 2000成功接收數(shù)據(jù)丟失成功接收確認號:確認號:10011001接收隊列:缺點:無法確認所有已經(jīng)接收數(shù)據(jù),可能導致傳輸效率低下。計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:可靠性機

34、制可靠性機制53 引起重傳原因:引起重傳原因: 1.數(shù)據(jù)沒到對方數(shù)據(jù)沒到對方 2.到了,但錯了,被丟棄到了,但錯了,被丟棄 3.到了,也對了,到了,也對了, 但確認丟了或確認遲到但確認丟了或確認遲到重傳問題再討論重傳問題再討論 解決:解決: 1.設置超時計時器設置超時計時器 2.每發(fā)一個分組要暫時保留副本每發(fā)一個分組要暫時保留副本 3.超時時間設置(很復雜)超時時間設置(很復雜)timeoutretransmissionframe 1frame 1ACK 1lost計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:可靠性機制可靠性機制54超時重傳定時器的設置超時重傳定時器的設置RTT(Round Tr

35、ip Time):):往返時間往返時間- 報文段發(fā)出到收到確認信息間的時間段報文段發(fā)出到收到確認信息間的時間段n 方法方法 自適應重傳算法自適應重傳算法n Karn算法和定時器補償算法和定時器補償 重傳定時時限重傳定時時限RTO的計算方法的計算方法 計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:可靠性機制可靠性機制55停止等待協(xié)議的信道利用率停止等待協(xié)議的信道利用率 停止等待協(xié)議的優(yōu)點:簡單 缺點:信道利用率太低 ATDRTTTD + RTT + TABtt確認分組分組確認ADDTTTURTT利用率計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:可靠性機制可靠性機制56流水線傳輸流水線傳輸 解決:采用解

36、決:采用流水線傳輸(管道化技術)流水線傳輸(管道化技術),提高利用率,提高利用率 策略:策略:發(fā)送方可連續(xù)發(fā)送多個分組,不必每發(fā)完一個 分組就停頓下來等待對方的確認 典型協(xié)議:典型協(xié)議:連續(xù)連續(xù)ARQ協(xié)議協(xié)議 滑動窗口協(xié)議滑動窗口協(xié)議B分組ttAACK計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:可靠性機制可靠性機制57用管道化技術發(fā)送幀面臨的新問題用管道化技術發(fā)送幀面臨的新問題 問題:出錯情況問題:出錯情況 連續(xù)發(fā)送連續(xù)發(fā)送W個分組,其中有一幀出錯或丟了,個分組,其中有一幀出錯或丟了,但其后續(xù)幀被成功發(fā)送但其后續(xù)幀被成功發(fā)送 解決:解決:2種接收策略種接收策略 回退回退N幀幀 Go-back n

37、 選擇性重傳選擇性重傳計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:可靠性機制可靠性機制58回退回退N幀幀接收方:丟棄出錯分組及其所有后續(xù)分組接收方:丟棄出錯分組及其所有后續(xù)分組發(fā)送方:超時重傳出錯幀及其后續(xù)幀發(fā)送方:超時重傳出錯幀及其后續(xù)幀errordiscardacksendtimeoutreceiveresend0 1 E D D D D D D 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 2 3 4 5 6 7 8 計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:可靠性機制可靠性機制59選擇性重傳選擇性重傳buffertimeoutreceive0 1 2 3 4 5 6 7

38、 8 resend2 0 1 E 3 4 5 6 7 8 2 resend3 D resend4 D send9 接收方接收方: 丟棄錯分組,緩存后續(xù)正確接收分組丟棄錯分組,緩存后續(xù)正確接收分組發(fā)送方:只重發(fā)出錯幀及后續(xù)的部分幀發(fā)送方:只重發(fā)出錯幀及后續(xù)的部分幀ack 9 discard9 receive計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:可靠性機制可靠性機制60流量控制流量控制 滑動窗口機制滑動窗口機制 p 一般的滑動窗口機制一般的滑動窗口機制 思思 想:采用管道化技術,一次傳輸多個分組,想:采用管道化技術,一次傳輸多個分組, 但但規(guī)定一個上限規(guī)定一個上限 1 2 3 4 5 6 7

39、8 9 10 11 12 13 分分 組組 WindowSize=8 緩緩 存存 窗窗 口:確認到來之前最多可以發(fā)送分組的數(shù)量口:確認到來之前最多可以發(fā)送分組的數(shù)量 隨著確認不斷到來,窗口會不斷向后滑動,隨著確認不斷到來,窗口會不斷向后滑動, 直到所有分組都被包含在窗口內,從而發(fā)送出去直到所有分組都被包含在窗口內,從而發(fā)送出去計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:流量控制流量控制61滑動窗口示例滑動窗口示例A-BB通告A,其接收窗口值為20,確認值為31前移不允許發(fā)送已發(fā)送并收到確認A 的發(fā)送窗口 = 20允許發(fā)送的序號26 27 28 29 30 31 32 33 34 35 36 37

40、 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56B 期望收到的序號前移根據(jù) B 給出的窗口值A 構造出自己的發(fā)送窗口 計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:流量控制流量控制62不允許發(fā)送已發(fā)送并收到確認A 的發(fā)送窗口位置不變允許發(fā)送但尚未發(fā)送26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55已發(fā)送但未收到確認56P1P2P3可用窗口A 發(fā)送了 11 個字節(jié)的數(shù)據(jù),但未收到確認 允許發(fā)送但尚未發(fā)送A

41、的發(fā)送窗口向前滑動26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55已發(fā)送并收到確認不允許發(fā)送已發(fā)送但未收到確認56P1P2P3A 收到新的確認號34,發(fā)送窗口向前滑動 計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:流量控制流量控制63不允許發(fā)送已發(fā)送并收到確認A 的發(fā)送窗口已滿,有效窗口為零26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55已發(fā)

42、送但未收到確認56P1P2P3A 的發(fā)送窗口內的序號都已用完,但還沒有再收到確認,必須停止發(fā)送滑動窗口示例滑動窗口示例計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:流量控制流量控制64 滑動窗口以字節(jié)為單位,最大65535字節(jié) TCP 連接的每一端都必須設有兩個窗口 一個發(fā)送窗口和一個接收窗口 一方的發(fā)送窗口和另一方接收窗口一致! TCP采用可變發(fā)送窗口方式進行流量控制 接收端可根據(jù)自己的資源情況,動態(tài)調整自己的接收窗口,并將新的窗口通告給對方,使對方的發(fā)送和自己的接收窗口一致TCP滑動窗口機制滑動窗口機制計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:流量控制流量控制65使用可變滑動窗口進行流控使用可

43、變滑動窗口進行流控1002003004005006007008009001012013014015016017018011已發(fā)送并被確認已發(fā)送但未被確認可發(fā)送不可發(fā)送指針1002003004005006007008009001012013014015016017018011已發(fā)送并被確認可發(fā)送不可發(fā)送指針發(fā)送窗口前移發(fā)送窗口縮小發(fā)送窗口初始:500字節(jié)新窗口通告:400字節(jié)計算機網(wǎng)絡計算機網(wǎng)絡5. 傳輸層:傳輸層:流量控制流量控制660窗口通告面臨新問題窗口通告面臨新問題 問題一:問題一: 0窗口通告停止所有的傳輸,接收緩存又窗口通告停止所有的傳輸,接收緩存又 有空間,怎么辦?有空間,怎么辦?Tips:Tips:持續(xù)定時器使用時機:持續(xù)定時器使用時機:n 一方發(fā)送了一方發(fā)送了0 0窗口通告,另一方就啟動定時器窗口通告,另一方就啟動定時器n 問題二:問題二: 非非0窗口通告丟失,怎么辦?窗口通告丟失,怎么辦? 結結 果:果: 造成死鎖造成死鎖 解解 決:決: 發(fā)送方為每個連接都啟動發(fā)送方為每個連接都啟動持續(xù)定時器持續(xù)定時器,周,周 期性的向接收方發(fā)期性

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論