版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章
傳輸層協(xié)議及分析1/9/20231第六章
傳輸層協(xié)議及分析1/9/20231重點(diǎn)和難點(diǎn)重點(diǎn)傳輸層的功能TCP協(xié)議和UDP協(xié)議難點(diǎn)TCP協(xié)議的理解1/9/20232重點(diǎn)和難點(diǎn)重點(diǎn)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)和包含會(huì)話層、表示層及應(yīng)用層的資源子網(wǎng)的橋梁,起到承上啟下的作用。傳輸層對(duì)高層用戶起到了屏蔽作用,使高層用戶的同等實(shí)體在交互過程中不會(huì)受到下層數(shù)據(jù)通信技術(shù)細(xì)節(jié)的影響。1/9/202346.1OSI體系結(jié)構(gòu)中的傳輸層傳輸層位于開放系統(tǒng)互連模傳輸層與其上下層之間的關(guān)系的OSI表示法
傳輸實(shí)體傳輸實(shí)體傳輸協(xié)議傳輸層層接口傳輸服務(wù)用戶(應(yīng)用層實(shí)體)傳輸服務(wù)用戶(應(yīng)用層實(shí)體)層接口網(wǎng)絡(luò)層(或網(wǎng)際層)應(yīng)用層主機(jī)A主機(jī)B傳輸層服務(wù)訪問點(diǎn)TSAP網(wǎng)絡(luò)層服務(wù)訪問點(diǎn)NSAP1/9/20235傳輸層與其上下層之間的關(guān)系的OSI表示法傳輸實(shí)體傳輸實(shí)體從通信和信息處理的角度看,傳輸層向它上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,同時(shí)也是用戶功能中的最低層。物理層網(wǎng)絡(luò)層傳輸層應(yīng)用層數(shù)據(jù)鏈路層面向信息處理面向通信用戶功能網(wǎng)絡(luò)功能6.1OSI體系結(jié)構(gòu)中的傳輸層1/9/20236從通信和信息處理的角度看,傳輸層向它上面的應(yīng)用層提供通信服務(wù)傳輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信
54321傳輸層提供應(yīng)用進(jìn)程間的邏輯通信應(yīng)用進(jìn)程應(yīng)用進(jìn)程IP層AP1AP2AP4端口端口54321AP3主機(jī)A主機(jī)B路由器1路由器2AP1LAN2WANAP2AP3AP4LAN1IP協(xié)議的作用范圍傳輸層協(xié)議TCP和UDP的作用范圍1/9/20237傳輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信5傳輸層提供應(yīng)用進(jìn)應(yīng)用進(jìn)程之間的通信兩個(gè)主機(jī)進(jìn)行通信實(shí)際上就是兩個(gè)主機(jī)中的應(yīng)用進(jìn)程互相通信。應(yīng)用進(jìn)程之間的通信又稱為端到端的通信。傳輸層的一個(gè)很重要的功能就是復(fù)用和分用。應(yīng)用層不同進(jìn)程的報(bào)文通過不同的端口向下交到傳輸層,再往下就共用網(wǎng)絡(luò)層提供的服務(wù)。傳輸層提供應(yīng)用進(jìn)程間的邏輯通信,這里“邏輯通信”的意思是:傳輸層之間的通信好像是沿水平方向傳送數(shù)據(jù)。但事實(shí)上這兩個(gè)傳輸層之間并沒有一條水平方向的物理連接。1/9/20238應(yīng)用進(jìn)程之間的通信兩個(gè)主機(jī)進(jìn)行通信實(shí)際上就是兩個(gè)主機(jī)中的應(yīng)用端口的概念端口就是運(yùn)輸層服務(wù)訪問點(diǎn)TSAP。端口的作用就是讓應(yīng)用層的各種應(yīng)用進(jìn)程都能將其數(shù)據(jù)通過端口向下交付給傳輸層,以及讓傳輸層知道應(yīng)當(dāng)將其報(bào)文段中的數(shù)據(jù)向上通過端口交付給應(yīng)用層相應(yīng)的進(jìn)程。從這個(gè)意義上講,端口是用來(lái)標(biāo)志應(yīng)用層的進(jìn)程。1/9/20239端口的概念端口就是運(yùn)輸層服務(wù)訪問點(diǎn)TSAP。1/9/202端口在進(jìn)程之間的通信中所起的作用應(yīng)用層傳輸層網(wǎng)絡(luò)層TCP報(bào)文段UDP用戶數(shù)據(jù)報(bào)應(yīng)用進(jìn)程TCP復(fù)用IP復(fù)用UDP復(fù)用TCP報(bào)文段UDP用戶數(shù)據(jù)報(bào)應(yīng)用進(jìn)程端口端口TCP分用UDP分用IP分用IP數(shù)據(jù)報(bào)IP數(shù)據(jù)報(bào)發(fā)送方接收方1/9/202310端口在進(jìn)程之間的通信中所起的作用應(yīng)傳網(wǎng)TCP報(bào)文段UDP端口端口用一個(gè)16bit端口號(hào)進(jìn)行標(biāo)志。端口號(hào)只具有本地意義,即端口號(hào)只是為了標(biāo)志本計(jì)算機(jī)應(yīng)用層中的各進(jìn)程。在因特網(wǎng)中不同計(jì)算機(jī)的相同端口號(hào)是沒有聯(lián)系的。1/9/202311端口端口用一個(gè)16bit端口號(hào)進(jìn)行標(biāo)志。1/9/20兩類端口一類是熟知端口,其數(shù)值一般為0~1023,保留給諸如HTTP(80)、FTP(21)等熟知協(xié)議的。當(dāng)一種新的應(yīng)用程序出現(xiàn)時(shí),必須為它指派一個(gè)熟知端口。另一類則是一般端口,用來(lái)隨時(shí)分配給請(qǐng)求通信的客戶進(jìn)程。1/9/202312兩類端口一類是熟知端口,其數(shù)值一般為0~1023,保留給插口(socket)TCP使用“連接”(而不僅僅是“端口”)作為最基本的抽象,同時(shí)將TCP連接的端點(diǎn)稱為插口(socket),或套接字、套接口。插口和端口、IP地址的關(guān)系是:IP地址3端口號(hào)15003,1500插口(socket)1/9/202313插口(socket)TCP使用“連接”(而不僅僅是“端口6.2Internet體系中的傳輸層在Internet網(wǎng)絡(luò)上,傳輸層有兩個(gè)并列的協(xié)議,一個(gè)是TCP,一個(gè)是UDP。TCP即傳輸控制協(xié)議,它是面向連接的,可提供高可靠的服務(wù)。UDP即用戶數(shù)據(jù)報(bào)協(xié)議,它是面向無(wú)連接的,可提供高效率的服務(wù)。1/9/2023146.2Internet體系中的傳輸層在Internet網(wǎng)絡(luò)傳輸層向上提供可靠的和不可靠的邏輯通信信道?應(yīng)用層傳輸層發(fā)送進(jìn)程接收進(jìn)程接收進(jìn)程數(shù)據(jù)數(shù)據(jù)全雙工可靠信道數(shù)據(jù)數(shù)據(jù)使用TCP協(xié)議使用UDP協(xié)議不可靠信道發(fā)送進(jìn)程1/9/202315傳輸層向上提供可靠的和不可靠的邏輯通信信道?應(yīng)傳發(fā)接接數(shù)據(jù)6.2.1TCP協(xié)議TCP的主要功能完成對(duì)數(shù)據(jù)報(bào)的確認(rèn)、流量控制和網(wǎng)絡(luò)擁塞的處理。數(shù)據(jù)報(bào)自動(dòng)檢測(cè)、提供錯(cuò)誤自動(dòng)重發(fā)功能。將多條路徑傳送的數(shù)據(jù)報(bào)按照原序排列,并對(duì)重復(fù)數(shù)據(jù)進(jìn)行擇取??刂瞥瑫r(shí)重發(fā)、自動(dòng)調(diào)整超時(shí)值。提供自動(dòng)恢復(fù)丟失數(shù)據(jù)的功能1/9/2023166.2.1TCP協(xié)議TCP的主要功能1/9/202316TCP的數(shù)據(jù)傳送過程TCP是一種面向數(shù)據(jù)流的協(xié)議,操作過程分為三個(gè)階段:建立TCP連接、傳送數(shù)據(jù)和結(jié)束TCP連接。應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層Ethernet用戶報(bào)文TCP數(shù)據(jù)報(bào)IP數(shù)據(jù)報(bào)以太幀用戶數(shù)據(jù)用戶數(shù)據(jù)數(shù)據(jù)FTPH數(shù)據(jù)TCPHIPHTCPHTCPHIPH以太幀頭FTPH數(shù)據(jù)FTPH數(shù)據(jù)FTPH數(shù)據(jù)TCP的報(bào)文傳送目的地址源地址幀頭包類型包數(shù)據(jù)CRC校驗(yàn)1/9/202317TCP的數(shù)據(jù)傳送過程應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層Ether18
TCP數(shù)據(jù)報(bào)的格式20字節(jié)的固定首部TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充1/9/20231818TCP數(shù)據(jù)報(bào)的格式20字節(jié)的TCP目的端19TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充源端口和目的端口字段——各占2字節(jié)。端口是運(yùn)輸層與應(yīng)用層的服務(wù)接口。運(yùn)輸層的復(fù)用和分用功能都要通過端口才能實(shí)現(xiàn)。
TCP數(shù)據(jù)報(bào)的格式1/9/20231919TCP目的端口首部檢驗(yàn)和選20TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充序號(hào)字段——占4字節(jié)。TCP連接中傳送的數(shù)據(jù)流中的每一個(gè)字節(jié)都編上一個(gè)序號(hào)。序號(hào)字段的值則指的是本報(bào)文段所發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)在整個(gè)報(bào)文字節(jié)流中的序號(hào)。
TCP數(shù)據(jù)報(bào)的格式1/9/20232020TCP目的端口首部檢驗(yàn)和選21TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充確認(rèn)號(hào)字段——占4字節(jié),是期望收到對(duì)方的下一個(gè)報(bào)文段的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。
TCP數(shù)據(jù)報(bào)的格式1/9/20232121TCP目的端口首部檢驗(yàn)和選TCP的數(shù)據(jù)編號(hào)與確認(rèn)
TCP協(xié)議是面向字節(jié)的。TCP將所要傳送的報(bào)文看成是字節(jié)組成的數(shù)據(jù)流,并使每一個(gè)字節(jié)對(duì)應(yīng)于一個(gè)序號(hào)。在連接建立時(shí),雙方要商定初始序號(hào)。TCP每次發(fā)送的報(bào)文段的首部中的序號(hào)字段數(shù)值表示該報(bào)文段中的數(shù)據(jù)部分的第一個(gè)字節(jié)的序號(hào)。TCP的確認(rèn)是對(duì)接收到的數(shù)據(jù)的最高序號(hào)表示確認(rèn)。接收端返回的確認(rèn)號(hào)是已收到的數(shù)據(jù)的最高序號(hào)加1。因此確認(rèn)號(hào)表示接收端期望下次收到的數(shù)據(jù)中的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)。1/9/202322TCP的數(shù)據(jù)編號(hào)與確認(rèn)TCP協(xié)議是面向字節(jié)的。TCP將TCP序列號(hào)和確認(rèn)序列號(hào)示例主機(jī)A主機(jī)BSeq=42,ACK=79,data=‘C’Seq=79,ACK=43,data=‘C’Seq=43,ACK=80用戶鍵入‘C’主機(jī)確認(rèn)收到回顯的‘C’主機(jī)確認(rèn)收到’C’,回顯’C’時(shí)間
TCP數(shù)據(jù)報(bào)的格式1/9/202323TCP序列號(hào)和確認(rèn)序列號(hào)示例主機(jī)A主機(jī)BSeq=43.5面向連接的傳輸:TCP—報(bào)文格式TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充首部長(zhǎng)度——占4bit,它指示以32bit為單位的TCP首部長(zhǎng)度。1/9/2023243.5面向連接的傳輸:TCP—報(bào)文格式TCP目的TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充保留字段——占6bit,保留為今后使用,但目前應(yīng)置為0。3.5面向連接的傳輸:TCP—報(bào)文格式1/9/202325TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充緊急比特URG——當(dāng)URG1時(shí),表明緊急指針字段有效。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送。(一般不使用)3.5面向連接的傳輸:TCP—報(bào)文格式1/9/202326TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充確認(rèn)比特ACK——只有當(dāng)ACK1時(shí)確認(rèn)號(hào)字段才有效。當(dāng)ACK0時(shí),確認(rèn)號(hào)無(wú)效。3.5面向連接的傳輸:TCP—報(bào)文格式1/9/202327TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充推送比特PSH(PuSH)——接收TCP收到推送比特置1的報(bào)文段,就盡快地交付給接收應(yīng)用進(jìn)程,而不再等到整個(gè)緩存都填滿了后再向上交付。3.5面向連接的傳輸:TCP—報(bào)文格式1/9/202328TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充復(fù)位比特RST(ReSeT)——當(dāng)RST1時(shí),表明TCP連接中出現(xiàn)嚴(yán)重差錯(cuò)(如由于主機(jī)崩潰或其他原因),必須釋放連接,然后再重新建立運(yùn)輸連接。3.5面向連接的傳輸:TCP—報(bào)文格式1/9/202329TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充同步比特SYN——同步比特SYN置為1,就表示這是一個(gè)連接請(qǐng)求或連接接受報(bào)文。3.5面向連接的傳輸:TCP—報(bào)文格式1/9/202330TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充終止比特FIN(FINal)——用來(lái)釋放一個(gè)連接。當(dāng)FIN1時(shí),表明此報(bào)文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接。3.5面向連接的傳輸:TCP—報(bào)文格式1/9/202331TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充窗口字段——占2字節(jié)。窗口字段用來(lái)控制對(duì)方發(fā)送的數(shù)據(jù)量,單位為字節(jié)。TCP連接的一端根據(jù)設(shè)置的緩存空間大小確定自己的接收窗口大小,然后通知對(duì)方以確定對(duì)方的發(fā)送窗口的上限。3.5面向連接的傳輸:TCP—報(bào)文格式1/9/202332TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充檢驗(yàn)和——占2字節(jié)。檢驗(yàn)和字段檢驗(yàn)的范圍包括首部和數(shù)據(jù)這兩部分。在計(jì)算檢驗(yàn)和時(shí),要在TCP報(bào)文段的前面加上12字節(jié)的偽首部(源IP地址(4字節(jié))、目的IP地址(4字節(jié))、0(1字節(jié))、6(TCP協(xié)議號(hào),1字節(jié))、TCP長(zhǎng)度(2字節(jié))
)。3.5面向連接的傳輸:TCP—報(bào)文格式1/9/202333TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充緊急指針字段——占16bit。緊急指針指出在本報(bào)文段中的緊急數(shù)據(jù)的最后一個(gè)字節(jié)的序號(hào)。
3.5面向連接的傳輸:TCP—報(bào)文格式1/9/202334TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充選項(xiàng)字段——長(zhǎng)度可變。定義了最大報(bào)文段長(zhǎng)度MSS(MaximumSegmentSize)。MSS告訴對(duì)方TCP:“我的緩存所能接收的報(bào)文段的數(shù)據(jù)字段的最大長(zhǎng)度是MSS個(gè)字節(jié)。”此外還定義了時(shí)間戳選項(xiàng)。MSS是TCP報(bào)文段中的數(shù)據(jù)字段的最大長(zhǎng)度。數(shù)據(jù)字段加上TCP首部才等于整個(gè)的TCP報(bào)文段。1/9/202335TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充填充字段——這是為了使整個(gè)首部長(zhǎng)度是4字節(jié)的整數(shù)倍。3.5面向連接的傳輸:TCP—報(bào)文格式1/9/202336TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP的流量控制TCP流量控制背景TCP接收方有一個(gè)緩存,所有上交的數(shù)據(jù)全部緩存在里面應(yīng)用進(jìn)程從緩沖區(qū)中讀取數(shù)據(jù)可能很慢目標(biāo)發(fā)送方不會(huì)由于傳得太多太快而使得接收方緩存溢出手段接收方在反饋時(shí),將緩沖區(qū)剩余空間的大小填充在報(bào)文段首部的窗口字段中,通知發(fā)送方1/9/202337TCP的流量控制TCP流量控制1/9/202337窗口值的計(jì)算空閑空間緩存中的TCP數(shù)據(jù)RcvWindow來(lái)自IP的數(shù)據(jù)應(yīng)用進(jìn)程RcvBufferLastByteRcvd–LastByteRead≤RcvBuffer接收方:RcvWindows=RcvBuffer–[LastByteRcvd-LastByteRead]發(fā)送方:LastByteSent–LastByteAcked≤RcvWindow接收端窗口rwnd和擁塞窗口cwnd1/9/202338窗口值的計(jì)算空閑空間緩存中的RcvWindow來(lái)自IP的數(shù)據(jù)Monday,January9,2023393.5面向連接的傳輸:TCP一種特殊的情況接收方通知發(fā)送方RcvWindow為0,且接收方無(wú)任何數(shù)據(jù)傳送給發(fā)送方發(fā)送方持續(xù)向接受方發(fā)送只有一個(gè)字節(jié)數(shù)據(jù)的報(bào)文段,目的是試探1/9/202339Monday,January9,2023393.5面收到確認(rèn)即可前移1002003004005006007008009001012013014015016017018011發(fā)送窗口可發(fā)送不可發(fā)送指針發(fā)送端要發(fā)送900字節(jié)長(zhǎng)的數(shù)據(jù),劃分為9個(gè)100字節(jié)長(zhǎng)的報(bào)文段,而發(fā)送窗口確定為500字節(jié)。發(fā)送端只要收到了對(duì)方的確認(rèn),發(fā)送窗口就可前移。發(fā)送TCP要維護(hù)一個(gè)指針。每發(fā)送一個(gè)報(bào)文段,指針就向前移動(dòng)一個(gè)報(bào)文段的距離。1/9/202340收到確認(rèn)即可前移1002003004005006007008發(fā)送端已發(fā)送了400字節(jié)的數(shù)據(jù),但只收到對(duì)前200字節(jié)數(shù)據(jù)的確認(rèn),同時(shí)窗口大小不變?,F(xiàn)在發(fā)送端還可發(fā)送300字節(jié)。收到確認(rèn)即可前移1002003004005006007008009001012013014015016017018011可發(fā)送不可發(fā)送指針1002003004005006007008009001012013014015016017018011發(fā)送窗口可發(fā)送不可發(fā)送指針發(fā)送窗口前移已發(fā)送并被確認(rèn)已發(fā)送但未被確認(rèn)1/9/202341發(fā)送端已發(fā)送了400字節(jié)的數(shù)據(jù),但只收到對(duì)前200字發(fā)送端收到了對(duì)方對(duì)前400字節(jié)數(shù)據(jù)的確認(rèn),但對(duì)方通知發(fā)送端必須把窗口減小到400字節(jié)?,F(xiàn)在發(fā)送端最多還可發(fā)送400字節(jié)的數(shù)據(jù)。1002003004005006007008009001012013014015016017018011已發(fā)送并被確認(rèn)已發(fā)送但未被確認(rèn)可發(fā)送不可發(fā)送指針1002003004005006007008009001012013014015016017018011已發(fā)送并被確認(rèn)可發(fā)送不可發(fā)送指針發(fā)送窗口前移發(fā)送窗口縮小1/9/202342發(fā)送端收到了對(duì)方對(duì)前400字節(jié)數(shù)據(jù)的確認(rèn),但對(duì)方通知發(fā)送利用可變窗口大小進(jìn)行流量控制
雙方確定的窗口值是400SEQ=1SEQ=201SEQ=401SEQ=301SEQ=101SEQ=501ACK=201,WIN=300ACK=601,WIN=0ACK=501,WIN=200主機(jī)A主機(jī)B允許A再發(fā)送300字節(jié)(序號(hào)201至500)A還能發(fā)送200字節(jié)A還能發(fā)送200字節(jié)(序號(hào)301至500)A還能發(fā)送300字節(jié)A還能發(fā)送100字節(jié)(序號(hào)401至500)A超時(shí)重發(fā),但不能發(fā)送序號(hào)500以后的數(shù)據(jù)允許A再發(fā)送200字節(jié)(序號(hào)501至700)A還能發(fā)送100字節(jié)(序號(hào)501至700)不允許A再發(fā)送(到序號(hào)600的數(shù)據(jù)都已收到)SEQ=201丟失!1/9/202343利用可變窗口大小進(jìn)行流量控制
雙方確定的窗口值是400SMonday,January9,202344TCP的擁塞控制TCP進(jìn)行擁塞控制的方法每個(gè)發(fā)送方自動(dòng)感知網(wǎng)絡(luò)擁塞的程度發(fā)送方根據(jù)感知的結(jié)果限制外發(fā)的流量如果前方路徑上出現(xiàn)了擁塞,則降低發(fā)送速率如果前方路徑上沒有出現(xiàn)擁塞,則增加發(fā)送速率1/9/202344Monday,January9,202344TCP的擁45TCP擁塞控制TCP擁塞控制需要解決的三個(gè)問題TCP發(fā)送方如何限制外發(fā)流量的速率發(fā)送端的主機(jī)在確定發(fā)送報(bào)文段的速率時(shí),既要根據(jù)接收端的接收能力,又要從全局考慮不要使網(wǎng)絡(luò)發(fā)生擁塞。
LastByteSent-LastByteAckedmin{CongWin,RcvWindow}發(fā)送方如何感知擁塞超時(shí)三個(gè)冗余ACK在感知到擁塞后,發(fā)送方如何調(diào)節(jié)發(fā)送速率rate=
CongWin
RTT
Bytes/sec1/9/20234545TCP擁塞控制TCP擁塞控制需要解決的三個(gè)問題rate46TCP擁塞控制TCP擁塞控制算法(Reno算法)加性增,乘性減(AIMD)出現(xiàn)丟包事件后將當(dāng)前CongWin大小減半,可以大大減少注入到網(wǎng)絡(luò)中的分組數(shù)當(dāng)沒有丟包事件發(fā)生,每個(gè)RTT之后將CongWin增大1個(gè)MSS使擁塞窗口緩慢增大,以防止網(wǎng)絡(luò)過早出現(xiàn)擁塞擁塞窗口時(shí)間1/9/20234646TCP擁塞控制TCP擁塞控制算法(Reno算法)擁塞窗口Monday,January9,202347TCP擁塞控制慢啟動(dòng)建立連接時(shí),CongWin=1MSS例如:MSS=500bytes&RTT=200msec初始速率=20kbps可用帶寬>>MSS/RTT初始階段以指數(shù)的速度增加發(fā)送速率連接初始階段,以指數(shù)的速度增加發(fā)送速率,直到發(fā)生一個(gè)丟包事件為止每過一個(gè)RTT將CongWin的值翻倍每收到一個(gè)ACK就增加Congwin總結(jié):初始速率很低但速率的增長(zhǎng)速度很快1/9/202347Monday,January9,202347TCP擁塞Monday,January9,202348TCP擁塞控制慢啟動(dòng)主機(jī)A1個(gè)報(bào)文段RTT主機(jī)B時(shí)間兩個(gè)報(bào)文段四個(gè)報(bào)文段1/9/202348Monday,January9,202348TCP擁塞Monday,January9,202349TCP擁塞控制對(duì)超時(shí)事件的反應(yīng)門限值設(shè)為當(dāng)前CongWin的一半(門限值初始值65kB)將CongWin設(shè)為1個(gè)MSS大小;窗口以指數(shù)速度增大窗口增大到門限值之后,再以線性速度增大對(duì)收到3個(gè)重復(fù)ACK的反應(yīng)將CongWin減為原來(lái)的一半線性增大擁塞窗口特別說明:早期的TCPTahoe版本對(duì)上述兩個(gè)事件并不區(qū)分,統(tǒng)一將CongWin降為1。實(shí)際上,3個(gè)重復(fù)的ACK相對(duì)超時(shí)來(lái)說是一個(gè)預(yù)警信號(hào),因此在Reno版中作了區(qū)分1/9/202349Monday,January9,202349TCP擁塞乘法減小
(multiplicativedecrease)
“乘法減小“是指不論在慢開始階段還是擁塞避免階段,只要出現(xiàn)一次超時(shí)(即出現(xiàn)一次網(wǎng)絡(luò)擁塞),就把慢開始門限值ssthresh設(shè)置為當(dāng)前的擁塞窗口值乘以0.5。當(dāng)網(wǎng)絡(luò)頻繁出現(xiàn)擁塞時(shí),ssthresh值就下降得很快,以大大減少注入到網(wǎng)絡(luò)中的分組數(shù)。1/9/202350乘法減小
(multiplicativedecrease)加法增大
(additiveincrease)
“加法增大”是指執(zhí)行擁塞避免算法后,當(dāng)收到對(duì)所有報(bào)文段的確認(rèn)就將擁塞窗口cwnd增加一個(gè)MSS大小,使擁塞窗口緩慢增大,以防止網(wǎng)絡(luò)過早出現(xiàn)擁塞。1/9/202351加法增大
(additiveincrease)“加法增大強(qiáng)調(diào)說明
“擁塞避免”并非指完全能夠避免了擁塞。利用以上的措施要完全避免網(wǎng)絡(luò)擁塞還是不可能的?!皳砣苊狻笔钦f在擁塞避免階段把擁塞窗口控制為按線性規(guī)律增長(zhǎng),使網(wǎng)絡(luò)比較不容易出現(xiàn)擁塞。1/9/202352強(qiáng)調(diào)說明“擁塞避免”并非指完全能夠避免了擁塞。利用以上的措慢開始和擁塞避免算法的實(shí)現(xiàn)舉例當(dāng)TCP連接進(jìn)行初始化時(shí),將擁塞窗口置為1。圖中的窗口單位不使用字節(jié)而使用報(bào)文段。慢開始門限的初始值設(shè)置為16個(gè)報(bào)文段,即ssthresh=16。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進(jìn)入擁塞避免發(fā)生超時(shí)指數(shù)規(guī)律增長(zhǎng)線性規(guī)律增長(zhǎng)ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進(jìn)入擁塞避免1/9/202353慢開始和擁塞避免算法的實(shí)現(xiàn)舉例當(dāng)TCP連接進(jìn)行初始化時(shí)慢開始和擁塞避免算法的實(shí)現(xiàn)舉例發(fā)送端的發(fā)送窗口不能超過擁塞窗口cwnd和接收端窗口rwnd中的最小值。我們假定接收端窗口足夠大,因此現(xiàn)在發(fā)送窗口的數(shù)值等于擁塞窗口的數(shù)值。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進(jìn)入擁塞避免發(fā)生超時(shí)指數(shù)規(guī)律增長(zhǎng)線性規(guī)律增長(zhǎng)ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進(jìn)入擁塞避免1/9/202354慢開始和擁塞避免算法的實(shí)現(xiàn)舉例發(fā)送端的發(fā)送窗口不能超過擁塞慢開始和擁塞避免算法的實(shí)現(xiàn)舉例在執(zhí)行慢開始算法時(shí),擁塞窗口cwnd的初始值為1,發(fā)送第一個(gè)報(bào)文段M0。
246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進(jìn)入擁塞避免發(fā)生超時(shí)指數(shù)規(guī)律增長(zhǎng)線性規(guī)律增長(zhǎng)ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進(jìn)入擁塞避免1/9/202355慢開始和擁塞避免算法的實(shí)現(xiàn)舉例在執(zhí)行慢開始算法時(shí),擁塞窗口慢開始和擁塞避免算法的實(shí)現(xiàn)舉例246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進(jìn)入擁塞避免發(fā)生超時(shí)指數(shù)規(guī)律增長(zhǎng)線性規(guī)律增長(zhǎng)ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進(jìn)入擁塞避免發(fā)送端收到ACK1(確認(rèn)M0,期望收到M1)后,將cwnd從1增大到2,于是發(fā)送端可以接著發(fā)送M1和M2兩個(gè)報(bào)文段。1/9/202356慢開始和擁塞避免算法的實(shí)現(xiàn)舉例24681012141618慢開始和擁塞避免算法的實(shí)現(xiàn)舉例接收端發(fā)回ACK2和ACK3。發(fā)送端每收到一個(gè)對(duì)新報(bào)文段的確認(rèn)ACK,就把發(fā)送端的擁塞窗口加1?,F(xiàn)在發(fā)送端的cwnd從2增大到4,并可發(fā)送M3~M6共4個(gè)報(bào)文段。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進(jìn)入擁塞避免發(fā)生超時(shí)指數(shù)規(guī)律增長(zhǎng)線性規(guī)律增長(zhǎng)ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進(jìn)入擁塞避免1/9/202357慢開始和擁塞避免算法的實(shí)現(xiàn)舉例接收端發(fā)回ACK2和A慢開始和擁塞避免算法的實(shí)現(xiàn)舉例發(fā)送端每收到一個(gè)對(duì)新報(bào)文段的確認(rèn)ACK,就把發(fā)送端的擁塞窗口加1,因此擁塞窗口cwnd隨著傳輸次數(shù)按指數(shù)規(guī)律增長(zhǎng)。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進(jìn)入擁塞避免發(fā)生超時(shí)指數(shù)規(guī)律增長(zhǎng)線性規(guī)律增長(zhǎng)ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進(jìn)入擁塞避免1/9/202358慢開始和擁塞避免算法的實(shí)現(xiàn)舉例發(fā)送端每收到一個(gè)對(duì)新報(bào)文段的慢開始和擁塞避免算法的實(shí)現(xiàn)舉例當(dāng)擁塞窗口cwnd增長(zhǎng)到慢開始門限值ssthresh時(shí)(即當(dāng)cwnd=16時(shí)),就改為執(zhí)行擁塞避免算法,擁塞窗口按線性規(guī)律增長(zhǎng)。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進(jìn)入擁塞避免發(fā)生超時(shí)指數(shù)規(guī)律增長(zhǎng)ssthresh=16慢開始慢開始線性規(guī)律增長(zhǎng)擁塞避免擁塞避免更新后的ssthresh=12進(jìn)入擁塞避免1/9/202359慢開始和擁塞避免算法的實(shí)現(xiàn)舉例當(dāng)擁塞窗口cwnd增長(zhǎng)到慢開始和擁塞避免算法的實(shí)現(xiàn)舉例假定擁塞窗口的數(shù)值增長(zhǎng)到24時(shí),網(wǎng)絡(luò)出現(xiàn)超時(shí)(表明網(wǎng)絡(luò)擁塞了)。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進(jìn)入擁塞避免發(fā)生超時(shí)指數(shù)規(guī)律增長(zhǎng)線性規(guī)律增長(zhǎng)ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進(jìn)入擁塞避免1/9/202360慢開始和擁塞避免算法的實(shí)現(xiàn)舉例假定擁塞窗口的數(shù)值增長(zhǎng)到2慢開始和擁塞避免算法的實(shí)現(xiàn)舉例更新后的ssthresh值變?yōu)?2(即發(fā)送窗口數(shù)值24的一半),擁塞窗口再重新設(shè)置為1,并執(zhí)行慢開始算法。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進(jìn)入擁塞避免發(fā)生超時(shí)指數(shù)規(guī)律增長(zhǎng)線性規(guī)律增長(zhǎng)ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進(jìn)入擁塞避免1/9/202361慢開始和擁塞避免算法的實(shí)現(xiàn)舉例更新后的ssthresh慢開始和擁塞避免算法的實(shí)現(xiàn)舉例當(dāng)cwnd=12時(shí)改為執(zhí)行擁塞避免算法,擁塞窗口按按線性規(guī)律增長(zhǎng),每經(jīng)過一個(gè)往返時(shí)延就增加一個(gè)MSS的大小。246810121416182022004812162024傳輸次數(shù)擁塞窗口cwnd進(jìn)入擁塞避免發(fā)生超時(shí)指數(shù)規(guī)律增長(zhǎng)線性規(guī)律增長(zhǎng)ssthresh=16慢開始慢開始擁塞避免擁塞避免更新后的ssthresh=12進(jìn)入擁塞避免1/9/202362慢開始和擁塞避免算法的實(shí)現(xiàn)舉例當(dāng)cwnd=12時(shí)改3.快重傳和快恢復(fù)快速重傳超時(shí)周期往往太長(zhǎng)增加重發(fā)丟失分組的延時(shí)通過重復(fù)的ACK檢測(cè)丟失報(bào)文段發(fā)送方常要連續(xù)發(fā)送大量報(bào)文段如果一個(gè)報(bào)文段丟失,會(huì)引起很多連續(xù)的重復(fù)ACK.如果發(fā)送收到一個(gè)數(shù)據(jù)的3個(gè)重復(fù)的ACK,它會(huì)認(rèn)為確認(rèn)數(shù)據(jù)之后的報(bào)文段丟失快速重傳:
在超時(shí)到來(lái)之前重傳報(bào)文段1/9/2023633.快重傳和快恢復(fù)快速重傳1/9/202363快重傳舉例M1,M2ACK2,ACK3M4主機(jī)A主機(jī)BB確認(rèn)M1
和
M2A發(fā)送M1和M2A收到了三個(gè)重復(fù)的確認(rèn)ACK3,就立即重傳M3,而不必等待超時(shí)重傳。M3丟失!A發(fā)送M3但丟失了A發(fā)送M4ACK3M5A發(fā)送M5ACK3B發(fā)送第二個(gè)重復(fù)確認(rèn)
ACK3M6A發(fā)送M6ACK3M3B發(fā)送第三個(gè)重復(fù)確認(rèn)
ACK3B只能再次確認(rèn)
M2(因?yàn)镸3沒有收到)1/9/202364快重傳舉例M1,M2ACK2,ACK3M4主機(jī)A主機(jī)快恢復(fù)算法(1)當(dāng)發(fā)送端收到連續(xù)三個(gè)重復(fù)的ACK時(shí),就重新設(shè)置慢開始門限ssthresh。(2)與慢開始不同之處是擁塞窗口cwnd不是設(shè)置為1,而是設(shè)置為ssthresh+3MSS。(3)若收到的重復(fù)的ACK為n個(gè)(n>3),則將cwnd設(shè)置為ssthresh+n
MSS。(4)若發(fā)送窗口值還容許發(fā)送報(bào)文段,就按擁塞避免算法繼續(xù)發(fā)送報(bào)文段。(5)若收到了確認(rèn)新的報(bào)文段的ACK,就將cwnd縮小到ssthresh。1/9/202365快恢復(fù)算法(1)當(dāng)發(fā)送端收到連續(xù)三個(gè)重復(fù)的ACK時(shí),TCP的重傳機(jī)制重傳機(jī)制是TCP中最重要和最復(fù)雜的問題之一。TCP每發(fā)送一個(gè)報(bào)文段,就對(duì)這個(gè)報(bào)文段設(shè)置一次計(jì)時(shí)器。只要計(jì)時(shí)器設(shè)置的重傳時(shí)間到但還沒有收到確認(rèn),就要重傳這一報(bào)文段。1/9/202366TCP的重傳機(jī)制重傳機(jī)制是TCP中最重要和最復(fù)雜的問題67TCP超時(shí)的設(shè)置如何設(shè)置TCP的超時(shí)應(yīng)該大于RTT但RTT是變化的太短:造成不必要的重傳太長(zhǎng):對(duì)丟包反應(yīng)太慢TCP的重傳機(jī)制1/9/20236767TCP超時(shí)的設(shè)置TCP的重傳機(jī)制1/9/20236768如何估算RTT樣本RTT(SampleRTT):對(duì)報(bào)文段從發(fā)出到收到該報(bào)文段的確認(rèn)之間的時(shí)間進(jìn)行測(cè)量忽略重傳樣本RTT會(huì)有波動(dòng),要使得估算RTT更平滑,需要將最近幾次的測(cè)量進(jìn)行平均,而非僅僅采用最近一次的SampleRTTEstimatedRTT=(1-)*EstimatedRTT+*SampleRTT參考值:=0.125TCP的重傳機(jī)制1/9/20236868如何估算RTTEstimatedRTT=(1-往返時(shí)延RTT?往返時(shí)間的測(cè)量相當(dāng)復(fù)雜
TCP報(bào)文段1沒有收到確認(rèn)。重傳(即報(bào)文段2)后,收到了確認(rèn)報(bào)文段ACK。如何判定此確認(rèn)報(bào)文段是對(duì)原來(lái)的報(bào)文段1的確認(rèn),還是對(duì)重傳的報(bào)文段2的確認(rèn)?發(fā)送一個(gè)TCP報(bào)文段超時(shí)重傳TCP報(bào)文段收到ACK時(shí)間12往返時(shí)延RTT?是對(duì)哪一個(gè)報(bào)文段的確認(rèn)?1/9/202369往返時(shí)延RTT?往返時(shí)間的測(cè)量相當(dāng)復(fù)雜TCP報(bào)文段170RTT估計(jì)樣本與RTT估計(jì)TCP的重傳機(jī)制1/9/20237070RTT估計(jì)樣本與RTT估計(jì)TCP的重傳機(jī)制1/9/2071考慮RTT的波動(dòng),估計(jì)EstimatedRTT與SampleRTT的偏差DevRTT=(1-)*DevRTT+
*|SampleRTT-EstimatedRTT|(參考值,=0.25)TimeoutInterval=EstimatedRTT+4*DevRTTTCP中的超時(shí)間隔為TCP的重傳機(jī)制1/9/20237171考慮RTT的波動(dòng),估計(jì)EstimatedRTT與SampTCP的連接管理-運(yùn)輸連接的三個(gè)階段
運(yùn)輸連接就有三個(gè)階段,即:連接建立、數(shù)據(jù)傳送和連接釋放。運(yùn)輸連接的管理就是使運(yùn)輸連接的建立和釋放都能正常地進(jìn)行。連接建立過程中要解決以下三個(gè)問題:要使每一方能夠確知對(duì)方的存在。要允許雙方協(xié)商一些參數(shù)(如最大報(bào)文段長(zhǎng)度,最大窗口大小,服務(wù)質(zhì)量等)。能夠?qū)\(yùn)輸實(shí)體資源(如緩存大小,連接表中的項(xiàng)目等)進(jìn)行分配。
1/9/202372TCP的連接管理-運(yùn)輸連接的三個(gè)階段運(yùn)輸連接就有三個(gè)階段,客戶/服務(wù)器方式
TCP的連接和建立都是采用客戶服務(wù)器方式。主動(dòng)發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶(client)。被動(dòng)等待連接建立的應(yīng)用進(jìn)程叫做服務(wù)器(server)。1/9/202373客戶/服務(wù)器方式TCP的連接和建立都是采用客戶服務(wù)器方式用三次握手建立TCP連接SYN,SEQ=x主機(jī)BSYN,ACK,SEQ=y,ACK=x1ACK,SEQ=x+1,ACK=y1被動(dòng)打開主動(dòng)打開確認(rèn)確認(rèn)主機(jī)A連接請(qǐng)求1/9/202374用三次握手建立TCP連接SYN,SEQ=x主機(jī)建立TCP連接A的TCP向B發(fā)出連接請(qǐng)求報(bào)文段,其首部中的同步比特SYN應(yīng)置為1,并選擇序號(hào)x,表明傳送數(shù)據(jù)時(shí)的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)是x+1。B的TCP收到連接請(qǐng)求報(bào)文段后,如同意,則發(fā)回確認(rèn)。B在確認(rèn)報(bào)文段中應(yīng)將SYN置為1,其確認(rèn)號(hào)應(yīng)為x1,同時(shí)也為自己選擇序號(hào)y。A收到此報(bào)文段后,向B給出確認(rèn),其確認(rèn)號(hào)應(yīng)為y1。A的TCP通知上層應(yīng)用進(jìn)程,連接已經(jīng)建立。當(dāng)運(yùn)行服務(wù)器進(jìn)程的主機(jī)B的TCP收到主機(jī)A的確認(rèn)后,也通知其上層應(yīng)用進(jìn)程,連接已經(jīng)建立。1/9/202375建立TCP連接A的TCP向B發(fā)出連接請(qǐng)求報(bào)文段TCP連接釋放的過程
FIN,SEQ=xACK,SEQ=y,ACK=x1ACK,SEQ=x+1,ACK=y1應(yīng)用進(jìn)程釋放連接A不再發(fā)送報(bào)文FIN,ACK,SEQ=y,ACK=x+1主機(jī)B主機(jī)A通知主機(jī)應(yīng)用進(jìn)程①應(yīng)用進(jìn)程釋放連接B不再發(fā)送報(bào)文②確認(rèn)確認(rèn)1/9/202376TCP連接釋放的過程FIN,SEQ=xACK,SMonday,January9,2023776.2.2UDP協(xié)議一個(gè)最簡(jiǎn)單的運(yùn)輸層協(xié)議多路復(fù)用/多路分解服務(wù)差錯(cuò)檢查適應(yīng)C/S模式的簡(jiǎn)單請(qǐng)求/響應(yīng)通信需要UDP保留各報(bào)文間的邊界,不把應(yīng)用進(jìn)程多次發(fā)送的數(shù)據(jù)合并成一個(gè)包發(fā)出去,且發(fā)包后不對(duì)該包緩存,這對(duì)簡(jiǎn)單請(qǐng)求/響應(yīng)很方便;“盡力而為”服務(wù),UDP報(bào)文段可能會(huì):丟失應(yīng)用數(shù)據(jù)不按序到達(dá)1/9/202377Monday,January9,2023776.2.2Monday,January9,202378UDP處理數(shù)據(jù)的流程發(fā)送方從應(yīng)用進(jìn)程得到數(shù)據(jù)附加上為多路復(fù)用/多路分解所需的源和目的端口號(hào)及差錯(cuò)檢測(cè)信息,形成報(bào)文段(數(shù)據(jù)報(bào))遞交給網(wǎng)絡(luò)層,盡力而為的交付給接收主機(jī)接收方從網(wǎng)絡(luò)層接收?qǐng)?bào)文段(數(shù)據(jù)報(bào))根據(jù)目的端口號(hào),將數(shù)據(jù)交付給相應(yīng)的應(yīng)用進(jìn)程UDP通信事先無(wú)需握手,是無(wú)連接的UDP報(bào)文段之間是相互獨(dú)立的6.2.2UDP協(xié)議1/9/202378Monday,January9,202378UDP處理Monday,January9,202379UDP報(bào)文段的結(jié)構(gòu)源端口#目的端口#32位應(yīng)用數(shù)據(jù)(報(bào)文)長(zhǎng)度檢查和包括首部在內(nèi)的UDP報(bào)文段長(zhǎng)度,(以字節(jié)為單位)6.2.2UDP協(xié)議整個(gè)報(bào)文的校驗(yàn)和。1/9/202379Monday,January9,202379UDP報(bào)文Monday,January9,202380UDP的優(yōu)勢(shì)無(wú)需建立連接——建立連接會(huì)增加時(shí)延簡(jiǎn)單——發(fā)送方和接收方無(wú)需維護(hù)連接狀態(tài)段首部開銷小——TCP:20BytevsUDP:8Byte無(wú)擁塞控制——UDP可按需要隨時(shí)發(fā)送6.2.2UDP協(xié)議1/9/202380Monday,January9,202380UDP的優(yōu)Monday,January9,202381部分采用UDP協(xié)議的應(yīng)用遠(yuǎn)程文件系統(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)致的嚴(yán)重后果路由器中大量的分組溢出顯著減小TCP通信的速率,甚至擠垮TCP會(huì)話使用UDP的可靠數(shù)據(jù)傳輸在應(yīng)用層實(shí)現(xiàn)數(shù)據(jù)的可靠傳輸增加了應(yīng)用進(jìn)程的實(shí)現(xiàn)難度6.2.2UDP協(xié)議1/9/20238282UDP大量應(yīng)用可能導(dǎo)致的嚴(yán)重后果6.2.2UDP協(xié)議第六章
傳輸層協(xié)議及分析1/9/202383第六章
傳輸層協(xié)議及分析1/9/20231重點(diǎn)和難點(diǎn)重點(diǎn)傳輸層的功能TCP協(xié)議和UDP協(xié)議難點(diǎn)TCP協(xié)議的理解1/9/202384重點(diǎn)和難點(diǎn)重點(diǎn)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)和包含會(huì)話層、表示層及應(yīng)用層的資源子網(wǎng)的橋梁,起到承上啟下的作用。傳輸層對(duì)高層用戶起到了屏蔽作用,使高層用戶的同等實(shí)體在交互過程中不會(huì)受到下層數(shù)據(jù)通信技術(shù)細(xì)節(jié)的影響。1/9/2023866.1OSI體系結(jié)構(gòu)中的傳輸層傳輸層位于開放系統(tǒng)互連模傳輸層與其上下層之間的關(guān)系的OSI表示法
傳輸實(shí)體傳輸實(shí)體傳輸協(xié)議傳輸層層接口傳輸服務(wù)用戶(應(yīng)用層實(shí)體)傳輸服務(wù)用戶(應(yīng)用層實(shí)體)層接口網(wǎng)絡(luò)層(或網(wǎng)際層)應(yīng)用層主機(jī)A主機(jī)B傳輸層服務(wù)訪問點(diǎn)TSAP網(wǎng)絡(luò)層服務(wù)訪問點(diǎn)NSAP1/9/202387傳輸層與其上下層之間的關(guān)系的OSI表示法傳輸實(shí)體傳輸實(shí)體從通信和信息處理的角度看,傳輸層向它上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,同時(shí)也是用戶功能中的最低層。物理層網(wǎng)絡(luò)層傳輸層應(yīng)用層數(shù)據(jù)鏈路層面向信息處理面向通信用戶功能網(wǎng)絡(luò)功能6.1OSI體系結(jié)構(gòu)中的傳輸層1/9/202388從通信和信息處理的角度看,傳輸層向它上面的應(yīng)用層提供通信服務(wù)傳輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信
54321傳輸層提供應(yīng)用進(jìn)程間的邏輯通信應(yīng)用進(jìn)程應(yīng)用進(jìn)程IP層AP1AP2AP4端口端口54321AP3主機(jī)A主機(jī)B路由器1路由器2AP1LAN2WANAP2AP3AP4LAN1IP協(xié)議的作用范圍傳輸層協(xié)議TCP和UDP的作用范圍1/9/202389傳輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信5傳輸層提供應(yīng)用進(jìn)應(yīng)用進(jìn)程之間的通信兩個(gè)主機(jī)進(jìn)行通信實(shí)際上就是兩個(gè)主機(jī)中的應(yīng)用進(jìn)程互相通信。應(yīng)用進(jìn)程之間的通信又稱為端到端的通信。傳輸層的一個(gè)很重要的功能就是復(fù)用和分用。應(yīng)用層不同進(jìn)程的報(bào)文通過不同的端口向下交到傳輸層,再往下就共用網(wǎng)絡(luò)層提供的服務(wù)。傳輸層提供應(yīng)用進(jìn)程間的邏輯通信,這里“邏輯通信”的意思是:傳輸層之間的通信好像是沿水平方向傳送數(shù)據(jù)。但事實(shí)上這兩個(gè)傳輸層之間并沒有一條水平方向的物理連接。1/9/202390應(yīng)用進(jìn)程之間的通信兩個(gè)主機(jī)進(jìn)行通信實(shí)際上就是兩個(gè)主機(jī)中的應(yīng)用端口的概念端口就是運(yùn)輸層服務(wù)訪問點(diǎn)TSAP。端口的作用就是讓應(yīng)用層的各種應(yīng)用進(jìn)程都能將其數(shù)據(jù)通過端口向下交付給傳輸層,以及讓傳輸層知道應(yīng)當(dāng)將其報(bào)文段中的數(shù)據(jù)向上通過端口交付給應(yīng)用層相應(yīng)的進(jìn)程。從這個(gè)意義上講,端口是用來(lái)標(biāo)志應(yīng)用層的進(jìn)程。1/9/202391端口的概念端口就是運(yùn)輸層服務(wù)訪問點(diǎn)TSAP。1/9/202端口在進(jìn)程之間的通信中所起的作用應(yīng)用層傳輸層網(wǎng)絡(luò)層TCP報(bào)文段UDP用戶數(shù)據(jù)報(bào)應(yīng)用進(jìn)程TCP復(fù)用IP復(fù)用UDP復(fù)用TCP報(bào)文段UDP用戶數(shù)據(jù)報(bào)應(yīng)用進(jìn)程端口端口TCP分用UDP分用IP分用IP數(shù)據(jù)報(bào)IP數(shù)據(jù)報(bào)發(fā)送方接收方1/9/202392端口在進(jìn)程之間的通信中所起的作用應(yīng)傳網(wǎng)TCP報(bào)文段UDP端口端口用一個(gè)16bit端口號(hào)進(jìn)行標(biāo)志。端口號(hào)只具有本地意義,即端口號(hào)只是為了標(biāo)志本計(jì)算機(jī)應(yīng)用層中的各進(jìn)程。在因特網(wǎng)中不同計(jì)算機(jī)的相同端口號(hào)是沒有聯(lián)系的。1/9/202393端口端口用一個(gè)16bit端口號(hào)進(jìn)行標(biāo)志。1/9/20兩類端口一類是熟知端口,其數(shù)值一般為0~1023,保留給諸如HTTP(80)、FTP(21)等熟知協(xié)議的。當(dāng)一種新的應(yīng)用程序出現(xiàn)時(shí),必須為它指派一個(gè)熟知端口。另一類則是一般端口,用來(lái)隨時(shí)分配給請(qǐng)求通信的客戶進(jìn)程。1/9/202394兩類端口一類是熟知端口,其數(shù)值一般為0~1023,保留給插口(socket)TCP使用“連接”(而不僅僅是“端口”)作為最基本的抽象,同時(shí)將TCP連接的端點(diǎn)稱為插口(socket),或套接字、套接口。插口和端口、IP地址的關(guān)系是:IP地址3端口號(hào)15003,1500插口(socket)1/9/202395插口(socket)TCP使用“連接”(而不僅僅是“端口6.2Internet體系中的傳輸層在Internet網(wǎng)絡(luò)上,傳輸層有兩個(gè)并列的協(xié)議,一個(gè)是TCP,一個(gè)是UDP。TCP即傳輸控制協(xié)議,它是面向連接的,可提供高可靠的服務(wù)。UDP即用戶數(shù)據(jù)報(bào)協(xié)議,它是面向無(wú)連接的,可提供高效率的服務(wù)。1/9/2023966.2Internet體系中的傳輸層在Internet網(wǎng)絡(luò)傳輸層向上提供可靠的和不可靠的邏輯通信信道?應(yīng)用層傳輸層發(fā)送進(jìn)程接收進(jìn)程接收進(jìn)程數(shù)據(jù)數(shù)據(jù)全雙工可靠信道數(shù)據(jù)數(shù)據(jù)使用TCP協(xié)議使用UDP協(xié)議不可靠信道發(fā)送進(jìn)程1/9/202397傳輸層向上提供可靠的和不可靠的邏輯通信信道?應(yīng)傳發(fā)接接數(shù)據(jù)6.2.1TCP協(xié)議TCP的主要功能完成對(duì)數(shù)據(jù)報(bào)的確認(rèn)、流量控制和網(wǎng)絡(luò)擁塞的處理。數(shù)據(jù)報(bào)自動(dòng)檢測(cè)、提供錯(cuò)誤自動(dòng)重發(fā)功能。將多條路徑傳送的數(shù)據(jù)報(bào)按照原序排列,并對(duì)重復(fù)數(shù)據(jù)進(jìn)行擇取??刂瞥瑫r(shí)重發(fā)、自動(dòng)調(diào)整超時(shí)值。提供自動(dòng)恢復(fù)丟失數(shù)據(jù)的功能1/9/2023986.2.1TCP協(xié)議TCP的主要功能1/9/202316TCP的數(shù)據(jù)傳送過程TCP是一種面向數(shù)據(jù)流的協(xié)議,操作過程分為三個(gè)階段:建立TCP連接、傳送數(shù)據(jù)和結(jié)束TCP連接。應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層Ethernet用戶報(bào)文TCP數(shù)據(jù)報(bào)IP數(shù)據(jù)報(bào)以太幀用戶數(shù)據(jù)用戶數(shù)據(jù)數(shù)據(jù)FTPH數(shù)據(jù)TCPHIPHTCPHTCPHIPH以太幀頭FTPH數(shù)據(jù)FTPH數(shù)據(jù)FTPH數(shù)據(jù)TCP的報(bào)文傳送目的地址源地址幀頭包類型包數(shù)據(jù)CRC校驗(yàn)1/9/202399TCP的數(shù)據(jù)傳送過程應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層Ether100
TCP數(shù)據(jù)報(bào)的格式20字節(jié)的固定首部TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充1/9/202310018TCP數(shù)據(jù)報(bào)的格式20字節(jié)的TCP目的端101TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充源端口和目的端口字段——各占2字節(jié)。端口是運(yùn)輸層與應(yīng)用層的服務(wù)接口。運(yùn)輸層的復(fù)用和分用功能都要通過端口才能實(shí)現(xiàn)。
TCP數(shù)據(jù)報(bào)的格式1/9/202310119TCP目的端口首部檢驗(yàn)和選102TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充序號(hào)字段——占4字節(jié)。TCP連接中傳送的數(shù)據(jù)流中的每一個(gè)字節(jié)都編上一個(gè)序號(hào)。序號(hào)字段的值則指的是本報(bào)文段所發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)在整個(gè)報(bào)文字節(jié)流中的序號(hào)。
TCP數(shù)據(jù)報(bào)的格式1/9/202310220TCP目的端口首部檢驗(yàn)和選103TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充確認(rèn)號(hào)字段——占4字節(jié),是期望收到對(duì)方的下一個(gè)報(bào)文段的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。
TCP數(shù)據(jù)報(bào)的格式1/9/202310321TCP目的端口首部檢驗(yàn)和選TCP的數(shù)據(jù)編號(hào)與確認(rèn)
TCP協(xié)議是面向字節(jié)的。TCP將所要傳送的報(bào)文看成是字節(jié)組成的數(shù)據(jù)流,并使每一個(gè)字節(jié)對(duì)應(yīng)于一個(gè)序號(hào)。在連接建立時(shí),雙方要商定初始序號(hào)。TCP每次發(fā)送的報(bào)文段的首部中的序號(hào)字段數(shù)值表示該報(bào)文段中的數(shù)據(jù)部分的第一個(gè)字節(jié)的序號(hào)。TCP的確認(rèn)是對(duì)接收到的數(shù)據(jù)的最高序號(hào)表示確認(rèn)。接收端返回的確認(rèn)號(hào)是已收到的數(shù)據(jù)的最高序號(hào)加1。因此確認(rèn)號(hào)表示接收端期望下次收到的數(shù)據(jù)中的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)。1/9/2023104TCP的數(shù)據(jù)編號(hào)與確認(rèn)TCP協(xié)議是面向字節(jié)的。TCP將TCP序列號(hào)和確認(rèn)序列號(hào)示例主機(jī)A主機(jī)BSeq=42,ACK=79,data=‘C’Seq=79,ACK=43,data=‘C’Seq=43,ACK=80用戶鍵入‘C’主機(jī)確認(rèn)收到回顯的‘C’主機(jī)確認(rèn)收到’C’,回顯’C’時(shí)間
TCP數(shù)據(jù)報(bào)的格式1/9/2023105TCP序列號(hào)和確認(rèn)序列號(hào)示例主機(jī)A主機(jī)BSeq=43.5面向連接的傳輸:TCP—報(bào)文格式TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充首部長(zhǎng)度——占4bit,它指示以32bit為單位的TCP首部長(zhǎng)度。1/9/20231063.5面向連接的傳輸:TCP—報(bào)文格式TCP目的TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充保留字段——占6bit,保留為今后使用,但目前應(yīng)置為0。3.5面向連接的傳輸:TCP—報(bào)文格式1/9/2023107TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充緊急比特URG——當(dāng)URG1時(shí),表明緊急指針字段有效。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送。(一般不使用)3.5面向連接的傳輸:TCP—報(bào)文格式1/9/2023108TCP目的端口首部檢驗(yàn)和選項(xiàng)TCP首部目的端口首部長(zhǎng)度檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度三人合伙開展物流倉(cāng)儲(chǔ)服務(wù)合同
- 2024年店鋪分割財(cái)產(chǎn)分配協(xié)議
- 2024年廢窯廠坑塘土地租賃協(xié)議
- 2024年度0架AC3A直升機(jī)購(gòu)銷協(xié)議
- 2024年度煤炭買賣合同(長(zhǎng)協(xié))
- 2024水電安裝勞務(wù)分包合同范本
- 2024年度云計(jì)算服務(wù)與技術(shù)研發(fā)合同
- 2024年度新能源汽車銷售與服務(wù)分包合同
- 2024購(gòu)買車輛合同范本
- 2024年度智能家居解決方案合同
- 2024至2030年中國(guó)巖土工程市場(chǎng)深度分析及發(fā)展趨勢(shì)研究報(bào)告
- 新版高血壓病人的護(hù)理培訓(xùn)課件
- 醫(yī)院等級(jí)創(chuàng)建工作匯報(bào)
- 2024年江西省公務(wù)員錄用考試《行測(cè)》題(網(wǎng)友回憶版)(題目及答案解析)
- VDA6.3基礎(chǔ)培訓(xùn)考核測(cè)試卷附答案
- 第01講 正數(shù)和負(fù)數(shù)、有理數(shù)-人教版新七年級(jí)《數(shù)學(xué)》暑假自學(xué)提升講義(解析版)
- 信息系統(tǒng)部署與運(yùn)維-題庫(kù)帶答案
- 婚姻心理學(xué)解讀包含內(nèi)容
- DZ/T 0462.3-2023 礦產(chǎn)資源“三率”指標(biāo)要求 第3部分:鐵、錳、鉻、釩、鈦(正式版)
- 備戰(zhàn)2024年高考英語(yǔ)考試易錯(cuò)點(diǎn)12 名詞性從句(4大陷阱)(解析版)
- 公務(wù)員歷史常識(shí)100題及一套完整答案
評(píng)論
0/150
提交評(píng)論