第八章運(yùn)輸層_第1頁
第八章運(yùn)輸層_第2頁
第八章運(yùn)輸層_第3頁
第八章運(yùn)輸層_第4頁
第八章運(yùn)輸層_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、8.1運(yùn)輸協(xié)議概述運(yùn)輸協(xié)議概述一、一、運(yùn)輸層在網(wǎng)絡(luò)體系結(jié)運(yùn)輸層在網(wǎng)絡(luò)體系結(jié)構(gòu)中的地位構(gòu)中的地位1、從面向通信和面向信息處理、從面向通信和面向信息處理來劃分,則運(yùn)輸層屬于面向來劃分,則運(yùn)輸層屬于面向通信的低層中的最高層。通信的低層中的最高層。 2、從網(wǎng)絡(luò)功能和用戶功能來劃、從網(wǎng)絡(luò)功能和用戶功能來劃分,則運(yùn)輸層又屬于用戶功分,則運(yùn)輸層又屬于用戶功能的高層中的最低層。能的高層中的最低層。 3、通信子網(wǎng)中無運(yùn)輸層,它只、通信子網(wǎng)中無運(yùn)輸層,它只存在于通信子網(wǎng)以外的主機(jī)存在于通信子網(wǎng)以外的主機(jī)中。中。應(yīng)用層運(yùn)輸層網(wǎng)絡(luò)層物理層數(shù)據(jù)鏈路層面向信息面向信息處理處理面向通信面向通信用戶功能用戶功能網(wǎng)絡(luò)功能網(wǎng)絡(luò)功

2、能8.1運(yùn)輸協(xié)議概述運(yùn)輸協(xié)議概述二、運(yùn)輸層的功能二、運(yùn)輸層的功能1、復(fù)用與分用:、復(fù)用與分用:兩個(gè)主機(jī)進(jìn)行通信實(shí)際上是兩個(gè)主機(jī)中的兩個(gè)主機(jī)進(jìn)行通信實(shí)際上是兩個(gè)主機(jī)中的應(yīng)用進(jìn)程應(yīng)用進(jìn)程互互相通信。相通信。IP協(xié)議雖然能把分組送到目的主機(jī),但這個(gè)分組還停協(xié)議雖然能把分組送到目的主機(jī),但這個(gè)分組還停留在主機(jī)的網(wǎng)絡(luò)層而沒有交付給主機(jī)中的應(yīng)用進(jìn)程。留在主機(jī)的網(wǎng)絡(luò)層而沒有交付給主機(jī)中的應(yīng)用進(jìn)程。因因IP地址是標(biāo)志在因特網(wǎng)中的一個(gè)主機(jī),而地址是標(biāo)志在因特網(wǎng)中的一個(gè)主機(jī),而不是標(biāo)志不是標(biāo)志主機(jī)中的應(yīng)用進(jìn)程主機(jī)中的應(yīng)用進(jìn)程。由于通信的兩個(gè)端點(diǎn)是源主機(jī)和目的主機(jī)中的應(yīng)用進(jìn)由于通信的兩個(gè)端點(diǎn)是源主機(jī)和目的主機(jī)中的應(yīng)

3、用進(jìn)程,因此應(yīng)用進(jìn)程之間的通信又稱為程,因此應(yīng)用進(jìn)程之間的通信又稱為端到端的通信端到端的通信。8.1運(yùn)輸協(xié)議概述運(yùn)輸協(xié)議概述在一個(gè)主機(jī)中經(jīng)常有在一個(gè)主機(jī)中經(jīng)常有多個(gè)應(yīng)用進(jìn)程多個(gè)應(yīng)用進(jìn)程同時(shí)分別和另一同時(shí)分別和另一個(gè)主機(jī)中的多個(gè)應(yīng)用進(jìn)程通信。個(gè)主機(jī)中的多個(gè)應(yīng)用進(jìn)程通信。如如,某用戶在使用,某用戶在使用瀏覽器查找某網(wǎng)站的信息時(shí),其主機(jī)的應(yīng)用層運(yùn)行瀏覽器查找某網(wǎng)站的信息時(shí),其主機(jī)的應(yīng)用層運(yùn)行瀏覽器客戶進(jìn)程。如果在瀏覽網(wǎng)頁的同進(jìn),還要用瀏覽器客戶進(jìn)程。如果在瀏覽網(wǎng)頁的同進(jìn),還要用電子郵件給網(wǎng)站發(fā)送反饋意見,則主機(jī)的應(yīng)用層就電子郵件給網(wǎng)站發(fā)送反饋意見,則主機(jī)的應(yīng)用層就還要運(yùn)行電子郵件的客戶進(jìn)程。還要運(yùn)行

4、電子郵件的客戶進(jìn)程。運(yùn)輸層一個(gè)很重要的功能就是運(yùn)輸層一個(gè)很重要的功能就是復(fù)用復(fù)用和和分用分用。應(yīng)用層。應(yīng)用層不同進(jìn)程的報(bào)文通過不同的不同進(jìn)程的報(bào)文通過不同的端口端口向下交到運(yùn)輸層,向下交到運(yùn)輸層,再往下就再往下就共用網(wǎng)絡(luò)層提供的服務(wù)共用網(wǎng)絡(luò)層提供的服務(wù)。當(dāng)這些報(bào)文到達(dá)。當(dāng)這些報(bào)文到達(dá)目的主機(jī)后,目的主機(jī)的運(yùn)輸層就使用其目的主機(jī)后,目的主機(jī)的運(yùn)輸層就使用其分用分用功能,功能,通過不同的通過不同的端口端口將報(bào)文分別交付到相應(yīng)的進(jìn)程。將報(bào)文分別交付到相應(yīng)的進(jìn)程。下圖示出了這個(gè)過程。下圖示出了這個(gè)過程。( )( )( )( )8.1運(yùn)輸協(xié)議概述運(yùn)輸協(xié)議概述AP1AP2LAN1AP3AP4WANLAN2

5、R1R2IP協(xié)議的作用范圍協(xié)議的作用范圍運(yùn)輸層協(xié)議運(yùn)輸層協(xié)議TCP和和UDP的作用范圍的作用范圍主機(jī)主機(jī)A主機(jī)主機(jī)B54321AP1AP2( )( )( )( )54321AP3AP4運(yùn)輸層提供應(yīng)用進(jìn)程間的邏輯通信運(yùn)輸層提供應(yīng)用進(jìn)程間的邏輯通信端口端口應(yīng)用進(jìn)程應(yīng)用進(jìn)程端口端口應(yīng)用進(jìn)程應(yīng)用進(jìn)程運(yùn)輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信運(yùn)輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信8.1運(yùn)輸協(xié)議概述運(yùn)輸協(xié)議概述運(yùn)輸層為應(yīng)用進(jìn)程之間提供端到端的邏輯通信,但運(yùn)輸層為應(yīng)用進(jìn)程之間提供端到端的邏輯通信,但網(wǎng)絡(luò)層是為主機(jī)之間提供邏輯通信,如下圖所示:網(wǎng)絡(luò)層是為主機(jī)之間提供邏輯通信,如下圖所示:因特網(wǎng)因特網(wǎng)IP協(xié)議的

6、作用范圍協(xié)議的作用范圍(提供主機(jī)之間的邏輯通信)(提供主機(jī)之間的邏輯通信)TCP和和UDP協(xié)議的作用范圍協(xié)議的作用范圍(提供進(jìn)程之間的邏輯通信)(提供進(jìn)程之間的邏輯通信)應(yīng)用進(jìn)程應(yīng)用進(jìn)程應(yīng)用進(jìn)程應(yīng)用進(jìn)程運(yùn)輸層協(xié)議和網(wǎng)絡(luò)層協(xié)議的主要區(qū)別運(yùn)輸層協(xié)議和網(wǎng)絡(luò)層協(xié)議的主要區(qū)別8.1運(yùn)輸協(xié)議概述運(yùn)輸協(xié)議概述2、運(yùn)輸層對(duì)收到的報(bào)文進(jìn)行、運(yùn)輸層對(duì)收到的報(bào)文進(jìn)行差錯(cuò)檢測差錯(cuò)檢測。在網(wǎng)絡(luò)。在網(wǎng)絡(luò)層,層,IP數(shù)據(jù)報(bào)首部中的檢驗(yàn)和字段只檢驗(yàn)首部數(shù)據(jù)報(bào)首部中的檢驗(yàn)和字段只檢驗(yàn)首部是否出現(xiàn)差錯(cuò)而不檢查數(shù)據(jù)部分。是否出現(xiàn)差錯(cuò)而不檢查數(shù)據(jù)部分。3、根據(jù)應(yīng)用的不同,運(yùn)輸層需要有兩種不同的、根據(jù)應(yīng)用的不同,運(yùn)輸層需要有兩種不同的

7、運(yùn)輸協(xié)議,即運(yùn)輸協(xié)議,即面向連接的面向連接的TCP和和無連接的無連接的UDP,而網(wǎng)絡(luò)層無法同時(shí)實(shí)現(xiàn)這兩種協(xié)議。而網(wǎng)絡(luò)層無法同時(shí)實(shí)現(xiàn)這兩種協(xié)議。三、運(yùn)輸層與其上下層之間的關(guān)系三、運(yùn)輸層與其上下層之間的關(guān)系8.1運(yùn)輸協(xié)議概述運(yùn)輸協(xié)議概述運(yùn)輸實(shí)體運(yùn)輸實(shí)體運(yùn)輸協(xié)議應(yīng)用層應(yīng)用層網(wǎng)絡(luò)層網(wǎng)絡(luò)層(或網(wǎng)際層)(或網(wǎng)際層)層接口層接口運(yùn)輸層運(yùn)輸層層接口層接口網(wǎng)絡(luò)層服務(wù)網(wǎng)絡(luò)層服務(wù)訪問點(diǎn)訪問點(diǎn)NSAP運(yùn)輸層服務(wù)運(yùn)輸層服務(wù)訪問點(diǎn)訪問點(diǎn)TSAP主機(jī)主機(jī)A運(yùn)輸服務(wù)用戶運(yùn)輸服務(wù)用戶(應(yīng)用層實(shí)體)(應(yīng)用層實(shí)體)主機(jī)主機(jī)A運(yùn)輸服務(wù)用戶運(yùn)輸服務(wù)用戶(應(yīng)用層實(shí)體)(應(yīng)用層實(shí)體)運(yùn)輸層中向應(yīng)用層提供運(yùn)輸服務(wù)的是運(yùn)輸實(shí)體。使用運(yùn)輸服務(wù)的

8、是運(yùn)輸服務(wù)運(yùn)輸層中向應(yīng)用層提供運(yùn)輸服務(wù)的是運(yùn)輸實(shí)體。使用運(yùn)輸服務(wù)的是運(yùn)輸服務(wù)用戶(即各應(yīng)用進(jìn)程或應(yīng)用層實(shí)體)。運(yùn)輸層中兩個(gè)對(duì)等實(shí)體之間的通信遵用戶(即各應(yīng)用進(jìn)程或應(yīng)用層實(shí)體)。運(yùn)輸層中兩個(gè)對(duì)等實(shí)體之間的通信遵循運(yùn)輸協(xié)議。運(yùn)輸協(xié)議保證了運(yùn)輸層能夠向應(yīng)用層提供運(yùn)輸服務(wù)。運(yùn)輸服務(wù)循運(yùn)輸協(xié)議。運(yùn)輸協(xié)議保證了運(yùn)輸層能夠向應(yīng)用層提供運(yùn)輸服務(wù)。運(yùn)輸服務(wù)也使用了下面網(wǎng)絡(luò)層向上提供的網(wǎng)絡(luò)服務(wù)也使用了下面網(wǎng)絡(luò)層向上提供的網(wǎng)絡(luò)服務(wù)8.1運(yùn)輸協(xié)議概述運(yùn)輸協(xié)議概述再次小結(jié):再次小結(jié):物理層使鏈路上能透明地傳送比特流。物理層使鏈路上能透明地傳送比特流。數(shù)據(jù)鏈路層使得各條鏈路能傳送無差錯(cuò)的幀(按序、無丟失、數(shù)據(jù)鏈路層使得各

9、條鏈路能傳送無差錯(cuò)的幀(按序、無丟失、不重復(fù))。不重復(fù))。網(wǎng)絡(luò)層又提供路由選擇、流量控制和網(wǎng)絡(luò)互連的功能,使主網(wǎng)絡(luò)層又提供路由選擇、流量控制和網(wǎng)絡(luò)互連的功能,使主機(jī)機(jī)A發(fā)送的分組能按照合理的路由到達(dá)主機(jī)發(fā)送的分組能按照合理的路由到達(dá)主機(jī)B。運(yùn)輸層提供端到端的可靠通信服務(wù)。所謂端到端即從進(jìn)程到運(yùn)輸層提供端到端的可靠通信服務(wù)。所謂端到端即從進(jìn)程到進(jìn)程。進(jìn)程。運(yùn)輸層向高層用戶屏蔽了下面通信子網(wǎng)的細(xì)節(jié),使高層用戶運(yùn)輸層向高層用戶屏蔽了下面通信子網(wǎng)的細(xì)節(jié),使高層用戶看不見實(shí)現(xiàn)通信功能的物理鏈路是什么,看不見數(shù)據(jù)鏈路采看不見實(shí)現(xiàn)通信功能的物理鏈路是什么,看不見數(shù)據(jù)鏈路采用的是什么規(guī)程,也看不見下面到底有幾

10、個(gè)子網(wǎng)以及這些子用的是什么規(guī)程,也看不見下面到底有幾個(gè)子網(wǎng)以及這些子網(wǎng)是怎樣互連起來的,運(yùn)輸層使高層用戶看見的就是好像在網(wǎng)是怎樣互連起來的,運(yùn)輸層使高層用戶看見的就是好像在兩個(gè)運(yùn)輸層實(shí)體之間有一條兩個(gè)運(yùn)輸層實(shí)體之間有一條端到端端到端的可靠的通信通路。的可靠的通信通路。8.2 TCP/IP體系中的運(yùn)輸層體系中的運(yùn)輸層一、一、TCP/IP體系運(yùn)輸層中的兩個(gè)協(xié)議體系運(yùn)輸層中的兩個(gè)協(xié)議1、用戶數(shù)據(jù)報(bào)協(xié)議、用戶數(shù)據(jù)報(bào)協(xié)議UDP(User Datagram Protocol)UDP提供無連接、不可靠的服務(wù)。在傳送數(shù)據(jù)之前,不需要先建立提供無連接、不可靠的服務(wù)。在傳送數(shù)據(jù)之前,不需要先建立連接。遠(yuǎn)地主機(jī)的運(yùn)

11、輸層在收到連接。遠(yuǎn)地主機(jī)的運(yùn)輸層在收到UDP數(shù)據(jù)報(bào)后,不需要給出任何數(shù)據(jù)報(bào)后,不需要給出任何應(yīng)答。在某些情況下,這是一種最有效的工作方式。應(yīng)答。在某些情況下,這是一種最有效的工作方式。TCPIP體體系中的應(yīng)用服務(wù),如系中的應(yīng)用服務(wù),如TFTP和和NFS就使用就使用UDP這種運(yùn)輸方式。這種運(yùn)輸方式。2、傳輸控制協(xié)議、傳輸控制協(xié)議TCP(Transmission Control Protocol)提供面向連接的服務(wù)。不提供廣播或組播服務(wù)。由于提供面向連接的服務(wù)。不提供廣播或組播服務(wù)。由于TCP要提供要提供可靠的運(yùn)輸服務(wù),因此可靠的運(yùn)輸服務(wù),因此TCP就不可避免地增加了許多的開銷,如就不可避免地增加

12、了許多的開銷,如應(yīng)答、流量控制、定時(shí)器以及連接管理等。這不僅使協(xié)議數(shù)據(jù)單應(yīng)答、流量控制、定時(shí)器以及連接管理等。這不僅使協(xié)議數(shù)據(jù)單元的首部增大很多,還要占用許多的處理機(jī)資源。元的首部增大很多,還要占用許多的處理機(jī)資源。8.2 TCP/IP體系中的運(yùn)輸層體系中的運(yùn)輸層這兩個(gè)協(xié)議都使用這兩個(gè)協(xié)議都使用IP協(xié)議。也就是說,在發(fā)送數(shù)據(jù)時(shí),這協(xié)議。也就是說,在發(fā)送數(shù)據(jù)時(shí),這兩個(gè)協(xié)議的協(xié)議數(shù)據(jù)單元兩個(gè)協(xié)議的協(xié)議數(shù)據(jù)單元PDU,都作為下面,都作為下面IP數(shù)據(jù)報(bào)的數(shù)據(jù)報(bào)的數(shù)據(jù)。在接收數(shù)據(jù)時(shí),數(shù)據(jù)。在接收數(shù)據(jù)時(shí),IP數(shù)據(jù)報(bào)將首部去掉后,根據(jù)上數(shù)據(jù)報(bào)將首部去掉后,根據(jù)上層使用的是什么運(yùn)輸協(xié)議,把數(shù)據(jù)部分交給上面的層

13、使用的是什么運(yùn)輸協(xié)議,把數(shù)據(jù)部分交給上面的UDP或或TCP。8.2 TCP/IP體系中的運(yùn)輸層體系中的運(yùn)輸層二、端口二、端口UDP和和TCP都使用了端口(都使用了端口(port)進(jìn)行尋址。端口是一個(gè))進(jìn)行尋址。端口是一個(gè)很重要的概念,因?yàn)樵谕ㄐ艜r(shí),只有找到了端口,才能很重要的概念,因?yàn)樵谕ㄐ艜r(shí),只有找到了端口,才能最后找到我們所要找的目的進(jìn)程。最后找到我們所要找的目的進(jìn)程。1、概念、概念:即運(yùn)輸層服務(wù)訪問點(diǎn):即運(yùn)輸層服務(wù)訪問點(diǎn)TSAP,是,是UDP和和TCP用來用來同上層的應(yīng)用進(jìn)程進(jìn)行通信的接口,應(yīng)用層的各種進(jìn)程同上層的應(yīng)用進(jìn)程進(jìn)行通信的接口,應(yīng)用層的各種進(jìn)程是通過相應(yīng)的商品與運(yùn)輸實(shí)體進(jìn)行交互

14、的。是通過相應(yīng)的商品與運(yùn)輸實(shí)體進(jìn)行交互的。2。功能。功能:讓應(yīng)用層的各種應(yīng)用進(jìn)程都能將其數(shù)據(jù)通過端:讓應(yīng)用層的各種應(yīng)用進(jìn)程都能將其數(shù)據(jù)通過端口向下交付給運(yùn)輸層,讓運(yùn)輸層知道應(yīng)當(dāng)將其報(bào)文段中口向下交付給運(yùn)輸層,讓運(yùn)輸層知道應(yīng)當(dāng)將其報(bào)文段中的數(shù)據(jù)向上通過端口交付給應(yīng)用層的進(jìn)程。因此,端口的數(shù)據(jù)向上通過端口交付給應(yīng)用層的進(jìn)程。因此,端口是用來標(biāo)志應(yīng)用層的進(jìn)程的。如下圖所示:是用來標(biāo)志應(yīng)用層的進(jìn)程的。如下圖所示:8.2 TCP/IP體系中的運(yùn)輸層體系中的運(yùn)輸層TCP報(bào)文段報(bào)文段端口端口發(fā)送方發(fā)送方應(yīng)用進(jìn)程應(yīng)用進(jìn)程TCP復(fù)用復(fù)用TCP復(fù)用復(fù)用IP復(fù)用復(fù)用UDP用戶數(shù)據(jù)報(bào)用戶數(shù)據(jù)報(bào)IP數(shù)據(jù)報(bào)數(shù)據(jù)報(bào)TCP報(bào)

15、文段報(bào)文段接收方接收方應(yīng)用進(jìn)程應(yīng)用進(jìn)程TCP分用分用TCP分用分用IP分用分用UDP用戶數(shù)據(jù)報(bào)用戶數(shù)據(jù)報(bào)端口端口IP數(shù)據(jù)報(bào)數(shù)據(jù)報(bào)應(yīng)應(yīng)用用層層運(yùn)運(yùn)輸輸層層網(wǎng)網(wǎng)絡(luò)絡(luò)層層由于使用了復(fù)用和分用技術(shù),在運(yùn)輸層與網(wǎng)絡(luò)層的交互中已看由于使用了復(fù)用和分用技術(shù),在運(yùn)輸層與網(wǎng)絡(luò)層的交互中已看不見各種應(yīng)用進(jìn)程,而只有不見各種應(yīng)用進(jìn)程,而只有TCP報(bào)文段或報(bào)文段或UDP用戶數(shù)據(jù)報(bào)。用戶數(shù)據(jù)報(bào)。8.2 TCP/IP體系中的運(yùn)輸層體系中的運(yùn)輸層3。端口的表示。端口的表示:用一個(gè):用一個(gè)16位的端口號(hào)表示。但端口號(hào)只具位的端口號(hào)表示。但端口號(hào)只具有本地意義,它只標(biāo)志本計(jì)算機(jī)中應(yīng)用層中的各進(jìn)程。有本地意義,它只標(biāo)志本計(jì)算機(jī)中

16、應(yīng)用層中的各進(jìn)程。Internet中不同計(jì)算機(jī)的相同端口號(hào)是沒有聯(lián)系的。中不同計(jì)算機(jī)的相同端口號(hào)是沒有聯(lián)系的。4、端口的分類:、端口的分類:m熟知端口熟知端口:TCP/IP體系確定并公布,所有用戶進(jìn)程都熟體系確定并公布,所有用戶進(jìn)程都熟知的端口。數(shù)值為知的端口。數(shù)值為0-1023。當(dāng)一種新的應(yīng)用程序出現(xiàn)時(shí),。當(dāng)一種新的應(yīng)用程序出現(xiàn)時(shí),必須為它指派一個(gè)熟知端口,否則其它的應(yīng)用進(jìn)程就無法必須為它指派一個(gè)熟知端口,否則其它的應(yīng)用進(jìn)程就無法和它進(jìn)行交互。在應(yīng)用層中的各種不同的服務(wù)器進(jìn)程不斷和它進(jìn)行交互。在應(yīng)用層中的各種不同的服務(wù)器進(jìn)程不斷地檢測分配給它們的熟知端口,以便發(fā)現(xiàn)是否有某個(gè)客戶地檢測分配給它

17、們的熟知端口,以便發(fā)現(xiàn)是否有某個(gè)客戶進(jìn)程要和它通信。常見的熟知端口如下:進(jìn)程要和它通信。常見的熟知端口如下:m一般端口一般端口:用來隨時(shí)分配給請求通信的客戶進(jìn)程。:用來隨時(shí)分配給請求通信的客戶進(jìn)程。應(yīng)用程序應(yīng)用程序FTPTELNETSMTPDNSTFTPHTTPSNMPSNMP(trap)熟知端口熟知端口2123255369801611628.2 TCP/IP體系中的運(yùn)輸層體系中的運(yùn)輸層5、TCP使用使用“連接連接”(而不是(而不是“端口端口”)作為)作為最基本的抽象。一個(gè)連接由它的兩個(gè)端點(diǎn)來標(biāo)最基本的抽象。一個(gè)連接由它的兩個(gè)端點(diǎn)來標(biāo)識(shí)。這樣的端點(diǎn)就叫做插口(識(shí)。這樣的端點(diǎn)就叫做插口(sock

18、et),或套),或套按字。插口的概念并不復(fù)雜,但非常重要。插按字。插口的概念并不復(fù)雜,但非常重要。插口包括口包括IP地址(地址(32bit)和端口號(hào)碼()和端口號(hào)碼(16 bit),共),共48 bit。在整個(gè)。在整個(gè)Internet中,在運(yùn)中,在運(yùn)輸層通信的一對(duì)插口必須是唯一的。輸層通信的一對(duì)插口必須是唯一的。如一條連接的一對(duì)插口可以為:如一條連接的一對(duì)插口可以為:(3,500)和)和(5,25)其中,)其中,25表示表示SMTP。8.3用戶數(shù)據(jù)報(bào)協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議UDP一、概述:一、概述:用戶數(shù)據(jù)報(bào)協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議UDP只在只在IP的數(shù)據(jù)報(bào)服務(wù)之上

19、增加了很少一點(diǎn)的的數(shù)據(jù)報(bào)服務(wù)之上增加了很少一點(diǎn)的功能,這就是端口的功能和差錯(cuò)檢測的功能功能,這就是端口的功能和差錯(cuò)檢測的功能。雖然雖然UDP用戶數(shù)據(jù)用戶數(shù)據(jù)報(bào)只能提供不可靠的交付,但報(bào)只能提供不可靠的交付,但UDP在某些方面有其特殊的優(yōu)點(diǎn),在某些方面有其特殊的優(yōu)點(diǎn),如:如:1、發(fā)送數(shù)據(jù)之前不需要建立連接(發(fā)送結(jié)束無連接需釋放),減少、發(fā)送數(shù)據(jù)之前不需要建立連接(發(fā)送結(jié)束無連接需釋放),減少了開銷和發(fā)送數(shù)據(jù)之前的時(shí)延。了開銷和發(fā)送數(shù)據(jù)之前的時(shí)延。2、UDP不使用擁塞控制,也不保證可靠交付,因此主機(jī)不需要維持不使用擁塞控制,也不保證可靠交付,因此主機(jī)不需要維持具有許多參數(shù)的、復(fù)雜的連接狀態(tài)表。具有

20、許多參數(shù)的、復(fù)雜的連接狀態(tài)表。3、UDP用戶數(shù)據(jù)報(bào)只有用戶數(shù)據(jù)報(bào)只有8個(gè)字節(jié)的首部開銷,比個(gè)字節(jié)的首部開銷,比TCP的的20個(gè)字節(jié)的個(gè)字節(jié)的首部要短。首部要短。4、由于、由于UDP沒有擁塞控制,因此網(wǎng)絡(luò)出現(xiàn)的擁塞不會(huì)使源主機(jī)的發(fā)沒有擁塞控制,因此網(wǎng)絡(luò)出現(xiàn)的擁塞不會(huì)使源主機(jī)的發(fā)送速率降低。這對(duì)某些實(shí)時(shí)應(yīng)用是很重要的。很多實(shí)時(shí)應(yīng)用(如送速率降低。這對(duì)某些實(shí)時(shí)應(yīng)用是很重要的。很多實(shí)時(shí)應(yīng)用(如IP電話、實(shí)時(shí)視頻會(huì)議等)要求源主機(jī)以恒定的速率發(fā)送數(shù)據(jù)。電話、實(shí)時(shí)視頻會(huì)議等)要求源主機(jī)以恒定的速率發(fā)送數(shù)據(jù)。8.3用戶數(shù)據(jù)報(bào)協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議UDP二、二、UDP與應(yīng)用層之間端口的實(shí)現(xiàn)機(jī)制:報(bào)文隊(duì)列與應(yīng)用層之

21、間端口的實(shí)現(xiàn)機(jī)制:報(bào)文隊(duì)列以應(yīng)用層使用簡單文件傳送協(xié)議以應(yīng)用層使用簡單文件傳送協(xié)議TFTP為例討論。為例討論。1、TFTP使用使用UDP傳送報(bào)文,但傳送報(bào)文,但TFTP服務(wù)器和服務(wù)器和TFTP客客戶所使用的端口是不一樣的。戶所使用的端口是不一樣的。2、TFTP服務(wù)器進(jìn)程是一直在運(yùn)行著,等待服務(wù)器進(jìn)程是一直在運(yùn)行著,等待TFTP客戶進(jìn)客戶進(jìn)程的服務(wù)請求。因此,服務(wù)器的端口必須使用熟知端程的服務(wù)請求。因此,服務(wù)器的端口必須使用熟知端口號(hào)??谔?hào)。TFTP服務(wù)器的熟知端口號(hào)是服務(wù)器的熟知端口號(hào)是69。在。在TFTP客戶客戶端,當(dāng)進(jìn)程啟動(dòng)時(shí),就向操作系統(tǒng)請求一個(gè)臨時(shí)的一端,當(dāng)進(jìn)程啟動(dòng)時(shí),就向操作系統(tǒng)請求

22、一個(gè)臨時(shí)的一般端口號(hào),如,般端口號(hào),如,5100。然后操作系統(tǒng)就為該進(jìn)程創(chuàng)建。然后操作系統(tǒng)就為該進(jìn)程創(chuàng)建兩個(gè)隊(duì)列:入隊(duì)列和出隊(duì)列。只要進(jìn)程在執(zhí)行,這兩兩個(gè)隊(duì)列:入隊(duì)列和出隊(duì)列。只要進(jìn)程在執(zhí)行,這兩個(gè)隊(duì)列就一直存在。當(dāng)進(jìn)程終止時(shí),入隊(duì)列和出隊(duì)列個(gè)隊(duì)列就一直存在。當(dāng)進(jìn)程終止時(shí),入隊(duì)列和出隊(duì)列及臨時(shí)端口號(hào)就一起被撤消。如下圖所示:及臨時(shí)端口號(hào)就一起被撤消。如下圖所示:8.3用戶數(shù)據(jù)報(bào)協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議UDPUDP端口端口5100TFTP客戶客戶出隊(duì)列出隊(duì)列入隊(duì)列入隊(duì)列應(yīng)應(yīng)用用層層運(yùn)運(yùn)輸輸層層UDP端口端口69TFTP服務(wù)器服務(wù)器出隊(duì)列出隊(duì)列入隊(duì)列入隊(duì)列UDP用戶數(shù)據(jù)報(bào)用戶數(shù)據(jù)報(bào)3、客戶進(jìn)程將報(bào)文發(fā)送

23、到出隊(duì)列中。、客戶進(jìn)程將報(bào)文發(fā)送到出隊(duì)列中。UDP按隊(duì)列中報(bào)文的先按隊(duì)列中報(bào)文的先后順序進(jìn)行發(fā)送。在傳送到后順序進(jìn)行發(fā)送。在傳送到IP層之前要給報(bào)文加上層之前要給報(bào)文加上UDP首部,首部,其中的目的端口號(hào)是其中的目的端口號(hào)是TFTP的熟知端口的熟知端口69。然后。然后UDP數(shù)據(jù)報(bào)就數(shù)據(jù)報(bào)就傳送給傳送給IP層。層。8.3用戶數(shù)據(jù)報(bào)協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議UDP4、客戶端收到來自、客戶端收到來自IP層的報(bào)文時(shí),層的報(bào)文時(shí),UDP先檢查報(bào)文中的目的先檢查報(bào)文中的目的端口號(hào)是否正確。若不正確,端口號(hào)是否正確。若不正確,UDP就丟棄該報(bào)文,并請就丟棄該報(bào)文,并請ICMP發(fā)送發(fā)送“端口不可達(dá)端口不可達(dá)”差錯(cuò)報(bào)文

24、給服務(wù)器端。若正確,差錯(cuò)報(bào)文給服務(wù)器端。若正確,UDP就就將收到的報(bào)文放在入隊(duì)列的隊(duì)尾,客戶進(jìn)程按報(bào)文到達(dá)的先將收到的報(bào)文放在入隊(duì)列的隊(duì)尾,客戶進(jìn)程按報(bào)文到達(dá)的先后順序?qū)⑵湟灰蝗∽?。后順序?qū)⑵湟灰蝗∽摺?、服務(wù)器在收到報(bào)文時(shí),、服務(wù)器在收到報(bào)文時(shí),UDP先檢查到達(dá)的用戶數(shù)據(jù)報(bào)的目先檢查到達(dá)的用戶數(shù)據(jù)報(bào)的目的端口號(hào)是否為的端口號(hào)是否為69。若是,將此用戶數(shù)據(jù)報(bào)入進(jìn)入隊(duì)列隊(duì)尾。若是,將此用戶數(shù)據(jù)報(bào)入進(jìn)入隊(duì)列隊(duì)尾。若不是,丟棄此報(bào)文。若不是,丟棄此報(bào)文。6、服務(wù)要回答客戶的請求時(shí),將要發(fā)送的報(bào)文傳送到出隊(duì)列,、服務(wù)要回答客戶的請求時(shí),將要發(fā)送的報(bào)文傳送到出隊(duì)列,并使用請求服務(wù)的報(bào)文的源端口號(hào)作為回答

25、報(bào)文的目的端口并使用請求服務(wù)的報(bào)文的源端口號(hào)作為回答報(bào)文的目的端口號(hào)。在添加上號(hào)。在添加上UDP首部后,將其傳送給首部后,將其傳送給IP層。層。8.3用戶數(shù)據(jù)報(bào)協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議UDP三、三、UDP用戶數(shù)據(jù)報(bào)的首部格式用戶數(shù)據(jù)報(bào)的首部格式用戶數(shù)據(jù)報(bào)用戶數(shù)據(jù)報(bào)UDP有兩個(gè)字段:數(shù)據(jù)字段和首部字段。首部字段很簡單,有兩個(gè)字段:數(shù)據(jù)字段和首部字段。首部字段很簡單,只有只有8個(gè)字節(jié),由個(gè)字節(jié),由4個(gè)字段組成,每個(gè)字段都是兩個(gè)字節(jié)。各字段意個(gè)字段組成,每個(gè)字段都是兩個(gè)字節(jié)。各字段意義如下:義如下:源端口字段,源端口號(hào)碼源端口字段,源端口號(hào)碼目的端口字段,目的端口號(hào)碼目的端口字段,目的端口號(hào)碼長度字段,長

26、度字段,UDP數(shù)據(jù)報(bào)的長度數(shù)據(jù)報(bào)的長度檢驗(yàn)和字段,防止檢驗(yàn)和字段,防止UDP數(shù)據(jù)報(bào)在傳輸中出錯(cuò)數(shù)據(jù)報(bào)在傳輸中出錯(cuò)源IP地址 目的IP地址UDP長度170偽首部源端口檢驗(yàn)和長度目的端口首部數(shù)據(jù)首部數(shù)據(jù)字節(jié)44112字節(jié)122222UDP用戶數(shù)據(jù)報(bào)IP數(shù)據(jù)報(bào)UDP數(shù)據(jù)報(bào)首部中檢驗(yàn)和的計(jì)數(shù)據(jù)報(bào)首部中檢驗(yàn)和的計(jì)算方法有些特殊。在計(jì)算檢驗(yàn)算方法有些特殊。在計(jì)算檢驗(yàn)和時(shí)在和時(shí)在UDP數(shù)據(jù)報(bào)之前要增加數(shù)據(jù)報(bào)之前要增加12個(gè)字節(jié)的偽首部。個(gè)字節(jié)的偽首部?!皞问撞總问撞俊笔且?yàn)檫@種偽首部并不是是因?yàn)檫@種偽首部并不是UDP數(shù)據(jù)報(bào)真正的首部。只是在計(jì)數(shù)據(jù)報(bào)真正的首部。只是在計(jì)算檢驗(yàn)和時(shí),臨時(shí)和算檢驗(yàn)和時(shí),臨時(shí)和UD

27、P數(shù)據(jù)數(shù)據(jù)報(bào)連接在一起,得到一個(gè)新的報(bào)連接在一起,得到一個(gè)新的UDP數(shù)據(jù)報(bào)。檢驗(yàn)和就是按照數(shù)據(jù)報(bào)。檢驗(yàn)和就是按照這個(gè)新的這個(gè)新的UDP數(shù)據(jù)報(bào)來計(jì)算的。數(shù)據(jù)報(bào)來計(jì)算的。偽首部既不向下傳送,也不向偽首部既不向下傳送,也不向上遞交。上遞交。偽首部的第三個(gè)字段是全零,偽首部的第三個(gè)字段是全零,第四個(gè)字段是第四個(gè)字段是IP首部中的協(xié)議首部中的協(xié)議字段的值。對(duì)于字段的值。對(duì)于UDP,此協(xié)議,此協(xié)議字段值為字段值為17。第五個(gè)字段是。第五個(gè)字段是UDP數(shù)據(jù)報(bào)的長度。數(shù)據(jù)報(bào)的長度。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP一、概述一、概述1、TCP是是TCPIP體系中的運(yùn)輸層協(xié)議,是面向連接的,體系中的運(yùn)輸層協(xié)議,

28、是面向連接的,因而可提供可靠的、按序傳送數(shù)據(jù)的服務(wù)。因而可提供可靠的、按序傳送數(shù)據(jù)的服務(wù)。TCP提供的連提供的連接是雙向的,即全雙工的。接是雙向的,即全雙工的。2、TCP發(fā)送報(bào)文段的大致過程發(fā)送報(bào)文段的大致過程(1)TCP的通信是全雙工的,因此的通信是全雙工的,因此TCP連接的任何一方(不連接的任何一方(不論是客戶端還是服務(wù)器)都能夠發(fā)送和接收數(shù)據(jù)。論是客戶端還是服務(wù)器)都能夠發(fā)送和接收數(shù)據(jù)。(2)發(fā)送端的應(yīng)用進(jìn)程按照自己產(chǎn)生數(shù)據(jù)的規(guī)律,不斷地)發(fā)送端的應(yīng)用進(jìn)程按照自己產(chǎn)生數(shù)據(jù)的規(guī)律,不斷地將數(shù)據(jù)塊陸續(xù)寫入到將數(shù)據(jù)塊陸續(xù)寫入到TCP的發(fā)送緩存中。的發(fā)送緩存中。(3)TCP從發(fā)送緩存中取出一定數(shù)

29、量的數(shù)據(jù),將其組成從發(fā)送緩存中取出一定數(shù)量的數(shù)據(jù),將其組成TCP報(bào)文段逐個(gè)傳送給報(bào)文段逐個(gè)傳送給IP層,然后發(fā)送出去。如下圖:層,然后發(fā)送出去。如下圖:8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP發(fā)送端發(fā)送端TCP發(fā)送緩存發(fā)送緩存向發(fā)送緩存向發(fā)送緩存寫入數(shù)據(jù)塊寫入數(shù)據(jù)塊端口端口應(yīng)用進(jìn)程應(yīng)用進(jìn)程接收端接收端TCP接收緩存接收緩存從接收緩存從接收緩存讀取數(shù)據(jù)塊讀取數(shù)據(jù)塊端口端口應(yīng)用進(jìn)程應(yīng)用進(jìn)程報(bào)文段報(bào)文段報(bào)文段報(bào)文段報(bào)文段報(bào)文段(4)接收端從)接收端從IP層收到層收到TCP報(bào)文段后,先將其暫存在接收緩報(bào)文段后,先將其暫存在接收緩存中,然后讓接收端應(yīng)用進(jìn)程從接收緩存中將數(shù)據(jù)塊逐個(gè)讀取。存中,然后讓接收端應(yīng)用

30、進(jìn)程從接收緩存中將數(shù)據(jù)塊逐個(gè)讀取。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP二、二、TCP報(bào)文段的首部報(bào)文段的首部一個(gè)一個(gè)TCPTCP報(bào)文共分報(bào)文共分為首部為首部和和數(shù)據(jù)數(shù)據(jù)兩個(gè)部分(見下頁圖)。兩個(gè)部分(見下頁圖)。TCPTCP的全部功能都體現(xiàn)在它首部中各字段的作用。的全部功能都體現(xiàn)在它首部中各字段的作用。首部的首部的前前2020個(gè)字節(jié)個(gè)字節(jié)是固定的,后面有是固定的,后面有4N4N字節(jié)字節(jié)是根據(jù)需要而是根據(jù)需要而增加的選項(xiàng)(增加的選項(xiàng)(N N為整數(shù))。因此為整數(shù))。因此TCPTCP首部的首部的最小長度最小長度是是2020字節(jié)。字節(jié)。首部固定部分各字段意義如下:首部固定部分各字段意義如下:源端口和目

31、的端口源端口和目的端口各占各占2 2個(gè)字節(jié)。端口是運(yùn)輸層與應(yīng)用層個(gè)字節(jié)。端口是運(yùn)輸層與應(yīng)用層的服務(wù)接口。運(yùn)輸層的復(fù)用和分用功能都要通過端口都能實(shí)現(xiàn)。的服務(wù)接口。運(yùn)輸層的復(fù)用和分用功能都要通過端口都能實(shí)現(xiàn)。序號(hào)序號(hào)占占4 4字節(jié)。字節(jié)。TCPTCP是面向數(shù)據(jù)流的。是面向數(shù)據(jù)流的。TCPTCP傳送的報(bào)文可看傳送的報(bào)文可看成為連續(xù)的數(shù)據(jù)流。成為連續(xù)的數(shù)據(jù)流。TCPTCP把在一個(gè)把在一個(gè)TCPTCP連接中傳送的數(shù)據(jù)流中連接中傳送的數(shù)據(jù)流中8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP數(shù)據(jù)偏移數(shù)據(jù)偏移保留保留URGACKPSHRSTSYNFIN窗口窗口緊緊 急急 指指 針針檢驗(yàn)和檢驗(yàn)和源源 端端 口口目目 的的

32、端端 口口確認(rèn)號(hào)確認(rèn)號(hào)序號(hào)序號(hào)選選 項(xiàng)項(xiàng) (長(長 度度 可可 變變 )填填 充充TCP首部首部20字節(jié)的字節(jié)的固定首部固定首部比特比特08162431TCP首部首部TCP數(shù)據(jù)部分?jǐn)?shù)據(jù)部分IP首部首部IP數(shù)據(jù)部分?jǐn)?shù)據(jù)部分TCP報(bào)文段報(bào)文段發(fā)送在前發(fā)送在前8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP的每一個(gè)字節(jié)都編上一個(gè)序號(hào)。整個(gè)數(shù)據(jù)的起始序號(hào)在連接建的每一個(gè)字節(jié)都編上一個(gè)序號(hào)。整個(gè)數(shù)據(jù)的起始序號(hào)在連接建立時(shí)設(shè)置。首部中的序號(hào)字段的值則指的是本報(bào)文段所發(fā)送的立時(shí)設(shè)置。首部中的序號(hào)字段的值則指的是本報(bào)文段所發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。如,一報(bào)文段的序號(hào)字段的值是數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。如,一報(bào)文段的序號(hào)

33、字段的值是301,而攜帶的數(shù)據(jù)共有,而攜帶的數(shù)據(jù)共有100字節(jié)。這就表明:本報(bào)文段的數(shù)字節(jié)。這就表明:本報(bào)文段的數(shù)據(jù)的最后一個(gè)字節(jié)的序號(hào)應(yīng)當(dāng)是據(jù)的最后一個(gè)字節(jié)的序號(hào)應(yīng)當(dāng)是400。下一個(gè)報(bào)文段的數(shù)據(jù)序。下一個(gè)報(bào)文段的數(shù)據(jù)序號(hào)應(yīng)當(dāng)從號(hào)應(yīng)當(dāng)從401開始,因而下一個(gè)報(bào)文段的序號(hào)字段值應(yīng)為開始,因而下一個(gè)報(bào)文段的序號(hào)字段值應(yīng)為401。確認(rèn)號(hào)確認(rèn)號(hào)占占4字節(jié),是期望收到對(duì)方的下一個(gè)報(bào)文段的數(shù)據(jù)的字節(jié),是期望收到對(duì)方的下一個(gè)報(bào)文段的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào),也就是期望收到的下一個(gè)報(bào)文段首部的序第一個(gè)字節(jié)的序號(hào),也就是期望收到的下一個(gè)報(bào)文段首部的序號(hào)字段的值。如,號(hào)字段的值。如,A正確收到了正確收到了B發(fā)送過來

34、的一個(gè)報(bào)文段,其序發(fā)送過來的一個(gè)報(bào)文段,其序號(hào)字段的值是號(hào)字段的值是501,而數(shù)據(jù)長度是,而數(shù)據(jù)長度是200字節(jié),表明字節(jié),表明A已正確收到已正確收到了了B發(fā)送的序號(hào)在發(fā)送的序號(hào)在501到到700之間的數(shù)據(jù)。因此,之間的數(shù)據(jù)。因此,A期望收到期望收到B的下一個(gè)報(bào)文段的首部中的序號(hào)字段應(yīng)為的下一個(gè)報(bào)文段的首部中的序號(hào)字段應(yīng)為701,于是,于是A在發(fā)送在發(fā)送給給B的響應(yīng)報(bào)文段中將首部中的確認(rèn)號(hào)置為的響應(yīng)報(bào)文段中將首部中的確認(rèn)號(hào)置為701。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP數(shù)據(jù)偏移數(shù)據(jù)偏移占占4位,指出位,指出TCP報(bào)文段的數(shù)據(jù)起始片距離報(bào)文段的數(shù)據(jù)起始片距離TCP報(bào)報(bào)文段的起始處有多遠(yuǎn)。實(shí)際上就

35、是文段的起始處有多遠(yuǎn)。實(shí)際上就是TCP報(bào)文段首部的長度。注報(bào)文段首部的長度。注意:其單位不是字節(jié)而是意:其單位不是字節(jié)而是32位字(即以位字(即以4字節(jié)長的字為計(jì)算單字節(jié)長的字為計(jì)算單位)。位)。4位能夠表示的最大十進(jìn)制數(shù)字是位能夠表示的最大十進(jìn)制數(shù)字是15,故數(shù)據(jù)偏移的最,故數(shù)據(jù)偏移的最大值是大值是60字節(jié),這也是字節(jié),這也是TCP首部的最大長度。首部的最大長度。保留保留占占6位,保留為今后使用,目前置為位,保留為今后使用,目前置為0。下面下面6個(gè)比特個(gè)比特是說明本報(bào)文段性質(zhì)的是說明本報(bào)文段性質(zhì)的控制控制比特,意義如下:比特,意義如下:緊急比特緊急比特URG(URGent)當(dāng))當(dāng)URG=1時(shí)

36、,表明緊急指針字時(shí),表明緊急指針字段有效。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相段有效。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級(jí)的數(shù)據(jù)),而不要按原來的排隊(duì)順序來傳送。如,當(dāng)于高優(yōu)先級(jí)的數(shù)據(jù)),而不要按原來的排隊(duì)順序來傳送。如,已經(jīng)發(fā)送了很長的一個(gè)程序要在遠(yuǎn)地的主機(jī)上運(yùn)行。但后來發(fā)已經(jīng)發(fā)送了很長的一個(gè)程序要在遠(yuǎn)地的主機(jī)上運(yùn)行。但后來發(fā)現(xiàn)了一些問題,需要取消該程序的運(yùn)行。因此用戶從鍵盤發(fā)出現(xiàn)了一些問題,需要取消該程序的運(yùn)行。因此用戶從鍵盤發(fā)出8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP中斷命令(中斷命令(Control+C)。如果不使用緊急數(shù)據(jù),則這兩個(gè)字符。如果不使用緊急數(shù)據(jù)

37、,則這兩個(gè)字符將存儲(chǔ)在接收將存儲(chǔ)在接收TCP緩存的末尾。只有所有的數(shù)據(jù)被處理完畢后緩存的末尾。只有所有的數(shù)據(jù)被處理完畢后才被交付到應(yīng)用進(jìn)程。這樣就浪費(fèi)了許多時(shí)間。才被交付到應(yīng)用進(jìn)程。這樣就浪費(fèi)了許多時(shí)間。當(dāng)使用緊急比特并將當(dāng)使用緊急比特并將URG置置1時(shí),發(fā)送應(yīng)用進(jìn)程就告訴發(fā)送時(shí),發(fā)送應(yīng)用進(jìn)程就告訴發(fā)送TCP這兩個(gè)字符是緊急數(shù)據(jù)。于是發(fā)送這兩個(gè)字符是緊急數(shù)據(jù)。于是發(fā)送TCP就將這兩個(gè)字符插就將這兩個(gè)字符插入到報(bào)文段的數(shù)據(jù)的最前面,其余的數(shù)據(jù)都是普通數(shù)據(jù)。這時(shí)入到報(bào)文段的數(shù)據(jù)的最前面,其余的數(shù)據(jù)都是普通數(shù)據(jù)。這時(shí)要與首部中第要與首部中第5個(gè)個(gè)32位字中的一半位字中的一半“緊急指針緊急指針”字段配

38、合使用。字段配合使用。緊急指針指出在本報(bào)文段中的緊急數(shù)據(jù)的最后一個(gè)字節(jié)的序號(hào),緊急指針指出在本報(bào)文段中的緊急數(shù)據(jù)的最后一個(gè)字節(jié)的序號(hào),使接收方知道緊急數(shù)據(jù)共有多少個(gè)字節(jié)。緊急數(shù)據(jù)到達(dá)接收端使接收方知道緊急數(shù)據(jù)共有多少個(gè)字節(jié)。緊急數(shù)據(jù)到達(dá)接收端后,當(dāng)所有緊急數(shù)據(jù)都被處理完時(shí),后,當(dāng)所有緊急數(shù)據(jù)都被處理完時(shí),TCP就告訴應(yīng)用程序恢復(fù)就告訴應(yīng)用程序恢復(fù)到正常操作。即使窗口為到正常操作。即使窗口為0時(shí)也可發(fā)送緊急數(shù)據(jù)。時(shí)也可發(fā)送緊急數(shù)據(jù)。確認(rèn)比特確認(rèn)比特ACK只有當(dāng)只有當(dāng)ACK=1時(shí)確認(rèn)號(hào)字段才有效。當(dāng)時(shí)確認(rèn)號(hào)字段才有效。當(dāng)ACK=0時(shí),確認(rèn)號(hào)無效。時(shí),確認(rèn)號(hào)無效。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP

39、推送比特推送比特PSH(PuSH)當(dāng)兩個(gè)應(yīng)用進(jìn)程進(jìn)行交互式的通信當(dāng)兩個(gè)應(yīng)用進(jìn)程進(jìn)行交互式的通信時(shí),有時(shí)在一端的應(yīng)用進(jìn)程希望在鍵入一個(gè)命令后立即就能夠時(shí),有時(shí)在一端的應(yīng)用進(jìn)程希望在鍵入一個(gè)命令后立即就能夠收到對(duì)方的響應(yīng)。此時(shí),收到對(duì)方的響應(yīng)。此時(shí),TCP就可以使用推送操作。這時(shí),發(fā)就可以使用推送操作。這時(shí),發(fā)送端送端TCP將推送比特將推送比特PSH置置1,并立即創(chuàng)建一個(gè)報(bào)文段發(fā)送出去。,并立即創(chuàng)建一個(gè)報(bào)文段發(fā)送出去。接收接收TCP收到推送比特置收到推送比特置1的報(bào)文段,就盡快地交付給接收應(yīng)用的報(bào)文段,就盡快地交付給接收應(yīng)用進(jìn)程,而不再等到整個(gè)緩存都填滿了后再向上交付。進(jìn)程,而不再等到整個(gè)緩存都填

40、滿了后再向上交付。復(fù)位比特復(fù)位比特RST(ReSeT) 當(dāng)當(dāng)RST=1時(shí),表明時(shí),表明TCP連接中出現(xiàn)連接中出現(xiàn)嚴(yán)重差錯(cuò)(如主機(jī)崩潰或其它原因),必須釋放連接,然后再嚴(yán)重差錯(cuò)(如主機(jī)崩潰或其它原因),必須釋放連接,然后再重新建立運(yùn)輸連接。復(fù)位比特還用來拒絕一個(gè)非法的報(bào)文段或重新建立運(yùn)輸連接。復(fù)位比特還用來拒絕一個(gè)非法的報(bào)文段或拒絕打開一個(gè)連接。拒絕打開一個(gè)連接。同步比特同步比特SYN在連接建立時(shí)用來同步序號(hào)。當(dāng)在連接建立時(shí)用來同步序號(hào)。當(dāng)SYN=1而而ACK=0時(shí),表明這是一個(gè)連接請求報(bào)文段。對(duì)方若同意建立時(shí),表明這是一個(gè)連接請求報(bào)文段。對(duì)方若同意建立8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP連接,

41、則應(yīng)在響應(yīng)的報(bào)文段中使連接,則應(yīng)在響應(yīng)的報(bào)文段中使SYN=1和和ACK=1。因此,同步。因此,同步比特比特SYN置為置為1,就表示這是一個(gè)連接請求或連接接受報(bào)文。,就表示這是一個(gè)連接請求或連接接受報(bào)文。終止比特終止比特FIN用來釋放一個(gè)連接。當(dāng)用來釋放一個(gè)連接。當(dāng)FIN=1時(shí),表明此報(bào)文時(shí),表明此報(bào)文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接。段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接。窗口窗口占占2字節(jié)。用來控制對(duì)方發(fā)送的數(shù)據(jù)量,單位為字節(jié)。字節(jié)。用來控制對(duì)方發(fā)送的數(shù)據(jù)量,單位為字節(jié)。通過這個(gè)報(bào)文段告訴對(duì)方,通過這個(gè)報(bào)文段告訴對(duì)方,“在沒有收到我的確認(rèn)時(shí),你能發(fā)在沒有收到我的確認(rèn)時(shí),

42、你能發(fā)送的數(shù)據(jù)的字節(jié)數(shù)至多是此窗口的大小。送的數(shù)據(jù)的字節(jié)數(shù)至多是此窗口的大小?!睓z驗(yàn)和檢驗(yàn)和占占2字節(jié)。檢驗(yàn)的范圍包括字節(jié)。檢驗(yàn)的范圍包括首部首部和和數(shù)據(jù)數(shù)據(jù)這兩部分。其這兩部分。其方法和方法和UDP一樣。一樣。選項(xiàng)選項(xiàng)長度可變。長度可變。TCP只規(guī)定了一種選項(xiàng),即只規(guī)定了一種選項(xiàng),即最大報(bào)文段長度最大報(bào)文段長度MSS。MSS告訴對(duì)方告訴對(duì)方TCP:”我的緩存所能接收的報(bào)文段的我的緩存所能接收的報(bào)文段的數(shù)數(shù)據(jù)字段據(jù)字段的最大長度是的最大長度是MSS個(gè)字節(jié)。個(gè)字節(jié)?!?.4傳輸控制協(xié)議傳輸控制協(xié)議TCP三、編號(hào)與確認(rèn)三、編號(hào)與確認(rèn) 1、TCP的編號(hào)的編號(hào):TCP不是按傳送的報(bào)文段來編號(hào)。不是按傳

43、送的報(bào)文段來編號(hào)。TCP將將所要傳送的整個(gè)報(bào)文(這可能包括許多個(gè)報(bào)文段)看成所要傳送的整個(gè)報(bào)文(這可能包括許多個(gè)報(bào)文段)看成是一個(gè)個(gè)字節(jié)組成的數(shù)據(jù)流,然后對(duì)每一個(gè)字節(jié)編一個(gè)是一個(gè)個(gè)字節(jié)組成的數(shù)據(jù)流,然后對(duì)每一個(gè)字節(jié)編一個(gè)序號(hào)。在連接建立時(shí),雙方要商定初始序號(hào)。序號(hào)。在連接建立時(shí),雙方要商定初始序號(hào)。TCP就將就將每一次所傳送的報(bào)文段中的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào),放每一次所傳送的報(bào)文段中的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào),放在在TCP首部的序號(hào)字段中。首部的序號(hào)字段中。2、TCP的確認(rèn)的確認(rèn):TCP的確認(rèn)是對(duì)接收到的數(shù)據(jù)的最高序號(hào)的確認(rèn)是對(duì)接收到的數(shù)據(jù)的最高序號(hào)(即收到的數(shù)據(jù)流中的最后一個(gè)序號(hào))表示確認(rèn)。但返(

44、即收到的數(shù)據(jù)流中的最后一個(gè)序號(hào))表示確認(rèn)。但返回的確認(rèn)序號(hào)是已收到的數(shù)據(jù)的最高序號(hào)加回的確認(rèn)序號(hào)是已收到的數(shù)據(jù)的最高序號(hào)加1。也就是說,。也就是說,確認(rèn)序號(hào)表示期望下次收到的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)。確認(rèn)序號(hào)表示期望下次收到的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCPq由于由于TCP能提供全雙工通信,因此通信中的每能提供全雙工通信,因此通信中的每一方都不必專門發(fā)送確認(rèn)報(bào)文段,而可以在傳一方都不必專門發(fā)送確認(rèn)報(bào)文段,而可以在傳送數(shù)據(jù)時(shí)順便把確認(rèn)信息捎帶傳送。送數(shù)據(jù)時(shí)順便把確認(rèn)信息捎帶傳送。q若發(fā)送方在規(guī)定的設(shè)置時(shí)間內(nèi)沒有收到確認(rèn),若發(fā)送方在規(guī)定的設(shè)置時(shí)間內(nèi)沒有收到確認(rèn),就要將未被確認(rèn)

45、的報(bào)文段重新發(fā)送。接收方若就要將未被確認(rèn)的報(bào)文段重新發(fā)送。接收方若收到有差錯(cuò)的報(bào)文段,則丟棄此報(bào)文段而并不收到有差錯(cuò)的報(bào)文段,則丟棄此報(bào)文段而并不發(fā)送否認(rèn)后息。著收到重復(fù)的報(bào)文段,也要將發(fā)送否認(rèn)后息。著收到重復(fù)的報(bào)文段,也要將其丟棄,但要發(fā)回(或捎帶發(fā)回)確認(rèn)信息。其丟棄,但要發(fā)回(或捎帶發(fā)回)確認(rèn)信息。這與數(shù)據(jù)鏈路層的情況相似。這與數(shù)據(jù)鏈路層的情況相似。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP四、四、TCP的流量控制的流量控制1、控制方式:采用可變發(fā)送窗口的方式進(jìn)行流量控制。、控制方式:采用可變發(fā)送窗口的方式進(jìn)行流量控制。2、窗口大小的單位:字節(jié)、窗口大小的單位:字節(jié)3、控制方法:發(fā)送窗口在連接

46、建立時(shí)由雙方商定。但在通、控制方法:發(fā)送窗口在連接建立時(shí)由雙方商定。但在通信的過程中,接收端可根據(jù)自己的資源情況,隨時(shí)動(dòng)態(tài)地信的過程中,接收端可根據(jù)自己的資源情況,隨時(shí)動(dòng)態(tài)地調(diào)整自己的接收窗口(可增大或減?。?,然后告訴對(duì)方,調(diào)整自己的接收窗口(可增大或減?。?,然后告訴對(duì)方,使對(duì)方的發(fā)送窗口和自己的接收窗口一致。這種由接收端使對(duì)方的發(fā)送窗口和自己的接收窗口一致。這種由接收端控制發(fā)送端的做法,在計(jì)算機(jī)網(wǎng)絡(luò)中經(jīng)常使用。控制發(fā)送端的做法,在計(jì)算機(jī)網(wǎng)絡(luò)中經(jīng)常使用。4、流量控制例:、流量控制例:設(shè)主機(jī)設(shè)主機(jī)A向主機(jī)向主機(jī)B發(fā)送數(shù)據(jù),雙方商定的窗口值是發(fā)送數(shù)據(jù),雙方商定的窗口值是400,也就,也就是發(fā)送端不

47、需要收到接收端的確認(rèn)就可以發(fā)送出是發(fā)送端不需要收到接收端的確認(rèn)就可以發(fā)送出400字節(jié)字節(jié)的數(shù)據(jù)。再設(shè)每一個(gè)報(bào)文段發(fā)送的數(shù)據(jù)。再設(shè)每一個(gè)報(bào)文段發(fā)送100字節(jié)的數(shù)據(jù)(用從字節(jié)的數(shù)據(jù)(用從A到到B的箭頭表示),并且序號(hào)的初始值為的箭頭表示),并且序號(hào)的初始值為1(見圖中第一個(gè)(見圖中第一個(gè)箭頭上的箭頭上的SEQ1),則可能通信過程如下:),則可能通信過程如下:8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP主機(jī)主機(jī)A主機(jī)主機(jī)BA還能發(fā)送還能發(fā)送300字節(jié)字節(jié)A還能發(fā)送還能發(fā)送200字節(jié)字節(jié)允許允許A再發(fā)送再發(fā)送300字節(jié)字節(jié)A還能發(fā)送還能發(fā)送200字節(jié)字節(jié)A還能發(fā)送還能發(fā)送100字節(jié)字節(jié)A超時(shí)超時(shí)重發(fā),但不能再

48、發(fā)送重發(fā),但不能再發(fā)送允許允許A再發(fā)送再發(fā)送200字節(jié)字節(jié)A還能發(fā)送還能發(fā)送100字節(jié)字節(jié)不不允許允許A再發(fā)送再發(fā)送SEQ=1SEQ=101SEQ=201ACK=201,Win=300SEQ=301SEQ=401SEQ=201ACK=1,win200SEQ=501ACK=601,win=0丟失丟失B進(jìn)行了三次進(jìn)行了三次流控,第一次流控,第一次將窗口減為將窗口減為300字節(jié),第字節(jié),第2次減為次減為200字節(jié),后減到字節(jié),后減到0,這種暫停,這種暫停狀態(tài)將持續(xù)到狀態(tài)將持續(xù)到B重新發(fā)送一重新發(fā)送一個(gè)新的窗口值個(gè)新的窗口值為止。為止。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP五、五、TCP的運(yùn)輸連接管理的

49、運(yùn)輸連接管理1、連接建立過程中要解決的問題:、連接建立過程中要解決的問題:TCP是面向連接的協(xié)議。是面向連接的協(xié)議。運(yùn)輸連接是用來傳送運(yùn)輸連接是用來傳送TCP報(bào)文的。報(bào)文的。TCP的運(yùn)輸連接的建的運(yùn)輸連接的建立釋放是每一次面向連接的通信中必不可少的過程。因立釋放是每一次面向連接的通信中必不可少的過程。因此,運(yùn)輸連接就有三個(gè)階段,即:連接建立、數(shù)據(jù)傳送此,運(yùn)輸連接就有三個(gè)階段,即:連接建立、數(shù)據(jù)傳送和連接釋放。運(yùn)輸連接的管理就是使運(yùn)輸連接的建立和和連接釋放。運(yùn)輸連接的管理就是使運(yùn)輸連接的建立和釋放都能正常地進(jìn)行。釋放都能正常地進(jìn)行。在連接建立過程中要解決以下三個(gè)問題:在連接建立過程中要解決以下三

50、個(gè)問題:(1)要使每一方都能夠確知對(duì)方的存在;)要使每一方都能夠確知對(duì)方的存在;(2)要允許雙方協(xié)商一些參數(shù)(如最大報(bào)文段長度,最大)要允許雙方協(xié)商一些參數(shù)(如最大報(bào)文段長度,最大窗口大小,服務(wù)質(zhì)量等)。窗口大小,服務(wù)質(zhì)量等)。(3)能夠?qū)\(yùn)輸實(shí)體資源(如緩存大小、連接表中的項(xiàng)目)能夠?qū)\(yùn)輸實(shí)體資源(如緩存大小、連接表中的項(xiàng)目等)進(jìn)行分配。等)進(jìn)行分配。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP2、TCP連接的建立過程連接的建立過程TCP的連接和建立都是采用客戶服務(wù)器方式。主動(dòng)的連接和建立都是采用客戶服務(wù)器方式。主動(dòng)發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶,而被動(dòng)等待連接發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶,而被動(dòng)

51、等待連接建立的應(yīng)用進(jìn)程叫做服務(wù)器。建立的應(yīng)用進(jìn)程叫做服務(wù)器。(1)設(shè)主機(jī))設(shè)主機(jī)B中運(yùn)行一個(gè)服務(wù)器進(jìn)程,它先發(fā)出一個(gè)中運(yùn)行一個(gè)服務(wù)器進(jìn)程,它先發(fā)出一個(gè)被動(dòng)打開命令,告訴它的被動(dòng)打開命令,告訴它的TCP要準(zhǔn)備接受客戶進(jìn)程的要準(zhǔn)備接受客戶進(jìn)程的連接。然后服務(wù)器進(jìn)行就處于連接。然后服務(wù)器進(jìn)行就處于“聽聽”的狀態(tài),不斷檢的狀態(tài),不斷檢測是否有客戶進(jìn)程要發(fā)起連接請求。如有,即作出響測是否有客戶進(jìn)程要發(fā)起連接請求。如有,即作出響應(yīng)。應(yīng)。(2)設(shè)客戶進(jìn)程運(yùn)行在主機(jī))設(shè)客戶進(jìn)程運(yùn)行在主機(jī)A中,它先向其中,它先向其TCP發(fā)出發(fā)出主動(dòng)打開命令,表明要向某個(gè)主動(dòng)打開命令,表明要向某個(gè)IP地址的某個(gè)端口建立地址的某個(gè)

52、端口建立運(yùn)輸連接。運(yùn)輸連接。(3)主機(jī))主機(jī)A的的TCP向主機(jī)向主機(jī)B的的TCP發(fā)出連接請求報(bào)文段,發(fā)出連接請求報(bào)文段,其首部中的同步比特其首部中的同步比特SYN應(yīng)置為應(yīng)置為1,同時(shí)選擇一個(gè),同時(shí)選擇一個(gè)序號(hào)序號(hào)x,表明在后面?zhèn)魉蛿?shù)據(jù)時(shí)的第一個(gè)數(shù)據(jù)字節(jié)的序,表明在后面?zhèn)魉蛿?shù)據(jù)時(shí)的第一個(gè)數(shù)據(jù)字節(jié)的序號(hào)是號(hào)是x。如下圖所示:。如下圖所示:8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP(3)主機(jī))主機(jī)B的的TCP收到連接請求報(bào)文段后,如同意,則發(fā)回確認(rèn)。在確認(rèn)報(bào)收到連接請求報(bào)文段后,如同意,則發(fā)回確認(rèn)。在確認(rèn)報(bào)文段中應(yīng)將文段中應(yīng)將SYN置為置為1,確認(rèn)號(hào)應(yīng)為,確認(rèn)號(hào)應(yīng)為x+1,同時(shí)也為自己選擇一個(gè)序號(hào),同時(shí)也

53、為自己選擇一個(gè)序號(hào)y。(4)主機(jī))主機(jī)A的的TCP收到此報(bào)文段后,還要向收到此報(bào)文段后,還要向B給出確認(rèn),其確認(rèn)號(hào)為給出確認(rèn),其確認(rèn)號(hào)為y+1。(5)運(yùn)行客戶進(jìn)程的主機(jī))運(yùn)行客戶進(jìn)程的主機(jī)A的的TCP通知上層應(yīng)用進(jìn)程,連接已經(jīng)建立。通知上層應(yīng)用進(jìn)程,連接已經(jīng)建立。(6)當(dāng)運(yùn)行服務(wù)器進(jìn)程的主機(jī))當(dāng)運(yùn)行服務(wù)器進(jìn)程的主機(jī)B的的TCP收到主機(jī)收到主機(jī)A的確認(rèn)后,也通知其上層的確認(rèn)后,也通知其上層應(yīng)用進(jìn)程,連接已經(jīng)建立。應(yīng)用進(jìn)程,連接已經(jīng)建立。主機(jī)A主機(jī)B主動(dòng)打開被動(dòng)打開主動(dòng)打開被動(dòng)打開SYN,SEQ=XSYN,SEQ=Y,ACK=X+1ACK=Y+1確認(rèn)確認(rèn)確認(rèn)確認(rèn)8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP連接建立采用的這種過程叫做三次握手。連接建立采用的這種過程叫做三次握手。問題:問題:為什么要發(fā)送這第三個(gè)報(bào)文段呢?為什么要發(fā)送這第三個(gè)報(bào)文段呢?考慮這樣一種情況。主機(jī)考慮這樣一種情況。主機(jī)A發(fā)出連接請求,但因連接請求報(bào)文丟失發(fā)出連接請求,但因連接請求報(bào)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論