運輸層

運輸層

運輸層,是負責端到端的通信,既是七層模型中負責數據通信的最高層,又是面向網路通信的最低三層和面向信息處理的最高三層之間的中間層。它的作用是在優化網路服務的基礎上,為源主機和目標主機之間提供可靠的價格合理的透明數據傳輸,使高層服務用戶在相互通信時不必關心通信子網實現的細節。

運輸協議


運輸層(傳輸層),解決的是計算機程序到計算機程序之間的通信問題,即所謂的“端”到“端”的通信。引入傳輸層的原因:增加復用和分用的功能、消除網路層的不可靠性、提供從源端主機到目的端主機的可靠的、與實際使用的網路無關的信息傳輸。運輸層是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(User Datagram Protocol)UDP提供了不可靠的無連接傳輸服務。它使用IP攜帶報文,但增加了對給定主機上多個目標進行區別的能力。UDP沒有確認機制;不對報文排序;沒有超時機制;沒有反饋機制控制流量;使用UDP的應用程序要承擔可靠性方面的全部工作。
2.傳輸控制協議TCP(Tranmission Control Protocal)面向連接的、可靠的、端到端的、基於位元組流的傳輸協議;TCP不支持多播(multicast)和廣播(broadcast);TCP連接是基於位元組流的,而非消息流,消息的邊界在端到端的傳輸中不能得到保留;對於應用程序發來的數據,TCP可以立即發送,也可以緩存一段時間以便一次發送更多的數據。為了強迫數據發送,可以使用PUSH標記;對於緊急數據(urgent data),可以使用URGENT標記。
【埠的概念】埠:用16位來表示,即一個主機共有65536個埠。序號小於256的埠稱為通用埠,如FTP是21埠,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報文段分為首部和數據兩部分。
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的流量控制】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個八進位用戶數據。