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