1. 程式人生 > >計算機網路體系結構綜述(上)【轉】

計算機網路體系結構綜述(上)【轉】

(轉自:https://blog.csdn.net/justloveyou_/article/details/69611328

摘要:

  計算機網路體系結構標準的制定使得兩臺計算機能夠像兩個知心朋友那樣能夠互相準確理解對方的意思並做出優雅的迴應。本文首先概述了計算機網路體系結構的提出動機,並結合日常生活中的郵政系統介紹了設計的理念,並給出了相關的基本概念和標準。進一步地,我們著重概述了計算機網路體系結構的分層原理及其最重要的組成部分——協議,使得讀者能夠對計算網路體系結構有一個全新的、系統的認識。


版權宣告與致謝:

  本文原創作者:書呆子Rico
  作者部落格地址:http://blog.csdn.net/justloveyou_/

  本文正使用的大部分插圖均來自於課件《計算機網路體系結構》,並且對於其中部分插圖筆者做了進一步的修改,該課件可以在我的CSDN上下載到,其連結為《計算機網路體系結構》。在此,我們感謝這份課件的製作者及其傳播者,感謝他們的無私分享。


友情提示:

  為了更好地瞭解計算機網路體系結構,筆者以兩篇部落格的篇幅來介紹這個計算機網路中最為重要的知識點,即:《計算機網路體系結構綜述(上)》《計算機網路體系結構綜述(下)》。在本文,我們概述了計算機網路體系結構的提出動機,並結合日常生活中的郵政系統介紹了設計的理念,並給出了相關的基本概念和標準,並著重介紹了計算機網路體系結構的分層原理及協議的內涵。在此基礎上,本篇的姊妹篇

《計算機網路體系結構綜述(下)》詳盡地介紹了兩種典型的計算機網路系統結構標準:OSI七層模型與TCP/IP四層模型。


一. 為什麼需要計算機網路體系結構?

  眾所周知,計算機網路是個非常複雜的系統。比如,連線在網路上的兩臺計算機需要進行通訊時,由於計算機網路的 複雜性 異質性,需要考慮很多複雜的因素,比如:

  (1). 這兩臺計算機之間必須有一條傳送資料的通路;
  (2). 告訴網路如何識別接收資料的計算機;
  (3). 發起通訊的計算機必須保證要傳送的資料能在這條通路上正確傳送和接收;
  (4). 對出現的各種差錯和意外事故,如資料傳送錯誤、網路中某個節點交換機出現故障等問題,應該有可靠完善的措施保證對方計算機最終能正確收到資料。

  計算機網路體系結構標準的制定正是為了解決這些問題從而讓兩臺計算機(網路裝置)能夠像兩個知心朋友那樣能夠互相準確理解對方的意思並做出優雅的迴應。也就是說,要想完成這種網路通訊就必須保證相互通訊的這兩個計算機系統達成 高度默契。事實上,在網路通訊領域,兩臺計算機(網路裝置)之間的通訊並不像人與人之間的交流那樣自然天然,這種 計算機間高度默契的交流(通訊) 背後需要十分複雜、完備的網路體系結構作為支撐。那麼,用什麼方法才能合理地組織網路的結構,以保證其具有結構清晰、設計與實現簡化、便於更新和維護、較強的獨立性和適應性,從而使網路裝置之間具有這種 “高度默契” 呢?

  答案是分而治之,更進一步地說就是分層思想。


二. 計算機網路體系結構設計基本思想

  分而治之的思想 正好可以解決上面提到的這個複雜的問題。也就是說,我們可以將這個龐大而複雜的問題轉化為若干較小的、容易處理的、單一的區域性問題,然後在不同層次上予以解決,這也就是我們所熟悉的 分層思想 。在計算機網路體系結構中,分層思想的內涵就是: 每層在依賴自己下層所提供的服務的基礎上,通過自身內部功能實現一種特定的服務。


1、分層思想在日常生活中的應用

  在我們的日常生活中有很多分層思想的應用,比如郵政系統、銀行系統等。我們就以郵政系統的組織結構作為例子進行說明:

            郵政系統1.png-29.5kB

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

            郵政系統2.png-49.8kB

  此外,我們日常使用的作業系統也是分層思想的實踐者。實際上,一般而言,對於一個龐大而又複雜的系統而言(比如銀行系統、郵政系統等),其必定存在著對分層思想的應用。


2、分層思想的優點

 (1). 耦合度低(獨立性強)
  上層只需通過下層為上層提供的介面來使用下層所實現的服務,而不需要關心下層的具體實現。也就是說,下層對上層而言就是具有一定功能的黑箱。

 (2). 適應性強
  只要每層為上層提供的服務和介面不變,每層的實現細節可以任意改變。

 (3). 易於實現和維護
  把複雜的系統分解成若干個涉及範圍小且功能簡單的子單元,從而使得系統結構清晰,實現、除錯和維護都變得簡單和容易。也就是說,對於設計/開發人員而言,這種方法使設計/開發人員能夠專心設計和開發他們所關心的功能模組;對於除錯/維護人員而言,這種方法也方便除錯/維護人員去處理他們所負責的功能模組。


三. 計算機網路體系結構的概念與標準

  如你所料,計算機網路體系結構也採用了分層的思想。那麼,既然計算機網路體系結構的設計採用的是分層思想,那麼它就必須得解決以下幾個問題:

  (1). 網路體系結構應該具有哪些層次,每個層次又負責哪些功能呢?   (分層與功能)
  (2). 各個層次之間的關係是怎樣的,它們又是如何進行互動的呢?   (服務與介面)
  (3). 要想確保通訊的雙方能夠達成高度默契,它們又需要遵循哪些規則呢?  (協議)


1、計算機網路體系結構的概念

  根據上面的幾個問題,計算機網路體系結構必須包括三個內容,即分層結構與每層的功能,服務與層間介面 和 協議。所以,計算機網路體系結構的定義為:

  在計算機網路中,層、層間介面及協議的集合被稱為計算機網路體系結構。


2、計算機網路體系結構的標準

  目前,由國際化標準組織ISO制定的網路體系結構國際標準是 OSI七層模型,但實際中應用最廣泛的是 TCP/IP體系結構。換句話說,OSI七層模型只是理論上的、官方制定的國際標準,而TCP/IP體系結構才是事實上的國際標準。這看起來是不可理喻的,但這卻是實際存在的,是一些歷史原因造成的,無疑這些原因又是複雜的,筆者在此處略加介紹,以慰讀者。OSI標準的制定者以專家、學者為主,他們缺乏實際經驗和商業驅動力,並且OSI標準自身執行效率也不怎麼好。與此同時,由於Inernet在全世界覆蓋了相當大的範圍,並且佔領市場的標準是TCP/IP體系結構,因此導致OSI標準沒有市場背景,也就只是理論上的成果,並沒有過多地應用於實踐。


四. 計算機網路體系結構的分層原理

1、基本概念

  在介紹網路體系結構的分層原理前,我們有必要先了解以下幾個基本概念,其對應關係如下圖所示:

              網路系統結構的基本概念.png-11.9kB

  • 實體: 任何可以傳送和接收資訊的軟硬體程序;
  • 對等層: 兩個不同系統的同一層次;
  • 對等實體: 分別位於不同系統對等層的兩個實體;
  • 介面: 上層使用下層所提供的功能的方式;
  • 服務: 某一層及其以下各層的所完成的功能,通過介面提供給相鄰的上層;
  • 協議: 通訊雙方在通訊過程中必須遵循的規則。

2、網路體系結構模型

              網路體系結構模型.png-30.3kB

  我們在網路中的任何一個系統都是按照上圖中的層次結構模型來組織的,該模型具有以下特點:

  • 同一網路中,任意兩個端系統必須具有相同的層次;

  • 每層使用其下層提供的服務,並向其上層提供服務;

  • 通訊只在對等層間進行,當然這裡所指的通訊是間接的、邏輯的、虛擬的,非對等層之間不能互相“通訊”;

  • 實際的物理通訊只在最底層完成;

  • Pn代表第n層的協議,即第n層對等實體間通訊時必須遵循的規則或約定。


3、對等層通訊的實質

  在邏輯上,網路分層體系結構原理允許不同主機的對等實體進行通訊,但禁止不同主機非對等實體間進行直接通訊;在物理上,每一層必須依靠下層提供的服務來與另一臺主機的對等層通訊,這是 對等層通訊的實質也就是說,模型中的上層(第n+1層)使用下層(第n層)所提供的服務,是下層(第n層)服務消費者;而模型中的下層(第n層)向上層(第n+1層)提供服務,是上層(第n+1層)的服務生產者(提供者)。

  進一步地,源程序傳送訊息到目標程序的過程是這樣子的: 首先,訊息送到源系統的最高層,緊接著訊息從最高層開始自上而下逐層封裝 ,最後該訊息經物理線路傳輸到目標系統。而當目標系統收到資訊後,其會將該資訊 自下而上逐層處理並拆封,最後由最高層將訊息提交給目標程序。這個處理過程與郵政通訊過程類似,如下圖所示:

            郵件系統3.png-54.5kB


4、協議

  正如上圖所示,發信人和收信人對信件內容的共識就是二者之間的協議,正是由於這種協議的存在使得他們都能讀懂信的內容並理解對方的意思,達成默契;類似地,寄件郵局與收件郵局也能對信件的傳遞達成共識,也就是說,有一套規則來保證郵局之間的“ 默契,二者間的這種默契要麼能把信件完好無損地送給收信人,要麼能夠把信件完好無損地退給發信人;同樣地,運輸系統也能對信件如何運輸達成共識,而正是由於這種共識,信件才能到達指定郵局也就是說,對等實體間的這種默契(共識)就是協議。

  同樣地,在計算機網路體系結構中,不同層需要完成不同的功能或者提供不同的服務。比如,計算機網路體系結構應該提供對應的差錯控制,從而使對等層的通訊更加可靠;除此之外,還應該提供流量控制以控制傳送端的傳送速率以便接收端能來得及接收訊息;分段和重灌機制也很必要,就是說傳送端在傳送訊息時應該將資料塊分成更小的單位以便傳輸,而接收端能夠準確地將這些資料塊重新組合並還原資料的原貌; 通訊會話複用同一條低層連線可以提高效率;建立連線和釋放連線機制是不同主機通訊的保障,等等。上面列舉的這些功能(服務)實際上都是由計算機體系結構中具體的某一層來實現的,更具體地說,主要是通過每層相應的通訊協議來實現這些功能的。也就是說,計算機間網路中所有的通訊活動都是由協議控制的,也正是各種各樣的協議保證了計算機間高度默契的通訊。下圖對比了人相互交流的協議和計算機間相互通訊的協議:


五. 通訊協議

  上一節的最後一部分非常形象地介紹了協議的內涵,使我們對網路通訊協議有了一個感性的理解。實際上,人類在相互交流過程中也遵守某種“協議”,只不過這種協議是一種文化而已。其與計算機間相互通訊的協議對比如下:

            通訊協議.png-44.6kB


1、協議的概念

  通訊協議定義了 網路實體間傳送報文和接收報文的格式、順序以及當傳送和接收訊息時應採取的行動(規則)。這個定義指明瞭通訊協議的三要素:

  • 語義
    語義是指對協議中各協議元素的含義的解釋,例如:在HDLC協議中,標誌Flag(7EH)表示報文的開始和結束;在BSC協議中,SOH(01H)表示報文的開始,STX(02H)表示報文正文的開始,ETX(03H)表示報文正文的結束。

  • 語法
    語法是指協議元素與資料的組合格式,也就是 報文格式如下圖所示:

                協議的語法.png-7.8kB


  • 時序
    時序是指在通訊過程中,通訊雙方操作的執行順序與規則,如本節開頭的圖示。

  • 協議三要素之間的關係
    計算機間通訊的本質就在於資訊報文的交換,而資訊報文也就是我們在下面提到的協議資料單元(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.png-4.4kB

  其中,協議頭部中含有完成資料傳輸所需的控制資訊,比如地址、序號、長度、分段標誌、差錯控制資訊等。傳輸層及以下各層的PDU均有各自特定的名稱:

  • 傳輸層 —— 段(Segment)

  • 網路層 —— 分組/包(Packet)

  • 資料鏈路層 —— 幀(Frame)

  • 物理層 —— 位元(Bit)


(1). PDU的封裝

  在計算機網路體系結構中,下層把上層的PDU作為本層的資料加以封裝,然後加入本層的協議頭部(和尾部)形成本層的PDU,如下圖所示。在這裡,封裝就是在資料前面加上特定的協議頭部。因此,資料在源站自上而下遞交的過程實際上就是不斷封裝的過程,而到達目的地後自下而上遞交的過程就是不斷拆封的過程,如下圖所示。這個過程類似傳送信件的過程,資料在傳輸時,其外面實際上要被包封多層“信封”。在目的站,某一層只能識別由源站對等層封裝的“信封”,而對於被封裝在“信封”內部的“資料”僅僅是拆封後將其提交給上層,本層不作任何處理。特別需要注意的是,每一層只處理本層的協議頭部!

             PDU資料的封裝.png-27kB


(2). PDU封裝例項

  下圖演示了PDU在TCP/IP協議組的封裝過程:

             PDU封裝例項.png-29.4kB


六. 小結

  計算機網路體系結構標準的制定使得兩臺計算機能夠像兩個知心朋友那樣能夠互相準確理解對方的意思並做出優雅的迴應。本文首先概述了計算機網路體系結構的提出動機,並結合日常生活中的郵政系統介紹了設計的理念,並給出了相關的基本概念和標準。進一步地,我們著重概述了計算機網路體系結構的分層原理及其最重要的組成部分——協議,使得讀者能夠對計算網路體系結構有一個全新的、系統的認識。


七. 更多

  更多關於OSI七層參考體系結構和TCP/IP四層協議結構及每種體系結構中的各層的任務、功能、協議及與其他相似層的區別等區別的介紹,請讀者移步我的部落格《計算機網路體系結構綜述(下)》


引用

計算機網路體系結構

--------------------- 本文來自 書呆子Rico 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/justloveyou_/article/details/69611328?utm_source=copy