運輸協定 運輸層(傳輸層),解決的是電腦程式到電腦程式之間的通信問題,即所謂的“端”到
“端”的通信。引入
傳輸層 的原因: 增加
復用 和分用的功能、 消除網路層的不可靠性、 提供從源端主機到目的端主機的可靠的、與實際使用的網路無關的信息傳輸。運輸層是ISO/OSI的第四層,處於
通信子網 和
資源子網 之間,是整個協定層次中最核心的一層。它的作用是在最佳化
網路服務 的基礎上,為源主機和目標主機之間提供可靠的價格合理的透明
數據傳輸 ,使高層服務用戶在相互通信時不必關心通信子網實現的細節。運輸層的最終目標是為傳送服務用戶提供有效、可靠和價格合理的運輸服務,而傳送服務的用戶即
會話層 實體。運輸層是
OSI 七層模型 中最重要最關鍵的一層,是唯一負責總體數據傳輸和控制的一層。運輸層要達到兩個主要目的:第一提供可靠的
端到端 的通信;第二,向會話層提供獨立於網路的運輸服務。 首先,運輸層之上的會話層、
表示層 及
套用層 均不包含任何數據傳輸的功能,而網路層又不一定需要保證傳送站的數據可靠地送至目的站;其次會話層不必考慮實際網路的結構、屬性、連線方式等實現的細節。根據運輸層在
七層模型 中的目的和地位,它的主要功能是對一個進行的對話或連線提供可靠的傳輸服務;在通向網路的單一
物理連線 上實現該連線的利用
復用 ;在單一連線上進行端到端的序號及
流量控制 ;進行端到端的
差錯控制 及恢復;提供運輸層的其它服務等。運輸層反映並擴展了網路層子系統的服務功能,並通過運輸層地址提供給高層用戶傳輸數據的通信
連線埠 ,使系統間高層資源的共享不必考慮數據通信方面的問題。
運輸層 基本功能
通用的傳輸接口。
運輸層 1. 把傳輸地址
映射 為
網路地址 ;2. 把端到端的傳輸連線
復用 到網路連線上;3. 傳輸連線管理;4.
端到端 的順序控制、差錯檢測及恢復、分段處理及QoS監測;5. 加速
數據傳送 ;6.將
傳輸層 的傳輸地址映射到網路層的網路地址;7. 將多路的端點到端點的傳輸連線變成一路網路連線;8. 傳輸連線的建立、
釋放 和
監控 ;9. 完成傳輸
服務數據單元 的傳送;10. 端點到端點傳輸時的差錯檢驗及對服務質量的監督。
1.UDP提供了不可靠的無連線傳輸服務。它使用IP攜帶報文,但增加了對給定主機上多個目標進行區別的
能力 。 UDP沒有確認機制;不對報文排序;沒有逾時機制;沒有
反饋機制 控制流量;使用UDP的應用程式要承擔可靠性方面的全部工作。
2. 傳輸控制協定
TCP (Tranmission Control Protocol)
面向連線 的、可靠的、
端到端 的、基於
位元組 流的
傳輸協定 ;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包括兩個
欄位 :數據欄位和首部欄位。首部欄位有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報文段分為首部和數據兩部分。
首部固定部分各欄位的意義如下:
傳送序號:是本報文段所傳送的數據部分第一個位元組的序號
確認序號:期望收到的數據(下一個訊息)的第一位元組的序號
首部長度:單位為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時表示數據已傳送完,要求釋放連線;視窗大小:通知傳送方接收視窗的大小,即最多可以傳送的位元組數 ;
運輸層 選項:長度可變。
TCP 只規定了一種選項,即最大
報文段 長度 ;
TCP使用
滑動視窗機制 來進行流量控制。當一個連線建立時,連線的每一端分配一個緩衝區來保存輸入的數據。當數據到達時,接收方傳送確認
ACK ,並包含一個視窗通告(剩餘的
緩衝區 空間的數量叫視窗)。如果傳送方收到一個零視窗
通告 ,將停止傳送,直到收到一個正的視窗通告。當接收方視窗為0後
套用層 取出小部分數據將產生一個比較小的視窗通告,使得對方傳送一些小的
數據段 ,效益很低。可以通過延遲
傳送視窗 通告或傳送方延遲傳送數據來解決。使用了視窗機制以後,提高了網路的吞吐量。
擁塞 避免:指當
擁塞視窗 增大到
門限 視窗時,就將擁塞視窗指數增長速率降低為
線性 增長速率,避免網路再次出現擁塞。迅速遞減:
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給出了運輸層與網路層、運輸服務用戶三者之間的關係。在一個系統中,運輸實體通過
網路服務 與其它運輸實體通信,向運輸層用戶(可以是套用進程,也可以是
會話層 協定)提供運輸服務。運輸層的服務包括的內容有:服務的
類型 、服務的等級、數據運輸、用戶
接口 、連線管理、快速數據運輸、狀態報告、安全保密等。
運輸層 服務類型 運輸服務有兩大類,
面向連線 的服務和無連線的服務。面向連線的服務提供運輸服務與用戶之間邏輯連線的建立、維持和拆除,是可靠的服務,可提供流量控制、
差錯控制 和序列控制。無連線服務即數據服務,只能提供不可靠的服務。
服務等級 運輸協定實體應該允許運輸層用戶能選擇運輸層所提供的服務等級,以利於更有效地利用所提供的鏈路、網路及
互連網路 的資源。可供選擇的服務包括差錯和丟失數據的程度、允許的平均延遲和最大延遲、允許的平均
吞吐率 以及
優先權 水平等。根據這些要求,可將運輸層協定服務等級細分為以下四類:
數據運輸 數據運輸的任務是在兩個運輸實體之間運輸用戶數據和控制數據。一般採用
全雙工 服務,個別場合也可採用
半雙工 服務。數據可分為正常的服務數據分組和快速服務
數據分組 兩種,對快速服務數據分組的運輸可暫時中止當前的數據運輸,在接收端用
中斷方式 優先接收。
用戶接口 用戶接口 機制可以有多種方式,包括採用過程調用、通過信箱運輸數據和參數、用
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個
八進制 用戶數據。