版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、8.1運輸協(xié)議概述運輸協(xié)議概述一、一、運輸層在網絡體系結運輸層在網絡體系結構中的地位構中的地位1、從面向通信和面向信息處理、從面向通信和面向信息處理來劃分,則運輸層屬于面向來劃分,則運輸層屬于面向通信的低層中的最高層。通信的低層中的最高層。 2、從網絡功能和用戶功能來劃、從網絡功能和用戶功能來劃分,則運輸層又屬于用戶功分,則運輸層又屬于用戶功能的高層中的最低層。能的高層中的最低層。 3、通信子網中無運輸層,它只、通信子網中無運輸層,它只存在于通信子網以外的主機存在于通信子網以外的主機中。中。應用層運輸層網絡層物理層數據鏈路層面向信息面向信息處理處理面向通信面向通信用戶功能用戶功能網絡功能網絡功
2、能8.1運輸協(xié)議概述運輸協(xié)議概述二、運輸層的功能二、運輸層的功能1、復用與分用:、復用與分用:兩個主機進行通信實際上是兩個主機中的兩個主機進行通信實際上是兩個主機中的應用進程應用進程互互相通信。相通信。IP協(xié)議雖然能把分組送到目的主機,但這個分組還停協(xié)議雖然能把分組送到目的主機,但這個分組還停留在主機的網絡層而沒有交付給主機中的應用進程。留在主機的網絡層而沒有交付給主機中的應用進程。因因IP地址是標志在因特網中的一個主機,而地址是標志在因特網中的一個主機,而不是標志不是標志主機中的應用進程主機中的應用進程。由于通信的兩個端點是源主機和目的主機中的應用進由于通信的兩個端點是源主機和目的主機中的應
3、用進程,因此應用進程之間的通信又稱為程,因此應用進程之間的通信又稱為端到端的通信端到端的通信。8.1運輸協(xié)議概述運輸協(xié)議概述在一個主機中經常有在一個主機中經常有多個應用進程多個應用進程同時分別和另一同時分別和另一個主機中的多個應用進程通信。個主機中的多個應用進程通信。如如,某用戶在使用,某用戶在使用瀏覽器查找某網站的信息時,其主機的應用層運行瀏覽器查找某網站的信息時,其主機的應用層運行瀏覽器客戶進程。如果在瀏覽網頁的同進,還要用瀏覽器客戶進程。如果在瀏覽網頁的同進,還要用電子郵件給網站發(fā)送反饋意見,則主機的應用層就電子郵件給網站發(fā)送反饋意見,則主機的應用層就還要運行電子郵件的客戶進程。還要運行
4、電子郵件的客戶進程。運輸層一個很重要的功能就是運輸層一個很重要的功能就是復用復用和和分用分用。應用層。應用層不同進程的報文通過不同的不同進程的報文通過不同的端口端口向下交到運輸層,向下交到運輸層,再往下就再往下就共用網絡層提供的服務共用網絡層提供的服務。當這些報文到達。當這些報文到達目的主機后,目的主機的運輸層就使用其目的主機后,目的主機的運輸層就使用其分用分用功能,功能,通過不同的通過不同的端口端口將報文分別交付到相應的進程。將報文分別交付到相應的進程。下圖示出了這個過程。下圖示出了這個過程。( )( )( )( )8.1運輸協(xié)議概述運輸協(xié)議概述AP1AP2LAN1AP3AP4WANLAN2
5、R1R2IP協(xié)議的作用范圍協(xié)議的作用范圍運輸層協(xié)議運輸層協(xié)議TCP和和UDP的作用范圍的作用范圍主機主機A主機主機B54321AP1AP2( )( )( )( )54321AP3AP4運輸層提供應用進程間的邏輯通信運輸層提供應用進程間的邏輯通信端口端口應用進程應用進程端口端口應用進程應用進程運輸層為相互通信的應用進程提供了邏輯通信運輸層為相互通信的應用進程提供了邏輯通信8.1運輸協(xié)議概述運輸協(xié)議概述運輸層為應用進程之間提供端到端的邏輯通信,但運輸層為應用進程之間提供端到端的邏輯通信,但網絡層是為主機之間提供邏輯通信,如下圖所示:網絡層是為主機之間提供邏輯通信,如下圖所示:因特網因特網IP協(xié)議的
6、作用范圍協(xié)議的作用范圍(提供主機之間的邏輯通信)(提供主機之間的邏輯通信)TCP和和UDP協(xié)議的作用范圍協(xié)議的作用范圍(提供進程之間的邏輯通信)(提供進程之間的邏輯通信)應用進程應用進程應用進程應用進程運輸層協(xié)議和網絡層協(xié)議的主要區(qū)別運輸層協(xié)議和網絡層協(xié)議的主要區(qū)別8.1運輸協(xié)議概述運輸協(xié)議概述2、運輸層對收到的報文進行、運輸層對收到的報文進行差錯檢測差錯檢測。在網絡。在網絡層,層,IP數據報首部中的檢驗和字段只檢驗首部數據報首部中的檢驗和字段只檢驗首部是否出現差錯而不檢查數據部分。是否出現差錯而不檢查數據部分。3、根據應用的不同,運輸層需要有兩種不同的、根據應用的不同,運輸層需要有兩種不同的
7、運輸協(xié)議,即運輸協(xié)議,即面向連接的面向連接的TCP和和無連接的無連接的UDP,而網絡層無法同時實現這兩種協(xié)議。而網絡層無法同時實現這兩種協(xié)議。三、運輸層與其上下層之間的關系三、運輸層與其上下層之間的關系8.1運輸協(xié)議概述運輸協(xié)議概述運輸實體運輸實體運輸協(xié)議應用層應用層網絡層網絡層(或網際層)(或網際層)層接口層接口運輸層運輸層層接口層接口網絡層服務網絡層服務訪問點訪問點NSAP運輸層服務運輸層服務訪問點訪問點TSAP主機主機A運輸服務用戶運輸服務用戶(應用層實體)(應用層實體)主機主機A運輸服務用戶運輸服務用戶(應用層實體)(應用層實體)運輸層中向應用層提供運輸服務的是運輸實體。使用運輸服務的
8、是運輸服務運輸層中向應用層提供運輸服務的是運輸實體。使用運輸服務的是運輸服務用戶(即各應用進程或應用層實體)。運輸層中兩個對等實體之間的通信遵用戶(即各應用進程或應用層實體)。運輸層中兩個對等實體之間的通信遵循運輸協(xié)議。運輸協(xié)議保證了運輸層能夠向應用層提供運輸服務。運輸服務循運輸協(xié)議。運輸協(xié)議保證了運輸層能夠向應用層提供運輸服務。運輸服務也使用了下面網絡層向上提供的網絡服務也使用了下面網絡層向上提供的網絡服務8.1運輸協(xié)議概述運輸協(xié)議概述再次小結:再次小結:物理層使鏈路上能透明地傳送比特流。物理層使鏈路上能透明地傳送比特流。數據鏈路層使得各條鏈路能傳送無差錯的幀(按序、無丟失、數據鏈路層使得各
9、條鏈路能傳送無差錯的幀(按序、無丟失、不重復)。不重復)。網絡層又提供路由選擇、流量控制和網絡互連的功能,使主網絡層又提供路由選擇、流量控制和網絡互連的功能,使主機機A發(fā)送的分組能按照合理的路由到達主機發(fā)送的分組能按照合理的路由到達主機B。運輸層提供端到端的可靠通信服務。所謂端到端即從進程到運輸層提供端到端的可靠通信服務。所謂端到端即從進程到進程。進程。運輸層向高層用戶屏蔽了下面通信子網的細節(jié),使高層用戶運輸層向高層用戶屏蔽了下面通信子網的細節(jié),使高層用戶看不見實現通信功能的物理鏈路是什么,看不見數據鏈路采看不見實現通信功能的物理鏈路是什么,看不見數據鏈路采用的是什么規(guī)程,也看不見下面到底有幾
10、個子網以及這些子用的是什么規(guī)程,也看不見下面到底有幾個子網以及這些子網是怎樣互連起來的,運輸層使高層用戶看見的就是好像在網是怎樣互連起來的,運輸層使高層用戶看見的就是好像在兩個運輸層實體之間有一條兩個運輸層實體之間有一條端到端端到端的可靠的通信通路。的可靠的通信通路。8.2 TCP/IP體系中的運輸層體系中的運輸層一、一、TCP/IP體系運輸層中的兩個協(xié)議體系運輸層中的兩個協(xié)議1、用戶數據報協(xié)議、用戶數據報協(xié)議UDP(User Datagram Protocol)UDP提供無連接、不可靠的服務。在傳送數據之前,不需要先建立提供無連接、不可靠的服務。在傳送數據之前,不需要先建立連接。遠地主機的運
11、輸層在收到連接。遠地主機的運輸層在收到UDP數據報后,不需要給出任何數據報后,不需要給出任何應答。在某些情況下,這是一種最有效的工作方式。應答。在某些情況下,這是一種最有效的工作方式。TCPIP體體系中的應用服務,如系中的應用服務,如TFTP和和NFS就使用就使用UDP這種運輸方式。這種運輸方式。2、傳輸控制協(xié)議、傳輸控制協(xié)議TCP(Transmission Control Protocol)提供面向連接的服務。不提供廣播或組播服務。由于提供面向連接的服務。不提供廣播或組播服務。由于TCP要提供要提供可靠的運輸服務,因此可靠的運輸服務,因此TCP就不可避免地增加了許多的開銷,如就不可避免地增加
12、了許多的開銷,如應答、流量控制、定時器以及連接管理等。這不僅使協(xié)議數據單應答、流量控制、定時器以及連接管理等。這不僅使協(xié)議數據單元的首部增大很多,還要占用許多的處理機資源。元的首部增大很多,還要占用許多的處理機資源。8.2 TCP/IP體系中的運輸層體系中的運輸層這兩個協(xié)議都使用這兩個協(xié)議都使用IP協(xié)議。也就是說,在發(fā)送數據時,這協(xié)議。也就是說,在發(fā)送數據時,這兩個協(xié)議的協(xié)議數據單元兩個協(xié)議的協(xié)議數據單元PDU,都作為下面,都作為下面IP數據報的數據報的數據。在接收數據時,數據。在接收數據時,IP數據報將首部去掉后,根據上數據報將首部去掉后,根據上層使用的是什么運輸協(xié)議,把數據部分交給上面的層
13、使用的是什么運輸協(xié)議,把數據部分交給上面的UDP或或TCP。8.2 TCP/IP體系中的運輸層體系中的運輸層二、端口二、端口UDP和和TCP都使用了端口(都使用了端口(port)進行尋址。端口是一個)進行尋址。端口是一個很重要的概念,因為在通信時,只有找到了端口,才能很重要的概念,因為在通信時,只有找到了端口,才能最后找到我們所要找的目的進程。最后找到我們所要找的目的進程。1、概念、概念:即運輸層服務訪問點:即運輸層服務訪問點TSAP,是,是UDP和和TCP用來用來同上層的應用進程進行通信的接口,應用層的各種進程同上層的應用進程進行通信的接口,應用層的各種進程是通過相應的商品與運輸實體進行交互
14、的。是通過相應的商品與運輸實體進行交互的。2。功能。功能:讓應用層的各種應用進程都能將其數據通過端:讓應用層的各種應用進程都能將其數據通過端口向下交付給運輸層,讓運輸層知道應當將其報文段中口向下交付給運輸層,讓運輸層知道應當將其報文段中的數據向上通過端口交付給應用層的進程。因此,端口的數據向上通過端口交付給應用層的進程。因此,端口是用來標志應用層的進程的。如下圖所示:是用來標志應用層的進程的。如下圖所示:8.2 TCP/IP體系中的運輸層體系中的運輸層TCP報文段報文段端口端口發(fā)送方發(fā)送方應用進程應用進程TCP復用復用TCP復用復用IP復用復用UDP用戶數據報用戶數據報IP數據報數據報TCP報
15、文段報文段接收方接收方應用進程應用進程TCP分用分用TCP分用分用IP分用分用UDP用戶數據報用戶數據報端口端口IP數據報數據報應應用用層層運運輸輸層層網網絡絡層層由于使用了復用和分用技術,在運輸層與網絡層的交互中已看由于使用了復用和分用技術,在運輸層與網絡層的交互中已看不見各種應用進程,而只有不見各種應用進程,而只有TCP報文段或報文段或UDP用戶數據報。用戶數據報。8.2 TCP/IP體系中的運輸層體系中的運輸層3。端口的表示。端口的表示:用一個:用一個16位的端口號表示。但端口號只具位的端口號表示。但端口號只具有本地意義,它只標志本計算機中應用層中的各進程。有本地意義,它只標志本計算機中
16、應用層中的各進程。Internet中不同計算機的相同端口號是沒有聯系的。中不同計算機的相同端口號是沒有聯系的。4、端口的分類:、端口的分類:m熟知端口熟知端口:TCP/IP體系確定并公布,所有用戶進程都熟體系確定并公布,所有用戶進程都熟知的端口。數值為知的端口。數值為0-1023。當一種新的應用程序出現時,。當一種新的應用程序出現時,必須為它指派一個熟知端口,否則其它的應用進程就無法必須為它指派一個熟知端口,否則其它的應用進程就無法和它進行交互。在應用層中的各種不同的服務器進程不斷和它進行交互。在應用層中的各種不同的服務器進程不斷地檢測分配給它們的熟知端口,以便發(fā)現是否有某個客戶地檢測分配給它
17、們的熟知端口,以便發(fā)現是否有某個客戶進程要和它通信。常見的熟知端口如下:進程要和它通信。常見的熟知端口如下:m一般端口一般端口:用來隨時分配給請求通信的客戶進程。:用來隨時分配給請求通信的客戶進程。應用程序應用程序FTPTELNETSMTPDNSTFTPHTTPSNMPSNMP(trap)熟知端口熟知端口2123255369801611628.2 TCP/IP體系中的運輸層體系中的運輸層5、TCP使用使用“連接連接”(而不是(而不是“端口端口”)作為)作為最基本的抽象。一個連接由它的兩個端點來標最基本的抽象。一個連接由它的兩個端點來標識。這樣的端點就叫做插口(識。這樣的端點就叫做插口(sock
18、et),或套),或套按字。插口的概念并不復雜,但非常重要。插按字。插口的概念并不復雜,但非常重要。插口包括口包括IP地址(地址(32bit)和端口號碼()和端口號碼(16 bit),共),共48 bit。在整個。在整個Internet中,在運中,在運輸層通信的一對插口必須是唯一的。輸層通信的一對插口必須是唯一的。如一條連接的一對插口可以為:如一條連接的一對插口可以為:(3,500)和)和(5,25)其中,)其中,25表示表示SMTP。8.3用戶數據報協(xié)議用戶數據報協(xié)議UDP一、概述:一、概述:用戶數據報協(xié)議用戶數據報協(xié)議UDP只在只在IP的數據報服務之上
19、增加了很少一點的的數據報服務之上增加了很少一點的功能,這就是端口的功能和差錯檢測的功能功能,這就是端口的功能和差錯檢測的功能。雖然雖然UDP用戶數據用戶數據報只能提供不可靠的交付,但報只能提供不可靠的交付,但UDP在某些方面有其特殊的優(yōu)點,在某些方面有其特殊的優(yōu)點,如:如:1、發(fā)送數據之前不需要建立連接(發(fā)送結束無連接需釋放),減少、發(fā)送數據之前不需要建立連接(發(fā)送結束無連接需釋放),減少了開銷和發(fā)送數據之前的時延。了開銷和發(fā)送數據之前的時延。2、UDP不使用擁塞控制,也不保證可靠交付,因此主機不需要維持不使用擁塞控制,也不保證可靠交付,因此主機不需要維持具有許多參數的、復雜的連接狀態(tài)表。具有
20、許多參數的、復雜的連接狀態(tài)表。3、UDP用戶數據報只有用戶數據報只有8個字節(jié)的首部開銷,比個字節(jié)的首部開銷,比TCP的的20個字節(jié)的個字節(jié)的首部要短。首部要短。4、由于、由于UDP沒有擁塞控制,因此網絡出現的擁塞不會使源主機的發(fā)沒有擁塞控制,因此網絡出現的擁塞不會使源主機的發(fā)送速率降低。這對某些實時應用是很重要的。很多實時應用(如送速率降低。這對某些實時應用是很重要的。很多實時應用(如IP電話、實時視頻會議等)要求源主機以恒定的速率發(fā)送數據。電話、實時視頻會議等)要求源主機以恒定的速率發(fā)送數據。8.3用戶數據報協(xié)議用戶數據報協(xié)議UDP二、二、UDP與應用層之間端口的實現機制:報文隊列與應用層之
21、間端口的實現機制:報文隊列以應用層使用簡單文件傳送協(xié)議以應用層使用簡單文件傳送協(xié)議TFTP為例討論。為例討論。1、TFTP使用使用UDP傳送報文,但傳送報文,但TFTP服務器和服務器和TFTP客客戶所使用的端口是不一樣的。戶所使用的端口是不一樣的。2、TFTP服務器進程是一直在運行著,等待服務器進程是一直在運行著,等待TFTP客戶進客戶進程的服務請求。因此,服務器的端口必須使用熟知端程的服務請求。因此,服務器的端口必須使用熟知端口號??谔?。TFTP服務器的熟知端口號是服務器的熟知端口號是69。在。在TFTP客戶客戶端,當進程啟動時,就向操作系統(tǒng)請求一個臨時的一端,當進程啟動時,就向操作系統(tǒng)請求
22、一個臨時的一般端口號,如,般端口號,如,5100。然后操作系統(tǒng)就為該進程創(chuàng)建。然后操作系統(tǒng)就為該進程創(chuàng)建兩個隊列:入隊列和出隊列。只要進程在執(zhí)行,這兩兩個隊列:入隊列和出隊列。只要進程在執(zhí)行,這兩個隊列就一直存在。當進程終止時,入隊列和出隊列個隊列就一直存在。當進程終止時,入隊列和出隊列及臨時端口號就一起被撤消。如下圖所示:及臨時端口號就一起被撤消。如下圖所示:8.3用戶數據報協(xié)議用戶數據報協(xié)議UDPUDP端口端口5100TFTP客戶客戶出隊列出隊列入隊列入隊列應應用用層層運運輸輸層層UDP端口端口69TFTP服務器服務器出隊列出隊列入隊列入隊列UDP用戶數據報用戶數據報3、客戶進程將報文發(fā)送
23、到出隊列中。、客戶進程將報文發(fā)送到出隊列中。UDP按隊列中報文的先按隊列中報文的先后順序進行發(fā)送。在傳送到后順序進行發(fā)送。在傳送到IP層之前要給報文加上層之前要給報文加上UDP首部,首部,其中的目的端口號是其中的目的端口號是TFTP的熟知端口的熟知端口69。然后。然后UDP數據報就數據報就傳送給傳送給IP層。層。8.3用戶數據報協(xié)議用戶數據報協(xié)議UDP4、客戶端收到來自、客戶端收到來自IP層的報文時,層的報文時,UDP先檢查報文中的目的先檢查報文中的目的端口號是否正確。若不正確,端口號是否正確。若不正確,UDP就丟棄該報文,并請就丟棄該報文,并請ICMP發(fā)送發(fā)送“端口不可達端口不可達”差錯報文
24、給服務器端。若正確,差錯報文給服務器端。若正確,UDP就就將收到的報文放在入隊列的隊尾,客戶進程按報文到達的先將收到的報文放在入隊列的隊尾,客戶進程按報文到達的先后順序將其一一取走。后順序將其一一取走。5、服務器在收到報文時,、服務器在收到報文時,UDP先檢查到達的用戶數據報的目先檢查到達的用戶數據報的目的端口號是否為的端口號是否為69。若是,將此用戶數據報入進入隊列隊尾。若是,將此用戶數據報入進入隊列隊尾。若不是,丟棄此報文。若不是,丟棄此報文。6、服務要回答客戶的請求時,將要發(fā)送的報文傳送到出隊列,、服務要回答客戶的請求時,將要發(fā)送的報文傳送到出隊列,并使用請求服務的報文的源端口號作為回答
25、報文的目的端口并使用請求服務的報文的源端口號作為回答報文的目的端口號。在添加上號。在添加上UDP首部后,將其傳送給首部后,將其傳送給IP層。層。8.3用戶數據報協(xié)議用戶數據報協(xié)議UDP三、三、UDP用戶數據報的首部格式用戶數據報的首部格式用戶數據報用戶數據報UDP有兩個字段:數據字段和首部字段。首部字段很簡單,有兩個字段:數據字段和首部字段。首部字段很簡單,只有只有8個字節(jié),由個字節(jié),由4個字段組成,每個字段都是兩個字節(jié)。各字段意個字段組成,每個字段都是兩個字節(jié)。各字段意義如下:義如下:源端口字段,源端口號碼源端口字段,源端口號碼目的端口字段,目的端口號碼目的端口字段,目的端口號碼長度字段,長
26、度字段,UDP數據報的長度數據報的長度檢驗和字段,防止檢驗和字段,防止UDP數據報在傳輸中出錯數據報在傳輸中出錯源IP地址 目的IP地址UDP長度170偽首部源端口檢驗和長度目的端口首部數據首部數據字節(jié)44112字節(jié)122222UDP用戶數據報IP數據報UDP數據報首部中檢驗和的計數據報首部中檢驗和的計算方法有些特殊。在計算檢驗算方法有些特殊。在計算檢驗和時在和時在UDP數據報之前要增加數據報之前要增加12個字節(jié)的偽首部。個字節(jié)的偽首部?!皞问撞總问撞俊笔且驗檫@種偽首部并不是是因為這種偽首部并不是UDP數據報真正的首部。只是在計數據報真正的首部。只是在計算檢驗和時,臨時和算檢驗和時,臨時和UD
27、P數據數據報連接在一起,得到一個新的報連接在一起,得到一個新的UDP數據報。檢驗和就是按照數據報。檢驗和就是按照這個新的這個新的UDP數據報來計算的。數據報來計算的。偽首部既不向下傳送,也不向偽首部既不向下傳送,也不向上遞交。上遞交。偽首部的第三個字段是全零,偽首部的第三個字段是全零,第四個字段是第四個字段是IP首部中的協(xié)議首部中的協(xié)議字段的值。對于字段的值。對于UDP,此協(xié)議,此協(xié)議字段值為字段值為17。第五個字段是。第五個字段是UDP數據報的長度。數據報的長度。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP一、概述一、概述1、TCP是是TCPIP體系中的運輸層協(xié)議,是面向連接的,體系中的運輸層協(xié)議,
28、是面向連接的,因而可提供可靠的、按序傳送數據的服務。因而可提供可靠的、按序傳送數據的服務。TCP提供的連提供的連接是雙向的,即全雙工的。接是雙向的,即全雙工的。2、TCP發(fā)送報文段的大致過程發(fā)送報文段的大致過程(1)TCP的通信是全雙工的,因此的通信是全雙工的,因此TCP連接的任何一方(不連接的任何一方(不論是客戶端還是服務器)都能夠發(fā)送和接收數據。論是客戶端還是服務器)都能夠發(fā)送和接收數據。(2)發(fā)送端的應用進程按照自己產生數據的規(guī)律,不斷地)發(fā)送端的應用進程按照自己產生數據的規(guī)律,不斷地將數據塊陸續(xù)寫入到將數據塊陸續(xù)寫入到TCP的發(fā)送緩存中。的發(fā)送緩存中。(3)TCP從發(fā)送緩存中取出一定數
29、量的數據,將其組成從發(fā)送緩存中取出一定數量的數據,將其組成TCP報文段逐個傳送給報文段逐個傳送給IP層,然后發(fā)送出去。如下圖:層,然后發(fā)送出去。如下圖:8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP發(fā)送端發(fā)送端TCP發(fā)送緩存發(fā)送緩存向發(fā)送緩存向發(fā)送緩存寫入數據塊寫入數據塊端口端口應用進程應用進程接收端接收端TCP接收緩存接收緩存從接收緩存從接收緩存讀取數據塊讀取數據塊端口端口應用進程應用進程報文段報文段報文段報文段報文段報文段(4)接收端從)接收端從IP層收到層收到TCP報文段后,先將其暫存在接收緩報文段后,先將其暫存在接收緩存中,然后讓接收端應用進程從接收緩存中將數據塊逐個讀取。存中,然后讓接收端應用
30、進程從接收緩存中將數據塊逐個讀取。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP二、二、TCP報文段的首部報文段的首部一個一個TCPTCP報文共分報文共分為首部為首部和和數據數據兩個部分(見下頁圖)。兩個部分(見下頁圖)。TCPTCP的全部功能都體現在它首部中各字段的作用。的全部功能都體現在它首部中各字段的作用。首部的首部的前前2020個字節(jié)個字節(jié)是固定的,后面有是固定的,后面有4N4N字節(jié)字節(jié)是根據需要而是根據需要而增加的選項(增加的選項(N N為整數)。因此為整數)。因此TCPTCP首部的首部的最小長度最小長度是是2020字節(jié)。字節(jié)。首部固定部分各字段意義如下:首部固定部分各字段意義如下:源端口和目
31、的端口源端口和目的端口各占各占2 2個字節(jié)。端口是運輸層與應用層個字節(jié)。端口是運輸層與應用層的服務接口。運輸層的復用和分用功能都要通過端口都能實現。的服務接口。運輸層的復用和分用功能都要通過端口都能實現。序號序號占占4 4字節(jié)。字節(jié)。TCPTCP是面向數據流的。是面向數據流的。TCPTCP傳送的報文可看傳送的報文可看成為連續(xù)的數據流。成為連續(xù)的數據流。TCPTCP把在一個把在一個TCPTCP連接中傳送的數據流中連接中傳送的數據流中8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP數據偏移數據偏移保留保留URGACKPSHRSTSYNFIN窗口窗口緊緊 急急 指指 針針檢驗和檢驗和源源 端端 口口目目 的的
32、端端 口口確認號確認號序號序號選選 項項 (長(長 度度 可可 變變 )填填 充充TCP首部首部20字節(jié)的字節(jié)的固定首部固定首部比特比特08162431TCP首部首部TCP數據部分數據部分IP首部首部IP數據部分數據部分TCP報文段報文段發(fā)送在前發(fā)送在前8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP的每一個字節(jié)都編上一個序號。整個數據的起始序號在連接建的每一個字節(jié)都編上一個序號。整個數據的起始序號在連接建立時設置。首部中的序號字段的值則指的是本報文段所發(fā)送的立時設置。首部中的序號字段的值則指的是本報文段所發(fā)送的數據的第一個字節(jié)的序號。如,一報文段的序號字段的值是數據的第一個字節(jié)的序號。如,一報文段的序號
33、字段的值是301,而攜帶的數據共有,而攜帶的數據共有100字節(jié)。這就表明:本報文段的數字節(jié)。這就表明:本報文段的數據的最后一個字節(jié)的序號應當是據的最后一個字節(jié)的序號應當是400。下一個報文段的數據序。下一個報文段的數據序號應當從號應當從401開始,因而下一個報文段的序號字段值應為開始,因而下一個報文段的序號字段值應為401。確認號確認號占占4字節(jié),是期望收到對方的下一個報文段的數據的字節(jié),是期望收到對方的下一個報文段的數據的第一個字節(jié)的序號,也就是期望收到的下一個報文段首部的序第一個字節(jié)的序號,也就是期望收到的下一個報文段首部的序號字段的值。如,號字段的值。如,A正確收到了正確收到了B發(fā)送過來
34、的一個報文段,其序發(fā)送過來的一個報文段,其序號字段的值是號字段的值是501,而數據長度是,而數據長度是200字節(jié),表明字節(jié),表明A已正確收到已正確收到了了B發(fā)送的序號在發(fā)送的序號在501到到700之間的數據。因此,之間的數據。因此,A期望收到期望收到B的下一個報文段的首部中的序號字段應為的下一個報文段的首部中的序號字段應為701,于是,于是A在發(fā)送在發(fā)送給給B的響應報文段中將首部中的確認號置為的響應報文段中將首部中的確認號置為701。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP數據偏移數據偏移占占4位,指出位,指出TCP報文段的數據起始片距離報文段的數據起始片距離TCP報報文段的起始處有多遠。實際上就
35、是文段的起始處有多遠。實際上就是TCP報文段首部的長度。注報文段首部的長度。注意:其單位不是字節(jié)而是意:其單位不是字節(jié)而是32位字(即以位字(即以4字節(jié)長的字為計算單字節(jié)長的字為計算單位)。位)。4位能夠表示的最大十進制數字是位能夠表示的最大十進制數字是15,故數據偏移的最,故數據偏移的最大值是大值是60字節(jié),這也是字節(jié),這也是TCP首部的最大長度。首部的最大長度。保留保留占占6位,保留為今后使用,目前置為位,保留為今后使用,目前置為0。下面下面6個比特個比特是說明本報文段性質的是說明本報文段性質的控制控制比特,意義如下:比特,意義如下:緊急比特緊急比特URG(URGent)當)當URG=1時
36、,表明緊急指針字時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數據,應盡快傳送(相段有效。它告訴系統(tǒng)此報文段中有緊急數據,應盡快傳送(相當于高優(yōu)先級的數據),而不要按原來的排隊順序來傳送。如,當于高優(yōu)先級的數據),而不要按原來的排隊順序來傳送。如,已經發(fā)送了很長的一個程序要在遠地的主機上運行。但后來發(fā)已經發(fā)送了很長的一個程序要在遠地的主機上運行。但后來發(fā)現了一些問題,需要取消該程序的運行。因此用戶從鍵盤發(fā)出現了一些問題,需要取消該程序的運行。因此用戶從鍵盤發(fā)出8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP中斷命令(中斷命令(Control+C)。如果不使用緊急數據,則這兩個字符。如果不使用緊急數據
37、,則這兩個字符將存儲在接收將存儲在接收TCP緩存的末尾。只有所有的數據被處理完畢后緩存的末尾。只有所有的數據被處理完畢后才被交付到應用進程。這樣就浪費了許多時間。才被交付到應用進程。這樣就浪費了許多時間。當使用緊急比特并將當使用緊急比特并將URG置置1時,發(fā)送應用進程就告訴發(fā)送時,發(fā)送應用進程就告訴發(fā)送TCP這兩個字符是緊急數據。于是發(fā)送這兩個字符是緊急數據。于是發(fā)送TCP就將這兩個字符插就將這兩個字符插入到報文段的數據的最前面,其余的數據都是普通數據。這時入到報文段的數據的最前面,其余的數據都是普通數據。這時要與首部中第要與首部中第5個個32位字中的一半位字中的一半“緊急指針緊急指針”字段配
38、合使用。字段配合使用。緊急指針指出在本報文段中的緊急數據的最后一個字節(jié)的序號,緊急指針指出在本報文段中的緊急數據的最后一個字節(jié)的序號,使接收方知道緊急數據共有多少個字節(jié)。緊急數據到達接收端使接收方知道緊急數據共有多少個字節(jié)。緊急數據到達接收端后,當所有緊急數據都被處理完時,后,當所有緊急數據都被處理完時,TCP就告訴應用程序恢復就告訴應用程序恢復到正常操作。即使窗口為到正常操作。即使窗口為0時也可發(fā)送緊急數據。時也可發(fā)送緊急數據。確認比特確認比特ACK只有當只有當ACK=1時確認號字段才有效。當時確認號字段才有效。當ACK=0時,確認號無效。時,確認號無效。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP
39、推送比特推送比特PSH(PuSH)當兩個應用進程進行交互式的通信當兩個應用進程進行交互式的通信時,有時在一端的應用進程希望在鍵入一個命令后立即就能夠時,有時在一端的應用進程希望在鍵入一個命令后立即就能夠收到對方的響應。此時,收到對方的響應。此時,TCP就可以使用推送操作。這時,發(fā)就可以使用推送操作。這時,發(fā)送端送端TCP將推送比特將推送比特PSH置置1,并立即創(chuàng)建一個報文段發(fā)送出去。,并立即創(chuàng)建一個報文段發(fā)送出去。接收接收TCP收到推送比特置收到推送比特置1的報文段,就盡快地交付給接收應用的報文段,就盡快地交付給接收應用進程,而不再等到整個緩存都填滿了后再向上交付。進程,而不再等到整個緩存都填
40、滿了后再向上交付。復位比特復位比特RST(ReSeT) 當當RST=1時,表明時,表明TCP連接中出現連接中出現嚴重差錯(如主機崩潰或其它原因),必須釋放連接,然后再嚴重差錯(如主機崩潰或其它原因),必須釋放連接,然后再重新建立運輸連接。復位比特還用來拒絕一個非法的報文段或重新建立運輸連接。復位比特還用來拒絕一個非法的報文段或拒絕打開一個連接。拒絕打開一個連接。同步比特同步比特SYN在連接建立時用來同步序號。當在連接建立時用來同步序號。當SYN=1而而ACK=0時,表明這是一個連接請求報文段。對方若同意建立時,表明這是一個連接請求報文段。對方若同意建立8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP連接,
41、則應在響應的報文段中使連接,則應在響應的報文段中使SYN=1和和ACK=1。因此,同步。因此,同步比特比特SYN置為置為1,就表示這是一個連接請求或連接接受報文。,就表示這是一個連接請求或連接接受報文。終止比特終止比特FIN用來釋放一個連接。當用來釋放一個連接。當FIN=1時,表明此報文時,表明此報文段的發(fā)送端的數據已發(fā)送完畢,并要求釋放運輸連接。段的發(fā)送端的數據已發(fā)送完畢,并要求釋放運輸連接。窗口窗口占占2字節(jié)。用來控制對方發(fā)送的數據量,單位為字節(jié)。字節(jié)。用來控制對方發(fā)送的數據量,單位為字節(jié)。通過這個報文段告訴對方,通過這個報文段告訴對方,“在沒有收到我的確認時,你能發(fā)在沒有收到我的確認時,
42、你能發(fā)送的數據的字節(jié)數至多是此窗口的大小。送的數據的字節(jié)數至多是此窗口的大小?!睓z驗和檢驗和占占2字節(jié)。檢驗的范圍包括字節(jié)。檢驗的范圍包括首部首部和和數據數據這兩部分。其這兩部分。其方法和方法和UDP一樣。一樣。選項選項長度可變。長度可變。TCP只規(guī)定了一種選項,即只規(guī)定了一種選項,即最大報文段長度最大報文段長度MSS。MSS告訴對方告訴對方TCP:”我的緩存所能接收的報文段的我的緩存所能接收的報文段的數數據字段據字段的最大長度是的最大長度是MSS個字節(jié)。個字節(jié)?!?.4傳輸控制協(xié)議傳輸控制協(xié)議TCP三、編號與確認三、編號與確認 1、TCP的編號的編號:TCP不是按傳送的報文段來編號。不是按傳
43、送的報文段來編號。TCP將將所要傳送的整個報文(這可能包括許多個報文段)看成所要傳送的整個報文(這可能包括許多個報文段)看成是一個個字節(jié)組成的數據流,然后對每一個字節(jié)編一個是一個個字節(jié)組成的數據流,然后對每一個字節(jié)編一個序號。在連接建立時,雙方要商定初始序號。序號。在連接建立時,雙方要商定初始序號。TCP就將就將每一次所傳送的報文段中的第一個數據字節(jié)的序號,放每一次所傳送的報文段中的第一個數據字節(jié)的序號,放在在TCP首部的序號字段中。首部的序號字段中。2、TCP的確認的確認:TCP的確認是對接收到的數據的最高序號的確認是對接收到的數據的最高序號(即收到的數據流中的最后一個序號)表示確認。但返(
44、即收到的數據流中的最后一個序號)表示確認。但返回的確認序號是已收到的數據的最高序號加回的確認序號是已收到的數據的最高序號加1。也就是說,。也就是說,確認序號表示期望下次收到的第一個數據字節(jié)的序號。確認序號表示期望下次收到的第一個數據字節(jié)的序號。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCPq由于由于TCP能提供全雙工通信,因此通信中的每能提供全雙工通信,因此通信中的每一方都不必專門發(fā)送確認報文段,而可以在傳一方都不必專門發(fā)送確認報文段,而可以在傳送數據時順便把確認信息捎帶傳送。送數據時順便把確認信息捎帶傳送。q若發(fā)送方在規(guī)定的設置時間內沒有收到確認,若發(fā)送方在規(guī)定的設置時間內沒有收到確認,就要將未被確認
45、的報文段重新發(fā)送。接收方若就要將未被確認的報文段重新發(fā)送。接收方若收到有差錯的報文段,則丟棄此報文段而并不收到有差錯的報文段,則丟棄此報文段而并不發(fā)送否認后息。著收到重復的報文段,也要將發(fā)送否認后息。著收到重復的報文段,也要將其丟棄,但要發(fā)回(或捎帶發(fā)回)確認信息。其丟棄,但要發(fā)回(或捎帶發(fā)回)確認信息。這與數據鏈路層的情況相似。這與數據鏈路層的情況相似。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP四、四、TCP的流量控制的流量控制1、控制方式:采用可變發(fā)送窗口的方式進行流量控制。、控制方式:采用可變發(fā)送窗口的方式進行流量控制。2、窗口大小的單位:字節(jié)、窗口大小的單位:字節(jié)3、控制方法:發(fā)送窗口在連接
46、建立時由雙方商定。但在通、控制方法:發(fā)送窗口在連接建立時由雙方商定。但在通信的過程中,接收端可根據自己的資源情況,隨時動態(tài)地信的過程中,接收端可根據自己的資源情況,隨時動態(tài)地調整自己的接收窗口(可增大或減?。?,然后告訴對方,調整自己的接收窗口(可增大或減?。缓蟾嬖V對方,使對方的發(fā)送窗口和自己的接收窗口一致。這種由接收端使對方的發(fā)送窗口和自己的接收窗口一致。這種由接收端控制發(fā)送端的做法,在計算機網絡中經常使用。控制發(fā)送端的做法,在計算機網絡中經常使用。4、流量控制例:、流量控制例:設主機設主機A向主機向主機B發(fā)送數據,雙方商定的窗口值是發(fā)送數據,雙方商定的窗口值是400,也就,也就是發(fā)送端不
47、需要收到接收端的確認就可以發(fā)送出是發(fā)送端不需要收到接收端的確認就可以發(fā)送出400字節(jié)字節(jié)的數據。再設每一個報文段發(fā)送的數據。再設每一個報文段發(fā)送100字節(jié)的數據(用從字節(jié)的數據(用從A到到B的箭頭表示),并且序號的初始值為的箭頭表示),并且序號的初始值為1(見圖中第一個(見圖中第一個箭頭上的箭頭上的SEQ1),則可能通信過程如下:),則可能通信過程如下:8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP主機主機A主機主機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超時超時重發(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進行了三次進行了三次流控,第一次流控,第一次將窗口減為將窗口減為300字節(jié),第字節(jié),第2次減為次減為200字節(jié),后減到字節(jié),后減到0,這種暫停,這種暫停狀態(tài)將持續(xù)到狀態(tài)將持續(xù)到B重新發(fā)送一重新發(fā)送一個新的窗口值個新的窗口值為止。為止。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP五、五、TCP的運輸連接管理的
49、運輸連接管理1、連接建立過程中要解決的問題:、連接建立過程中要解決的問題:TCP是面向連接的協(xié)議。是面向連接的協(xié)議。運輸連接是用來傳送運輸連接是用來傳送TCP報文的。報文的。TCP的運輸連接的建的運輸連接的建立釋放是每一次面向連接的通信中必不可少的過程。因立釋放是每一次面向連接的通信中必不可少的過程。因此,運輸連接就有三個階段,即:連接建立、數據傳送此,運輸連接就有三個階段,即:連接建立、數據傳送和連接釋放。運輸連接的管理就是使運輸連接的建立和和連接釋放。運輸連接的管理就是使運輸連接的建立和釋放都能正常地進行。釋放都能正常地進行。在連接建立過程中要解決以下三個問題:在連接建立過程中要解決以下三
50、個問題:(1)要使每一方都能夠確知對方的存在;)要使每一方都能夠確知對方的存在;(2)要允許雙方協(xié)商一些參數(如最大報文段長度,最大)要允許雙方協(xié)商一些參數(如最大報文段長度,最大窗口大小,服務質量等)。窗口大小,服務質量等)。(3)能夠對運輸實體資源(如緩存大小、連接表中的項目)能夠對運輸實體資源(如緩存大小、連接表中的項目等)進行分配。等)進行分配。8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP2、TCP連接的建立過程連接的建立過程TCP的連接和建立都是采用客戶服務器方式。主動的連接和建立都是采用客戶服務器方式。主動發(fā)起連接建立的應用進程叫做客戶,而被動等待連接發(fā)起連接建立的應用進程叫做客戶,而被動
51、等待連接建立的應用進程叫做服務器。建立的應用進程叫做服務器。(1)設主機)設主機B中運行一個服務器進程,它先發(fā)出一個中運行一個服務器進程,它先發(fā)出一個被動打開命令,告訴它的被動打開命令,告訴它的TCP要準備接受客戶進程的要準備接受客戶進程的連接。然后服務器進行就處于連接。然后服務器進行就處于“聽聽”的狀態(tài),不斷檢的狀態(tài),不斷檢測是否有客戶進程要發(fā)起連接請求。如有,即作出響測是否有客戶進程要發(fā)起連接請求。如有,即作出響應。應。(2)設客戶進程運行在主機)設客戶進程運行在主機A中,它先向其中,它先向其TCP發(fā)出發(fā)出主動打開命令,表明要向某個主動打開命令,表明要向某個IP地址的某個端口建立地址的某個
52、端口建立運輸連接。運輸連接。(3)主機)主機A的的TCP向主機向主機B的的TCP發(fā)出連接請求報文段,發(fā)出連接請求報文段,其首部中的同步比特其首部中的同步比特SYN應置為應置為1,同時選擇一個,同時選擇一個序號序號x,表明在后面?zhèn)魉蛿祿r的第一個數據字節(jié)的序,表明在后面?zhèn)魉蛿祿r的第一個數據字節(jié)的序號是號是x。如下圖所示:。如下圖所示:8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP(3)主機)主機B的的TCP收到連接請求報文段后,如同意,則發(fā)回確認。在確認報收到連接請求報文段后,如同意,則發(fā)回確認。在確認報文段中應將文段中應將SYN置為置為1,確認號應為,確認號應為x+1,同時也為自己選擇一個序號,同時也
53、為自己選擇一個序號y。(4)主機)主機A的的TCP收到此報文段后,還要向收到此報文段后,還要向B給出確認,其確認號為給出確認,其確認號為y+1。(5)運行客戶進程的主機)運行客戶進程的主機A的的TCP通知上層應用進程,連接已經建立。通知上層應用進程,連接已經建立。(6)當運行服務器進程的主機)當運行服務器進程的主機B的的TCP收到主機收到主機A的確認后,也通知其上層的確認后,也通知其上層應用進程,連接已經建立。應用進程,連接已經建立。主機A主機B主動打開被動打開主動打開被動打開SYN,SEQ=XSYN,SEQ=Y,ACK=X+1ACK=Y+1確認確認確認確認8.4傳輸控制協(xié)議傳輸控制協(xié)議TCP連接建立采用的這種過程叫做三次握手。連接建立采用的這種過程叫做三次握手。問題:問題:為什么要發(fā)送這第三個報文段呢?為什么要發(fā)送這第三個報文段呢?考慮這樣一種情況。主機考慮這樣一種情況。主機A發(fā)出連接請求,但因連接請求報文丟失發(fā)出連接請求,但因連接請求報
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Grid Coffee品牌介紹模版
- 二年級品德與社會下冊 向人民英雄敬禮教案1 未來版
- 2024年高中生物 第2章 動物和人體生命活動的調節(jié) 第2節(jié) 通過激素的調節(jié)(Ⅱ)教案 新人教版必修3
- 2023七年級生物下冊 第四單元 生物圈中的人 第11章 人體代謝廢物的排出11.1 人體產生的代謝廢物教案 (新版)北師大版
- 2024-2025學年高中化學 第1章 第3節(jié) 原子結構與元素性質 第1課時 電離能及其變化規(guī)律教案 魯科版選修3
- 2024-2025學年高中語文 3 柳子厚墓志銘教案 語文版選修《唐宋八大家散文鑒賞》
- 告別母校 課件
- 亡羊補牢圖片 課件
- 應急預案備案管理制度
- 第一單元(復習)-三年級語文上冊單元復習(統(tǒng)編版)
- 2024年全球供應鏈重組:挑戰(zhàn)與機遇
- 《小學數學萬能說課稿》
- 合伙開工廠合同范例
- 醫(yī)科大學2024年12月新藥研究與開發(fā)本科作業(yè)考核試題答卷
- 中醫(yī)培訓課件:《經穴推拿術》
- 二年級上冊《生態(tài) 生命 安全》教案
- 綿陽市高中2022級(2025屆)高三第一次診斷性考試(一診)地理試卷
- 《酒泉市旅游民宿高質量發(fā)展特征、面臨的問題及完善策略》
- 新概念二單詞表
- 全國職業(yè)院校技能大賽高職組(酒水服務賽項)備賽試題庫(含答案)
- GA 667-2020防爆炸透明材料
評論
0/150
提交評論