分層協議概念
計算機網絡是一種非常復雜的系統,其中既涉及通信技術又涉及計算機技術。在通信技術中涉及不同的分組交換技術,在計算機技術中涉及異種機器、異種操作系統。計算機網絡既要保證不同通信技術和不同計算機系統之間的互通,又要保證這種互通的可靠性和效率。總之,計算機網絡要解決的問題紛繁復雜。為了對問題進行簡化,人們利用“分而治之”的思想,將計算機網絡劃分為不同的層次,每個層次完成一組功能,各個層次配合共同完成計算機網絡通信的功能。這就為網絡協議的設計和實現提供了極大的方便。按照層次結構思想,對計算機網絡的模塊化結果是一組從上到下單向依賴的協議族,又叫協議棧( protocol stack)。協議棧這一術語非常準確地表達了各層協議之間的關系。
協議包含的主要內容
協議主要包含以下內容:
消息類型和格式、編碼;
各種操作對應的消息收發順序;
收到消息后節點應采取的動作;
相鄰層之間的層間原語類型和參數
OSI參考模型簡介
1977年,國際標準化組織(ISO)在分析和消化已有網絡的基礎上,考慮到聯網的方便和靈活性等要求,提出了一種不基于特定機型、操作系統或公司的網絡體系結構,即開放系統互連參考模型(OSI, Open Systems Interconnection)。OSI定義了異種機聯網的標準框架,為連接分散的“開放”系統提供了基礎。這里的“開放”表示任何兩個遵守OSI標準的系統可以進行互聯。
OSI參考模型
OSI參考模型如圖2-1-1所示。它采用分層結構技術,將整個網絡的通信功能分為7個層次,由低層至高層分別是:物理層數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。
OSI中各層的基本功能
(1)物理層
物理層是最底的一層,它和物理傳輸媒介有直接的關系,它定義了設備之間的物理接口,為它的上一層(數據鏈路層)提供一個物理連接,以便透明地傳輸比特流。在物理層上傳輸數據的單位是比特。
(2)數據鏈路層
數據鏈路層的功能是負責在兩個相鄰節點的線路上以幀為單位的可靠傳輸。數據鏈路層將物理層上透明傳輸的比特流劃分為數據幀,對每個數據幀進行差錯檢測及差錯校正,并提供流量控制功能。網絡層提供系統之間的連接,它負責將兩個終端系統經過網絡中的節點用數據鏈路連。
(3)網絡層
接起來,實現兩個終端系統之間數據幀的透明傳輸。網絡層的主要功能是尋址和路由選擇。傳輸層可以看作是用戶和網絡之間的接口,它利用低三層提供網絡服務并向高層提。
(4)傳輸層
供端到端的透明數據傳輸,它根據發端和終端的地址定義一個跨過網絡的邏輯連接,定義主機中的端口地址,并完成端到端(而不是第二層處理的一段數據鏈路)的差錯控制和流量控制功能。
(5)會話層
會話層的作用是協調兩端用戶(通信進程)之間的對話過程。例如,確定數據交換操作方式(全雙工、半雙工或單工),確定會話連接故障中斷后對話從何處開始恢復等。
(6)表示層
表示層負責定義信息的表示方法。表示層將欲交換的數據從適合于某一用戶的抽象語法變換為適合于OSI系統內部使用的傳送語言。表示層的典型服務有:數據翻譯(信息編碼、加密和解密)、格式化(數據格式的修改及文本壓縮)和語法選擇(語法的定義及不同語言之間的翻譯)等。
(7)應用層
應用層確定進程之間通信的性質以滿足用戶的需要,負責用戶信息的語義表示,并在兩個通信進程之間進行語義匹配。以上七層功能按其特點又可分為低層功能和高層功能。低層包括1~3層的全部功能,其目的是保證系統之間跨過網絡的可靠信息傳輸。高層指4~7層的功能,是面向應用的信息處理和通信功能。
OsI參考模型提出的分層結構思想和設計原則已被一致認同,有關術語也被廣泛采用,但是實際上并沒有一個協議是按照七層結構去實現的,原因是其過于復雜。例如,表示層和會話層很少有用。而因特網的TCP/IP協議棧采用簡化的結構,卻獲得了極大的成功。本書2.2節將詳細介紹TCP/P協議棧。
3。開放系統相互通信的過程
采用層次結構的計算機通信系統中的通信包含同層通信和層間接口這樣兩個方面。同層通信是不同節點的對等層之間的通信,同層通信必須嚴格遵循該層的通信協議。層間接口是同一節點的相鄰層之間的通信,相鄰層的通信采用通信原語。上圖示出了在兩個開放系統中的應用進程通信的過程。為了實現這個通信,兩個系統的對等層(即具有相同序號的層)之間必須執行相同的功能并按照相同的協議(同層協議)來進行通信。
當發送進程有一組數據要送給接收進程時,它將這組數據送給應用層實體。應用層在數據上加上一個控制頭7H,7H中包括應用層的同層協議所需的控制信息,然后應用層將7H和數據一起送往表示層。表示層將7H和數據一起看作是上一層的數據單元,然后加上本層的控制信息,交給會話層。依此類推。不過數據到了第二層(數據鏈路層)后,控制信息分成兩部分,分別加到上層數據單元的頭部和尾部形成本層的數據單元送往物理層,由于物理層是比特流的傳輸,所以不再加上控制信息。
當這一串比特流經網絡的物理媒體傳輸到目的站時,就從物理層依次上升到應用層每一層根據本層的控制信息進行必要的操作,然后將控制信息剝去,將剩下的數據部分上交給更高的一層。最后,把發送進程發送的數據交給目的站的接收進程。在協議術語中,從上層接收到的數據體稱為服務數據單元(SDU, Service Data unit),加上本層頭部后成為本層的協議數據單元(PDU, Protocol Data Unit)。在不同的協議棧和不同協議層中,協議數據單元可有不同的名稱,如幀、分組、段、報文等,數據體也可稱為凈荷( payload)或用戶數據。
開放系統互連環境中的通信過程
有時,兩個終端系統之間的通信可能經過一個或多個中間節點轉接,這些中間節點叫做中繼系統,它具有1~3層的功能,每當數據傳送到中繼節點時,就從該節點的物理層上升到網絡層,完成路由選擇后,再下到物理層傳送到下一個節點,最后傳到終端系統,從物理層上升到應用層后到達應用進程。經過一個或多個中間節點轉接的過程如下圖所示:
經過一個或多個中間節點轉接的過程
雖然應用進程的數據要經過如圖2-1-2所示的復雜過程才能到達對方的應用進程,但這些復雜過程對用戶來說,卻都被屏蔽掉了,以致發送進程覺得好像是直接把數據交給了接收進程。同理,任何兩個對等層之間,也好像如圖2-1-2中的水平虛線所示的那樣,將上層的數據及本層的控制信息直接傳送給對方,這就是所謂的“對等層”之間的通信,我們將控制兩個對等(N)實體進行通信的規則稱為(N)層協議。
要做到有條不紊地交換數據,每個節點必須遵守一些預先約定好的規則,這些規則明
確地規定了所交換數據的格式以及有關的同步問題。這些為完成網絡中的數據交換而建
立的規則、標準或約定稱為網絡協議。一個網絡協議主要由以下3個要素組成。
(1)語法:即數據與控制信息的結構或形式。
(2)語義:即需要發出何種控制信息、完成何種動作以及做出何種應答
(3)同步:即事件實現順序的詳細說明。
最后說明一點,在分層協議結構中,相鄰層間的接口點稱為服務接入點(SAP, ServieAccess Point)。一般說來,每層協議可為上一層多個協議實體提供服務,每個協議實體代表一類協議功能,例如在應用層可對應為多種不同的應用。因此,每層可有多個SAP,每個SAP有其對應的地址。這樣從協議的角度看,每個物理節點可視作多個邏輯節點,至該節點的連接實際上可為一個多重連接。SAP的概念示于下圖:
4。層次結構的優點
計算機網絡協議采用層次結構有如下優點:
(1)各層之間相對獨立某一層并不需要知道它的下一層是如何實現的,而僅僅需要知道該層通過層間的接口(即界面)所提供的功能。
(2)靈活性好
當任何一層發生變化時,只要接口關系保持不變,則在該層以上或以下各層均不受影響。此外,某一層提供的服務還可以修改。當某層提供的服務不再需要時,甚至可以將該層取消。
(3)結構上可分割開
( 4 ) 易于實現和維護
這種結構使得實現和調試一個龐大而又復雜的系統變得易千處理,因為整個系統已 被分解為若干個易千處理的而范圍更小的部分了。
( 5 ) 能促進標準化工作
這主要是由千每一層的功能和所提供的服務都已有了精確的說明。