摘要:
計算機網絡體系結構標准的制定使得兩台計算機可以像兩個知心朋友那樣可以互相准確理解對方的意思並做出優雅的回應。本文首先概述了計算機網絡體系結構的提出動機,並結合日常生活中的郵政系統介紹了設計的理念,並給出了相關的基本概念和標准。進一步地。我們着重概述了計算機網絡體系結構的分層原理及其最重要的組成部分——協議,使得讀者可以對計算網路體系結構有一個全新的、系統的認識。
版權聲明與致謝:
本文原創作者:書呆子Rico
作者博客地址:http://blog.csdn.net/justloveyou_/
本文正使用的大部分插圖均來自於課件《計算機網絡體系結構》,而且對於當中部分插圖筆者做了進一步的改動,該課件可以在我的CSDN上下載到,其鏈接為《計算機網絡體系結構》。在此,我們感謝這份課件的制作者及其傳播者,感謝他們的無私分享。
友情提示:
為了更好地了解計算機網絡體系結構,筆者以兩篇博客的篇幅來介紹這個計算機網絡中最為重要的知識點,即:《計算機網絡體系結構綜述(上)》 和 《計算機網絡體系結構綜述(下)》。在本文,我們概述了計算機網絡體系結構的提出動機,並結合日常生活中的郵政系統介紹了設計的理念,並給出了相關的基本概念和標准,並着重介紹了計算機網絡體系結構的分層原理及協議的內涵。在此基礎上。本篇的姊妹篇《計算機網絡體系結構綜述(下)》詳盡地介紹了兩種典型的計算機網絡系統結構標准:OSI七層模型與TCP/IP四層模型。
一. 為什么須要計算機網絡體系結構?
眾所周知。計算機網絡是個非常復雜的系統。比方,連接在網絡上的兩台計算機須要進行通信時,因為計算機網絡的 復雜性 和 異質性,須要考慮非常多復雜的因素,比方:
(1). 這兩台計算機之間必須有一條傳送數據的通路。
(2). 告訴網絡怎樣識別接收數據的計算機;
(3). 發起通信的計算機必須保證要傳送的數據能在這條通路上正確發送和接收;
(4). 對出現的各種差錯和意外事故。如數據傳送錯誤、網絡中某個節點交換機出現問題等問題。應該有可靠完善的措施保證對方計算機終於能正確收到數據。
計算機網絡體系結構標准的制定正是為了解決這些問題從而讓兩台計算機(網絡設備)可以像兩個知心朋友那樣可以互相准確理解對方的意思並做出優雅的回應。也就是說,要想完畢這樣的網絡通信就必須保證相互通信的這兩個計算機系統達成 高度默契。
其實。在網絡通信領域,兩台計算機(網絡設備)之間的通信並不像人與人之間的交流那樣自然天然,這樣的 計算機間高度默契的交流(通信) 背后須要十分復雜、完備的網絡體系結構作為支撐。那么,用什么方法才干合理地組織網絡的結構,以保證其具有結構清晰、設計與實現簡化、便於更新和維護、較強的獨立性和適應性,從而使網絡設備之間具有這樣的 “高度默契” 呢?
答案是分而治之,更進一步地說就是分層思想。
二. 計算機網絡體系結構設計基本思想
分而治之的思想 正好可以解決上面提到的這個復雜的問題。也就是說,我們可以將這個龐大而復雜的問題轉化為若干較小的、easy處理的、單一的局部問題,然后在不同層次上予以解決,這也就是我們所熟悉的 分層思想 。在計算機網絡體系結構中,分層思想的內涵就是: 每層在依賴自己下層所提供的服務的基礎上。通過自身內部功能實現一種特定的服務。
1、分層思想在日常生活中的應用
在我們的日常生活中有非常多分層思想的應用,比方郵政系統、銀行系統等。我們就以郵政系統的組織結構作為樣例進行說明:

從上圖我們知可以看出,用戶和用戶之間的通信依賴於下層的服務,可是他們並不須要關心快遞、運輸等細節,也就是說。寄信者僅僅需將寫好的信交給快遞員而收信者僅僅需從快遞員手中查收信件就可以。
相似地。快遞員也僅僅須要從寄信人手中拿到信件並交給分檢員或將信件從分檢員手中拿走並交給收信人就可以。至於分檢員為何要把這份信交給他進行投遞(其實。每一個快遞員會負責某個片區,分檢員依據收信人地址將信件分發給不同的快遞員),他不須要關心也不是必需關心。顯然,在這個郵政系統中,各個角色(用戶、快遞員…)在功能上相互獨立卻又能協調合作達成一種 “高度默契”,這在非常大程度上得益於分層思想的理念和應用。下圖更直觀地體現了郵政系統的分層思想:

此外。我們日常使用的操作系統也是分層思想的實踐者。
實際上。一般而言。對於一個龐大而又復雜的系統而言(比方銀行系統、郵政系統等),其必然存在着對分層思想的應用。
2、分層思想的長處
(1). 耦合度低(獨立性強)
上層僅僅需通過下層為上層提供的接口來使用下層所實現的服務。而不須要關心下層的詳細實現。
也就是說,下層對上層而言就是具有一定功能的黑箱。
(2). 適應性強
僅僅要每層為上層提供的服務和接口不變,每層的實現細節可以隨意改變。
(3). 易於實現和維護
把復雜的系統分解成若干個涉及范圍小且功能簡單的子單元,從而使得系統結構清晰。實現、調試和維護都變得簡單和easy。也就是說。對於設計/開發者而言。這樣的方法使設計/開發者可以專心設計和開發他們所關心的功能模塊;對於調試/維護人員而言,這樣的方法也方便調試/維護人員去處理他們所負責的功能模塊。
三. 計算機網絡體系結構的概念與標准
如你所料,計算機網絡體系結構也採用了分層的思想。
那么,既然計算機網絡體系結構的設計採用的是分層思想,那么它就必須得解決下面幾個問題:
(1). 網絡體系結構應該具有哪些層次。每一個層次又負責哪些功能呢? (分層與功能)
(2). 各個層次之間的關系是怎樣的,它們又是怎樣進行交互的呢? (服務與接口)
(3). 要想確保通信的兩方可以達成高度默契,它們又須要遵循哪些規則呢? (協議)
1、計算機網絡體系結構的概念
依據上面的幾個問題,計算機網絡體系結構必須包含三個內容。即分層結構與每層的功能,服務與層間接口 和 協議。
所以。計算機網絡體系結構的定義為:
在計算機網絡中,層、層間接口及協議的集合被稱為計算機網絡體系結構。
2、計算機網絡體系結構的標准
眼下,由國際化標准組織ISO制定的網絡體系結構國際標准是 OSI七層模型,但實際中應用最廣泛的是 TCP/IP體系結構。換句話說,OSI七層模型僅僅是理論上的、官方制定的國際標准,而TCP/IP體系結構才是其實的國際標准。
這看起來是不可理喻的,但這卻是實際存在的,是一些歷史原因造成的,無疑這些原因又是復雜的。筆者在此處略加介紹,以慰讀者。OSI標准的制定者以專家、學者為主,他們缺乏實際經驗和商業驅動力,而且OSI標准自身執行效率也不怎么好。與此同一時候,因為Inernet在全世界覆蓋了相當大的范圍,而且占據市場的標准是TCP/IP體系結構。因此導致OSI標准沒有市場背景,也就僅僅是理論上的成果,並沒有過多地應用於實踐。
四. 計算機網絡體系結構的分層原理
1、基本概念
在介紹網絡體系結構的分層原理前,我們有必要先了解下面幾個基本概念,其相應關系例如以下圖所看到的:

- 實體: 不論什么可以發送和接收信息的軟硬件進程;
- 對等層: 兩個不同系統的同一層次。
- 對等實體: 分別位於不同系統對等層的兩個實體;
- 接口: 上層使用下層所提供的功能的方式。
- 服務: 某一層及其下面各層的所完畢的功能,通過接口提供給相鄰的上層;
- 協議: 通信兩方在通信過程中必須遵循的規則。
2、網絡體系結構模型

我們在網絡中的不論什么一個系統都是依照上圖中的層次結構模型來組織的,該模型具有下面特點:
同一網絡中。隨意兩個端系統必須具有相同的層次;
每層使用其下層提供的服務,並向其上層提供服務;
通信僅僅在對等層間進行,當然這里所指的通信是間接的、邏輯的、虛擬的。非對等層之間不能互相“通信”。
實際的物理通信僅僅在最底層完畢。
Pn代表第n層的協議。即第n層對等實體間通信時必須遵循的規則或約定。
3、對等層通信的實質
在邏輯上,網絡分層體系結構原理同意不同主機的對等實體進行通信。但禁止不同主機非對等實體間進行直接通信;在物理上。每一層必須依靠下層提供的服務來與還有一台主機的對等層通信。這是 對等層通信的實質 。也就是說,模型中的上層(第n+1層)使用下層(第n層)所提供的服務。是下層(第n層)服務消費者。而模型中的下層(第n層)向上層(第n+1層)提供服務。是上層(第n+1層)的服務生產者(提供者)。
進一步地。源進程傳送消息到目標進程的過程是這樣子的: 首先,消息送到源系統的最高層,緊接着消息從最高層開始自上而下逐層封裝 。最后該消息經物理線路傳輸到目標系統。而當目標系統收到信息后,其會將該信息 自下而上逐層處理並拆封,最后由最高層將消息提交給目標進程。這個處理過程與郵政通信過程相似。例如以下圖所看到的:

4、協議
正如上圖所看到的。發信人和收信人對信件內容的共識就是二者之間的協議,正是因為這樣的協議的存在使得他們都能讀懂信的內容並理解對方的意思,達成默契;相似地,寄件郵局與收件郵局也能對信件的傳遞達成共識。也就是說,有一套規則來保證郵局之間的“ 默契。二者間的這樣的默契要么能把信件完善無損地送給收信人,要么可以把信件完善無損地退給發信人;相同地。運輸系統也能對信件怎樣運輸達成共識,而正是因為這樣的共識,信件才干到達指定郵局也就是說,對等實體間的這樣的默契(共識)就是協議。
相同地。在計算機網絡體系結構中,不同層須要完畢不同的功能或者提供不同的服務。比方。計算機網絡體系結構應該提供相應的差錯控制,從而使對等層的通信更加可靠;除此之外,還應該提供流量控制以控制發送端的發送速率以便接收端能來得及接收消息。分段和重裝機制也非常必要,就是說發送端在發送消息時應該將數據塊分成更小的單位以便傳輸,而接收端可以准確地將這些數據塊又一次組合並還原數據的原貌。 通信會話復用同一條低層連接可以提高效率;建立連接和釋放連接機制是不同主機通信的保障,等等。上面列舉的這些功能(服務)實際上都是由計算機體系結構中詳細的某一層來實現的。更詳細地說,主要是通過每層相應的通信協議來實現這些功能的。
也就是說,計算機間網絡中全部的通信活動都是由協議控制的。也正是各種各樣的協議保證了計算機間高度默契的通信。下圖對照了人相互交流的協議和計算機間相互通信的協議:
五. 通信協議
上一節的最后一部分非常形象地介紹了協議的內涵。使我們對網絡通信協議有了一個感性的理解。
實際上,人類在相互交流過程中也遵守某種“協議”。僅僅只是這樣的協議是一種文化而已。其與計算機間相互通信的協議對照方下:

1、協議的概念
通信協議定義了 網絡實體間發送報文和接收報文的格式、順序以及當傳送和接收消息時應採取的行動(規則)。這個定義指明了通信協議的三要素:
- 語義
語義是指對協議中各協議元素的含義的解釋。比如:在HDLC協議中,標志Flag(7EH)表示報文的開始和結束;在BSC協議中,SOH(01H)表示報文的開始,STX(02H)表示報文正文的開始,ETX(03H)表示報文正文的結束。
語法
語法是指協議元素與數據的組合格式,也就是 報文格式。例如以下圖所看到的:
- 時序
時序是指在通信過程中,通信兩方操作的執行順序與規則。如本節開頭的圖示。
協議三要素之間的關系
計算機間通信的本質就在於信息報文的交換,而信息報文也就是我們在下面提到的協議數據單元(PDU)。實際上,語法規定了PDU的格式。而在此基礎上,語義賦予了PDU的特定內涵。時序通過控制這樣的具有特定語義的報文來實現計算機間的通信,也就是說,時序是通信規則的體現。如今我們類比一下人類的對話來理解協議三要素之間的內在聯系。如果這樣一個場景。Rico在和Livia交談。Rico說:“Livia。早上好啊~”,這時Livia會莞爾一笑並答道:“早上好,Rico~”。
對於這段會話,語法就是這些漢字/語句的組織規則。正是因為這樣的組織規則這些簡單漢字的疊加才有了一定的語義,而時序保證了你問我答的這樣的會話(交流)的進行,更進一步地,時序保證了通信各方對PDU語義的理解並做出恰當的回應。
總的來說。語法是語義的載體,而時序又是對語義的有序組織。正是基於這樣的關系,計算機在通信時才得以保持高度默契。
實際上。在網絡體系結構中。每層可能會有若干個協議,但一個協議僅僅隸屬於一個層次。在實現方式上,協議可以由軟件或硬件來實現。比方,網絡通信協議軟件、網絡驅動程序,網絡硬件等。
經常使用協議組有:TCP/IP(Windows、Unix、Linux、…)、NetBEUI(Windows)、IPX/SPX(NetWare、Windows)等。
2、協議數據單元(PDU)
計算機網絡體系結構中,對等層之間交換的信息報文統稱為 協議數據單元(Protocol Data Unit,PDU)。PDU由 協議控制信息(協議頭) 和 數據(SDU) 組成,例如以下圖所看到的。

當中,協議頭部中含有完畢傳輸數據所需的控制信息。比方地址、序號、長度、分段標志、差錯控制信息等。
傳輸層及下面各層的PDU均有各自特定的名稱:
傳輸層 —— 段(Segment)
網絡層 —— 分組/包(Packet)
數據鏈路層 —— 幀(Frame)
物理層 —— 比特(Bit)
(1). PDU的封裝
在計算機網絡體系結構中,下層把上層的PDU作為本層的數據加以封裝,然后增加本層的協議頭部(和尾部)形成本層的PDU。例如以下圖所看到的。在這里,封裝就是在數據前面加上特定的協議頭部。因此,數據在源站自上而下遞交的過程實際上就是不斷封裝的過程,而到達目的地后自下而上遞交的過程就是不斷拆封的過程,例如以下圖所看到的。這個過程相似發送信件的過程,數據在傳輸時。其外面實際上要被包封多層“信封”。
在目的站,某一層僅僅能識別由源站對等層封裝的“信封”。而對於被封裝在“信封”內部的“數據”僅僅是拆封后將其提交給上層,本層不作不論什么處理。
特別須要注意的是,每一層僅僅處理本層的協議頭部!

(2). PDU封裝實例
下圖演示了PDU在TCP/IP協議組的封裝過程:

六. 小結
計算機網絡體系結構標准的制定使得兩台計算機可以像兩個知心朋友那樣可以互相准確理解對方的意思並做出優雅的回應。
本文首先概述了計算機網絡體系結構的提出動機。並結合日常生活中的郵政系統介紹了設計的理念,並給出了相關的基本概念和標准。進一步地,我們着重概述了計算機網絡體系結構的分層原理及其最重要的組成部分——協議。使得讀者可以對計算網路體系結構有一個全新的、系統的認識。
七. 很多其它
很多其它關於OSI七層參考體系結構和TCP/IP四層協議結構及每種體系結構中的各層的任務、功能、協議及與其它相似層的差別等差別的介紹,請讀者移步我的博客《計算機網絡體系結構綜述(下)》。
引用
