第6章-傳輸層協(xié)議及分析課件_第1頁
第6章-傳輸層協(xié)議及分析課件_第2頁
第6章-傳輸層協(xié)議及分析課件_第3頁
第6章-傳輸層協(xié)議及分析課件_第4頁
第6章-傳輸層協(xié)議及分析課件_第5頁
已閱讀5頁,還剩159頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第六章

傳輸層協(xié)議及分析1/9/20231第六章

傳輸層協(xié)議及分析1/9/20231重點和難點重點傳輸層的功能TCP協(xié)議和UDP協(xié)議難點TCP協(xié)議的理解1/9/20232重點和難點重點1/9/20232OSI體系結(jié)構(gòu)中的傳輸層Internet體系中的傳輸層1/9/20233OSI體系結(jié)構(gòu)中的傳輸層1/9/202336.1OSI體系結(jié)構(gòu)中的傳輸層傳輸層位于開放系統(tǒng)互連模型中的第四層。是銜接由物理層、數(shù)據(jù)鏈路層及網(wǎng)路層構(gòu)成的通信子網(wǎng)和包含會話層、表示層及應(yīng)用層的資源子網(wǎng)的橋梁,起到承上啟下的作用。傳輸層對高層用戶起到了屏蔽作用,使高層用戶的同等實體在交互過程中不會受到下層數(shù)據(jù)通信技術(shù)細節(jié)的影響。1/9/202346.1OSI體系結(jié)構(gòu)中的傳輸層傳輸層位于開放系統(tǒng)互連模傳輸層與其上下層之間的關(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ù)訪問點NSAP1/9/20235傳輸層與其上下層之間的關(guān)系的OSI表示法傳輸實體傳輸實體從通信和信息處理的角度看,傳輸層向它上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,同時也是用戶功能中的最低層。物理層網(wǎng)絡(luò)層傳輸層應(yīng)用層數(shù)據(jù)鏈路層面向信息處理面向通信用戶功能網(wǎng)絡(luò)功能6.1OSI體系結(jié)構(gòu)中的傳輸層1/9/20236從通信和信息處理的角度看,傳輸層向它上面的應(yīng)用層提供通信服務(wù)傳輸層為相互通信的應(yīng)用進程提供了邏輯通信

54321傳輸層提供應(yīng)用進程間的邏輯通信應(yīng)用進程應(yīng)用進程IP層AP1AP2AP4端口端口54321AP3主機A主機B路由器1路由器2AP1LAN2WANAP2AP3AP4LAN1IP協(xié)議的作用范圍傳輸層協(xié)議TCP和UDP的作用范圍1/9/20237傳輸層為相互通信的應(yīng)用進程提供了邏輯通信5傳輸層提供應(yīng)用進應(yīng)用進程之間的通信兩個主機進行通信實際上就是兩個主機中的應(yīng)用進程互相通信。應(yīng)用進程之間的通信又稱為端到端的通信。傳輸層的一個很重要的功能就是復(fù)用和分用。應(yīng)用層不同進程的報文通過不同的端口向下交到傳輸層,再往下就共用網(wǎng)絡(luò)層提供的服務(wù)。傳輸層提供應(yīng)用進程間的邏輯通信,這里“邏輯通信”的意思是:傳輸層之間的通信好像是沿水平方向傳送數(shù)據(jù)。但事實上這兩個傳輸層之間并沒有一條水平方向的物理連接。1/9/20238應(yīng)用進程之間的通信兩個主機進行通信實際上就是兩個主機中的應(yīng)用端口的概念端口就是運輸層服務(wù)訪問點TSAP。端口的作用就是讓應(yīng)用層的各種應(yīng)用進程都能將其數(shù)據(jù)通過端口向下交付給傳輸層,以及讓傳輸層知道應(yīng)當(dāng)將其報文段中的數(shù)據(jù)向上通過端口交付給應(yīng)用層相應(yīng)的進程。從這個意義上講,端口是用來標(biāo)志應(yīng)用層的進程。1/9/20239端口的概念端口就是運輸層服務(wù)訪問點TSAP。1/9/202端口在進程之間的通信中所起的作用應(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ā)送方接收方1/9/202310端口在進程之間的通信中所起的作用應(yīng)傳網(wǎng)TCP報文段UDP端口端口用一個16bit端口號進行標(biāo)志。端口號只具有本地意義,即端口號只是為了標(biāo)志本計算機應(yīng)用層中的各進程。在因特網(wǎng)中不同計算機的相同端口號是沒有聯(lián)系的。1/9/202311端口端口用一個16bit端口號進行標(biāo)志。1/9/20兩類端口一類是熟知端口,其數(shù)值一般為0~1023,保留給諸如HTTP(80)、FTP(21)等熟知協(xié)議的。當(dāng)一種新的應(yīng)用程序出現(xiàn)時,必須為它指派一個熟知端口。另一類則是一般端口,用來隨時分配給請求通信的客戶進程。1/9/202312兩類端口一類是熟知端口,其數(shù)值一般為0~1023,保留給插口(socket)TCP使用“連接”(而不僅僅是“端口”)作為最基本的抽象,同時將TCP連接的端點稱為插口(socket),或套接字、套接口。插口和端口、IP地址的關(guān)系是:IP地址3端口號15003,1500插口(socket)1/9/202313插口(socket)TCP使用“連接”(而不僅僅是“端口6.2Internet體系中的傳輸層在Internet網(wǎng)絡(luò)上,傳輸層有兩個并列的協(xié)議,一個是TCP,一個是UDP。TCP即傳輸控制協(xié)議,它是面向連接的,可提供高可靠的服務(wù)。UDP即用戶數(shù)據(jù)報協(xié)議,它是面向無連接的,可提供高效率的服務(wù)。1/9/2023146.2Internet體系中的傳輸層在Internet網(wǎng)絡(luò)傳輸層向上提供可靠的和不可靠的邏輯通信信道?應(yīng)用層傳輸層發(fā)送進程接收進程接收進程數(shù)據(jù)數(shù)據(jù)全雙工可靠信道數(shù)據(jù)數(shù)據(jù)使用TCP協(xié)議使用UDP協(xié)議不可靠信道發(fā)送進程1/9/202315傳輸層向上提供可靠的和不可靠的邏輯通信信道?應(yīng)傳發(fā)接接數(shù)據(jù)6.2.1TCP協(xié)議TCP的主要功能完成對數(shù)據(jù)報的確認、流量控制和網(wǎng)絡(luò)擁塞的處理。數(shù)據(jù)報自動檢測、提供錯誤自動重發(fā)功能。將多條路徑傳送的數(shù)據(jù)報按照原序排列,并對重復(fù)數(shù)據(jù)進行擇取??刂瞥瑫r重發(fā)、自動調(diào)整超時值。提供自動恢復(fù)丟失數(shù)據(jù)的功能1/9/2023166.2.1TCP協(xié)議TCP的主要功能1/9/202316TCP的數(shù)據(jù)傳送過程TCP是一種面向數(shù)據(jù)流的協(xié)議,操作過程分為三個階段:建立TCP連接、傳送數(shù)據(jù)和結(jié)束TCP連接。應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層Ethernet用戶報文TCP數(shù)據(jù)報IP數(shù)據(jù)報以太幀用戶數(shù)據(jù)用戶數(shù)據(jù)數(shù)據(jù)FTPH數(shù)據(jù)TCPHIPHTCPHTCPHIPH以太幀頭FTPH數(shù)據(jù)FTPH數(shù)據(jù)FTPH數(shù)據(jù)TCP的報文傳送目的地址源地址幀頭包類型包數(shù)據(jù)CRC校驗1/9/202317TCP的數(shù)據(jù)傳送過程應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層Ether18

TCP數(shù)據(jù)報的格式20字節(jié)的固定首部TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充1/9/20231818TCP數(shù)據(jù)報的格式20字節(jié)的TCP目的端19TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充源端口和目的端口字段——各占2字節(jié)。端口是運輸層與應(yīng)用層的服務(wù)接口。運輸層的復(fù)用和分用功能都要通過端口才能實現(xiàn)。

TCP數(shù)據(jù)報的格式1/9/20231919TCP目的端口首部檢驗和選20TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充序號字段——占4字節(jié)。TCP連接中傳送的數(shù)據(jù)流中的每一個字節(jié)都編上一個序號。序號字段的值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)在整個報文字節(jié)流中的序號。

TCP數(shù)據(jù)報的格式1/9/20232020TCP目的端口首部檢驗和選21TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充確認號字段——占4字節(jié),是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號。

TCP數(shù)據(jù)報的格式1/9/20232121TCP目的端口首部檢驗和選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。因此確認號表示接收端期望下次收到的數(shù)據(jù)中的第一個數(shù)據(jù)字節(jié)的序號。1/9/202322TCP的數(shù)據(jù)編號與確認TCP協(xié)議是面向字節(jié)的。TCP將TCP序列號和確認序列號示例主機A主機BSeq=42,ACK=79,data=‘C’Seq=79,ACK=43,data=‘C’Seq=43,ACK=80用戶鍵入‘C’主機確認收到回顯的‘C’主機確認收到’C’,回顯’C’時間

TCP數(shù)據(jù)報的格式1/9/202323TCP序列號和確認序列號示例主機A主機BSeq=43.5面向連接的傳輸:TCP—報文格式TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充首部長度——占4bit,它指示以32bit為單位的TCP首部長度。1/9/2023243.5面向連接的傳輸:TCP—報文格式TCP目的TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充保留字段——占6bit,保留為今后使用,但目前應(yīng)置為0。3.5面向連接的傳輸:TCP—報文格式1/9/202325TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充緊急比特URG——當(dāng)URG1時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應(yīng)盡快傳送。(一般不使用)3.5面向連接的傳輸:TCP—報文格式1/9/202326TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充確認比特ACK——只有當(dāng)ACK1時確認號字段才有效。當(dāng)ACK0時,確認號無效。3.5面向連接的傳輸:TCP—報文格式1/9/202327TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充推送比特PSH(PuSH)——接收TCP收到推送比特置1的報文段,就盡快地交付給接收應(yīng)用進程,而不再等到整個緩存都填滿了后再向上交付。3.5面向連接的傳輸:TCP—報文格式1/9/202328TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充復(fù)位比特RST(ReSeT)——當(dāng)RST1時,表明TCP連接中出現(xiàn)嚴重差錯(如由于主機崩潰或其他原因),必須釋放連接,然后再重新建立運輸連接。3.5面向連接的傳輸:TCP—報文格式1/9/202329TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充同步比特SYN——同步比特SYN置為1,就表示這是一個連接請求或連接接受報文。3.5面向連接的傳輸:TCP—報文格式1/9/202330TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充終止比特FIN(FINal)——用來釋放一個連接。當(dāng)FIN1時,表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運輸連接。3.5面向連接的傳輸:TCP—報文格式1/9/202331TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充窗口字段——占2字節(jié)。窗口字段用來控制對方發(fā)送的數(shù)據(jù)量,單位為字節(jié)。TCP連接的一端根據(jù)設(shè)置的緩存空間大小確定自己的接收窗口大小,然后通知對方以確定對方的發(fā)送窗口的上限。3.5面向連接的傳輸:TCP—報文格式1/9/202332TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充檢驗和——占2字節(jié)。檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分。在計算檢驗和時,要在TCP報文段的前面加上12字節(jié)的偽首部(源IP地址(4字節(jié))、目的IP地址(4字節(jié))、0(1字節(jié))、6(TCP協(xié)議號,1字節(jié))、TCP長度(2字節(jié))

)。3.5面向連接的傳輸:TCP—報文格式1/9/202333TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充緊急指針字段——占16bit。緊急指針指出在本報文段中的緊急數(shù)據(jù)的最后一個字節(jié)的序號。

3.5面向連接的傳輸:TCP—報文格式1/9/202334TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充選項字段——長度可變。定義了最大報文段長度MSS(MaximumSegmentSize)。MSS告訴對方TCP:“我的緩存所能接收的報文段的數(shù)據(jù)字段的最大長度是MSS個字節(jié)?!贝送膺€定義了時間戳選項。MSS是TCP報文段中的數(shù)據(jù)字段的最大長度。數(shù)據(jù)字段加上TCP首部才等于整個的TCP報文段。1/9/202335TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充填充字段——這是為了使整個首部長度是4字節(jié)的整數(shù)倍。3.5面向連接的傳輸:TCP—報文格式1/9/202336TCP目的端口首部檢驗和選項TCP的流量控制TCP流量控制背景TCP接收方有一個緩存,所有上交的數(shù)據(jù)全部緩存在里面應(yīng)用進程從緩沖區(qū)中讀取數(shù)據(jù)可能很慢目標(biāo)發(fā)送方不會由于傳得太多太快而使得接收方緩存溢出手段接收方在反饋時,將緩沖區(qū)剩余空間的大小填充在報文段首部的窗口字段中,通知發(fā)送方1/9/202337TCP的流量控制TCP流量控制1/9/202337窗口值的計算空閑空間緩存中的TCP數(shù)據(jù)RcvWindow來自IP的數(shù)據(jù)應(yīng)用進程RcvBufferLastByteRcvd–LastByteRead≤RcvBuffer接收方:RcvWindows=RcvBuffer–[LastByteRcvd-LastByteRead]發(fā)送方:LastByteSent–LastByteAcked≤RcvWindow接收端窗口rwnd和擁塞窗口cwnd1/9/202338窗口值的計算空閑空間緩存中的RcvWindow來自IP的數(shù)據(jù)Monday,January9,2023393.5面向連接的傳輸:TCP一種特殊的情況接收方通知發(fā)送方RcvWindow為0,且接收方無任何數(shù)據(jù)傳送給發(fā)送方發(fā)送方持續(xù)向接受方發(fā)送只有一個字節(jié)數(shù)據(jù)的報文段,目的是試探1/9/202339Monday,January9,2023393.5面收到確認即可前移1002003004005006007008009001012013014015016017018011發(fā)送窗口可發(fā)送不可發(fā)送指針發(fā)送端要發(fā)送900字節(jié)長的數(shù)據(jù),劃分為9個100字節(jié)長的報文段,而發(fā)送窗口確定為500字節(jié)。發(fā)送端只要收到了對方的確認,發(fā)送窗口就可前移。發(fā)送TCP要維護一個指針。每發(fā)送一個報文段,指針就向前移動一個報文段的距離。1/9/202340收到確認即可前移1002003004005006007008發(fā)送端已發(fā)送了400字節(jié)的數(shù)據(jù),但只收到對前200字節(jié)數(shù)據(jù)的確認,同時窗口大小不變。現(xiàn)在發(fā)送端還可發(fā)送300字節(jié)。收到確認即可前移1002003004005006007008009001012013014015016017018011可發(fā)送不可發(fā)送指針1002003004005006007008009001012013014015016017018011發(fā)送窗口可發(fā)送不可發(fā)送指針發(fā)送窗口前移已發(fā)送并被確認已發(fā)送但未被確認1/9/202341發(fā)送端已發(fā)送了400字節(jié)的數(shù)據(jù),但只收到對前200字發(fā)送端收到了對方對前400字節(jié)數(shù)據(jù)的確認,但對方通知發(fā)送端必須把窗口減小到400字節(jié)?,F(xiàn)在發(fā)送端最多還可發(fā)送400字節(jié)的數(shù)據(jù)。1002003004005006007008009001012013014015016017018011已發(fā)送并被確認已發(fā)送但未被確認可發(fā)送不可發(fā)送指針1002003004005006007008009001012013014015016017018011已發(fā)送并被確認可發(fā)送不可發(fā)送指針發(fā)送窗口前移發(fā)送窗口縮小1/9/202342發(fā)送端收到了對方對前400字節(jié)數(shù)據(jù)的確認,但對方通知發(fā)送利用可變窗口大小進行流量控制

雙方確定的窗口值是400SEQ=1SEQ=201SEQ=401SEQ=301SEQ=101SEQ=501ACK=201,WIN=300ACK=601,WIN=0ACK=501,WIN=200主機A主機B允許A再發(fā)送300字節(jié)(序號201至500)A還能發(fā)送200字節(jié)A還能發(fā)送200字節(jié)(序號301至500)A還能發(fā)送300字節(jié)A還能發(fā)送100字節(jié)(序號401至500)A超時重發(fā),但不能發(fā)送序號500以后的數(shù)據(jù)允許A再發(fā)送200字節(jié)(序號501至700)A還能發(fā)送100字節(jié)(序號501至700)不允許A再發(fā)送(到序號600的數(shù)據(jù)都已收到)SEQ=201丟失!1/9/202343利用可變窗口大小進行流量控制

雙方確定的窗口值是400SMonday,January9,202344TCP的擁塞控制TCP進行擁塞控制的方法每個發(fā)送方自動感知網(wǎng)絡(luò)擁塞的程度發(fā)送方根據(jù)感知的結(jié)果限制外發(fā)的流量如果前方路徑上出現(xiàn)了擁塞,則降低發(fā)送速率如果前方路徑上沒有出現(xiàn)擁塞,則增加發(fā)送速率1/9/202344Monday,January9,202344TCP的擁45TCP擁塞控制TCP擁塞控制需要解決的三個問題TCP發(fā)送方如何限制外發(fā)流量的速率發(fā)送端的主機在確定發(fā)送報文段的速率時,既要根據(jù)接收端的接收能力,又要從全局考慮不要使網(wǎng)絡(luò)發(fā)生擁塞。

LastByteSent-LastByteAckedmin{CongWin,RcvWindow}發(fā)送方如何感知擁塞超時三個冗余ACK在感知到擁塞后,發(fā)送方如何調(diào)節(jié)發(fā)送速率rate=

CongWin

RTT

Bytes/sec1/9/20234545TCP擁塞控制TCP擁塞控制需要解決的三個問題rate46TCP擁塞控制TCP擁塞控制算法(Reno算法)加性增,乘性減(AIMD)出現(xiàn)丟包事件后將當(dāng)前CongWin大小減半,可以大大減少注入到網(wǎng)絡(luò)中的分組數(shù)當(dāng)沒有丟包事件發(fā)生,每個RTT之后將CongWin增大1個MSS使擁塞窗口緩慢增大,以防止網(wǎng)絡(luò)過早出現(xiàn)擁塞擁塞窗口時間1/9/20234646TCP擁塞控制TCP擁塞控制算法(Reno算法)擁塞窗口Monday,January9,202347TCP擁塞控制慢啟動建立連接時,CongWin=1MSS例如:MSS=500bytes&RTT=200msec初始速率=20kbps可用帶寬>>MSS/RTT初始階段以指數(shù)的速度增加發(fā)送速率連接初始階段,以指數(shù)的速度增加發(fā)送速率,直到發(fā)生一個丟包事件為止每過一個RTT將CongWin的值翻倍每收到一個ACK就增加Congwin總結(jié):初始速率很低但速率的增長速度很快1/9/202347Monday,January9,202347TCP擁塞Monday,January9,202348TCP擁塞控制慢啟動主機A1個報文段RTT主機B時間兩個報文段四個報文段1/9/202348Monday,January9,202348TCP擁塞Monday,January9,202349TCP擁塞控制對超時事件的反應(yīng)門限值設(shè)為當(dāng)前CongWin的一半(門限值初始值65kB)將CongWin設(shè)為1個MSS大小;窗口以指數(shù)速度增大窗口增大到門限值之后,再以線性速度增大對收到3個重復(fù)ACK的反應(yīng)將CongWin減為原來的一半線性增大擁塞窗口特別說明:早期的TCPTahoe版本對上述兩個事件并不區(qū)分,統(tǒng)一將CongWin降為1。實際上,3個重復(fù)的ACK相對超時來說是一個預(yù)警信號,因此在Reno版中作了區(qū)分1/9/202349Monday,January9,202349TCP擁塞乘法減小

(multiplicativedecrease)

“乘法減小“是指不論在慢開始階段還是擁塞避免階段,只要出現(xiàn)一次超時(即出現(xiàn)一次網(wǎng)絡(luò)擁塞),就把慢開始門限值ssthresh設(shè)置為當(dāng)前的擁塞窗口值乘以0.5。當(dāng)網(wǎng)絡(luò)頻繁出現(xiàn)擁塞時,ssthresh值就下降得很快,以大大減少注入到網(wǎng)絡(luò)中的分組數(shù)。1/9/202350乘法減小

(multiplicativedecrease)加法增大

(additiveincrease)

“加法增大”是指執(zhí)行擁塞避免算法后,當(dāng)收到對所有報文段的確認就將擁塞窗口cwnd增加一個MSS大小,使擁塞窗口緩慢增大,以防止網(wǎng)絡(luò)過早出現(xiàn)擁塞。1/9/202351加法增大

(additiveincrease)“加法增大強調(diào)說明

“擁塞避免”并非指完全能夠避免了擁塞。利用以上的措施要完全避免網(wǎng)絡(luò)擁塞還是不可能的?!皳砣苊狻笔钦f在擁塞避免階段把擁塞窗口控制為按線性規(guī)律增長,使網(wǎng)絡(luò)比較不容易出現(xiàn)擁塞。1/9/202352強調(diào)說明“擁塞避免”并非指完全能夠避免了擁塞。利用以上的措慢開始和擁塞避免算法的實現(xiàn)舉例當(dāng)TCP連接進行初始化時,將擁塞窗口置為1。圖中的窗口單位不使用字節(jié)而使用報文段。慢開始門限的初始值設(shè)置為16個報文段,即ssthresh=16。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進入擁塞避免發(fā)生超時指數(shù)規(guī)律增長線性規(guī)律增長ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進入擁塞避免1/9/202353慢開始和擁塞避免算法的實現(xiàn)舉例當(dāng)TCP連接進行初始化時慢開始和擁塞避免算法的實現(xiàn)舉例發(fā)送端的發(fā)送窗口不能超過擁塞窗口cwnd和接收端窗口rwnd中的最小值。我們假定接收端窗口足夠大,因此現(xiàn)在發(fā)送窗口的數(shù)值等于擁塞窗口的數(shù)值。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進入擁塞避免發(fā)生超時指數(shù)規(guī)律增長線性規(guī)律增長ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進入擁塞避免1/9/202354慢開始和擁塞避免算法的實現(xiàn)舉例發(fā)送端的發(fā)送窗口不能超過擁塞慢開始和擁塞避免算法的實現(xiàn)舉例在執(zhí)行慢開始算法時,擁塞窗口cwnd的初始值為1,發(fā)送第一個報文段M0。

246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進入擁塞避免發(fā)生超時指數(shù)規(guī)律增長線性規(guī)律增長ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進入擁塞避免1/9/202355慢開始和擁塞避免算法的實現(xiàn)舉例在執(zhí)行慢開始算法時,擁塞窗口慢開始和擁塞避免算法的實現(xiàn)舉例246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進入擁塞避免發(fā)生超時指數(shù)規(guī)律增長線性規(guī)律增長ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進入擁塞避免發(fā)送端收到ACK1(確認M0,期望收到M1)后,將cwnd從1增大到2,于是發(fā)送端可以接著發(fā)送M1和M2兩個報文段。1/9/202356慢開始和擁塞避免算法的實現(xiàn)舉例24681012141618慢開始和擁塞避免算法的實現(xiàn)舉例接收端發(fā)回ACK2和ACK3。發(fā)送端每收到一個對新報文段的確認ACK,就把發(fā)送端的擁塞窗口加1?,F(xiàn)在發(fā)送端的cwnd從2增大到4,并可發(fā)送M3~M6共4個報文段。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進入擁塞避免發(fā)生超時指數(shù)規(guī)律增長線性規(guī)律增長ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進入擁塞避免1/9/202357慢開始和擁塞避免算法的實現(xiàn)舉例接收端發(fā)回ACK2和A慢開始和擁塞避免算法的實現(xiàn)舉例發(fā)送端每收到一個對新報文段的確認ACK,就把發(fā)送端的擁塞窗口加1,因此擁塞窗口cwnd隨著傳輸次數(shù)按指數(shù)規(guī)律增長。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進入擁塞避免發(fā)生超時指數(shù)規(guī)律增長線性規(guī)律增長ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進入擁塞避免1/9/202358慢開始和擁塞避免算法的實現(xiàn)舉例發(fā)送端每收到一個對新報文段的慢開始和擁塞避免算法的實現(xiàn)舉例當(dāng)擁塞窗口cwnd增長到慢開始門限值ssthresh時(即當(dāng)cwnd=16時),就改為執(zhí)行擁塞避免算法,擁塞窗口按線性規(guī)律增長。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進入擁塞避免發(fā)生超時指數(shù)規(guī)律增長ssthresh=16慢開始慢開始線性規(guī)律增長擁塞避免擁塞避免更新后的ssthresh=12進入擁塞避免1/9/202359慢開始和擁塞避免算法的實現(xiàn)舉例當(dāng)擁塞窗口cwnd增長到慢開始和擁塞避免算法的實現(xiàn)舉例假定擁塞窗口的數(shù)值增長到24時,網(wǎng)絡(luò)出現(xiàn)超時(表明網(wǎng)絡(luò)擁塞了)。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進入擁塞避免發(fā)生超時指數(shù)規(guī)律增長線性規(guī)律增長ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進入擁塞避免1/9/202360慢開始和擁塞避免算法的實現(xiàn)舉例假定擁塞窗口的數(shù)值增長到2慢開始和擁塞避免算法的實現(xiàn)舉例更新后的ssthresh值變?yōu)?2(即發(fā)送窗口數(shù)值24的一半),擁塞窗口再重新設(shè)置為1,并執(zhí)行慢開始算法。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進入擁塞避免發(fā)生超時指數(shù)規(guī)律增長線性規(guī)律增長ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進入擁塞避免1/9/202361慢開始和擁塞避免算法的實現(xiàn)舉例更新后的ssthresh慢開始和擁塞避免算法的實現(xiàn)舉例當(dāng)cwnd=12時改為執(zhí)行擁塞避免算法,擁塞窗口按按線性規(guī)律增長,每經(jīng)過一個往返時延就增加一個MSS的大小。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進入擁塞避免發(fā)生超時指數(shù)規(guī)律增長線性規(guī)律增長ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進入擁塞避免1/9/202362慢開始和擁塞避免算法的實現(xiàn)舉例當(dāng)cwnd=12時改3.快重傳和快恢復(fù)快速重傳超時周期往往太長增加重發(fā)丟失分組的延時通過重復(fù)的ACK檢測丟失報文段發(fā)送方常要連續(xù)發(fā)送大量報文段如果一個報文段丟失,會引起很多連續(xù)的重復(fù)ACK.如果發(fā)送收到一個數(shù)據(jù)的3個重復(fù)的ACK,它會認為確認數(shù)據(jù)之后的報文段丟失快速重傳:

在超時到來之前重傳報文段1/9/2023633.快重傳和快恢復(fù)快速重傳1/9/202363快重傳舉例M1,M2ACK2,ACK3M4主機A主機BB確認M1

M2A發(fā)送M1和M2A收到了三個重復(fù)的確認ACK3,就立即重傳M3,而不必等待超時重傳。M3丟失!A發(fā)送M3但丟失了A發(fā)送M4ACK3M5A發(fā)送M5ACK3B發(fā)送第二個重復(fù)確認

ACK3M6A發(fā)送M6ACK3M3B發(fā)送第三個重復(fù)確認

ACK3B只能再次確認

M2(因為M3沒有收到)1/9/202364快重傳舉例M1,M2ACK2,ACK3M4主機A主機快恢復(fù)算法(1)當(dāng)發(fā)送端收到連續(xù)三個重復(fù)的ACK時,就重新設(shè)置慢開始門限ssthresh。(2)與慢開始不同之處是擁塞窗口cwnd不是設(shè)置為1,而是設(shè)置為ssthresh+3MSS。(3)若收到的重復(fù)的ACK為n個(n>3),則將cwnd設(shè)置為ssthresh+n

MSS。(4)若發(fā)送窗口值還容許發(fā)送報文段,就按擁塞避免算法繼續(xù)發(fā)送報文段。(5)若收到了確認新的報文段的ACK,就將cwnd縮小到ssthresh。1/9/202365快恢復(fù)算法(1)當(dāng)發(fā)送端收到連續(xù)三個重復(fù)的ACK時,TCP的重傳機制重傳機制是TCP中最重要和最復(fù)雜的問題之一。TCP每發(fā)送一個報文段,就對這個報文段設(shè)置一次計時器。只要計時器設(shè)置的重傳時間到但還沒有收到確認,就要重傳這一報文段。1/9/202366TCP的重傳機制重傳機制是TCP中最重要和最復(fù)雜的問題67TCP超時的設(shè)置如何設(shè)置TCP的超時應(yīng)該大于RTT但RTT是變化的太短:造成不必要的重傳太長:對丟包反應(yīng)太慢TCP的重傳機制1/9/20236767TCP超時的設(shè)置TCP的重傳機制1/9/20236768如何估算RTT樣本RTT(SampleRTT):對報文段從發(fā)出到收到該報文段的確認之間的時間進行測量忽略重傳樣本RTT會有波動,要使得估算RTT更平滑,需要將最近幾次的測量進行平均,而非僅僅采用最近一次的SampleRTTEstimatedRTT=(1-)*EstimatedRTT+*SampleRTT參考值:=0.125TCP的重傳機制1/9/20236868如何估算RTTEstimatedRTT=(1-往返時延RTT?往返時間的測量相當(dāng)復(fù)雜

TCP報文段1沒有收到確認。重傳(即報文段2)后,收到了確認報文段ACK。如何判定此確認報文段是對原來的報文段1的確認,還是對重傳的報文段2的確認?發(fā)送一個TCP報文段超時重傳TCP報文段收到ACK時間12往返時延RTT?是對哪一個報文段的確認?1/9/202369往返時延RTT?往返時間的測量相當(dāng)復(fù)雜TCP報文段170RTT估計樣本與RTT估計TCP的重傳機制1/9/20237070RTT估計樣本與RTT估計TCP的重傳機制1/9/2071考慮RTT的波動,估計EstimatedRTT與SampleRTT的偏差DevRTT=(1-)*DevRTT+

*|SampleRTT-EstimatedRTT|(參考值,=0.25)TimeoutInterval=EstimatedRTT+4*DevRTTTCP中的超時間隔為TCP的重傳機制1/9/20237171考慮RTT的波動,估計EstimatedRTT與SampTCP的連接管理-運輸連接的三個階段

運輸連接就有三個階段,即:連接建立、數(shù)據(jù)傳送和連接釋放。運輸連接的管理就是使運輸連接的建立和釋放都能正常地進行。連接建立過程中要解決以下三個問題:要使每一方能夠確知對方的存在。要允許雙方協(xié)商一些參數(shù)(如最大報文段長度,最大窗口大小,服務(wù)質(zhì)量等)。能夠?qū)\輸實體資源(如緩存大小,連接表中的項目等)進行分配。

1/9/202372TCP的連接管理-運輸連接的三個階段運輸連接就有三個階段,客戶/服務(wù)器方式

TCP的連接和建立都是采用客戶服務(wù)器方式。主動發(fā)起連接建立的應(yīng)用進程叫做客戶(client)。被動等待連接建立的應(yīng)用進程叫做服務(wù)器(server)。1/9/202373客戶/服務(wù)器方式TCP的連接和建立都是采用客戶服務(wù)器方式用三次握手建立TCP連接SYN,SEQ=x主機BSYN,ACK,SEQ=y,ACK=x1ACK,SEQ=x+1,ACK=y1被動打開主動打開確認確認主機A連接請求1/9/202374用三次握手建立TCP連接SYN,SEQ=x主機建立TCP連接A的TCP向B發(fā)出連接請求報文段,其首部中的同步比特SYN應(yīng)置為1,并選擇序號x,表明傳送數(shù)據(jù)時的第一個數(shù)據(jù)字節(jié)的序號是x+1。B的TCP收到連接請求報文段后,如同意,則發(fā)回確認。B在確認報文段中應(yīng)將SYN置為1,其確認號應(yīng)為x1,同時也為自己選擇序號y。A收到此報文段后,向B給出確認,其確認號應(yīng)為y1。A的TCP通知上層應(yīng)用進程,連接已經(jīng)建立。當(dāng)運行服務(wù)器進程的主機B的TCP收到主機A的確認后,也通知其上層應(yīng)用進程,連接已經(jīng)建立。1/9/202375建立TCP連接A的TCP向B發(fā)出連接請求報文段TCP連接釋放的過程

FIN,SEQ=xACK,SEQ=y,ACK=x1ACK,SEQ=x+1,ACK=y1應(yīng)用進程釋放連接A不再發(fā)送報文FIN,ACK,SEQ=y,ACK=x+1主機B主機A通知主機應(yīng)用進程①應(yīng)用進程釋放連接B不再發(fā)送報文②確認確認1/9/202376TCP連接釋放的過程FIN,SEQ=xACK,SMonday,January9,2023776.2.2UDP協(xié)議一個最簡單的運輸層協(xié)議多路復(fù)用/多路分解服務(wù)差錯檢查適應(yīng)C/S模式的簡單請求/響應(yīng)通信需要UDP保留各報文間的邊界,不把應(yīng)用進程多次發(fā)送的數(shù)據(jù)合并成一個包發(fā)出去,且發(fā)包后不對該包緩存,這對簡單請求/響應(yīng)很方便;“盡力而為”服務(wù),UDP報文段可能會:丟失應(yīng)用數(shù)據(jù)不按序到達1/9/202377Monday,January9,2023776.2.2Monday,January9,202378UDP處理數(shù)據(jù)的流程發(fā)送方從應(yīng)用進程得到數(shù)據(jù)附加上為多路復(fù)用/多路分解所需的源和目的端口號及差錯檢測信息,形成報文段(數(shù)據(jù)報)遞交給網(wǎng)絡(luò)層,盡力而為的交付給接收主機接收方從網(wǎng)絡(luò)層接收報文段(數(shù)據(jù)報)根據(jù)目的端口號,將數(shù)據(jù)交付給相應(yīng)的應(yīng)用進程UDP通信事先無需握手,是無連接的UDP報文段之間是相互獨立的6.2.2UDP協(xié)議1/9/202378Monday,January9,202378UDP處理Monday,January9,202379UDP報文段的結(jié)構(gòu)源端口#目的端口#32位應(yīng)用數(shù)據(jù)(報文)長度檢查和包括首部在內(nèi)的UDP報文段長度,(以字節(jié)為單位)6.2.2UDP協(xié)議整個報文的校驗和。1/9/202379Monday,January9,202379UDP報文Monday,January9,202380UDP的優(yōu)勢無需建立連接——建立連接會增加時延簡單——發(fā)送方和接收方無需維護連接狀態(tài)段首部開銷小——TCP:20BytevsUDP:8Byte無擁塞控制——UDP可按需要隨時發(fā)送6.2.2UDP協(xié)議1/9/202380Monday,January9,202380UDP的優(yōu)Monday,January9,202381部分采用UDP協(xié)議的應(yīng)用遠程文件系統(tǒng)(NFS)流式多媒體因特網(wǎng)電話網(wǎng)絡(luò)管理(SNMP)選路協(xié)議(RIP)域名解析(DNS)6.2.2UDP協(xié)議1/9/202381Monday,January9,202381部分采用U82UDP大量應(yīng)用可能導(dǎo)致的嚴重后果路由器中大量的分組溢出顯著減小TCP通信的速率,甚至擠垮TCP會話使用UDP的可靠數(shù)據(jù)傳輸在應(yīng)用層實現(xiàn)數(shù)據(jù)的可靠傳輸增加了應(yīng)用進程的實現(xiàn)難度6.2.2UDP協(xié)議1/9/20238282UDP大量應(yīng)用可能導(dǎo)致的嚴重后果6.2.2UDP協(xié)議第六章

傳輸層協(xié)議及分析1/9/202383第六章

傳輸層協(xié)議及分析1/9/20231重點和難點重點傳輸層的功能TCP協(xié)議和UDP協(xié)議難點TCP協(xié)議的理解1/9/202384重點和難點重點1/9/20232OSI體系結(jié)構(gòu)中的傳輸層Internet體系中的傳輸層1/9/202385OSI體系結(jié)構(gòu)中的傳輸層1/9/202336.1OSI體系結(jié)構(gòu)中的傳輸層傳輸層位于開放系統(tǒng)互連模型中的第四層。是銜接由物理層、數(shù)據(jù)鏈路層及網(wǎng)路層構(gòu)成的通信子網(wǎng)和包含會話層、表示層及應(yīng)用層的資源子網(wǎng)的橋梁,起到承上啟下的作用。傳輸層對高層用戶起到了屏蔽作用,使高層用戶的同等實體在交互過程中不會受到下層數(shù)據(jù)通信技術(shù)細節(jié)的影響。1/9/2023866.1OSI體系結(jié)構(gòu)中的傳輸層傳輸層位于開放系統(tǒng)互連模傳輸層與其上下層之間的關(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ù)訪問點NSAP1/9/202387傳輸層與其上下層之間的關(guān)系的OSI表示法傳輸實體傳輸實體從通信和信息處理的角度看,傳輸層向它上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,同時也是用戶功能中的最低層。物理層網(wǎng)絡(luò)層傳輸層應(yīng)用層數(shù)據(jù)鏈路層面向信息處理面向通信用戶功能網(wǎng)絡(luò)功能6.1OSI體系結(jié)構(gòu)中的傳輸層1/9/202388從通信和信息處理的角度看,傳輸層向它上面的應(yīng)用層提供通信服務(wù)傳輸層為相互通信的應(yīng)用進程提供了邏輯通信

54321傳輸層提供應(yīng)用進程間的邏輯通信應(yīng)用進程應(yīng)用進程IP層AP1AP2AP4端口端口54321AP3主機A主機B路由器1路由器2AP1LAN2WANAP2AP3AP4LAN1IP協(xié)議的作用范圍傳輸層協(xié)議TCP和UDP的作用范圍1/9/202389傳輸層為相互通信的應(yīng)用進程提供了邏輯通信5傳輸層提供應(yīng)用進應(yīng)用進程之間的通信兩個主機進行通信實際上就是兩個主機中的應(yīng)用進程互相通信。應(yīng)用進程之間的通信又稱為端到端的通信。傳輸層的一個很重要的功能就是復(fù)用和分用。應(yīng)用層不同進程的報文通過不同的端口向下交到傳輸層,再往下就共用網(wǎng)絡(luò)層提供的服務(wù)。傳輸層提供應(yīng)用進程間的邏輯通信,這里“邏輯通信”的意思是:傳輸層之間的通信好像是沿水平方向傳送數(shù)據(jù)。但事實上這兩個傳輸層之間并沒有一條水平方向的物理連接。1/9/202390應(yīng)用進程之間的通信兩個主機進行通信實際上就是兩個主機中的應(yīng)用端口的概念端口就是運輸層服務(wù)訪問點TSAP。端口的作用就是讓應(yīng)用層的各種應(yīng)用進程都能將其數(shù)據(jù)通過端口向下交付給傳輸層,以及讓傳輸層知道應(yīng)當(dāng)將其報文段中的數(shù)據(jù)向上通過端口交付給應(yīng)用層相應(yīng)的進程。從這個意義上講,端口是用來標(biāo)志應(yīng)用層的進程。1/9/202391端口的概念端口就是運輸層服務(wù)訪問點TSAP。1/9/202端口在進程之間的通信中所起的作用應(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ā)送方接收方1/9/202392端口在進程之間的通信中所起的作用應(yīng)傳網(wǎng)TCP報文段UDP端口端口用一個16bit端口號進行標(biāo)志。端口號只具有本地意義,即端口號只是為了標(biāo)志本計算機應(yīng)用層中的各進程。在因特網(wǎng)中不同計算機的相同端口號是沒有聯(lián)系的。1/9/202393端口端口用一個16bit端口號進行標(biāo)志。1/9/20兩類端口一類是熟知端口,其數(shù)值一般為0~1023,保留給諸如HTTP(80)、FTP(21)等熟知協(xié)議的。當(dāng)一種新的應(yīng)用程序出現(xiàn)時,必須為它指派一個熟知端口。另一類則是一般端口,用來隨時分配給請求通信的客戶進程。1/9/202394兩類端口一類是熟知端口,其數(shù)值一般為0~1023,保留給插口(socket)TCP使用“連接”(而不僅僅是“端口”)作為最基本的抽象,同時將TCP連接的端點稱為插口(socket),或套接字、套接口。插口和端口、IP地址的關(guān)系是:IP地址3端口號15003,1500插口(socket)1/9/202395插口(socket)TCP使用“連接”(而不僅僅是“端口6.2Internet體系中的傳輸層在Internet網(wǎng)絡(luò)上,傳輸層有兩個并列的協(xié)議,一個是TCP,一個是UDP。TCP即傳輸控制協(xié)議,它是面向連接的,可提供高可靠的服務(wù)。UDP即用戶數(shù)據(jù)報協(xié)議,它是面向無連接的,可提供高效率的服務(wù)。1/9/2023966.2Internet體系中的傳輸層在Internet網(wǎng)絡(luò)傳輸層向上提供可靠的和不可靠的邏輯通信信道?應(yīng)用層傳輸層發(fā)送進程接收進程接收進程數(shù)據(jù)數(shù)據(jù)全雙工可靠信道數(shù)據(jù)數(shù)據(jù)使用TCP協(xié)議使用UDP協(xié)議不可靠信道發(fā)送進程1/9/202397傳輸層向上提供可靠的和不可靠的邏輯通信信道?應(yīng)傳發(fā)接接數(shù)據(jù)6.2.1TCP協(xié)議TCP的主要功能完成對數(shù)據(jù)報的確認、流量控制和網(wǎng)絡(luò)擁塞的處理。數(shù)據(jù)報自動檢測、提供錯誤自動重發(fā)功能。將多條路徑傳送的數(shù)據(jù)報按照原序排列,并對重復(fù)數(shù)據(jù)進行擇取。控制超時重發(fā)、自動調(diào)整超時值。提供自動恢復(fù)丟失數(shù)據(jù)的功能1/9/2023986.2.1TCP協(xié)議TCP的主要功能1/9/202316TCP的數(shù)據(jù)傳送過程TCP是一種面向數(shù)據(jù)流的協(xié)議,操作過程分為三個階段:建立TCP連接、傳送數(shù)據(jù)和結(jié)束TCP連接。應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層Ethernet用戶報文TCP數(shù)據(jù)報IP數(shù)據(jù)報以太幀用戶數(shù)據(jù)用戶數(shù)據(jù)數(shù)據(jù)FTPH數(shù)據(jù)TCPHIPHTCPHTCPHIPH以太幀頭FTPH數(shù)據(jù)FTPH數(shù)據(jù)FTPH數(shù)據(jù)TCP的報文傳送目的地址源地址幀頭包類型包數(shù)據(jù)CRC校驗1/9/202399TCP的數(shù)據(jù)傳送過程應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層Ether100

TCP數(shù)據(jù)報的格式20字節(jié)的固定首部TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充1/9/202310018TCP數(shù)據(jù)報的格式20字節(jié)的TCP目的端101TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充源端口和目的端口字段——各占2字節(jié)。端口是運輸層與應(yīng)用層的服務(wù)接口。運輸層的復(fù)用和分用功能都要通過端口才能實現(xiàn)。

TCP數(shù)據(jù)報的格式1/9/202310119TCP目的端口首部檢驗和選102TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充序號字段——占4字節(jié)。TCP連接中傳送的數(shù)據(jù)流中的每一個字節(jié)都編上一個序號。序號字段的值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)在整個報文字節(jié)流中的序號。

TCP數(shù)據(jù)報的格式1/9/202310220TCP目的端口首部檢驗和選103TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充確認號字段——占4字節(jié),是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號。

TCP數(shù)據(jù)報的格式1/9/202310321TCP目的端口首部檢驗和選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。因此確認號表示接收端期望下次收到的數(shù)據(jù)中的第一個數(shù)據(jù)字節(jié)的序號。1/9/2023104TCP的數(shù)據(jù)編號與確認TCP協(xié)議是面向字節(jié)的。TCP將TCP序列號和確認序列號示例主機A主機BSeq=42,ACK=79,data=‘C’Seq=79,ACK=43,data=‘C’Seq=43,ACK=80用戶鍵入‘C’主機確認收到回顯的‘C’主機確認收到’C’,回顯’C’時間

TCP數(shù)據(jù)報的格式1/9/2023105TCP序列號和確認序列號示例主機A主機BSeq=43.5面向連接的傳輸:TCP—報文格式TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充首部長度——占4bit,它指示以32bit為單位的TCP首部長度。1/9/20231063.5面向連接的傳輸:TCP—報文格式TCP目的TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充保留字段——占6bit,保留為今后使用,但目前應(yīng)置為0。3.5面向連接的傳輸:TCP—報文格式1/9/2023107TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特08162431填充緊急比特URG——當(dāng)URG1時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應(yīng)盡快傳送。(一般不使用)3.5面向連接的傳輸:TCP—報文格式1/9/2023108TCP目的端口首部檢驗和選項TCP首部目的端口首部長度檢驗和選項(長度可變)源端口序號緊急指針窗口確認號保留FIN32bitSYNRSTPSHACKURG比特0

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論