考研_計(jì)算機(jī)網(wǎng)絡(luò)_第七學(xué)時(shí)_傳輸層.ppt_第1頁(yè)
考研_計(jì)算機(jī)網(wǎng)絡(luò)_第七學(xué)時(shí)_傳輸層.ppt_第2頁(yè)
考研_計(jì)算機(jī)網(wǎng)絡(luò)_第七學(xué)時(shí)_傳輸層.ppt_第3頁(yè)
考研_計(jì)算機(jī)網(wǎng)絡(luò)_第七學(xué)時(shí)_傳輸層.ppt_第4頁(yè)
考研_計(jì)算機(jī)網(wǎng)絡(luò)_第七學(xué)時(shí)_傳輸層.ppt_第5頁(yè)
已閱讀5頁(yè),還剩90頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)網(wǎng)絡(luò),傳輸層,傳輸層,1 傳輸層協(xié)議概述 2 TCP/IP 體系中的傳輸層 2.1 傳輸層中的兩個(gè)協(xié)議 2.2 端口的概念 3 用戶數(shù)據(jù)報(bào)協(xié)議 UDP 3.1 UDP 概述 3.2 UDP 用戶數(shù)據(jù)報(bào)的首部格式,第 7 章 運(yùn)輸層(續(xù)),4 傳輸控制協(xié)議 TCP 4.1 TCP 概述 4.2 TCP 報(bào)文段的首部 4.3 TCP 的數(shù)據(jù)編號(hào)與確認(rèn) 4.4 TCP 的流量控制與擁塞控制 4.5 TCP 的重傳機(jī)制 4.6 采用隨機(jī)早期丟棄 RED 進(jìn)行擁塞控制 4.7 TCP 的運(yùn)輸連接管理 4.8 TCP 的有限狀態(tài)機(jī),1 傳輸層協(xié)議概述,從通信和信息處理的角度看,傳輸層向它上面的應(yīng)用層

2、提供通信服務(wù),它屬于面向通信部分的最高層,同時(shí)也是用戶功能中的最低層。,物理層,網(wǎng)絡(luò)層,傳輸層,應(yīng)用層,數(shù)據(jù)鏈路層,面向信息處理,面向通信,用戶功能,網(wǎng)絡(luò)功能,傳輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信,5 4 3 2 1,傳輸層提供應(yīng)用進(jìn)程間的邏輯通信,主機(jī) A,主機(jī) B,應(yīng)用進(jìn)程,應(yīng)用進(jìn)程,路由器 1,路由器 2,AP1,LAN2,WAN,AP2,AP3,AP4,IP 層,LAN1,AP1,AP2,AP4,端口,端口,5 4 3 2 1,IP 協(xié)議的作用范圍,傳輸層協(xié)議 TCP 和 UDP 的作用范圍,AP3,應(yīng)用進(jìn)程之間的通信,兩個(gè)主機(jī)進(jìn)行通信實(shí)際上就是兩個(gè)主機(jī)中的應(yīng)用進(jìn)程互相通信。 應(yīng)用

3、進(jìn)程之間的通信又稱為端到端的通信。 傳輸層的一個(gè)很重要的功能就是復(fù)用和分用。應(yīng)用層不同進(jìn)程的報(bào)文通過不同的端口向下交到運(yùn)輸層,再往下就共用網(wǎng)絡(luò)層提供的服務(wù)。 “傳輸層提供應(yīng)用進(jìn)程間的邏輯通信”?!斑壿嬐ㄐ拧钡囊馑际牵簜鬏攲又g的通信好像是沿水平方向傳送數(shù)據(jù)。但事實(shí)上這兩個(gè)傳輸層之間并沒有一條水平方向的物理連接。,傳輸層協(xié)議和網(wǎng)絡(luò)層協(xié)議的主要區(qū)別,應(yīng)用進(jìn)程,應(yīng)用進(jìn)程,IP 協(xié)議的作用范圍 (提供主機(jī)之間的邏輯通信),TCP 和 UDP 協(xié)議的作用范圍 (提供進(jìn)程之間的邏輯通信),因 特 網(wǎng),傳輸層的主要功能,傳輸層為應(yīng)用進(jìn)程之間提供端到端的邏輯通信(但網(wǎng)絡(luò)層是為主機(jī)之間提供邏輯通信)。 傳輸層還

4、要對(duì)收到的報(bào)文進(jìn)行差錯(cuò)檢測(cè)。 傳輸層需要有兩種不同的運(yùn)輸協(xié)議,即面向連接的 TCP 和無(wú)連接的 UDP。,運(yùn)輸層與其上下層之間的關(guān)系的 OSI 表示法,運(yùn)輸實(shí)體,運(yùn)輸實(shí)體,運(yùn)輸協(xié)議,運(yùn)輸層,層接口,運(yùn)輸服務(wù)用戶 (應(yīng)用層實(shí)體),運(yùn)輸服務(wù)用戶 (應(yīng)用層實(shí)體),層接口,網(wǎng)絡(luò)層 (或網(wǎng)際層),應(yīng)用層,主機(jī) A,主機(jī) B,運(yùn)輸層服務(wù)訪問點(diǎn) TSAP,網(wǎng)絡(luò)層服務(wù)訪問點(diǎn) NSAP,運(yùn)輸層向上提供可靠的和不可靠的邏輯通信信道,?,應(yīng) 用 層,運(yùn) 輸 層,發(fā) 送 進(jìn) 程,接 收 進(jìn) 程,接 收 進(jìn) 程,數(shù)據(jù),數(shù)據(jù),全雙工可靠信道,數(shù)據(jù),數(shù)據(jù),使用 TCP 協(xié)議,使用 UDP 協(xié)議,不可靠信道,發(fā) 送 進(jìn) 程,

5、TCP/IP的運(yùn)輸層有兩個(gè)不同的協(xié)議: (1) 用戶數(shù)據(jù)報(bào)協(xié)議 UDP (User Datagram Protocol) (2) 傳輸控制協(xié)議 TCP (Transmission Control Protocol),2 TCP/IP 體系中的運(yùn)輸層2.1 運(yùn)輸層中的兩個(gè)協(xié)議,兩個(gè)對(duì)等運(yùn)輸實(shí)體在通信時(shí)傳送的數(shù)據(jù)單位叫作運(yùn)輸協(xié)議數(shù)據(jù)單元 TPDU (Transport Protocol Data Unit)。 TCP 傳送的數(shù)據(jù)單位協(xié)議是 TCP 報(bào)文段(segment) UDP 傳送的數(shù)據(jù)單位協(xié)議是 UDP 報(bào)文或用戶數(shù)據(jù)報(bào)。,TCP 與 UDP,TCP/IP 體系中的運(yùn)輸層協(xié)議,TCP,UDP

6、,IP,應(yīng)用層,與各種網(wǎng)絡(luò)接口,運(yùn)輸層,TCP 與 UDP,UDP 在傳送數(shù)據(jù)之前不需要先建立連接。對(duì)方的運(yùn)輸層在收到 UDP 報(bào)文后,不需要給出任何確認(rèn)。雖然 UDP 不提供可靠交付,但在某些情況下 UDP 是一種最有效的工作方式。 TCP 則提供面向連接的服務(wù)。TCP 不提供廣播或多播服務(wù)。由于 TCP 要提供可靠的、面向連接的運(yùn)輸服務(wù),因此不可避免地增加了許多的開銷。這不僅使協(xié)議數(shù)據(jù)單元的首部增大很多,還要占用許多的處理機(jī)資源。,還要強(qiáng)調(diào)兩點(diǎn),運(yùn)輸層的 UDP 用戶數(shù)據(jù)報(bào)與網(wǎng)際層的IP數(shù)據(jù)報(bào)有很大區(qū)別。IP 數(shù)據(jù)報(bào)要經(jīng)過互連網(wǎng)中許多路由器的存儲(chǔ)轉(zhuǎn)發(fā),但 UDP 用戶數(shù)據(jù)報(bào)是在運(yùn)輸層的端到

7、端抽象的邏輯信道中傳送的。 TCP 報(bào)文段是在運(yùn)輸層抽象的端到端邏輯信道中傳送,這種信道是可靠的全雙工信道。但這樣的信道卻不知道究竟經(jīng)過了哪些路由器,而這些路由器也根本不知道上面的運(yùn)輸層是否建立了 TCP 連接。,2.2 端口的概念,端口就是運(yùn)輸層服務(wù)訪問點(diǎn) TSAP。 端口的作用就是讓應(yīng)用層的各種應(yīng)用進(jìn)程都能將其數(shù)據(jù)通過端口向下交付給運(yùn)輸層,以及讓運(yùn)輸層知道應(yīng)當(dāng)將其報(bào)文段中的數(shù)據(jù)向上通過端口交付給應(yīng)用層相應(yīng)的進(jìn)程。 從這個(gè)意義上講,端口是用來標(biāo)志應(yīng)用層的進(jìn)程。,端口在進(jìn)程之間的通信中所起的作用,應(yīng) 用 層,運(yùn) 輸 層,網(wǎng) 絡(luò) 層,TCP 報(bào)文段,UDP 用戶數(shù)據(jù)報(bào),應(yīng)用進(jìn)程,TCP 復(fù)用,I

8、P 復(fù)用,UDP 復(fù)用,TCP 報(bào)文段,UDP 用戶數(shù)據(jù)報(bào),應(yīng)用進(jìn)程,端口,端口,TCP 分用,UDP 分用,IP 分用,發(fā)送方,接收方,端口,端口用一個(gè) 16 bit 端口號(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)系的。,兩類端口,一類是熟知端口,其數(shù)值一般為 01023。當(dāng)一種新的應(yīng)用程序出現(xiàn)時(shí),必須為它指派一個(gè)熟知端口。 另一類則是一般端口,用來隨時(shí)分配給請(qǐng)求通信的客戶進(jìn)程。,常用端口號(hào),插口(socket),TCP 使用“連接”(而不僅僅是“端口”)作為最基本的抽象,同時(shí)將 TCP 連接的端點(diǎn)稱為插口(so

9、cket),或套接字、套接口。 插口和端口、IP 地址的關(guān)系是:,同一個(gè)名詞 socket有多種不同的意思,應(yīng)用編程接口 API 稱為 socket API, 簡(jiǎn)稱為 socket。 socket API 中使用的一個(gè)函數(shù)名也叫作socket。 調(diào)用 socket 函數(shù)的端點(diǎn)稱為 socket。 調(diào)用 socke t函數(shù)時(shí)其返回值稱為 socket描述符,可簡(jiǎn)稱為 socket。 在操作系統(tǒng)內(nèi)核中連網(wǎng)協(xié)議的 Berkeley 實(shí)現(xiàn),稱為 socket 實(shí)現(xiàn)。,3 用戶數(shù)據(jù)報(bào)協(xié)議 UDP 3.1 UDP 概述,UDP 只在 IP 的數(shù)據(jù)報(bào)服務(wù)之上增加了很少一點(diǎn)的功能,即端口的功能和差錯(cuò)檢測(cè)的功能

10、。 雖然 UDP 用戶數(shù)據(jù)報(bào)只能提供不可靠的交付,但 UDP 在某些方面有其特殊的優(yōu)點(diǎn)。 發(fā)送數(shù)據(jù)之前不需要建立連接 UDP 的主機(jī)不需要維持復(fù)雜的連接狀態(tài)表。 UDP 用戶數(shù)據(jù)報(bào)只有8個(gè)字節(jié)的首部開銷。 網(wǎng)絡(luò)出現(xiàn)的擁塞不會(huì)使源主機(jī)的發(fā)送速率降低。這對(duì)某些實(shí)時(shí)應(yīng)用是很重要的。,端口是用報(bào)文隊(duì)列來實(shí)現(xiàn),UDP 端口 51000,UDP 端口 69,出隊(duì)列,入隊(duì)列,出隊(duì)列,入隊(duì)列,TFTP 服務(wù)器,TFTP 客戶,UDP 用戶數(shù)據(jù)報(bào),應(yīng) 用 層,運(yùn) 輸 層,3.2 UDP 用戶數(shù)據(jù)報(bào)的首部格式,偽首部,源端口,目的端口,長(zhǎng) 度,檢驗(yàn)和,數(shù) 據(jù),首 部,UDP長(zhǎng)度,源 IP 地址,目的 IP 地址,

11、0,17,IP 數(shù)據(jù)報(bào),字節(jié),4,4,1,1,2,12,2,2,2,2,字節(jié),發(fā)送在前,數(shù) 據(jù),首 部,UDP 用戶數(shù)據(jù)報(bào),偽首部,源端口,目的端口,長(zhǎng) 度,檢驗(yàn)和,數(shù) 據(jù),首 部,UDP長(zhǎng)度,源 IP 地址,目的 IP 地址,0,17,IP 數(shù)據(jù)報(bào),字節(jié),4,4,1,1,2,12,2,2,2,2,字節(jié),發(fā)送在前,數(shù) 據(jù),首 部,UDP 用戶數(shù)據(jù)報(bào),用戶數(shù)據(jù)報(bào) UDP 有兩個(gè)字段:數(shù)據(jù)字段和首部字段。首部字段有 8 個(gè)字節(jié),由 4 個(gè)字段組成,每個(gè)字段都是兩個(gè)字節(jié)。,偽首部,源端口,目的端口,長(zhǎng) 度,檢驗(yàn)和,數(shù) 據(jù),首 部,UDP長(zhǎng)度,源 IP 地址,目的 IP 地址,0,17,IP 數(shù)據(jù)報(bào),

12、字節(jié),4,4,1,1,2,12,2,2,2,2,字節(jié),發(fā)送在前,數(shù) 據(jù),首 部,UDP 用戶數(shù)據(jù)報(bào),在計(jì)算檢驗(yàn)和時(shí),臨時(shí)把“偽首部”和 UDP 用戶數(shù)據(jù)報(bào)連接在一起。偽首部?jī)H僅是為了計(jì)算檢驗(yàn)和。,計(jì)算 UDP 檢驗(yàn)和的例子,10011001 00010011 153.19 00001000 01101000 8.104 10101011 00000011 171.3 00001110 00001011 14.11 00000000 00010001 0 和 17 00000000 00001111 15 00000100 00111111 1087 00000000 00001101 13 0

13、0000000 00001111 15 00000000 00000000 0(檢驗(yàn)和) 01010100 01000101 數(shù)據(jù) 01010011 01010100 數(shù)據(jù) 01001001 01001110 數(shù)據(jù) 01000111 00000000 數(shù)據(jù)和 0(填充) 10010110 11101011 求和得出的結(jié)果 01101001 00010100 檢驗(yàn)和,04,1,12 字節(jié) 偽首部,8 字節(jié) UDP 首部,7 字節(jié) 數(shù)據(jù),按二進(jìn)制反碼運(yùn)算求和 將得出的結(jié)果求反碼,全 0 17 15 1087 13 15 全 0 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù)

14、數(shù)據(jù) 數(shù)據(jù) 全 0,4 傳輸控制協(xié)議 TCP 4.1 TCP 概述,端口,發(fā)送 TCP 報(bào)文段,TCP,TCP,接收緩存,發(fā)送緩存,報(bào)文段,報(bào)文段,報(bào)文段,端口,發(fā)送端,接收端,向發(fā)送緩存 寫入數(shù)據(jù)塊,從接收緩存 讀取數(shù)據(jù)塊,應(yīng)用進(jìn)程,應(yīng)用進(jìn)程,TCP 首部,20 字節(jié)的 固定首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,32 bit,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,TCP 數(shù)據(jù)部分,TCP 首部,TCP 報(bào)文段,IP 數(shù)據(jù)

15、部分,IP 首部,發(fā)送在前,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,源端口和目的端口字段各占 2 字節(jié)。端口是運(yùn)輸層與應(yīng)用層的服務(wù)接口。運(yùn)輸層的復(fù)用和分用功能都要通過端口才能實(shí)現(xiàn)。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I

16、 N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,序號(hào)字段占 4 字節(jié)。TCP 連接中傳送的數(shù)據(jù)流中的每一個(gè)字節(jié)都編上一個(gè)序號(hào)。序號(hào)字段的值則指的是本報(bào)文段所發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,確認(rèn)號(hào)字段占 4 字節(jié),是期望收到對(duì)方的下一個(gè)報(bào)文段的數(shù)據(jù)的第一個(gè)字節(jié)的

17、序號(hào)。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,數(shù)據(jù)偏移占 4 bit,它指出 TCP 報(bào)文段的數(shù)據(jù)起始處距離 TCP 報(bào)文段的起始處有多遠(yuǎn)。“數(shù)據(jù)偏移”的單位不是字節(jié)而是 32 bit 字(4 字節(jié)為計(jì)算單位)。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,

18、窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,保留字段占 6 bit,保留為今后使用,但目前應(yīng)置為 0。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,緊急比特 URG 當(dāng) URG 1 時(shí),表明緊急指針字段有效。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級(jí)

19、的數(shù)據(jù))。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,確認(rèn)比特 ACK 只有當(dāng) ACK 1 時(shí)確認(rèn)號(hào)字段才有效。當(dāng) ACK 0 時(shí),確認(rèn)號(hào)無(wú)效。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S

20、H,A C K,U R G,比特 0 8 16 24 31,填 充,推送比特 PSH (PuSH) 接收 TCP 收到推送比特置 1 的報(bào)文段,就盡快地交付給接收應(yīng)用進(jìn)程,而不再等到整個(gè)緩存都填滿了后再向上交付。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,復(fù)位比特 RST (ReSeT) 當(dāng) RST 1 時(shí),表明 TCP 連接中出現(xiàn)嚴(yán)重差錯(cuò)(如由于主機(jī)崩潰或

21、其他原因),必須釋放連接,然后再重新建立運(yùn)輸連接。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,同步比特 SYN 同步比特 SYN 置為 1,就表示這是一個(gè)連接請(qǐng)求或連接接受報(bào)文。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N

22、,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,終止比特 FIN (FINal) 用來釋放一個(gè)連接。當(dāng)FIN 1 時(shí),表明此報(bào)文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,窗口字段 占 2 字節(jié)。窗口字段用來控制對(duì)方發(fā)送的數(shù)據(jù)量,單位為字節(jié)。TCP 連接的一

23、端根據(jù)設(shè)置的緩存空間大小確定自己的接收窗口大小,然后通知對(duì)方以確定對(duì)方的發(fā)送窗口的上限。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,檢驗(yàn)和 占 2 字節(jié)。檢驗(yàn)和字段檢驗(yàn)的范圍包括首部和數(shù)據(jù)這兩部分。在計(jì)算檢驗(yàn)和時(shí),要在 TCP 報(bào)文段的前面加上 12 字節(jié)的偽首部。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng)

24、度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,緊急指針字段 占 16 bit。緊急指針指出在本報(bào)文段中的緊急數(shù)據(jù)的最后一個(gè)字節(jié)的序號(hào)。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,選項(xiàng)字段 長(zhǎng)度可變。TCP 只規(guī)定了一

25、種選項(xiàng),即最大報(bào)文段長(zhǎng)度 MSS (Maximum Segment Size)。MSS 告訴對(duì)方 TCP:“我的緩存所能接收的報(bào)文段的數(shù)據(jù)字段的最大長(zhǎng)度是 MSS 個(gè)字節(jié)?!?MSS 是 TCP 報(bào)文段中的數(shù)據(jù)字段的最大長(zhǎng)度。 數(shù)據(jù)字段加上 TCP 首部 才等于整個(gè)的 TCP 報(bào)文段。,TCP 首部,20 字節(jié) 固定 首部,目 的 端 口,數(shù)據(jù) 偏移,檢 驗(yàn) 和,選 項(xiàng) (長(zhǎng) 度 可 變),源 端 口,序 號(hào),緊 急 指 針,窗 口,確 認(rèn) 號(hào),保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,填充字段 這是為了使整個(gè)首部長(zhǎng)

26、度是 4 字節(jié)的整數(shù)倍。,4.3 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)。,TCP三種基本發(fā)送機(jī)制,TCP維持一個(gè)變量,它等于MSS,只要發(fā)送緩存從發(fā)磅進(jìn)程得到的數(shù)據(jù)達(dá)到MSS字節(jié)時(shí),就組裝報(bào)文發(fā)送出去。 發(fā)送端的應(yīng)用

27、進(jìn)程指明要求發(fā)送的報(bào)文端,即TCP支持的推送(push)操作。 發(fā)送端的一個(gè)計(jì)時(shí)器時(shí)間到了,這時(shí)就把當(dāng)前已有的緩存數(shù)據(jù)裝入報(bào)文段發(fā)送出去,Nagle算法,若發(fā)送端應(yīng)用進(jìn)程將欲發(fā)送的數(shù)據(jù)逐個(gè)字節(jié)地送到發(fā)送端的TCP緩存,則發(fā)送端就將第一個(gè)字節(jié)先發(fā)送出去,將后面到達(dá)的字符先緩存起來。 當(dāng)發(fā)送端收到對(duì)第一個(gè)字符確認(rèn)后,再將緩存中的所有字符裝成一個(gè)報(bào)文段發(fā)送出去,同時(shí)繼續(xù)對(duì)隨后到達(dá)的字符進(jìn)行緩存 只有在收到對(duì)前一個(gè)報(bào)文段的確認(rèn)后才繼續(xù)發(fā)送下一個(gè)報(bào)文段。,4.4 TCP 的流量控制與擁塞控制1. 滑動(dòng)窗口的概念,TCP 采用大小可變的滑動(dòng)窗口進(jìn)行流量控制。窗口大小的單位是字節(jié)。 在 TCP 報(bào)文段首部的

28、窗口字段寫入的數(shù)值就是當(dāng)前給對(duì)方設(shè)置的發(fā)送窗口數(shù)值的上限。 發(fā)送窗口在連接建立時(shí)由雙方商定。但在通信的過程中,接收端可根據(jù)自己的資源情況,隨時(shí)動(dòng)態(tài)地調(diào)整對(duì)方的發(fā)送窗口上限值(可增大或減小)。,收到確認(rèn)即可前移,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,可發(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)文段的

29、距離。,收到確認(rèn)即可前移,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,不可發(fā)送,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,發(fā)送窗口,可發(fā)送,不可發(fā)送,發(fā)送窗口前移,發(fā)送端已發(fā)送了 400 字節(jié)的數(shù)據(jù),但只收到對(duì)前 200 字節(jié)數(shù)據(jù)的確認(rèn),同時(shí)窗口大小不變。 現(xiàn)在發(fā)送端還可發(fā)送 300 字節(jié)。,100,200,300,400,500,600,700,800,900,101,201,301,401,501,

30、601,701,801,1,已發(fā)送 并被確認(rèn),已發(fā)送但 未被確認(rèn),可發(fā)送,不可發(fā)送,指針,100,200,300,400,500,600,700,800,900,101,201,301,401,501,601,701,801,1,不可 發(fā)送,指針,發(fā)送窗口前移,發(fā)送端收到了對(duì)方對(duì)前 400 字節(jié)數(shù)據(jù)的確認(rèn),但對(duì)方通知發(fā)送端必須把窗口減小到 400 字節(jié)。 現(xiàn)在發(fā)送端最多還可發(fā)送 400 字節(jié)的數(shù)據(jù)。,利用可變窗口大小進(jìn)行流量控制雙方確定的窗口值是 400,主機(jī) A,主機(jī) B,允許 A 再發(fā)送 300 字節(jié)(序號(hào) 201 至 500),A 還能發(fā)送 200 字節(jié),A 還能發(fā)送 200 字節(jié)(序號(hào)

31、 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ù)都已收到),2. 慢開始和擁塞避免,發(fā)送端的主機(jī)在確定發(fā)送報(bào)文段的速率時(shí),既要根據(jù)接收端的接收能力,又要從全局考慮不要使網(wǎng)絡(luò)發(fā)生擁塞。 因此,每一個(gè) TCP 連接需要有以下兩個(gè)狀態(tài)變量: 接收端窗口 rwnd (receiver window) 又稱為通知窗口(advertised

32、window)。 擁塞窗口 cwnd (congestion window)。,接收端窗口 rwnd 和擁塞窗口 cwnd,(1) 接收端窗口 rwnd 這是接收端根據(jù)其目前的接收緩存大小所許諾的最新的窗口值,是來自接收端的流量控制。接收端將此窗口值放在 TCP 報(bào)文的首部中的窗口字段,傳送給發(fā)送端。 (2) 擁塞窗口 cwnd (congestion window) 是發(fā)送端根據(jù)自己估計(jì)的網(wǎng)絡(luò)擁塞程度而設(shè)置的窗口值,是來自發(fā)送端的流量控制。,發(fā)送窗口的上限值,發(fā)送端的發(fā)送窗口的上限值應(yīng)當(dāng)取為接收端窗口 rwnd 和擁塞窗口 cwnd 這兩個(gè)變量中較小的一個(gè),即應(yīng)按以下公式確定: 發(fā)送窗口的上

33、限值 Min rwnd, cwnd (7-1) 當(dāng) rwnd cwnd 時(shí),是接收端的接收能力限制發(fā)送窗口的最大值。 當(dāng) cwnd rwnd 時(shí),則是網(wǎng)絡(luò)的擁塞限制發(fā)送窗口的最大值。,慢開始算法的原理,在主機(jī)剛剛開始發(fā)送報(bào)文段時(shí)可先將擁塞窗口 cwnd 設(shè)置為一個(gè)最大報(bào)文段 MSS 的數(shù)值。 在每收到一個(gè)對(duì)新的報(bào)文段的確認(rèn)后,將擁塞窗口增加至多一個(gè) MSS 的數(shù)值。 用這樣的方法逐步增大發(fā)送端的擁塞窗口 cwnd,可以使分組注入到網(wǎng)絡(luò)的速率更加合理。,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例,當(dāng) TCP 連接進(jìn)行初始化時(shí),將擁塞窗口置為 1。圖中的窗口單位不使用字節(jié)而使用報(bào)文段。,慢開始門限的初始值設(shè)置

34、為 16 個(gè)報(bào)文段, 即 ssthresh = 16。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口 cwnd,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例,發(fā)送端的發(fā)送窗口不能超過擁塞窗口 cwnd 和接收端窗口 rwnd 中的最小值。我們假定接收端窗口足夠大,因此現(xiàn)在發(fā)送窗口的數(shù)值等于擁塞窗口的數(shù)值。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口 cwnd,ss

35、thresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例,在執(zhí)行慢開始算法時(shí),擁塞窗口 cwnd 的初始值為 1,發(fā)送第一個(gè)報(bào)文段 M0。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口 cwnd,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口 cwnd

36、,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,發(fā)送端收到 ACK1 (確認(rèn) M0,期望收到 M1)后,將 cwnd 從 1 增大到 2,于是發(fā)送端可以接著發(fā)送 M1 和 M2 兩個(gè)報(bào)文段。,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例,接收端發(fā)回 ACK2 和 ACK3。發(fā)送端每收到一個(gè)對(duì)新報(bào)文段的確認(rèn) ACK,就把發(fā)送端的擁塞窗口加 1?,F(xiàn)在發(fā)送端的 cwnd 從 2 增大到 4,并可發(fā)送 M4 M6共 4個(gè)報(bào)文段。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口 cwnd,ss

37、thresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例,發(fā)送端每收到一個(gè)對(duì)新報(bào)文段的確認(rèn) ACK,就把發(fā)送端的擁塞窗口加 1,因此擁塞窗口 cwnd 隨著傳輸次數(shù)按指數(shù)規(guī)律增長(zhǎng)。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口 cwnd,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例,當(dāng)擁塞窗口 cwnd 增長(zhǎng)到慢開始門限值 ssthresh 時(shí)(即當(dāng) cwnd =

38、16 時(shí)),就改為執(zhí)行擁塞避免算法,擁塞窗口按線性規(guī)律增長(zhǎng)。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口 cwnd,ssthresh = 16,慢開始,慢開始,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例,假定擁塞窗口的數(shù)值增長(zhǎng)到 24 時(shí),網(wǎng)絡(luò)出現(xiàn)超時(shí)(表明網(wǎng)絡(luò)擁塞了)。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口 cwnd,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthres

39、h = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例,更新后的 ssthresh 值變?yōu)?12(即發(fā)送窗口數(shù)值 24 的一半),擁塞窗口再重新設(shè)置為 1,并執(zhí)行慢開始算法。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口 cwnd,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例,當(dāng) cwnd = 12 時(shí)改為執(zhí)行擁塞避免算法,擁塞窗口按按線性規(guī)律增長(zhǎng),每經(jīng)過一個(gè)往返時(shí)延就增加一個(gè) MSS 的大小。,2,4,6,8,10,12,14,16,18,20

40、,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口 cwnd,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,乘法減小(multiplicative decrease),“乘法減小“是指不論在慢開始階段還是擁塞避免階段,只要出現(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ù)。,加法增大(additive increase),“加法增大”是指執(zhí)行擁塞避免算法后,當(dāng)收到對(duì)所有報(bào)文段的確

41、認(rèn)就將擁塞窗口 cwnd增加一個(gè) MSS 大小,使擁塞窗口緩慢增大,以防止網(wǎng)絡(luò)過早出現(xiàn)擁塞。,必須強(qiáng)調(diào)指出,“擁塞避免”并非指完全能夠避免了擁塞。利用以上的措施要完全避免網(wǎng)絡(luò)擁塞還是不可能的。 “擁塞避免”是說在擁塞避免階段把擁塞窗口控制為按線性規(guī)律增長(zhǎng),使網(wǎng)絡(luò)比較不容易出現(xiàn)擁塞。,3. 快重傳和快恢復(fù),快重傳算法規(guī)定,發(fā)送端只要一連收到三個(gè)重復(fù)的 ACK 即可斷定有分組丟失了,就應(yīng)立即重傳丟失的報(bào)文段而不必繼續(xù)等待為該報(bào)文段設(shè)置的重傳計(jì)時(shí)器的超時(shí)。 不難看出,快重傳并非取消重傳計(jì)時(shí)器,而是在某些情況下可更早地重傳丟失的報(bào)文段。,快重傳舉例,主機(jī) A,主機(jī) B,B 確認(rèn) M1 和 M2,A 發(fā)

42、送 M1 和 M2,A 收到了三個(gè)重復(fù)的確認(rèn) ACK2,就立即重傳 M3,而不必等待超時(shí)重傳。,A 發(fā)送 M3 丟失了,A 發(fā)送 M4,A 發(fā)送 M5,B 發(fā)送第二個(gè)重復(fù)確認(rèn) ACK2,A 發(fā)送 M6,B 發(fā)送第三個(gè)重復(fù)確認(rèn) ACK2,B 只能再次確認(rèn) M2(因?yàn)?M3 沒有收到),快恢復(fù)算法,(1) 當(dāng)發(fā)送端收到連續(xù)三個(gè)重復(fù)的 ACK 時(shí),就重新設(shè)置慢開始門限 ssthresh。 (2) 與慢開始不同之處是擁塞窗口 cwnd 不是設(shè)置為 1,而是設(shè)置為 ssthresh + 3 MSS。 (3) 若收到的重復(fù)的 ACK 為 n 個(gè)(n 3),則將 cwnd 設(shè)置為 ssthresh + n

43、MSS。 (4) 若發(fā)送窗口值還容許發(fā)送報(bào)文段,就按擁塞避免算法繼續(xù)發(fā)送報(bào)文段。 (5) 若收到了確認(rèn)新的報(bào)文段的 ACK,就將 cwnd 縮小到 ssthresh。,4.5 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)文段。,往返時(shí)延的方差很大,由于 TCP 的下層是一個(gè)互連網(wǎng)環(huán)境,IP 數(shù)據(jù)報(bào)所選擇的路由變化很大。因而運(yùn)輸層的往返時(shí)延的方差也很大。,時(shí)間,數(shù)據(jù)鏈路層,T1,T2,T3,往返時(shí)延的 概率分布,往返時(shí)延的自適應(yīng)算法,記錄每一個(gè)報(bào)文段發(fā)出的時(shí)

44、間,以及收到相應(yīng)的確認(rèn)報(bào)文段的時(shí)間。這兩個(gè)時(shí)間之差就是報(bào)文段的往返時(shí)延。 將各個(gè)報(bào)文段的往返時(shí)延樣本加權(quán)平均,就得出報(bào)文段的平均往返時(shí)延 RTT。 每測(cè)量到一個(gè)新的往返時(shí)延樣本,就按下式重新計(jì)算一次平均往返時(shí)延 RTT: 平均往返時(shí)延RTT (舊的RTT) (1 ) (新的往返時(shí)延樣本) (7-2) 在上式中,0 1。,參數(shù) 的選擇,若 很接近于 1,表示新算出的平均往返時(shí)延 RTT 和原來的值相比變化不大,而新的往返時(shí)延樣本的影響不大(RTT 值更新較慢)。 若選擇 接近于零,則表示加權(quán)計(jì)算的平均往返時(shí)延 RTT 受新的往返時(shí)延樣本的影響較大(RTT 值更新較快)。 典型的 值為 7/8。,

45、超時(shí)重傳時(shí)間 RTO (RetransmissionTime-Out),計(jì)時(shí)器的 RTO 應(yīng)略大于上面得出的 RTT,即: RTO RTT (7-3) 這里 是個(gè)大于 1 的系數(shù)。 若取 很接近于1 ,發(fā)送端可及時(shí)地重傳丟失的報(bào)文段,因此效率得到提高。 但若報(bào)文段并未丟失而僅僅是增加了一點(diǎn)時(shí)延,那么過早地重傳反而會(huì)加重網(wǎng)絡(luò)的負(fù)擔(dān)。 因此 TCP 原先的標(biāo)準(zhǔn)推薦將 值取為 2。,往返時(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ì)原來的報(bào)文段 1 的確認(rèn),還是對(duì)重傳的報(bào)文段 2 的確認(rèn)?,發(fā)送一

46、個(gè) TCP 報(bào)文段,超時(shí)重傳 TCP 報(bào)文段,收到 ACK,時(shí)間,1,2,往返時(shí)延 RTT?,是對(duì)哪一個(gè)報(bào)文段 的確認(rèn)?,Karn 算法,在計(jì)算平均往返時(shí)延 RTT 時(shí),只要報(bào)文段重傳了,就不采用其往返時(shí)延樣本。 這樣得出的平均往返時(shí)延 RTT 和重傳時(shí)間就較準(zhǔn)確。,修正的 Karn 算法,報(bào)文段每重傳一次,就將重傳時(shí)間增大一些: 新的重傳時(shí)間 (舊的重傳時(shí)間) (7-4) 系數(shù) 的典型值是2 。 當(dāng)不再發(fā)生報(bào)文段的重傳時(shí),才根據(jù)報(bào)文段的往返時(shí)延更新平均往返時(shí)延 RTT 和重傳時(shí)間的數(shù)值。 實(shí)踐證明,這種策略較為合理。,4.6 隨機(jī)早期丟棄 RED(Random Early Discard),

47、使路由器的隊(duì)列維持兩個(gè)參數(shù),即隊(duì)列長(zhǎng)度最小門限 THmin 和最大門限 THmax。 RED 對(duì)每一個(gè)到達(dá)的數(shù)據(jù)報(bào)都先計(jì)算平均隊(duì)列長(zhǎng)度 LAV。 若平均隊(duì)列長(zhǎng)度小于最小門限 THmin,則將新到達(dá)的數(shù)據(jù)報(bào)放入隊(duì)列進(jìn)行排隊(duì)。 若平均隊(duì)列長(zhǎng)度超過最大門限 THmax,則將新到達(dá)的數(shù)據(jù)報(bào)丟棄。 若平均隊(duì)列長(zhǎng)度在最小門限 THmin 和最大門限THmax 之間,則按照某一概率 p 將新到達(dá)的數(shù)據(jù)報(bào)丟棄。,RED 將路由器的到達(dá)隊(duì)列劃分成為三個(gè)區(qū)域,從隊(duì)首 發(fā)送,最小門限 THmin,最大門限 THmin,數(shù)據(jù)報(bào) 到達(dá),平均隊(duì)列長(zhǎng)度 Lav,排隊(duì),丟棄,以概率 p 丟棄,丟棄概率 p 與 THmin 和

48、 Thmax 的關(guān)系,最小門限 THmin,最大門限 THmax,平均隊(duì)列長(zhǎng)度 Lav,數(shù)據(jù)報(bào)丟棄概率 p,1.0,0,pmax,當(dāng) LAV Thmin 時(shí),丟棄概率 p = 0。 當(dāng) LAV Thmax 時(shí),丟棄概率 p = 1。 當(dāng) THmin LAV THmax時(shí), 0 p 1 。 例如,按線性規(guī)律變化,從 0 變到 pmax。,瞬時(shí)隊(duì)列長(zhǎng)度和平均隊(duì)列長(zhǎng)度的區(qū)別,隊(duì)列長(zhǎng)度,時(shí)間,瞬時(shí)隊(duì)列長(zhǎng)度,平均隊(duì)列長(zhǎng)度,4.7 TCP 的運(yùn)輸連接管理1. 運(yùn)輸連接的三個(gè)階段,運(yùn)輸連接就有三個(gè)階段,即:連接建立、數(shù)據(jù)傳送和連接釋放。運(yùn)輸連接的管理就是使運(yùn)輸連接的建立和釋放都能正常地進(jìn)行。 連接建立過程中

49、要解決以下三個(gè)問題: 要使每一方能夠確知對(duì)方的存在。 要允許雙方協(xié)商一些參數(shù)(如最大報(bào)文段長(zhǎng)度,最大窗口大小,服務(wù)質(zhì)量等)。 能夠?qū)\(yùn)輸實(shí)體資源(如緩存大小,連接表中的項(xiàng)目等)進(jìn)行分配。,客戶服務(wù)器方式,TCP 的連接和建立都是采用客戶服務(wù)器方式。 主動(dòng)發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶(client)。 被動(dòng)等待連接建立的應(yīng)用進(jìn)程叫做服務(wù)器(server)。,用三次握手建立 TCP 連接,主機(jī) B,被動(dòng)打開,主動(dòng)打開,確認(rèn),確認(rèn),主機(jī) A,連接請(qǐng)求,建立 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。 B 的 TCP 收到連接請(qǐng)求報(bào)文段后,如同意,則發(fā)回確認(rèn)。 B 在確認(rèn)報(bào)文段中應(yīng)將 SYN 置為 1,其確認(rèn)號(hào)應(yīng)為 x 1,同時(shí)也為自己選擇序號(hào) y。 A 收到此報(bào)文段后,向 B 給出確認(rèn),其確認(rèn)號(hào)應(yīng)為 y 1。 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)建立。,TCP 連接釋放的過程,應(yīng)用進(jìn)程 釋放連接 A 不再發(fā)送報(bào)文,主機(jī) B,主機(jī) A

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論