- 計算機網絡原理與應用(第2版)
- 王艷淼 袁禮 王黎主編
- 5030字
- 2020-06-30 17:11:08
2.1 網絡體系結構概述
網絡及網絡通信都很復雜,為了能夠使分布在不同地理位置且功能相對獨立的計算機之間組成網絡,并實現網絡通信和資源共享,計算機網絡系統需要涉及和解決許多復雜的問題,包括信號傳輸、差錯控制、尋址、數據交換和提供用戶接口等。計算機網絡體系結構就是為簡化這些問題的研究、設計與實現而抽象出來的一種結構模型,其目的是劃分網絡系統的基本組成,說明各組成部分實現的功能,以及各組成部分之間如何相互作用并最終實現通信的。網絡體系結構通常采用層次化結構定義計算機網絡的協議、功能和提供的服務。
2.1.1 分層結構的意義
1.分層的作用
計算機網絡的基本設計思想是把一個復雜的網絡問題分解成若干個子問題,每一個子問題分別由相應的功能模塊來解決與實現。這種分而治之的層次化設計方法實際上在很多領域都有應用,如程序設計、郵政系統、銀行系統和物流系統等。為了更形象地理解分層,以一個郵政系統的實現過程為例加以說明。
回顧日常生活中物品或信件的郵寄過程,對于郵寄人來說,只需填好表單并支付郵資即可,具體的郵遞過程可放心交由郵政系統來處理。假設北京的某客戶要寄信給上海的某個客戶,整個信件的郵遞過程大致分成幾個步驟,每一個步驟對應于圖2.1中的一個層次,每個層次完成一項主要工作。

圖2.1 信件郵遞的分層流程
寄信方的主要工作如下。
①客戶按雙方都理解的語言、格式等寫好信,按郵局要求將信裝入信封后投寄到當地分局的信箱或郵筒。
②北京總局收集各分局的郵件,按相應的規則如地址、郵寄類別等對郵件進行分類整理,形成不同的分類包裹。
③北京總局將處理后的分類包裹交給運輸部門運往各地。
收信方的主要工作如下。
①上海總局從運輸部門統一接收其他各地運往本地的各種分類包裹。
②上海總局將收到的各類郵包拆開分揀,將信件分別送到當地各分局的郵箱或郵筒。
③客戶從當地各分局的郵箱或郵筒中取信件。
可以從以下兩個方面分析層次結構的特點。
1)各個層次的縱向關系(本方各層次間的關系)
①作為寄信人和收信人,兩個客戶不需要關心郵件的郵遞過程細節,如信件是由哪個郵遞員收集、通過哪種交通工具運輸、走什么樣的路線、經過什么樣的城市中轉等。類似地,第二層雙方郵局對郵件的分揀也不用了解該層以下貨物的運輸調度等工作細節,即縱向關系的特點是下層能夠對上層隱藏一些工作細節。
②對于第二層的郵局,其工作基礎就是信封,按照信封上的郵寄地址、信件的種類、服務方式進行分揀和包裝。信封所攜帶的信息就是連接第一層和第二層的接口。由此得出結論,層次模型的上、下層應定義接口,以實現相對獨立的工作銜接。
③如果最底層運輸部門的工作發生了些許變化,如交通工具出現故障等,這些變化并不影響其他層工作的正常運行,只不過可能會影響其他層的工作進度。由此得層次結構的另一特點就是,當某一層的功能發生改變時,只要上下層的接口不變,便不會影響其他層的正常工作。
2)各個層次的橫向關系(雙方相同層次之間的關系)
首先分析圖2.1中最上層寄信人和收信人的關系。無論郵件封入哪個包裹、由哪種交通工具走哪條路線到達目的地,也只有收件人才能打開、閱讀并理解信件的內容。寄信人用什么語言、文體、格式來寫信,收信方是否回信、什么時間回、回信的方式等是他們兩人之間的事情,由他們的關系來決定。這種關系決定了雙方在寄信這件事上的操作規程,直接決定了他們寄信和收信的操作。類似地,發貨層和收貨層、寄信方和收信方都按照一定的調度規則發貨和收貨,他們的關系是建立在對貨物如何運輸的共識之上的。由此得出結論:不同系統相同層間相互遵循一定的約定,這一約定直接影響兩層實體間的操作規范。
以上郵遞系統層次結構中得出的某些結論同樣也適用于描述網絡層次結構。
層次結構方法的優點如下。
①獨立性強。層間耦合程度低,上層只需了解下層能通過層間接口提供什么服務。
②適應性強。只要服務和接口不變,每層的實現方法可任意改變。
③易于實現和維護。把復雜的系統分解成若干個涉及范圍小、功能簡單的子單元,使系統的結構清晰,實現、調試和維護變得簡單和容易,這樣設計人員能專心設計和開發所關心的功能模塊。
2.網絡體系結構及相關概念
網絡體系結構(Network Architecture, NA)是計算機網絡的分層、各層協議、功能和層間接口的集合。不同的計算機網絡具有不同的體系結構,其層的數量、各層的名稱、內容和功能以及各相鄰層之間的接口也不一樣。但在任何網絡中,每一層都是為了向其相鄰上層提供服務而設置的,而且每一層都對上層屏蔽如何實現協議的具體細節。
網絡體系結構與具體的物理實現無關。網絡體系結構只精確定義了計算機網絡中的邏輯構成及所完成的功能,實際上是一組設計原則。網絡體系結構是一個抽象的概念,對這些功能是由何種硬件和軟件實現并未加以說明。因此網絡體系結構和網絡的實現是兩回事,前者是抽象的,僅告訴網絡設計者應“做什么”,而不是“怎么做”;后者是具體的,是需要硬件和軟件來完成的。
在計算機環境里,兩個端點的兩個進程之間的通信過程類似于信件的投遞過程。
網絡的層次結構方法要解決的問題如下。
①網絡應該具有哪些層次?每一層的功能是什么?(分層與功能)
②各層之間的關系是怎樣的?它們如何進行交互?(服務與接口)
③通信雙方的數據傳輸要遵循哪些規則?(協議)
為了降低計算機網絡設計的復雜程度,把計算機網絡的功能分成若干層,規定每一層所必須完成的功能,并對其上層提供支持;每一層建立在其下層之上,即一層功能的實現以其下層提供的服務為基礎。整個層次結構中各個層次相互獨立,每一層的實現細節對其上層是完全屏蔽的,每一層可以通過層間接口調用其下層的服務,而不需要了解下層服務是怎樣實現的。
同一系統體系結構中的各個相鄰層間的關系是:下層為上層提供服務,上層利用下層提供的服務完成本層的功能,同時向更上層提供服務。上層可看作是下層的用戶,下層是上層的服務提供者。系統的頂層執行用戶要求做的工作,直接面向用戶,可以是用戶編寫的程序或發出的命令。除頂層外,各層都能支持其上一層的實體進行工作,這就是服務。系統的底層直接與物理介質接觸,通過物理介質來實現不同系統、不同進程間的溝通。
系統的各個層次內都存在一些實體(Entity),實體是指任何能發送或接收信息的東西,可以是硬件、軟件進程或一個應用程序等,如圖2.2所示。不同系統的相同層次稱為對等(Peer to Peer)層(或同等層)。位于不同系統對等層上的實體叫對等實體。通信只在對等層間進行,非對等層之間不能互相“通信”,對等層間的通信是間接的、邏輯的、虛擬的,實際的物理通信只在最底層完成。對等層間的通信應遵守的規則就是對等層協議,簡稱協議(Protocol),如第N層協議。在網絡協議的作用下,兩個對等層實體間的通信使得本層能夠向它相鄰的上一層提供支持,以便上一層完成自己的功能,這種支持就是服務。同一系統的相鄰層之間都有一個接口(Interface),接口定義了下層向上層提供的操作和服務。同一系統的相鄰兩層實體交換信息的地方稱為服務訪問點(Service Access Point, SAP),它是相鄰兩層實體的邏輯接口,即N層SAP就是N+1層可以訪問N層的地方。每個SAP都有一個唯一的地址,用于服務用戶間建立連接。相鄰層之間要交換信息,對接口必須有一個一致遵守的規則或約定及接口協議。從一個層過渡到相鄰層所做的工作就是處理兩層之間的接口問題,在任何兩相鄰層間都存在接口問題。

圖2.2 層次結構及相關概念
從通信角度看,各層所提供的服務有兩種形式,即無連接的服務和面向連接的服務。這里所說的“連接”是指在同等層的兩個同等實體間所設定的邏輯通路。面向連接的服務是指在數據交換前必須先建立連接,數據交換結束后再拆除,這種服務是可靠的。無連接的服務是指兩實體間通信不需要先建立一個連接,通信所需資源也無須事先預留,而是在數據傳輸時動態分配。無連接的服務不能防止信息的丟失、重復或亂序,這種服務是不可靠的,但靈活方便、速度快。
總之,在網絡體系結構中,服務、功能和協議是完全不同的概念。服務是某層次對上一層的支持,屬于外觀的表象;功能是本層內部的活動,是為了實現對外服務應從事的工作;協議相當于一種工具,層次“內部”的功能和“對外”的服務都是在本層“協議”的支持下完成的。協議定義了網絡實體間發送和接收報文的格式、順序以及當傳送和接收消息時應采取的行動(三要素,即語義、語法和時序)。網絡中低層通過服務訪問點向相鄰高層提供服務,而高層則通過原語或過程調用低層的服務。
2.1.2 開放系統互聯參考模型
網絡體系結構的出現以及這種結構的參考模型的制定,使計算機網絡的發展進入高級階段,大大加速了網絡發展的步伐。1974年,IBM率先發布了它的網絡體系結構(System Network Architecture, SNA),隨后又相繼出現了10多種分層網絡體系結構,如數字網絡體系結構(DNA)、分布式計算機體系結構(DCA)、傳輸控制協議/網際協議(TCP/IP)等。而這些網絡體系結構所構成的網絡是不能互聯互通的。為了促進多廠家的國際合作,以及使網絡體系結構標準化,1997年ISO專門成立了一個分委員會SC16來開發一個異種計算機系統互聯網絡的國際標準。一年多過后,SC16基本完成了任務,開發了一個“開放系統互聯參考模型”(The Reference Model of Open Systems Interconnection, OSI/RM)。1979年年底,SC16的上級技術委員會TC97對該模型進行了修改。1983年,OSI參考模型正式得到了ISO和CCITT的批準,并分別以ISO 7498和X.200文件公布。“開放系統互聯”的含義是任何兩個遵守OSI標準研制的系統是相互開放的,可以進行互聯。現在,OSI標準已被廣泛接受,成為指導網絡發展方向的標準。含有通信子網的OSI參考模型如圖2.3所示。

圖2.3 OSI參考模型
OSI作為計算機網絡體系結構模型和開發協議標準的框架,將計算機網絡分為7層,自下而上分別為物理層(Physical Layer)、數據鏈路層(Data Link Layer)、網絡層(Network Layer)、傳輸層(Transport Layer)、會話層(Session Layer)、表示層(Presentation Layer)和應用層(Application Layer)。事實上,OSI模型僅僅給出了一個概念框架,它指出實現兩個“開放系統”之間的通信包括哪些任務(功能)、由哪些協議來控制,而不是對具體實現的規定。網絡開發者可以自行決定采用硬件或軟件來實現這些協議功能。
2.1.3 數據封裝與解封裝
回顧信件的郵遞過程,在寄信方,寄信人將寫好的信裝入信封,填寫完收件人、寄件人地址和姓名后,將信封投入郵箱或郵筒;郵遞員負責信的收集并將其交到郵局;郵局把信件分類整理后形成包裹,交給運輸部門;運輸部門再對這些包裹進行整合,形成更大的包裹直接運輸。在收信方,由運輸部門把包裹送到郵局,郵局對包裹內郵件進行分揀后交由郵遞員分送到收件人手中。同地縱向層次間以特定的接口傳遞郵件,異地相同層次間以特定的規范交換信息。
網絡中傳輸的數據類似于信件,數據在網絡系統結構的層次模型中傳輸的過程類似于信件的傳輸過程。如圖2.4所示,兩個計算機系統彼此通信實現某種應用,兩系統應用進程間相互交換的數據稱為消息,消息可以是一個文件、一串字符、一行命令等。對于應用進程來說,只要所需傳遞的消息能從一端成功到達另一端就意味著應用活動能正常運行,至于消息是如何在網絡中傳輸等底部細節,應用進程不必考慮,這些工作分別由其他不同層次負責處理。下面以圖2.4為例進一步說明消息在兩系統間的傳遞過程。

圖2.4 OSI的數據流動過程
如圖2.4所示,發送端應用進程將用戶數據通過應用層向下傳遞,每到一層系統都會為數據添加相應的首部信息和尾部信息,通常將尾部信息也統稱為首部(Header)。這些首部信息包含了實現這一層功能所需的必要信息,如控制信息、說明信息、地址信息、差錯校驗碼等。這種在數據前添加首部信息的過程叫封裝,封裝了某層首部信息后形成的數據叫作該層的協議數據單元(Protocol Data Unit, PDU)。傳輸層及以下各層的PDU還有各自特定的名稱,傳輸層的PDU稱為段(Segment);網絡層的PDU又叫分組/包(Packet);數據鏈路層的PDU又叫幀(Frame),物理層的PDU為比特(bit)。每層的協議數據單元又作為其下層的數據部分由下層接收并封裝。這樣自上而下逐層封裝,最后數據以比特流的形式從物理層發出。接收端從物理層接收到比特流向上逐層傳遞,每一層都從由下層傳來的數據上取出屬于本層的首部信息,數據部分繼續向上層提交。這種從由下層傳來的數據上取出屬于本層的首部信息的過程叫解封裝。這樣自下而上逐層解封裝并向上層提交,直到用戶數據還原由接收端的應用進程接收。
雖然應用進程的數據要經過圖2.4所示過程才能送到對方進程,但這些傳輸對于用戶來說是感覺不到的,就像應用進程間直接傳遞數據一樣。這樣在邏輯上形成了介于源進程和目的進程間的虛擬通信路徑或邏輯信道,同樣地,其他層對等實體間的通信也是這樣。總之,對等實體間實現的是虛擬的邏輯上的通信,而實際的通信是在最底層完成的。
- 物聯網智慧安監技術
- 物聯網安全:理論、實踐與創新
- 網絡故障現場處理實踐(第4版)
- OpenLayers Cookbook
- 計算機網絡與數據通信
- 農產品物聯網研究與應用
- Hands-On Full Stack Development with Spring Boot 2 and React(Second Edition)
- PLC、現場總線及工業網絡實用技術速成
- Mastering TypeScript 3
- 圖解手機元器件維修技巧
- 網絡基礎與網絡管理項目化教程
- Unity Artificial Intelligence Programming
- 4G小基站系統原理、組網及應用
- 移動物聯網:商業模式+案例分析+應用實戰
- bash網絡安全運維