




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第八章 運(yùn)輸層 *8.1 運(yùn)輸層協(xié)議概述*8.1.1 進(jìn)程之間的通信8.1.2 運(yùn)輸層中的兩個(gè)協(xié)議8.1.3 端口的概念*8.3 用戶數(shù)據(jù)報(bào)協(xié)議 UDP 1 UDP 概述2 UDP 用戶數(shù)據(jù)報(bào)的首部格式8.3 傳輸控制協(xié)議 TCP第1頁(yè),共66頁(yè)。18.1 運(yùn)輸層協(xié)議概述 從通信和信息處理的角度看,運(yùn)輸層向它上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,同時(shí)也是用戶功能中的最低層。 物理層網(wǎng)絡(luò)層運(yùn)輸層應(yīng)用層數(shù)據(jù)鏈路層面向信息處理面向通信用戶功能網(wǎng)絡(luò)功能第2頁(yè),共66頁(yè)。2運(yùn)輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信 54321運(yùn)輸層提供應(yīng)用進(jìn)程間的邏輯通信主機(jī) A主機(jī) B應(yīng)用進(jìn)程應(yīng)用進(jìn)程路
2、由器 1路由器 2AP1LAN2WANAP2AP3AP4IP 層LAN1AP1AP2AP4端口端口54321IP 協(xié)議的作用范圍運(yùn)輸層協(xié)議 TCP 和 UDP 的作用范圍AP3第3頁(yè),共66頁(yè)。3應(yīng)用進(jìn)程之間的通信兩個(gè)主機(jī)進(jìn)行通信實(shí)際上就是兩個(gè)主機(jī)中的應(yīng)用進(jìn)程互相通信。 應(yīng)用進(jìn)程之間的通信又稱為端到端的通信。 運(yùn)輸層的一個(gè)很重要的功能就是復(fù)用和分用。應(yīng)用層不同進(jìn)程的報(bào)文通過(guò)不同的端口向下交到運(yùn)輸層,再往下就共用網(wǎng)絡(luò)層提供的服務(wù)?!斑\(yùn)輸層提供應(yīng)用進(jìn)程間的邏輯通信”?!斑壿嬐ㄐ拧钡囊馑际牵哼\(yùn)輸層之間的通信好像是沿水平方向傳送數(shù)據(jù)。但事實(shí)上這兩個(gè)運(yùn)輸層之間并沒有一條水平方向的物理連接。第4頁(yè),共66
3、頁(yè)。4運(yùn)輸層協(xié)議和網(wǎng)絡(luò)層協(xié)議的主要區(qū)別 應(yīng)用進(jìn)程應(yīng)用進(jìn)程IP 協(xié)議的作用范圍(提供主機(jī)之間的邏輯通信)TCP 和 UDP 協(xié)議的作用范圍(提供進(jìn)程之間的邏輯通信)因 特 網(wǎng)第5頁(yè),共66頁(yè)。5運(yùn)輸層的主要功能 運(yùn)輸層為應(yīng)用進(jìn)程之間提供端到端的邏輯通信(但網(wǎng)絡(luò)層是為主機(jī)之間提供邏輯通信)。運(yùn)輸層還要對(duì)收到的報(bào)文進(jìn)行差錯(cuò)檢測(cè)。運(yùn)輸層需要有兩種不同的運(yùn)輸協(xié)議,即面向連接的 TCP 和無(wú)連接的 UDP。 第6頁(yè),共66頁(yè)。6運(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)程第7頁(yè),共66
4、頁(yè)。7TCP/IP的運(yùn)輸層有兩個(gè)不同的協(xié)議:(1) 用戶數(shù)據(jù)報(bào)協(xié)議 UDP (User Datagram Protocol)(2) 傳輸控制協(xié)議 TCP (Transmission Control Protocol)8.1 TCP/IP 體系中的運(yùn)輸層8.1.2 運(yùn)輸層中的兩個(gè)協(xié)議第8頁(yè),共66頁(yè)。8兩個(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 第9頁(yè),共66頁(yè)。9TC
5、P/IP 體系中的運(yùn)輸層協(xié)議 TCPUDPIP應(yīng)用層與各種網(wǎng)絡(luò)接口運(yùn)輸層第10頁(yè),共66頁(yè)。10TCP 與 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ī)資源。 第11頁(yè),共66頁(yè)。11還要強(qiáng)調(diào)兩點(diǎn) 運(yùn)輸層的 UDP 用戶數(shù)據(jù)報(bào)與網(wǎng)際層的IP數(shù)據(jù)報(bào)有很大區(qū)別。IP 數(shù)
6、據(jù)報(bào)要經(jīng)過(guò)互連網(wǎng)中許多路由器的存儲(chǔ)轉(zhuǎn)發(fā),但 UDP 用戶數(shù)據(jù)報(bào)是在運(yùn)輸層的端到端抽象的邏輯信道中傳送的。TCP 報(bào)文段是在運(yùn)輸層抽象的端到端邏輯信道中傳送,這種信道是可靠的全雙工信道。但這樣的信道卻不知道究竟經(jīng)過(guò)了哪些路由器,而這些路由器也根本不知道上面的運(yùn)輸層是否建立了 TCP 連接。 第12頁(yè),共66頁(yè)。12表8.2使用UDP和TCP的各種應(yīng)用層協(xié)議應(yīng) 用 應(yīng)用層協(xié)議 傳輸層協(xié)議 名字轉(zhuǎn)換 DNS UDP 文件傳送 TFTP UDP 路由選擇協(xié)議 RIP UDP IP地址配置 BOOTP.DHCP UDP 網(wǎng)絡(luò)管理 SNMP UDP 遠(yuǎn)程文件服務(wù)器 NFS UDP IP電話 專用協(xié)議 UD
7、P 第13頁(yè),共66頁(yè)。13應(yīng) 用 應(yīng)用層協(xié)議 傳輸層協(xié)議 流式多媒體通信 專用協(xié)議 UDP 多播 IGMP UDP 電子郵件 SMTP TCP 遠(yuǎn)程終端接入 TELNET TCP 萬(wàn)維網(wǎng) HTTP TCP 文件傳送 FTP TCP 表8.2(續(xù))使用UDP和TCP的各種應(yīng)用層協(xié)議第14頁(yè),共66頁(yè)。148.1.3 端口的概念端口就是運(yùn)輸層服務(wù)訪問(wèn)點(diǎn) TSAP。端口的作用就是讓應(yīng)用層的各種應(yīng)用進(jìn)程都能將其數(shù)據(jù)通過(guò)端口向下交付給運(yùn)輸層,以及讓運(yùn)輸層知道應(yīng)當(dāng)將其報(bào)文段中的數(shù)據(jù)向上通過(guò)端口交付給應(yīng)用層相應(yīng)的進(jìn)程。從這個(gè)意義上講,端口是用來(lái)標(biāo)志應(yīng)用層的進(jìn)程。 第15頁(yè),共66頁(yè)。15端口在進(jìn)程之間的通
8、信中所起的作用 應(yīng)用層運(yùn)輸層網(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ā)送方接收方第16頁(yè),共66頁(yè)。16端口 端口用一個(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)系的。第17頁(yè),共66頁(yè)。17兩類端口 一類是熟知端口,其數(shù)值一般為 01023。當(dāng)一種新的應(yīng)用程序出現(xiàn)時(shí),必須為它指派一個(gè)熟知端口。另一類則是一般端口,用來(lái)隨時(shí)分配給請(qǐng)求通信的客戶進(jìn)程。 第18頁(yè)
9、,共66頁(yè)。18插口(socket) TCP 使用“連接”(而不僅僅是“端口”)作為最基本的抽象,同時(shí)將 TCP 連接的端點(diǎn)稱為插口(socket),或套接字、套接口。插口和端口、IP 地址的關(guān)系是: IP 地址3 端口號(hào)1500 3, 1500插口(socket)第19頁(yè),共66頁(yè)。198.2 用戶數(shù)據(jù)報(bào)協(xié)議 UDP 8.2.1 UDP 概述 UDP 只在 IP 的數(shù)據(jù)報(bào)服務(wù)之上增加了很少一點(diǎn)的功能,即端口的功能和差錯(cuò)檢測(cè)的功能。雖然 UDP 用戶數(shù)據(jù)報(bào)只能提供不可靠的交付,但 UDP 在某些方面有其特殊的優(yōu)點(diǎn)。發(fā)送數(shù)據(jù)之前不需要建立連接UDP 的主機(jī)不需要維持復(fù)雜的連接狀態(tài)表。UDP 用戶
10、數(shù)據(jù)報(bào)只有8個(gè)字節(jié)的首部開銷。網(wǎng)絡(luò)出現(xiàn)的擁塞不會(huì)使源主機(jī)的發(fā)送速率降低。這對(duì)某些實(shí)時(shí)應(yīng)用是很重要的。 第20頁(yè),共66頁(yè)。20端口是用報(bào)文隊(duì)列來(lái)實(shí)現(xiàn) UDP 端口 51000UDP 端口 69出隊(duì)列入隊(duì)列出隊(duì)列入隊(duì)列TFTP 服務(wù)器TFTP 客戶UDP 用戶數(shù)據(jù)報(bào)應(yīng)用層運(yùn)輸層第21頁(yè),共66頁(yè)。218.2.2 UDP 用戶數(shù)據(jù)報(bào)的首部格式 偽首部源端口目的端口長(zhǎng) 度檢驗(yàn)和數(shù) 據(jù)首 部UDP長(zhǎng)度源 IP 地址目的 IP 地址017IP 數(shù)據(jù)報(bào)字節(jié)44112122222字節(jié)發(fā)送在前數(shù) 據(jù)首 部UDP 用戶數(shù)據(jù)報(bào)第22頁(yè),共66頁(yè)。22偽首部源端口目的端口長(zhǎng) 度檢驗(yàn)和數(shù) 據(jù)首 部UDP長(zhǎng)度源 IP
11、地址目的 IP 地址017IP 數(shù)據(jù)報(bào)字節(jié)44112122222字節(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é)。 第23頁(yè),共66頁(yè)。23偽首部源端口目的端口長(zhǎng) 度檢驗(yàn)和數(shù) 據(jù)首 部UDP長(zhǎng)度源 IP 地址目的 IP 地址017IP 數(shù)據(jù)報(bào)字節(jié)44112122222字節(jié)發(fā)送在前數(shù) 據(jù)首 部UDP 用戶數(shù)據(jù)報(bào)在計(jì)算檢驗(yàn)和時(shí),臨時(shí)把“偽首部”和 UDP 用戶數(shù)據(jù)報(bào)連接在一起。偽首部?jī)H僅是為了計(jì)算檢驗(yàn)和。第24頁(yè),共66頁(yè)。24圖8.14 計(jì)算UTP校驗(yàn)和的示例第25頁(yè),共66頁(yè)。258.
12、3 傳輸控制協(xié)議 TCP 8.3.1 TCP 概述 端口發(fā)送 TCP 報(bào)文段TCPTCP接收緩存發(fā)送緩存報(bào)文段報(bào)文段報(bào)文段端口發(fā)送端接收端向發(fā)送緩存寫入數(shù)據(jù)塊從接收緩存讀取數(shù)據(jù)塊應(yīng)用進(jìn)程應(yīng)用進(jìn)程第26頁(yè),共66頁(yè)。26TCP首部20 字節(jié)的固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FIN32 bitSYNRSTPSHACKURG比特 0 8 16 24 31填 充TCP 數(shù)據(jù)部分TCP 首部TCP 報(bào)文段IP 數(shù)據(jù)部分IP 首部發(fā)送在前第27頁(yè),共66頁(yè)。27TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選
13、 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充源端口和目的端口字段各占 2 字節(jié)。端口是運(yùn)輸層與應(yīng)用層的服務(wù)接口。運(yùn)輸層的復(fù)用和分用功能都要通過(guò)端口才能實(shí)現(xiàn)。 第28頁(yè),共66頁(yè)。28TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充序號(hào)字段占 4 字節(jié)。TCP 連接中傳送的數(shù)據(jù)流中的每一個(gè)字節(jié)都編上一個(gè)序號(hào)。序號(hào)字段的值則指的是本報(bào)文段
14、所發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。 第29頁(yè),共66頁(yè)。29TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充確認(rèn)號(hào)字段占 4 字節(jié),是期望收到對(duì)方的下一個(gè)報(bào)文段的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。 第30頁(yè),共66頁(yè)。30TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充數(shù)據(jù)偏移占 4 bit
15、,它指出 TCP 報(bào)文段的數(shù)據(jù)起始處距離 TCP 報(bào)文段的起始處有多遠(yuǎn)。“數(shù)據(jù)偏移”的單位不是字節(jié)而是 32 bit 字(4 字節(jié)為計(jì)算單位)。 第31頁(yè),共66頁(yè)。31TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充保留字段占 6 bit,保留為今后使用,但目前應(yīng)置為 0。 第32頁(yè),共66頁(yè)。32TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留F
16、INSYNRSTPSHACKURG比特 0 8 16 24 31填 充緊急比特 URG 當(dāng) URG 1 時(shí),表明緊急指針字段有效。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級(jí)的數(shù)據(jù))。 第33頁(yè),共66頁(yè)。33TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 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ú)效。 第34頁(yè),共66頁(yè)。34TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢
17、驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充推送比特 PSH (PuSH) 接收 TCP 收到推送比特置 1 的報(bào)文段,就盡快地交付給接收應(yīng)用進(jìn)程,而不再等到整個(gè)緩存都填滿了后再向上交付。 第35頁(yè),共66頁(yè)。35TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充復(fù)位比特 RST (ReSeT) 當(dāng) RST 1 時(shí),表明 TCP
18、 連接中出現(xiàn)嚴(yán)重差錯(cuò)(如由于主機(jī)崩潰或其他原因),必須釋放連接,然后再重新建立運(yùn)輸連接。 第36頁(yè),共66頁(yè)。36TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充同步比特 SYN 同步比特 SYN 置為 1,就表示這是一個(gè)連接請(qǐng)求或連接接受報(bào)文。 第37頁(yè),共66頁(yè)。37TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKU
19、RG比特 0 8 16 24 31填 充終止比特 FIN (FINal) 用來(lái)釋放一個(gè)連接。當(dāng)FIN 1 時(shí),表明此報(bào)文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接。 第38頁(yè),共66頁(yè)。38TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充窗口字段 占 2 字節(jié)。窗口字段用來(lái)控制對(duì)方發(fā)送的數(shù)據(jù)量,單位為字節(jié)。TCP 連接的一端根據(jù)設(shè)置的緩存空間大小確定自己的接收窗口大小,然后通知對(duì)方以確定對(duì)方的發(fā)送窗口的上限。第39頁(yè),共66頁(yè)。39
20、TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充檢驗(yàn)和 占 2 字節(jié)。檢驗(yàn)和字段檢驗(yàn)的范圍包括首部和數(shù)據(jù)這兩部分。在計(jì)算檢驗(yàn)和時(shí),要在 TCP 報(bào)文段的前面加上 12 字節(jié)的偽首部。第40頁(yè),共66頁(yè)。40TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充緊急指針字段 占 16 b
21、it。緊急指針指出在本報(bào)文段中的緊急數(shù)據(jù)的最后一個(gè)字節(jié)的序號(hào)。 第41頁(yè),共66頁(yè)。41TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充選項(xiàng)字段 長(zhǎng)度可變。TCP 只規(guī)定了一種選項(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è)的
22、TCP 報(bào)文段。第42頁(yè),共66頁(yè)。42TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長(zhǎng) 度 可 變)源 端 口序 號(hào)緊 急 指 針窗 口確 認(rèn) 號(hào)保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充填充字段 這是為了使整個(gè)首部長(zhǎng)度是 4 字節(jié)的整數(shù)倍。 第43頁(yè),共66頁(yè)。438.3.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)。 TC
23、P 的確認(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)。 第44頁(yè),共66頁(yè)。448.3.4 TCP 的流量控制滑動(dòng)窗口的概念TCP 采用大小可變的滑動(dòng)窗口進(jìn)行流量控制。窗口大小的單位是字節(jié)。在 TCP 報(bào)文段首部的窗口字段寫入的數(shù)值就是當(dāng)前給對(duì)方設(shè)置的發(fā)送窗口數(shù)值的上限。發(fā)送窗口在連接建立時(shí)由雙方商定。但在通信的過(guò)程中,接收端可根據(jù)自己的資源情況,隨時(shí)動(dòng)態(tài)地調(diào)整對(duì)方的發(fā)送窗口上限值(可增大或減小)。 第45頁(yè),共66頁(yè)。45收到確認(rèn)即可前移1002003004005006007008009
24、001012013014015016017018011發(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)文段的距離。第46頁(yè),共66頁(yè)。46收到確認(rèn)即可前移1002003004005006007008009001012013014015016017018011可發(fā)送不可發(fā)送指針1002003004005006007008009001012013014015016017018011發(fā)送窗口可發(fā)送不可發(fā)
25、送指針發(fā)送窗口前移發(fā)送端已發(fā)送了 400 字節(jié)的數(shù)據(jù),但只收到對(duì)前 200 字節(jié)數(shù)據(jù)的確認(rèn),同時(shí)窗口大小不變。現(xiàn)在發(fā)送端還可發(fā)送 300 字節(jié)。 已發(fā)送并被確認(rèn)已發(fā)送但未被確認(rèn)第47頁(yè),共66頁(yè)。471002003004005006007008009001012013014015016017018011已發(fā)送并被確認(rèn)已發(fā)送但未被確認(rèn)可發(fā)送不可發(fā)送指針1002003004005006007008009001012013014015016017018011已發(fā)送并被確認(rèn)可發(fā)送不可發(fā)送指針發(fā)送窗口前移發(fā)送窗口縮小發(fā)送端收到了對(duì)方對(duì)前 400 字節(jié)數(shù)據(jù)的確認(rèn),但對(duì)方通知發(fā)送端必須把窗口減小到 400
26、字節(jié)?,F(xiàn)在發(fā)送端最多還可發(fā)送 400 字節(jié)的數(shù)據(jù)。 第48頁(yè),共66頁(yè)。48利用可變窗口大小進(jìn)行流量控制雙方確定的窗口值是 400 SEQ = 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ā),
27、但不能發(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丟失!第49頁(yè),共66頁(yè)。49TCP協(xié)議是面向字節(jié)的每個(gè)字節(jié)對(duì)應(yīng)于一個(gè)序號(hào)TCP報(bào)文段中序號(hào)數(shù)值表示該報(bào)文段中的數(shù)據(jù)部分的第一個(gè)字節(jié)的序號(hào)TCP的確認(rèn)是對(duì)接收到的數(shù)據(jù)的最高序號(hào)進(jìn)行確認(rèn)。確認(rèn)號(hào)表示接收端期望下次收到的數(shù)據(jù)中的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)TCP提供全雙工通信,確認(rèn)信息可以在數(shù)據(jù)中稍帶傳送,提高傳輸效率TCP的數(shù)據(jù)編號(hào)與確認(rèn)第50頁(yè),共66頁(yè)。50TCP的數(shù)據(jù)編號(hào)與確認(rèn)我剛發(fā)送
28、了10號(hào)數(shù)據(jù)源端口目的端口序號(hào)確認(rèn)號(hào)102823源端口目的端口.10序號(hào).0確認(rèn)號(hào).第51頁(yè),共66頁(yè)。我剛發(fā)送了10號(hào)數(shù)據(jù)收到10號(hào)數(shù)據(jù),現(xiàn)需11號(hào)數(shù)據(jù).源端口目的端口序號(hào)確認(rèn)號(hào)102823源端口目的端口10序號(hào).1確認(rèn)號(hào).102823源端口目的端口.11序號(hào).1確認(rèn)號(hào).TCP的數(shù)據(jù)編號(hào)與確認(rèn)第52頁(yè),共66頁(yè)。我剛發(fā)送了10號(hào)數(shù)據(jù)收到10號(hào)數(shù)據(jù),現(xiàn)需11號(hào)數(shù)據(jù).源端口目的端口序號(hào)確認(rèn)號(hào)102823源端口目的端口10序號(hào).1確認(rèn)號(hào).102823源端口目的端口.11序號(hào).1確認(rèn)號(hào).TCP的數(shù)據(jù)編號(hào)與確認(rèn)第53頁(yè),共66頁(yè)。8.3.5 TCP 的擁塞控制第54頁(yè),共66頁(yè)。548.3.7 TCP
29、 的運(yùn)輸連接管理運(yùn)輸連接的三個(gè)階段 運(yùn)輸連接就有三個(gè)階段,即:連接建立、數(shù)據(jù)傳送和連接釋放。運(yùn)輸連接的管理就是使運(yùn)輸連接的建立和釋放都能正常地進(jìn)行。連接建立過(guò)程中要解決以下三個(gè)問(wèn)題:要使每一方能夠確知對(duì)方的存在。要允許雙方協(xié)商一些參數(shù)(如最大報(bào)文段長(zhǎng)度,最大窗口大小,服務(wù)質(zhì)量等)。能夠?qū)\(yùn)輸實(shí)體資源(如緩存大小,連接表中的項(xiàng)目等)進(jìn)行分配。 第55頁(yè),共66頁(yè)。55TCP是面向連接的協(xié)議,可以在各種網(wǎng)絡(luò)之間建立全雙工的虛電路連接,實(shí)現(xiàn)無(wú)亂序、無(wú)丟失和無(wú)重復(fù)的數(shù)據(jù)傳輸,它采取了三次握手、兩次確認(rèn)的有效技術(shù),做到了非??煽俊5?6頁(yè),共66頁(yè)。56客戶服務(wù)器方式 TCP 的連接和建立都是采用客戶服
30、務(wù)器方式。主動(dòng)發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶(client)。被動(dòng)等待連接建立的應(yīng)用進(jìn)程叫做服務(wù)器(server)。 第57頁(yè),共66頁(yè)。57用三次握手建立 TCP 連接 SYN, SEQ = x主機(jī) BSYN, ACK, SEQ = y, ACK= x 1ACK, SEQ = x + 1, ACK = y 1被動(dòng)打開主動(dòng)打開確認(rèn)確認(rèn)主機(jī) A連接請(qǐng)求第58頁(yè),共66頁(yè)。58建立 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
31、在確認(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)建立。 第59頁(yè),共66頁(yè)。59TCP 連接釋放的過(guò)程 FIN, SEQ = xACK, SEQ = y, ACK= x 1ACK, SEQ = x + 1, ACK = y 1應(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)從 A 到 B 的連接就釋放了,連接處于半關(guān)閉狀態(tài)。相當(dāng)于 A 向 B 說(shuō):“我已經(jīng)沒有數(shù)據(jù)要發(fā)送了。但你如果還發(fā)送數(shù)據(jù),我仍接收?!?至此,整個(gè)連接已經(jīng)全
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動(dòng)企業(yè)安全合同范本
- 醫(yī)療維修質(zhì)保合同范本
- 北京鍋爐拆除合同范本
- 單位之間借款合同范本
- 出售櫥柜廠商合同范本
- 個(gè)人船舶合同范本
- 他人向我借款合同范本
- 買機(jī)車訂單合同范本
- 單位雇傭合同范本
- 關(guān)于資產(chǎn)置換合同范本
- 外國(guó)來(lái)華留學(xué)生經(jīng)費(fèi)管理辦法
- 蝴蝶蘭栽培技術(shù)規(guī)程
- Unit 4 Time to celebrate 教學(xué)設(shè)計(jì)-2024-2025學(xué)年外研版英語(yǔ)七年級(jí)上冊(cè)
- 健康檔案模板
- 筋膜刀的臨床應(yīng)用
- DB32-T 4790-2024建筑施工特種作業(yè)人員安全操作技能考核標(biāo)準(zhǔn)
- 2022年安徽阜陽(yáng)太和縣人民醫(yī)院本科及以上學(xué)歷招聘筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2024-2030年中國(guó)反芻動(dòng)物飼料行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 護(hù)理團(tuán)體標(biāo)準(zhǔn)解讀-成人氧氣吸入療法護(hù)理
- 幼兒園大班《識(shí)字卡》課件
- 2024-2030全球與中國(guó)寵物醫(yī)院市場(chǎng)現(xiàn)狀及未來(lái)發(fā)展趨勢(shì)
評(píng)論
0/150
提交評(píng)論