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