官术网_书友最值得收藏!

2.1 網(wǎng)絡(luò)體系結(jié)構(gòu)概述

網(wǎng)絡(luò)及網(wǎng)絡(luò)通信都很復(fù)雜,為了能夠使分布在不同地理位置且功能相對(duì)獨(dú)立的計(jì)算機(jī)之間組成網(wǎng)絡(luò),并實(shí)現(xiàn)網(wǎng)絡(luò)通信和資源共享,計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)需要涉及和解決許多復(fù)雜的問(wèn)題,包括信號(hào)傳輸、差錯(cuò)控制、尋址、數(shù)據(jù)交換和提供用戶(hù)接口等。計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)就是為簡(jiǎn)化這些問(wèn)題的研究、設(shè)計(jì)與實(shí)現(xiàn)而抽象出來(lái)的一種結(jié)構(gòu)模型,其目的是劃分網(wǎng)絡(luò)系統(tǒng)的基本組成,說(shuō)明各組成部分實(shí)現(xiàn)的功能,以及各組成部分之間如何相互作用并最終實(shí)現(xiàn)通信的。網(wǎng)絡(luò)體系結(jié)構(gòu)通常采用層次化結(jié)構(gòu)定義計(jì)算機(jī)網(wǎng)絡(luò)的協(xié)議、功能和提供的服務(wù)。

2.1.1 分層結(jié)構(gòu)的意義

1.分層的作用

計(jì)算機(jī)網(wǎng)絡(luò)的基本設(shè)計(jì)思想是把一個(gè)復(fù)雜的網(wǎng)絡(luò)問(wèn)題分解成若干個(gè)子問(wèn)題,每一個(gè)子問(wèn)題分別由相應(yīng)的功能模塊來(lái)解決與實(shí)現(xiàn)。這種分而治之的層次化設(shè)計(jì)方法實(shí)際上在很多領(lǐng)域都有應(yīng)用,如程序設(shè)計(jì)、郵政系統(tǒng)、銀行系統(tǒng)和物流系統(tǒng)等。為了更形象地理解分層,以一個(gè)郵政系統(tǒng)的實(shí)現(xiàn)過(guò)程為例加以說(shuō)明。

回顧日常生活中物品或信件的郵寄過(guò)程,對(duì)于郵寄人來(lái)說(shuō),只需填好表單并支付郵資即可,具體的郵遞過(guò)程可放心交由郵政系統(tǒng)來(lái)處理。假設(shè)北京的某客戶(hù)要寄信給上海的某個(gè)客戶(hù),整個(gè)信件的郵遞過(guò)程大致分成幾個(gè)步驟,每一個(gè)步驟對(duì)應(yīng)于圖2.1中的一個(gè)層次,每個(gè)層次完成一項(xiàng)主要工作。

圖2.1 信件郵遞的分層流程

寄信方的主要工作如下。

①客戶(hù)按雙方都理解的語(yǔ)言、格式等寫(xiě)好信,按郵局要求將信裝入信封后投寄到當(dāng)?shù)胤志值男畔浠蜞]筒。

②北京總局收集各分局的郵件,按相應(yīng)的規(guī)則如地址、郵寄類(lèi)別等對(duì)郵件進(jìn)行分類(lèi)整理,形成不同的分類(lèi)包裹。

③北京總局將處理后的分類(lèi)包裹交給運(yùn)輸部門(mén)運(yùn)往各地。

收信方的主要工作如下。

①上海總局從運(yùn)輸部門(mén)統(tǒng)一接收其他各地運(yùn)往本地的各種分類(lèi)包裹。

②上海總局將收到的各類(lèi)郵包拆開(kāi)分揀,將信件分別送到當(dāng)?shù)馗鞣志值泥]箱或郵筒。

③客戶(hù)從當(dāng)?shù)馗鞣志值泥]箱或郵筒中取信件。

可以從以下兩個(gè)方面分析層次結(jié)構(gòu)的特點(diǎn)。

1)各個(gè)層次的縱向關(guān)系(本方各層次間的關(guān)系)

①作為寄信人和收信人,兩個(gè)客戶(hù)不需要關(guān)心郵件的郵遞過(guò)程細(xì)節(jié),如信件是由哪個(gè)郵遞員收集、通過(guò)哪種交通工具運(yùn)輸、走什么樣的路線(xiàn)、經(jīng)過(guò)什么樣的城市中轉(zhuǎn)等。類(lèi)似地,第二層雙方郵局對(duì)郵件的分揀也不用了解該層以下貨物的運(yùn)輸調(diào)度等工作細(xì)節(jié),即縱向關(guān)系的特點(diǎn)是下層能夠?qū)ι蠈与[藏一些工作細(xì)節(jié)。

②對(duì)于第二層的郵局,其工作基礎(chǔ)就是信封,按照信封上的郵寄地址、信件的種類(lèi)、服務(wù)方式進(jìn)行分揀和包裝。信封所攜帶的信息就是連接第一層和第二層的接口。由此得出結(jié)論,層次模型的上、下層應(yīng)定義接口,以實(shí)現(xiàn)相對(duì)獨(dú)立的工作銜接。

③如果最底層運(yùn)輸部門(mén)的工作發(fā)生了些許變化,如交通工具出現(xiàn)故障等,這些變化并不影響其他層工作的正常運(yùn)行,只不過(guò)可能會(huì)影響其他層的工作進(jìn)度。由此得層次結(jié)構(gòu)的另一特點(diǎn)就是,當(dāng)某一層的功能發(fā)生改變時(shí),只要上下層的接口不變,便不會(huì)影響其他層的正常工作。

2)各個(gè)層次的橫向關(guān)系(雙方相同層次之間的關(guān)系)

首先分析圖2.1中最上層寄信人和收信人的關(guān)系。無(wú)論郵件封入哪個(gè)包裹、由哪種交通工具走哪條路線(xiàn)到達(dá)目的地,也只有收件人才能打開(kāi)、閱讀并理解信件的內(nèi)容。寄信人用什么語(yǔ)言、文體、格式來(lái)寫(xiě)信,收信方是否回信、什么時(shí)間回、回信的方式等是他們兩人之間的事情,由他們的關(guān)系來(lái)決定。這種關(guān)系決定了雙方在寄信這件事上的操作規(guī)程,直接決定了他們寄信和收信的操作。類(lèi)似地,發(fā)貨層和收貨層、寄信方和收信方都按照一定的調(diào)度規(guī)則發(fā)貨和收貨,他們的關(guān)系是建立在對(duì)貨物如何運(yùn)輸?shù)墓沧R(shí)之上的。由此得出結(jié)論:不同系統(tǒng)相同層間相互遵循一定的約定,這一約定直接影響兩層實(shí)體間的操作規(guī)范。

以上郵遞系統(tǒng)層次結(jié)構(gòu)中得出的某些結(jié)論同樣也適用于描述網(wǎng)絡(luò)層次結(jié)構(gòu)。

層次結(jié)構(gòu)方法的優(yōu)點(diǎn)如下。

①獨(dú)立性強(qiáng)。層間耦合程度低,上層只需了解下層能通過(guò)層間接口提供什么服務(wù)。

②適應(yīng)性強(qiáng)。只要服務(wù)和接口不變,每層的實(shí)現(xiàn)方法可任意改變。

③易于實(shí)現(xiàn)和維護(hù)。把復(fù)雜的系統(tǒng)分解成若干個(gè)涉及范圍小、功能簡(jiǎn)單的子單元,使系統(tǒng)的結(jié)構(gòu)清晰,實(shí)現(xiàn)、調(diào)試和維護(hù)變得簡(jiǎn)單和容易,這樣設(shè)計(jì)人員能專(zhuān)心設(shè)計(jì)和開(kāi)發(fā)所關(guān)心的功能模塊。

2.網(wǎng)絡(luò)體系結(jié)構(gòu)及相關(guān)概念

網(wǎng)絡(luò)體系結(jié)構(gòu)(Network Architecture, NA)是計(jì)算機(jī)網(wǎng)絡(luò)的分層、各層協(xié)議、功能和層間接口的集合。不同的計(jì)算機(jī)網(wǎng)絡(luò)具有不同的體系結(jié)構(gòu),其層的數(shù)量、各層的名稱(chēng)、內(nèi)容和功能以及各相鄰層之間的接口也不一樣。但在任何網(wǎng)絡(luò)中,每一層都是為了向其相鄰上層提供服務(wù)而設(shè)置的,而且每一層都對(duì)上層屏蔽如何實(shí)現(xiàn)協(xié)議的具體細(xì)節(jié)。

網(wǎng)絡(luò)體系結(jié)構(gòu)與具體的物理實(shí)現(xiàn)無(wú)關(guān)。網(wǎng)絡(luò)體系結(jié)構(gòu)只精確定義了計(jì)算機(jī)網(wǎng)絡(luò)中的邏輯構(gòu)成及所完成的功能,實(shí)際上是一組設(shè)計(jì)原則。網(wǎng)絡(luò)體系結(jié)構(gòu)是一個(gè)抽象的概念,對(duì)這些功能是由何種硬件和軟件實(shí)現(xiàn)并未加以說(shuō)明。因此網(wǎng)絡(luò)體系結(jié)構(gòu)和網(wǎng)絡(luò)的實(shí)現(xiàn)是兩回事,前者是抽象的,僅告訴網(wǎng)絡(luò)設(shè)計(jì)者應(yīng)“做什么”,而不是“怎么做”;后者是具體的,是需要硬件和軟件來(lái)完成的。

在計(jì)算機(jī)環(huán)境里,兩個(gè)端點(diǎn)的兩個(gè)進(jìn)程之間的通信過(guò)程類(lèi)似于信件的投遞過(guò)程。

網(wǎng)絡(luò)的層次結(jié)構(gòu)方法要解決的問(wèn)題如下。

①網(wǎng)絡(luò)應(yīng)該具有哪些層次?每一層的功能是什么?(分層與功能)

②各層之間的關(guān)系是怎樣的?它們?nèi)绾芜M(jìn)行交互?(服務(wù)與接口)

③通信雙方的數(shù)據(jù)傳輸要遵循哪些規(guī)則?(協(xié)議)

為了降低計(jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)的復(fù)雜程度,把計(jì)算機(jī)網(wǎng)絡(luò)的功能分成若干層,規(guī)定每一層所必須完成的功能,并對(duì)其上層提供支持;每一層建立在其下層之上,即一層功能的實(shí)現(xiàn)以其下層提供的服務(wù)為基礎(chǔ)。整個(gè)層次結(jié)構(gòu)中各個(gè)層次相互獨(dú)立,每一層的實(shí)現(xiàn)細(xì)節(jié)對(duì)其上層是完全屏蔽的,每一層可以通過(guò)層間接口調(diào)用其下層的服務(wù),而不需要了解下層服務(wù)是怎樣實(shí)現(xiàn)的。

同一系統(tǒng)體系結(jié)構(gòu)中的各個(gè)相鄰層間的關(guān)系是:下層為上層提供服務(wù),上層利用下層提供的服務(wù)完成本層的功能,同時(shí)向更上層提供服務(wù)。上層可看作是下層的用戶(hù),下層是上層的服務(wù)提供者。系統(tǒng)的頂層執(zhí)行用戶(hù)要求做的工作,直接面向用戶(hù),可以是用戶(hù)編寫(xiě)的程序或發(fā)出的命令。除頂層外,各層都能支持其上一層的實(shí)體進(jìn)行工作,這就是服務(wù)。系統(tǒng)的底層直接與物理介質(zhì)接觸,通過(guò)物理介質(zhì)來(lái)實(shí)現(xiàn)不同系統(tǒng)、不同進(jìn)程間的溝通。

系統(tǒng)的各個(gè)層次內(nèi)都存在一些實(shí)體(Entity),實(shí)體是指任何能發(fā)送或接收信息的東西,可以是硬件、軟件進(jìn)程或一個(gè)應(yīng)用程序等,如圖2.2所示。不同系統(tǒng)的相同層次稱(chēng)為對(duì)等(Peer to Peer)層(或同等層)。位于不同系統(tǒng)對(duì)等層上的實(shí)體叫對(duì)等實(shí)體。通信只在對(duì)等層間進(jìn)行,非對(duì)等層之間不能互相“通信”,對(duì)等層間的通信是間接的、邏輯的、虛擬的,實(shí)際的物理通信只在最底層完成。對(duì)等層間的通信應(yīng)遵守的規(guī)則就是對(duì)等層協(xié)議,簡(jiǎn)稱(chēng)協(xié)議(Protocol),如第N層協(xié)議。在網(wǎng)絡(luò)協(xié)議的作用下,兩個(gè)對(duì)等層實(shí)體間的通信使得本層能夠向它相鄰的上一層提供支持,以便上一層完成自己的功能,這種支持就是服務(wù)。同一系統(tǒng)的相鄰層之間都有一個(gè)接口(Interface),接口定義了下層向上層提供的操作和服務(wù)。同一系統(tǒng)的相鄰兩層實(shí)體交換信息的地方稱(chēng)為服務(wù)訪(fǎng)問(wèn)點(diǎn)(Service Access Point, SAP),它是相鄰兩層實(shí)體的邏輯接口,即N層SAP就是N+1層可以訪(fǎng)問(wèn)N層的地方。每個(gè)SAP都有一個(gè)唯一的地址,用于服務(wù)用戶(hù)間建立連接。相鄰層之間要交換信息,對(duì)接口必須有一個(gè)一致遵守的規(guī)則或約定及接口協(xié)議。從一個(gè)層過(guò)渡到相鄰層所做的工作就是處理兩層之間的接口問(wèn)題,在任何兩相鄰層間都存在接口問(wèn)題。

圖2.2 層次結(jié)構(gòu)及相關(guān)概念

從通信角度看,各層所提供的服務(wù)有兩種形式,即無(wú)連接的服務(wù)和面向連接的服務(wù)。這里所說(shuō)的“連接”是指在同等層的兩個(gè)同等實(shí)體間所設(shè)定的邏輯通路。面向連接的服務(wù)是指在數(shù)據(jù)交換前必須先建立連接,數(shù)據(jù)交換結(jié)束后再拆除,這種服務(wù)是可靠的。無(wú)連接的服務(wù)是指兩實(shí)體間通信不需要先建立一個(gè)連接,通信所需資源也無(wú)須事先預(yù)留,而是在數(shù)據(jù)傳輸時(shí)動(dòng)態(tài)分配。無(wú)連接的服務(wù)不能防止信息的丟失、重復(fù)或亂序,這種服務(wù)是不可靠的,但靈活方便、速度快。

總之,在網(wǎng)絡(luò)體系結(jié)構(gòu)中,服務(wù)、功能和協(xié)議是完全不同的概念。服務(wù)是某層次對(duì)上一層的支持,屬于外觀(guān)的表象;功能是本層內(nèi)部的活動(dòng),是為了實(shí)現(xiàn)對(duì)外服務(wù)應(yīng)從事的工作;協(xié)議相當(dāng)于一種工具,層次“內(nèi)部”的功能和“對(duì)外”的服務(wù)都是在本層“協(xié)議”的支持下完成的。協(xié)議定義了網(wǎng)絡(luò)實(shí)體間發(fā)送和接收?qǐng)?bào)文的格式、順序以及當(dāng)傳送和接收消息時(shí)應(yīng)采取的行動(dòng)(三要素,即語(yǔ)義、語(yǔ)法和時(shí)序)。網(wǎng)絡(luò)中低層通過(guò)服務(wù)訪(fǎng)問(wèn)點(diǎn)向相鄰高層提供服務(wù),而高層則通過(guò)原語(yǔ)或過(guò)程調(diào)用低層的服務(wù)。

2.1.2 開(kāi)放系統(tǒng)互聯(lián)參考模型

網(wǎng)絡(luò)體系結(jié)構(gòu)的出現(xiàn)以及這種結(jié)構(gòu)的參考模型的制定,使計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展進(jìn)入高級(jí)階段,大大加速了網(wǎng)絡(luò)發(fā)展的步伐。1974年,IBM率先發(fā)布了它的網(wǎng)絡(luò)體系結(jié)構(gòu)(System Network Architecture, SNA),隨后又相繼出現(xiàn)了10多種分層網(wǎng)絡(luò)體系結(jié)構(gòu),如數(shù)字網(wǎng)絡(luò)體系結(jié)構(gòu)(DNA)、分布式計(jì)算機(jī)體系結(jié)構(gòu)(DCA)、傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)等。而這些網(wǎng)絡(luò)體系結(jié)構(gòu)所構(gòu)成的網(wǎng)絡(luò)是不能互聯(lián)互通的。為了促進(jìn)多廠(chǎng)家的國(guó)際合作,以及使網(wǎng)絡(luò)體系結(jié)構(gòu)標(biāo)準(zhǔn)化,1997年ISO專(zhuān)門(mén)成立了一個(gè)分委員會(huì)SC16來(lái)開(kāi)發(fā)一個(gè)異種計(jì)算機(jī)系統(tǒng)互聯(lián)網(wǎng)絡(luò)的國(guó)際標(biāo)準(zhǔn)。一年多過(guò)后,SC16基本完成了任務(wù),開(kāi)發(fā)了一個(gè)“開(kāi)放系統(tǒng)互聯(lián)參考模型”(The Reference Model of Open Systems Interconnection, OSI/RM)。1979年年底,SC16的上級(jí)技術(shù)委員會(huì)TC97對(duì)該模型進(jìn)行了修改。1983年,OSI參考模型正式得到了ISO和CCITT的批準(zhǔn),并分別以ISO 7498和X.200文件公布。“開(kāi)放系統(tǒng)互聯(lián)”的含義是任何兩個(gè)遵守OSI標(biāo)準(zhǔn)研制的系統(tǒng)是相互開(kāi)放的,可以進(jìn)行互聯(lián)。現(xiàn)在,OSI標(biāo)準(zhǔn)已被廣泛接受,成為指導(dǎo)網(wǎng)絡(luò)發(fā)展方向的標(biāo)準(zhǔn)。含有通信子網(wǎng)的OSI參考模型如圖2.3所示。

圖2.3 OSI參考模型

OSI作為計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)模型和開(kāi)發(fā)協(xié)議標(biāo)準(zhǔn)的框架,將計(jì)算機(jī)網(wǎng)絡(luò)分為7層,自下而上分別為物理層(Physical Layer)、數(shù)據(jù)鏈路層(Data Link Layer)、網(wǎng)絡(luò)層(Network Layer)、傳輸層(Transport Layer)、會(huì)話(huà)層(Session Layer)、表示層(Presentation Layer)和應(yīng)用層(Application Layer)。事實(shí)上,OSI模型僅僅給出了一個(gè)概念框架,它指出實(shí)現(xiàn)兩個(gè)“開(kāi)放系統(tǒng)”之間的通信包括哪些任務(wù)(功能)、由哪些協(xié)議來(lái)控制,而不是對(duì)具體實(shí)現(xiàn)的規(guī)定。網(wǎng)絡(luò)開(kāi)發(fā)者可以自行決定采用硬件或軟件來(lái)實(shí)現(xiàn)這些協(xié)議功能。

2.1.3 數(shù)據(jù)封裝與解封裝

回顧信件的郵遞過(guò)程,在寄信方,寄信人將寫(xiě)好的信裝入信封,填寫(xiě)完收件人、寄件人地址和姓名后,將信封投入郵箱或郵筒;郵遞員負(fù)責(zé)信的收集并將其交到郵局;郵局把信件分類(lèi)整理后形成包裹,交給運(yùn)輸部門(mén);運(yùn)輸部門(mén)再對(duì)這些包裹進(jìn)行整合,形成更大的包裹直接運(yùn)輸。在收信方,由運(yùn)輸部門(mén)把包裹送到郵局,郵局對(duì)包裹內(nèi)郵件進(jìn)行分揀后交由郵遞員分送到收件人手中。同地縱向?qū)哟伍g以特定的接口傳遞郵件,異地相同層次間以特定的規(guī)范交換信息。

網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)類(lèi)似于信件,數(shù)據(jù)在網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)的層次模型中傳輸?shù)倪^(guò)程類(lèi)似于信件的傳輸過(guò)程。如圖2.4所示,兩個(gè)計(jì)算機(jī)系統(tǒng)彼此通信實(shí)現(xiàn)某種應(yīng)用,兩系統(tǒng)應(yīng)用進(jìn)程間相互交換的數(shù)據(jù)稱(chēng)為消息,消息可以是一個(gè)文件、一串字符、一行命令等。對(duì)于應(yīng)用進(jìn)程來(lái)說(shuō),只要所需傳遞的消息能從一端成功到達(dá)另一端就意味著應(yīng)用活動(dòng)能正常運(yùn)行,至于消息是如何在網(wǎng)絡(luò)中傳輸?shù)鹊撞考?xì)節(jié),應(yīng)用進(jìn)程不必考慮,這些工作分別由其他不同層次負(fù)責(zé)處理。下面以圖2.4為例進(jìn)一步說(shuō)明消息在兩系統(tǒng)間的傳遞過(guò)程。

圖2.4 OSI的數(shù)據(jù)流動(dòng)過(guò)程

如圖2.4所示,發(fā)送端應(yīng)用進(jìn)程將用戶(hù)數(shù)據(jù)通過(guò)應(yīng)用層向下傳遞,每到一層系統(tǒng)都會(huì)為數(shù)據(jù)添加相應(yīng)的首部信息和尾部信息,通常將尾部信息也統(tǒng)稱(chēng)為首部(Header)。這些首部信息包含了實(shí)現(xiàn)這一層功能所需的必要信息,如控制信息、說(shuō)明信息、地址信息、差錯(cuò)校驗(yàn)碼等。這種在數(shù)據(jù)前添加首部信息的過(guò)程叫封裝,封裝了某層首部信息后形成的數(shù)據(jù)叫作該層的協(xié)議數(shù)據(jù)單元(Protocol Data Unit, PDU)。傳輸層及以下各層的PDU還有各自特定的名稱(chēng),傳輸層的PDU稱(chēng)為段(Segment);網(wǎng)絡(luò)層的PDU又叫分組/包(Packet);數(shù)據(jù)鏈路層的PDU又叫幀(Frame),物理層的PDU為比特(bit)。每層的協(xié)議數(shù)據(jù)單元又作為其下層的數(shù)據(jù)部分由下層接收并封裝。這樣自上而下逐層封裝,最后數(shù)據(jù)以比特流的形式從物理層發(fā)出。接收端從物理層接收到比特流向上逐層傳遞,每一層都從由下層傳來(lái)的數(shù)據(jù)上取出屬于本層的首部信息,數(shù)據(jù)部分繼續(xù)向上層提交。這種從由下層傳來(lái)的數(shù)據(jù)上取出屬于本層的首部信息的過(guò)程叫解封裝。這樣自下而上逐層解封裝并向上層提交,直到用戶(hù)數(shù)據(jù)還原由接收端的應(yīng)用進(jìn)程接收。

雖然應(yīng)用進(jìn)程的數(shù)據(jù)要經(jīng)過(guò)圖2.4所示過(guò)程才能送到對(duì)方進(jìn)程,但這些傳輸對(duì)于用戶(hù)來(lái)說(shuō)是感覺(jué)不到的,就像應(yīng)用進(jìn)程間直接傳遞數(shù)據(jù)一樣。這樣在邏輯上形成了介于源進(jìn)程和目的進(jìn)程間的虛擬通信路徑或邏輯信道,同樣地,其他層對(duì)等實(shí)體間的通信也是這樣。總之,對(duì)等實(shí)體間實(shí)現(xiàn)的是虛擬的邏輯上的通信,而實(shí)際的通信是在最底層完成的。

主站蜘蛛池模板: 东海县| 横山县| 宁远县| 汉川市| 丰宁| 南召县| 高阳县| 瑞金市| 新乡县| 临夏市| 周至县| 宁武县| 余干县| 九龙坡区| 西吉县| 抚顺县| 通化县| 涡阳县| 英山县| 晋江市| 通许县| 齐河县| 建瓯市| 静海县| 大宁县| 寿宁县| 安国市| 华蓥市| 濮阳县| 辽阳市| 江油市| 博爱县| 宁晋县| 汤阴县| 镇巴县| 林甸县| 咸阳市| 闸北区| 日喀则市| 朝阳县| 庄浪县|