複製鏈接
請複製以下鏈接發送給好友

運輸層

編輯 鎖定
OSI七層模型中的物理層數據鏈路層和網絡層,它們是面向網絡通信的低三層協議。運輸層負責端到端的通信,既是七層模型中負責數據通信的最高層,又是面向網絡通信的低三層和麪向信息處理的最高三層之間的中間層。運輸層位於網絡層之上、會話層之下,它利用網絡層子系統提供給它的服務去開發本層的功能,並實現本層對會話層的服務。
中文名
運輸層
外文名
transportlayer
別    名
傳輸層
解決問題
計算機程序到計算機程序的通信
基本功能
提供端到端的可靠通信
類    型
計算機科學術語

運輸層運輸協議

編輯
運輸層(傳輸層),解決的是計算機程序到計算機程序之間的通信問題,即所謂的“端”到
運輸層 運輸層
“端”的通信。引入傳輸層的原因: 增加複用和分用的功能、 消除網絡層的不可靠性、 提供從源端主機到目的端主機的可靠的、與實際使用的網絡無關的信息傳輸。運輸層是ISO/OSI的第四層,處於通信子網資源子網之間,是整個協議層次中最核心的一層。它的作用是在優化網絡服務的基礎上,為源主機和目標主機之間提供可靠的價格合理的透明數據傳輸,使高層服務用户在相互通信時不必關心通信子網實現的細節。運輸層的最終目標是為傳送服務用户提供有效、可靠和價格合理的運輸服務,而傳送服務的用户即會話層實體。運輸層是OSI七層模型中最重要最關鍵的一層,是唯一負責總體數據傳輸和控制的一層。運輸層要達到兩個主要目的:第一提供可靠的端到端的通信;第二,向會話層提供獨立於網絡的運輸服務。 首先,運輸層之上的會話層、表示層及應用層均不包含任何數據傳輸的功能,而網絡層又不一定需要保證發送站的數據可靠地送至目的站;其次會話層不必考慮實際網絡的結構、屬性、連接方式等實現的細節。根據運輸層在七層模型中的目的和地位,它的主要功能是對一個進行的對話或連接提供可靠的傳輸服務;在通向網絡的單一物理連接上實現該連接的利用複用;在單一連接上進行端到端的序號及流量控制;進行端到端的差錯控制及恢復;提供運輸層的其它服務等。運輸層反映並擴展了網絡層子系統的服務功能,並通過運輸層地址提供給高層用户傳輸數據的通信端口,使系統間高層資源的共享不必考慮數據通信方面的問題。
基本功能
提供端到端(進程-進程)的可靠通信,即向高層用户屏蔽通信子網的細節,提供
運輸層 運輸層
通用的傳輸接口。
1. 把傳輸地址映射網絡地址;2. 把端到端的傳輸連接複用到網絡連接上;3. 傳輸連接管理;4. 端到端的順序控制、差錯檢測及恢復、分段處理及QoS監測;5. 加速數據傳送;6.將傳輸層的傳輸地址映射到網絡層的網絡地址;7. 將多路的端點到端點的傳輸連接變成一路網絡連接;8. 傳輸連接的建立、釋放監控;9. 完成傳輸服務數據單元的傳送;10. 端點到端點傳輸時的差錯檢驗及對服務質量的監督。
TCP/IP的運輸層中的兩個協議
用户數據報協議UDP(User Datagram Protocol):提供無連接服務;傳輸控制協議TCP(Transmission Control Protocol):提供面向連接服務。UDP和TCP都使用IP協議。
1.UDP提供了不可靠的無連接傳輸服務。它使用IP攜帶報文,但增加了對給定主機上多個目標進行區別的能力。 UDP沒有確認機制;不對報文排序;沒有超時機制;沒有反饋機制控制流量;使用UDP的應用程序要承擔可靠性方面的全部工作。
2. 傳輸控制協議TCP(Tranmission Control Protocol)面向連接的、可靠的、端到端的、基於字節流的傳輸協議;TCP不支持多播(multicast)和廣播(broadcast);TCP連接是基於字節流的,而非消息流,消息的邊界在端到端的傳輸中不能得到保留;對於應用程序發來的數據,TCP可以立即發送,也可以緩存
運輸層 運輸層
一段時間以便一次發送更多的數據。為了強迫數據發送,可以使用PUSH標記;對於緊急數據(urgent data),可以使用URGENT標記。
端口的概念
端口:用16位來表示,即一個主機共有65536個端口。序號小於256的端口稱為通用端口,如FTP21端口,WWW是80端口等。端口用來標識一個服務或應用。一台主機可以同時提供多個服務和建立多個連接。端口(port)就是傳輸層應用程序接口。應用層的各個進程是通過相應的端口才能與運輸實體進行交互。服務器一般都是通過人們所熟知的端口號來識別的。例如,對於每個TCP/IP實現來説,FTP服務器TCP端口號都是21,每個Telnet服務器的TCP端口號都是23,每個TFTP(簡單文件傳輸協議)服務器的UDP端口號都是69。任何TCP/IP實現所提供的服務都用眾所周知的1-1023之間的端口號。這些人們所熟知的端口號由Internet端口號分配機構(Internet Assigned Numbers Authority, IANA)來管理。
用户數據報UDP的格式
運輸層 運輸層
用户數據報UDP包括兩個字段數據字段和首部字段。首部字段有8個字節,4個字段組成,每個字段兩個字節。源端口字段: 源端口號;目的端口字段:目的端口號;長度字段:UDP數據報的長度;檢驗和字段:防止UDP數據報在傳輸中出錯。偽首部:僅為計算檢驗和而構造。UDP通常作為IP的一個簡單擴展。它引入了一個進程端口的匹配機制,使得某用户進程發送的每個UDP報文都包含有報文目的端口的編號和報文源端口的編號,從而使UDP軟件可以把報文傳遞給正確的接收進程。
UDP提供的服務:UDP提供的服務與IP協議一樣,是不可靠的、無連接的服務。但它又不同於IP協議,因為IP協議是網絡層協議向運輸層提供無連接的服務,而UDP是傳輸層協議,它嚮應用層提供無連接的服務。UDP有以下優點:發送數據之前不需要建立連接,發送後也無需釋放,因此,減少了開銷和發送數據的時延。UDP不使用擁塞控制,也不保證可靠交付,因此,主機不需要維護有許多參數的連接狀態表。UDP用户數據報只有8個字節的首部,比TCP的20個字節的首部要短。由於UDP沒有擁塞控制,當網絡出現擁塞不會使源主機的發送速率降低。因此UDP適用實時應用中要求源主機的有恆定發送速率的情況。
TCP提供的服務
運輸層 運輸層
1.端到端面向連接的服務;2. 完全可靠性;全雙工通信;3.流接口;4.應用程序將數據流發送給TCP;5.在TCP流中,每個數據字節都被編號(序號);6.TCP層將數據流分成數據段並以序號來標識;7.可靠的連接建立和完美的連接終止。TCP 協議是面向字節的。TCP 將所要傳送的報文看成是字節組成的數據流,並使每一個字節對應於一個序號。 TCP的編號與確認:TCP不是按傳送的報文段來編號。TCP將所要傳送的整個報文看成是一個個字節組成的數據流,然後對每一個字節編一個序號。在連接建立時,雙方要商定初始序號。TCP就將每一次所傳送的報文段中的第一個數據字節的序號,放在TCP首部的序號字段中。TCP的確認是對接收到的數據的最高序號(即收到的數據流中的最後一個序號)表示確認。但返回的確認序號是已收到的數據的最高序號加1。也就是説,確認序號表示期望下次收到的第一個數據字節的序號。由於TCP能提供全雙工通信,因此通信中的每一方都不必專門發送確認報文段,而可以在傳送數據時順便把確認信息捎帶傳送。這樣可以提高傳輸效率。
TCP報文段的格式
從TCP報文段格式圖可以看出,一個TCP報文段分為首部和數據兩部分。
首部固定部分各字段的意義如下:
源端口/目的端口:TSAP地址。用於將若干高層協議向下複用
發送序號:是本報文段所發送的數據部分第一個字節的序號
確認序號:期望收到的數據(下一個消息)的第一字節的序號
首部長度:單位為32位(雙字) ;
控制字段
緊急比特(URG):URG=1時表示加急數據,此時緊急指針的值為加急數據的最後一個字節的序號 ;
確認比特(ACK):ACK=1時表示確認序號字段有意義 ;
急迫比特(PSH):PSH=1時表示請求接收端的傳輸實體儘快交付應用層
復位比特(RST):RST=1表示出現嚴重差錯,必須釋放連接,重建 ;
同步比特(SYN):SYN=1,ACK=0 表示連接請求消息。SYN=1,ACK=1 表示同意建立連接消息;
運輸層 運輸層
終止比特(FIN):FIN=1時表示數據已發送完,要求釋放連接;窗口大小:通知發送方接收窗口的大小,即最多可以發送的字節數 ;
檢查和:12B的偽首部 首部 數據;
選項:長度可變。TCP只規定了一種選項,即最大報文段長度 ;
TCP使用滑動窗口機制來進行流量控制。當一個連接建立時,連接的每一端分配一個緩衝區來保存輸入的數據。當數據到達時,接收方發送確認ACK,幷包含一個窗口通告(剩餘的緩衝區空間的數量叫窗口)。如果發送方收到一個零窗口通告,將停止發送,直到收到一個正的窗口通告。當接收方窗口為0後應用層取出小部分數據將產生一個比較小的窗口通告,使得對方發送一些小的數據段,效益很低。可以通過延遲發送窗口通告或發送方延遲發送數據來解決。使用了窗口機制以後,提高了網絡的吞吐量。
TCP如何發現擁塞
1.收到ICMP源抑制報文;2.超時包丟失;3.TCP把發現包丟失解釋為網絡擁塞
運輸層 運輸層
擁塞避免:指當擁塞窗口增大到門限窗口時,就將擁塞窗口指數增長速率降低為線性增長速率,避免網絡再次出現擁塞。迅速遞減:TCP總是假設大部分包丟失來源於擁塞,一旦包丟失,則TCP降低它發送數據的速率,這種方法能夠緩和擁塞。慢啓動:TCP開始時只發送一個消息;如果安全到達,TCP將發送兩個消息;如果對應的兩個確認來了,TCP就再發四個,如此指數增長一直持續到TCP發送的數據達到接收方通告窗口的一半,這時TCP將降低增長率。TCP的重傳機制:TCP重傳機制是TCP中最重要和最複雜的問題之一。TCP每發送一個報文段,就設置一次記時器。只要記時器設置的重傳時間到而還沒有收到確認,就要重傳這一報文段。TCP監視每一連接中的當前延遲,並適配重發定時器來適應條件的變化。重發定時器基於連接往返延遲:
RTTnew = (alpha*RTTold) ((1 - alpha)*RTTsample))
RTO = beta*RTTnew
TCP的運輸連接管理
1.運輸連接管理目的:使運輸連接的建立和釋放都能正常的進行;2.連接建立的採用的過程叫做三次握手協議或三次聯絡。三次握手(three-way handshake)方案解決了由於網絡層會丟失、存儲和重複分組帶來的問題。三次握手正常建立連接的過程:主機 A 發出序號為X的建立連接請求CR TPDU。主機 B 發出序號為Y的接受連接確認ACK TPDU,並確認A的序號為X的建立連接請求。主機 A 發出序號為X的第一個數據DATA,並確認主機 B的序號為Y的接受連接確認。
TCP有限狀態機:TCP將連接可能處於的狀態及各種狀態可能發生的變遷,畫成如下圖所示的有限狀態機。圖中的每一個方框就是TCP可能具有的狀態。方框中寫的字是TCP標準中給該狀態起的名字。狀態之間的箭頭表示可能發生的狀態變遷。箭頭旁邊寫上的字,表示是什麼原因引起這種變遷,或表明發生狀態變遷後又出現什麼動作。

運輸層運輸協議等級

編輯
運輸層的功能是要彌補從網絡層獲得的服務和擬向運輸服務用户提供的服務之間的差距。它所關心的是提高服務質量包括優化成本。運輸層的功能按級別和任選項劃分,級別定義了一套功能集,任選項定義在一個級別內可以使用的功能。OSI定義了五種協議級別,即級別0(簡單級)、級別1(基本差錯恢復級)、級別2(多路複用級)、級別3(差錯恢復和多中複用級)和級別4(差錯檢測和恢復級)。級別與任選項均可在連接建立過程中通過協商選用。運輸層實體 選用級別及任選項的依據為: 通過T-CNNECT語表示的運輸服務用户的要求。 可用的網絡服務質量。 傳輸服務用户所能與價格之比。
運輸層 運輸層
根據用户要求和差錯性質,網絡服務按質量可劃為下列三種類型:

運輸層A型網絡服務

具有可接受的殘留差錯率和故障通知率(網絡連接斷開和復位發生的比率),也就是無N-RESET 完美的網絡服務

運輸層B型網絡服務

具有可接受的殘留差錯率和不可接受的故障通知率,即完美的分組遞交但有N-RESET或N-ISCNNECT存在的網絡服務

運輸層C型網絡服務

具有不可接的殘留差錯,即網絡連接不可靠,可能會丟失分組或出現重複分組,且存在N-RISCONNET的網絡服務。 可見,網絡服務質量的劃分是以用記户要求比較高,則一個網絡可能歸於C型 ,反之則一網絡可能於B型甚至A型 。例如:而同一網絡對銀行系統來説則只能算作C型了。三種類型的網絡服務中,A型質量最高,分組的丟失,重複或復位等情況可以忽略不計,一般來説,能提供A型服務的公用寬或網幾乎沒有。B型網絡質量次之,大多數X-RESET出現這就需要運輸層協議來解決。c型網絡服務質量最差,它是完全不可靠的服務,那些純提供數據服務的寬域網,無線電分組交用網和很多國際網都屬些類。服務質量劃分得較高的網絡,僅需要較簡單的協議級別;反之,服務服務質量劃分較低的網絡,則需要複雜的協議。
五種協議級別中,級別0提供簡單的運輸連接,它是專為A型網絡設計的。級別0提供具有商的連接建立、分段和差錯報告的數據運輸所需要複雜的功能,以及網絡服務提供的流量控制和拆線功能。級別1以最小開銷提供了基本的運輸連接,它是專為B型網絡連接設計的。級別1提供具有運輸連接,拆線和在一個網絡連接上支持;連續的運輸連接的能,並提供檢級別0的功能以及在沒有運輸服務用户參予的情況下由網絡層告警的故障恢復能力。級別2具有在一個絡網連接,它是為與A型網絡連接而設計的,級別2具有流量的控制的運輸連接的能力。它不是供檢錯或差恢復功能。級別3提供級別2的功能以外,還提供具有在無運輸服務用户參的情況下,檢測由網絡告警的故障恢復能力。級別4除提供級別3的功能以外,還提供具在
運輸層 運輸層
無運輸服務用户參情況下,檢測由網絡服務提供者提供低質量服務而引起的故障,並從故障中自行恢復的能力。所檢測的故障類包括分組丟失、失序、重份和殘缺。級別4還提供增強抗網絡故障的能力。它是專為C網絡連接設計的。【運輸協議數據單元的定義和結構】運輸協議數據單元(TPDU)結構是由數八位組(即字節)構成的,字節的編號從1開始,並按它們進入一個網絡服務數據單元(NSDU)的順序遞增。每個字節中從1到8對比特進行編號最小的字節為最高有效值。TPDDU按順序包含下列內容:頭部、若存在,則佔第n+1及其以後的字節;固定部分,佔第2、3...、n個字節;可變部分,若存在,則佔第n+1及其以後的字節。長度指示字段L1表示包含L1本身在內頭部字節數長度,L1以二進制表示,最大值為254(11111110)。例如連接(CR)TPDU的長度不得超過128個字節。若指示的長度超過或實際的網絡服務用户數據,則應視為協議出錯。固定部分包括TPDU代碼和常出現的參數。固定部分的部分的長度和結構由TPDU代碼。
TPDU代碼表中,"XXXX"在級別2、3、4中標誌許可證(CDT);在級別0和1中為"0000"。"ZZZZ" 在級別2、3、4中標誌許可證;在選擇接收確認任選規程時不能用。可變部分包含不常用的參數,各參數結構如圖5.3所示,參數代碼,字段用二進制編碼參數長度指示以字節為單位指出參數值字段的長度。數據字段包含透明的用户數據,在每一個TPDU中,用户字段的長度均受限制,如cd/cc不能超過32個字節,DR不能超過64個字節,ED為1到16個字節,而DT用户數據長度受;連接建立時協商TPDU大小的限制

運輸層運輸服務

編輯
運輸層 運輸層
運輸層的最終目標是為用户提供有效、可靠和價格合理的服務。圖5.1給出了運輸層與網絡層、運輸服務用户三者之間的關係。在一個系統中,運輸實體通過網絡服務與其它運輸實體通信,向運輸層用户(可以是應用進程,也可以是會話層協議)提供運輸服務。運輸層的服務包括的內容有:服務的類型、服務的等級、數據運輸、用户接口、連接管理、快速數據運輸、狀態報告、安全保密等。

運輸層服務類型

運輸服務有兩大類,面向連接的服務和無連接的服務。面向連接的服務提供運輸服務與用户之間邏輯連接的建立、維持和拆除,是可靠的服務,可提供流量控制、差錯控制和序列控制。無連接服務即數據服務,只能提供不可靠的服務。

運輸層服務等級

運輸協議實體應該允許運輸層用户能選擇運輸層所提供的服務等級,以利於更有效地利用所提供的鏈路、網絡及互連網絡的資源。可供選擇的服務包括差錯和丟失數據的程度、允許的平均延遲和最大延遲、允許的平均吞吐率以及優先級水平等。根據這些要求,可將運輸層協議服務等級細分為以下四類:
1)可靠的面向連接的協議。2)不可靠的無連接協議。3)需要定序和定時運輸的話音運輸協議。4)需要快速和高可靠的實時協議。

運輸層數據運輸

數據運輸的任務是在兩個運輸實體之間運輸用户數據和控制數據。一般採用全雙工服務,個別場合也可採用半雙工服務。數據可分為正常的服務數據分組和快速服務數據分組兩種,對快速服務數據分組的運輸可暫時中止當前的數據運輸,在接收端用中斷方式優先接收。

運輸層用户接口

運輸層 運輸層
用户接口機制可以有多種方式,包括採用過程調用、通過郵箱運輸數據和參數、用DMA方式在主機與具有運輸層實體的前端處理機之間運輸等。

運輸層連接管理

面向連接的協議需要提供建立和終止連接的功能。一般總是提供對稱的功能,即兩個對話的實體都有連接管理的功能,對簡單的應用也有僅對一方提供連接管理功能的情況。連接的終止可以採用立即終止運輸,或等待全部數據運輸完再終止連接。

運輸層狀態報告

向運輸層用户提供運輸實體或運輸連接的狀態信息。

運輸層安全保密

包括對發送者和接收者的確認、數據的加密以及通過和解密以及通過保密的鏈路和節點路由選擇等安全保密的服務。

運輸層服務質量

編輯
運輸層 運輸層
服務質量QOS(Quality of Service)是指在運輸連接點之間看到的某些運輸連接的特徵,是運輸層能的度量,反映了運輸質量及服務的可用性。服務質量可用一些參數來描述,如連接建立延遲、連接建立失敗、吞吐量、輸送延遲、殘留差錯率、連接拆除延遲、連接拆除失敗概率、連接回彈率、運輸失敗率等等。用户可以在連接建立時指明所期望的、可接受的或不可接受的QOS參數。通常,用户使用連接建立原語在用户與運輸服務提供者之間協商QOS,協商過的QOS適用於整個運輸連接的生存期。但主呼用户請求的QOS可能被運輸服務提供者降低,也可能被呼用户降低。
運輸連接建立延遲是指在連接請求和相應的連接確認之間容許的最大延遲。運輸連接失敗概率是在一次測量樣本中運輸連接的失敗總數與運輸連接建立的全部嘗試次數之比。連接失敗定義為由於服務提供者方面的原因造成在規定的最大容許建立延遲時間內所請求的運輸連接沒有成功,而由於用户方面的原因造成的連接失敗概率內。
吞吐量是在某段時間間隙內單位時間運輸的用户數據的字節數,對每個方向都有吞吐量,它們由最大吞吐量和平均吞吐量組成。輸送延遲是在數據請求和相應的數據指示之間所經歷的時間,每個方向都有輸送延遲,包括最大輸送延遲和平均輸送延遲。殘留差錯率是在測量期間,所有錯誤的、丟失的和重複的用户數據與所請求的用户數據之比。運輸失敗概率是在進行樣本測量期間觀察到的運輸失敗總數與運輸樣本總數之比。
運輸連接拆除延遲是在用户發起除請求到成功地拆除運輸連接之間可允許的最大延遲。運輸連接拆除失敗概率是引起拆除失敗的拆除請求次數與在測量樣本中拆除請求總次數之比。運輸連接
運輸層 運輸層
保護是服務提供者為防止用户信息在未經許可的情況下被監視或操作的措施,保護選項的無保護特性、針對被動監視的保護及針對增、刪、改的保護等。運輸連接優先權為用户提供了指示不同的連接所具有的不同的重要性的方法。運輸連接的回彈率是指在規定時間間隔(如1秒)內,服務提供者發起的連接拆除(即無連接拆除請求的連接拆除指示)的概率。QOS參數由運輸服務用户在請求建立連接時加以説明,它可以給出所期望的值和可接受的值,在某些情況下,運輸實體在檢查QOS參數時能立即發現其中一些值是無法實現的,在這種情況下,運輸實體直接將連接失敗的信息告訴的信息告訴請求者,同時説明失敗的原因。另外的一種情況是運輸層知道它無法實現用户期望的要求(例如1200bps的吞量),但能達到稍低一點的且仍能被用户所接受的值(例如600bps的吞吐量),那麼它就在請求建立連接時向目的機發出這一值。如果目的機不能處理高於源端機可接受的值(例如300bps的吞吐量),那麼它就可以將參數降至該可接受值,若目的機連該可接受值也不能處理,則拒絕連接請求。由此,請求者總能立即知道建立是否成功,若成功
運輸層 運輸層
則商定的QOS是什麼等信息。以上過程稱為選項協商,一旦各種參數協商好,則在整個連接生存期內保持不變。上述QOS參數中的一部分也選用於無連接運輸服務。
OSI運輸服務定義(ISO8072)沒有具體給出QOS參數的編碼或允許值,這些參數通常在用户與電信部門之間商定。為防止某些用户對QOS過於貪心,大多數電信部門對於較高質量的服務相應地也收取較高的費用。OSI運輸服務原語傳輸層為上一層的應用程序提供一個標準的原語集,為服務提供者和用户之間進行可靠的數據傳輸架起了一座“橋樑”。ISO規範包括四種類型10個運輸服務原語,見表5.2。其中服務質量參數指示用户的要求,諸如吞吐量、延遲、可靠度和優先度等。運輸 服務(TS)用户數據參數最多可達32個八進制用户數據。