《《傳輸層傳輸層協(xié)議》PPT課件.ppt》由會員分享,可在線閱讀,更多相關《《傳輸層傳輸層協(xié)議》PPT課件.ppt(33頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,,計算機網(wǎng)絡,傳輸層基本功能與服務 UDP協(xié)議, TCP協(xié)議 習題,,第13課:主要內(nèi)容,重點與難點,重點: 了解運輸層協(xié)議類型,運輸層的分用和復用; 掌握UDP,TCP協(xié)議的特點;UDP報文的格式; 難點: 熟悉進程間的通信過程;UDP,TCP的端口服務類型;,,討論1 傳輸層的基本功能和服務,應用層,傳輸層,網(wǎng)絡層,數(shù)據(jù)鏈路層,物理層,,,,網(wǎng)絡功能,用戶功能,面向通信,,面向信息處理,從通信和信息處理的角度看:傳輸層向它的上一層應用提供通信服務,它屬于面向通信部分的最高層,也是用戶功能的最低層,,討論1 傳輸層的基本功能和服務,應用層,傳輸層,網(wǎng)絡層,數(shù)據(jù)鏈路層,物理層,,,,網(wǎng)絡功能
2、,用戶功能,面向通信,,面向信息處理,其主要任務是:在優(yōu)化網(wǎng)絡服務的基礎上,從源端機到目的端機提供可靠的、價格合理的數(shù)據(jù)傳輸,使高層服務用戶在相互通信時不必關心通信子網(wǎng)實現(xiàn)的細節(jié)。,其主要功能是:負責應用程序之間的通信,主要有連接端口管理、流量控制、錯誤處理、數(shù)據(jù)重發(fā)等工作,AP1,AP2,,,,,,,AP3,AP4,,,,,,IP傳輸,提供應用進程間邏輯通信,端口,應用進程,,,,,傳輸層為相互通信的應用進程提供了邏輯通信,,,,,主機 A,主機 B,路由器 1,路由器 2,,AP1,LAN2,WAN,,,AP2,,,,,AP3,,AP4,LAN1,,,,IP 協(xié)議的作用范圍,,,,運輸層協(xié)
3、議 TCP 和 UDP 的作用范圍,,,,由上圖可以看出數(shù)據(jù)在兩臺主機間傳送的整個過程:,,在物理層上可以透明地傳輸數(shù)據(jù)的比特流; 在數(shù)據(jù)鏈路層上使得各條鏈路能傳送無差錯的數(shù)據(jù)幀(數(shù)據(jù)幀按順序、無丟失、不重復); 在網(wǎng)絡層上提供了路由選擇和網(wǎng)絡互連的功能,使得主機A發(fā)送的數(shù)據(jù)分組(packet)能夠按照合理的路由到達主機B。但是在這一過程中,到達主機B的數(shù)據(jù)并不一定是最可靠的。 為了提高網(wǎng)絡服務的質(zhì)量,在傳輸層需要再次優(yōu)化網(wǎng)絡服務,并向高層用戶屏蔽通信子網(wǎng)的細節(jié),使高層用戶看見的就好像在兩個傳輸層實體之間有一條端到端的、可靠的、全雙工的通信通路一樣。,,,在整個通信的過程中,數(shù)據(jù)在傳輸層上,才
4、是第一次實現(xiàn)真正意義的端到端的數(shù)據(jù)通信。 要想實現(xiàn)傳輸層的功能,必須在主機中裝有傳輸層協(xié)議。 在傳輸層中完成傳輸功能的硬件和軟件被稱為傳輸實體TSAP(Transport Service Access Point),通過傳輸實體,傳輸層可以向應用層提供傳輸服務,,運輸層協(xié)議和網(wǎng)絡層協(xié)議的主要區(qū)別,,,,,應用進程,,,,應用進程,,,,,,,IP 協(xié)議的作用范圍 (提供主機之間的邏輯通信),,,,TCP 和 UDP 協(xié)議的作用范圍 (提供進程之間的邏輯通信),,因 特 網(wǎng),TCP/IP 體系中的運輸層協(xié)議,,,,,,,TCP,UDP,IP,應用層,與各種網(wǎng)絡接口,,運輸層,TCP/IP協(xié)議中的
5、傳輸層,,,,在TCP/IP協(xié)議中有兩個并列的協(xié)議:UDP和TCP。,UDP(User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議)是面向無連接的,即在進行數(shù)據(jù)傳輸之前不需要建立連接,而目的主機收到數(shù)據(jù)報后也不需要發(fā)回確認。這種協(xié)議提供了一種高效的傳輸服務。,TCP(Transmission Control Protocol,傳輸控制協(xié)議)是面向連接的,即在進行數(shù)據(jù)傳輸之前需要先建立連接,而且目的主機收到數(shù)據(jù)報后要發(fā)回確認信息。這種協(xié)議提供了一種可靠的傳輸服務。,TCP 與 UDP,UDP 在傳送數(shù)據(jù)之前不需要先建立連接。對方的運輸層在收到 UDP 報文后,不需要給出任何確認。雖然 U
6、DP 不提供可靠交付,但在某些情況下 UDP 是一種最有效的工作方式。 TCP 則提供面向連接的服務。TCP 不提供廣播或多播服務。由于 TCP 要提供可靠的、面向連接的運輸服務,因此不可避免地增加了許多的開銷。這不僅使協(xié)議數(shù)據(jù)單元的首部增大很多,還要占用許多的處理機資源。,還要強調(diào)兩點,運輸層的 UDP 用戶數(shù)據(jù)報與網(wǎng)際層的IP數(shù)據(jù)報有很大區(qū)別。IP 數(shù)據(jù)報要經(jīng)過互連網(wǎng)中許多路由器的存儲轉(zhuǎn)發(fā),但 UDP 用戶數(shù)據(jù)報是在運輸層的端到端抽象的邏輯信道中傳送的。 TCP 報文段是在運輸層抽象的端到端邏輯信道中傳送,這種信道是可靠的全雙工信道。但這樣的信道卻不知道究竟經(jīng)過了哪些路由器,而這些路由器也
7、根本不知道上面的運輸層是否建立了 TCP 連接。,傳輸層使用的 port(端口 ) & socket(套接字),,,,TCP/IP傳輸層可以通過協(xié)議端口(protocol port,簡稱端口)來標識通信的應用進程。 例如: HTTP 80 DHCP 67、68,傳輸層就是通過端口與應用層的應用程序進行信息交互的,應用層各種用戶進程通過相應的端口與傳輸層實體進行信息交互。,在數(shù)據(jù)傳輸過程中,應用層中的各種不同的服務器進程不斷地檢測分配給它們的端口,以便發(fā)現(xiàn)是否有某個應用進程要與它通信。,傳輸層使用的 port(端口 ) & socket(套接字),,,,端口實際上是一個16Bit長的地址,范圍
8、可以從0至65535 將0至1023端口號稱為熟知端口號(Well-Known Port) 其余1024至49951端口號稱為登記端口號,為沒有熟知端口號的應用程序使用的。使用這個范圍的端口號必須在 IANA 登記,以防止重復。 49152至65535端口號稱為客戶端口號,留給客戶進程選擇暫時使用。當服務器進程收到客戶進程的報文時,就知道了客戶進程所使用的動態(tài)端口號。,,,,,,,套接字 socket = (IP地址: 端口號),套接字 (socket),為了使得多主機多進程通信時,不至于發(fā)生混亂情況,必須把端口號和主機的IP地址結合起來使用,稱為插口或套接字(Scoket)。 插口包括IP地
9、址(32位)和端口號(16位) ,共48位。,,TCP 連接 ::= socket1, socket2 = (IP1: port1), (IP2: port2),每一條 TCP 連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定。 TCP 連接(端到端)的端點不是主機,不是主機的IP 地址,不是應用進程,也不是傳輸層的協(xié)議端口。而是一對套接字(socket)或插口。 UDP協(xié)議,雖然在進行通信的進程間不需要建立連接,但是在每次傳輸數(shù)據(jù)時,都要給出發(fā)送端口和接收端口,因此同樣也要使用插口。,運輸層的復用與分用,復用是指在發(fā)送方不同的應用進程都可以使用同一個運輸層協(xié)議傳送數(shù)據(jù)(當然需要加上
10、適當?shù)氖撞浚?而分用是指接收方的運輸層在剝?nèi)笪牡氖撞亢竽軌虬堰@些數(shù)據(jù)正確交付到目的應用進程。 要能正確地將數(shù)據(jù)交付給指定應用進程,就必須給每個應用進程賦予一個明確的標志。 在TCP/IP網(wǎng)絡中,使用一種與操作系統(tǒng)無關的協(xié)議端口號(protocol port number)(簡稱端口號)來實現(xiàn)對通信的應用進程的標志。,端口在進程之間的通信中所起的作用,,,,,,,,,應 用 層,運 輸 層,網(wǎng) 絡 層,TCP 報文段,UDP 用戶數(shù)據(jù)報,應用進程,TCP 復用,,,,,,,,IP 復用,,,UDP 復用,,,,,,,,,,,TCP 報文段,UDP 用戶數(shù)據(jù)報,,,,,,,,,,,,,,,,,
11、,,應用進程,端口,端口,TCP 分用,UDP 分用,IP 分用,,,發(fā)送方,接收方,討論 用戶數(shù)據(jù)報協(xié)議 UDP,UDP 只在 IP 的數(shù)據(jù)報服務之上增加了很少一點的功能,即端口的功能和差錯檢測的功能。 雖然 UDP 用戶數(shù)據(jù)報只能提供不可靠的交付,但 UDP 在某些方面有其特殊的優(yōu)點。 發(fā)送數(shù)據(jù)之前不需要建立連接 UDP 的主機不需要維持復雜的連接狀態(tài)表。 UDP 用戶數(shù)據(jù)報只有 8 個字節(jié)的首部開銷。 網(wǎng)絡出現(xiàn)的擁塞不會使源主機的發(fā)送速率降低。這對某些實時應用是很重要的。,UDP 的特點,UDP 是無連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接(當然發(fā)送數(shù)據(jù)結束時也沒有連接可釋放),因此減少了開
12、銷和發(fā)送數(shù)據(jù)之前的時延。 UDP 使用盡最大努力交付,即不保證可靠交付,同時也不使用擁塞控制,因此主機不需要維持具有許多參數(shù)的、復雜的連接狀態(tài)表。,由于 UDP 沒有擁塞控制,因此網(wǎng)絡出現(xiàn)的擁塞不會使源主機的發(fā)送速率降低。這對某些實時應用是很重要的。很多的實時應用(如 IP 電話、實時視頻會議等)要求源主機以恒定的速率發(fā)送數(shù)據(jù),并且允許在網(wǎng)絡發(fā)生擁塞時丟失一些數(shù)據(jù),但卻不允許數(shù)據(jù)有太大的時延。UDP 正好適合這種要求。,UDP 的特點(續(xù)),UDP 是面向報文的。這就是說,UDP 對應用程序交下來的報文不再劃分為若干個分組來發(fā)送,也不把收到的若干個報文合并后再交付給應用程序。 應用程序交給 U
13、DP 一個報文,UDP 就發(fā)送這個報文;而 UDP 收到一個報文,就把它交付給應用程序。 應用程序必須選擇合適大小的報文。,UDP 支持一對一、一對多、多對一和多對多的交互通信。 用戶數(shù)據(jù)報只有 8 個字節(jié)的首部開銷,比 TCP 的 20 個字節(jié)的首部要短。,UDP 的問題,雖然某些實時應用需要使用沒有擁塞控制的 UDP,但當很多的源主機同時都向網(wǎng)絡發(fā)送高速率的實時視頻流時,網(wǎng)絡就有可能發(fā)生擁塞,結果大家都無法正常接收。 還有一些使用 UDP 的實時應用需要對UDP 的不可靠的傳輸進行適當?shù)母倪M以減少數(shù)據(jù)的丟失。,UDP 的首部格式,,,,,,,,,,,,,,偽首部,源端口,目的端口,長 度,
14、檢驗和,數(shù) 據(jù),首 部,,,,UDP長度,源 IP 地址,目的 IP 地址,0,17,,,IP 數(shù)據(jù)報,字節(jié),4,4,1,1,2,12,2,2,2,2,字節(jié),發(fā)送在前,,,數(shù) 據(jù),首 部,,UDP 用戶數(shù)據(jù)報,,,,,,,,,,,,,,偽首部,源端口,目的端口,長 度,檢驗和,數(shù) 據(jù),首 部,,,,UDP長度,源 IP 地址,目的 IP 地址,0,17,,,IP 數(shù)據(jù)報,字節(jié),4,4,1,1,2,12,2,2,2,2,字節(jié),發(fā)送在前,,,數(shù) 據(jù),首 部,,UDP 用戶數(shù)據(jù)報,,用戶數(shù)據(jù)報 UDP 有兩個字段:數(shù)據(jù)字段和首部字段。首部字段有 8 個字節(jié),由 4 個字段組成,每個字
15、段都是兩個字節(jié)。,,,,,,,,,,,,,,偽首部,源端口,目的端口,長 度,檢驗和,數(shù) 據(jù),首 部,,,,UDP長度,源 IP 地址,目的 IP 地址,0,17,,,IP 數(shù)據(jù)報,字節(jié),4,4,1,1,2,12,2,2,2,2,字節(jié),發(fā)送在前,,,數(shù) 據(jù),首 部,,UDP 用戶數(shù)據(jù)報,,在計算檢驗和時,臨時把“偽首部”和 UDP 用戶數(shù)據(jù)報連接在一起。偽首部僅僅是為了計算檢驗和。,討論 傳輸控制協(xié)議 TCP,TCP 是面向連接的運輸層協(xié)議。 每一條 TCP 連接只能有兩個端點(endpoint),每一條 TCP 連接只能是點對點的(一對一)。 TCP 提供可靠交付的服務。 TCP 提
16、供全雙工通信。 面向字節(jié)流。,TCP 面向流的概念,,,,,端口,,,發(fā)送 TCP 報文段,,,,TCP,,,,TCP,接收緩存,,發(fā)送緩存,報文段,,報文段,報文段,,,端口,發(fā)送方,接收方,,向發(fā)送緩存 寫入數(shù)據(jù)塊,,從接收緩存 讀取數(shù)據(jù)塊,應用進程,應用進程,,,,應當注意,TCP 連接是一條虛連接而不是一條真正的物理連接。 TCP 對應用進程一次把多長的報文發(fā)送到TCP 的緩存中是不關心的。 TCP 根據(jù)對方給出的窗口值和當前網(wǎng)絡擁塞的程度來決定一個報文段應包含多少個字節(jié)(UDP 發(fā)送的報文長度是應用進程給出的)。 TCP 可把太長的數(shù)據(jù)塊劃分短一些再傳送。TCP 也可等待積累有足夠多
17、的字節(jié)后再構成報文段發(fā)送出去。,TCP 連接的任何一方都能夠發(fā)送和接收數(shù)據(jù),通信是全雙工方式。 發(fā)送方的應用進程按照自己產(chǎn)生數(shù)據(jù)的規(guī)律,不斷地把數(shù)據(jù)塊陸續(xù)寫入到 TCP 的發(fā)送緩存中。TCP 再從發(fā)送緩存中取出一定數(shù)量的數(shù)據(jù),將其組成 TCP 報文段(segment)逐個傳送給 IP 層,然后發(fā)送出去。 接收方從 IP 層收到 TCP 報文段后,先把它暫存在接收緩存中,然后讓接收方的應用進程從接收緩存中將數(shù)據(jù)塊逐個讀取。 由于運輸層的通信是面向連接的,因此TCP 每一條連接上的通信只能是一對一的,而不可能是一對多、多對一或多對多的。,Excisses and Thinking,P229 (5-1,5-2,5-5),