OSI七層模型詳解

開 放式系統互聯模型(OSI)是1984年由國際標準化組織(ISO)提出的一個參考模型。作爲一個概念性框架,它是不同製造商的 設備和應用軟件在網絡中進行通信的標準。現在此模型已成爲計算機間和網絡間進行通信的主要結構模型。目前使用的大多數網絡通信協議的結構都是基於 OSI 模型的。OSI 將通信過程定義爲七層,即將連網計算機間傳輸信息的任務劃分爲七個更小、更易於處理的任務組。每一個任務或任務組則被分配到各個 OSI 層。每一層都是獨立存在的,因此分配到各層的任務能夠獨立地執行。這樣使得變更其中某層提供的方案時不影響其他層。

   OSI 七層模型的每一層都具有清晰的特徵。基本來說,第七至第四層處理數據源和數據目的地之間的端到端通信,而第三至第一層處理網絡設備間的通信。另外,OSI 模型的七層也可以劃分爲兩組:上層(層7、層6和層5)和下層(層4、層3、層2和層1)。OSI 模型的上層處理應用程序問題,並且通常只應用在軟件上。最高層,即應用層是與終端用戶最接近的。OSI 模型的下層是處理數據傳輸的。物理層和數據鏈路層應用在硬件和軟件上。最底層,即物理層是與物理網絡媒介(比如說,電線)最接近的,並且負責在媒介上發送 數據。

  各層的具體描述如下:

  第七層:應用層

  • 定義了用於在網絡中進行通信和數據傳輸的接口 - 用戶程式;
  • 提供標準服務,比如虛擬終端、文件以及任務的傳輸和處理;

  第六層:表示層

  • 掩蓋不同系統間的數據格式的不同性;
  • 指定獨立結構的數據傳輸格式;
  • 數據的編碼和解碼;加密和解密;壓縮和解壓縮

  第五層:會話層

  • 管理用戶會話和對話;
  • 控制用戶間邏輯連接的建立和掛斷;
  • 報告上一層發生的錯誤

  第四層:傳輸層

  • 管理網絡中端到端的信息傳送;
  • 通過錯誤糾正和流控制機制提供可靠且有序的數據包傳送;
  • 提供面向無連接的數據包的傳送;

  第三層:網絡層

  • 定義網絡設備間如何傳輸數據;
  • 根據唯一的網絡設備地址路由數據包;
  • 提供流和擁塞控制以防止網絡資源的損耗

  第二層:數據鏈路層

  • 定義操作通信連接的程序;
  • 封裝數據包爲數據幀;
  • 監測和糾正數據包傳輸錯誤

  第一層:物理層

  • 定義通過網絡設備發送數據的物理方式;
  • 作爲網絡媒介和設備間的接口;
  • 定義光學、電氣以及機械特性。

   通過 OSI 層,信息可以從一臺計算機的軟件應用程序傳輸到另一臺的應用程序上。例如,計算機 A 上的應用程序要將信息發送到計算機 B 的應用程序,則計算機 A 中的應用程序需要將信息先發送到其應用層(第七層),然後此層將信息發送到表示層(第六層),表示層將數據轉送到會話層(第五層),如此繼續,直至物理層 (第一層)。在物理層,數據被放置在物理網絡媒介中並被髮送至計算機 B 。計算機 B 的物理層接收來自物理媒介的數據,然後將信息向上發送至數據鏈路層(第二層),數據鏈路層再轉送給網絡層,依次繼續直到信息到達計算機 B 的應用層。最後,計算機 B 的應用層再將信息傳送給應用程序接收端,從而完成通信過程。下面圖示說明了這一過程。

計算機網絡中的通信圖解

圖 1 - 1 計算機網絡中的通信圖解

  OSI 的七層運用各種各樣的控制信息來和其他計算機系統的對應層進行通信。這些控制信息包含特殊的請求和說明,它們在對應的 OSI 層間進行交換。每一層數據的頭和尾是兩個攜帶控制信息的基本形式。

  對於從上一層傳送下來的數據,附加在前面的控制信息稱爲頭,附加在後面的控制信息稱爲尾。然而,在對來自上一層數據增加協議頭和協議尾,對一個 OSI 層來說並不是必需的。

   當數據在各層間傳送時,每一層都可以在數據上增加頭和尾,而這些數據已經包含了上一層增加的頭和尾。協議頭包含了有關層與層間的通信信息。頭、尾以及數 據是相關聯的概念,它們取決於分析信息單元的協議層。例如,傳輸層頭包含了只有傳輸層可以看到的信息,傳輸層下面的其他層只將此頭作爲數據的一部分傳遞。 對於網絡層,一個信息單元由第三層的頭和數據組成。對於數據鏈路層,經網絡層向下傳遞的所有信息即第三層頭和數據都被看作是數據。換句話說,在給定的某一 OSI 層,信息單元的數據部分包含來自於所有上層的頭和尾以及數據,這稱之爲封裝。

各層數據封裝結構

圖 1 - 2 各層數據封裝結構

  例如,如果計算機 A 要將應用程序中的某數據發送至計算機 B ,數據首先傳送至應用層。 計算機 A 的應用層通過在數據上添加協議頭來和計算機 B 的應用層通信。所形成的信息單元包含協議頭、數據、可能還有協議尾,被髮送至表示層,表示層再添加爲計算機 B 的表示層所理解的控制信息的協議頭。信息單元的大小隨着每一層協議頭和協議尾的添加而增加,這些協議頭和協議尾包含了計算機 B 的對應層要使用的控制信息。在物理層,整個信息單元通過網絡介質傳輸。

  計算機 B 中的物理層收到信息單元並將其傳送至數據鏈路層;然後 B 中的數據鏈路層讀取計算機 A 的數據鏈路層添加的協議頭中的控制信息;然後去除協議頭和協議尾,剩餘部分被傳送至網絡層。每一層執行相同的動作:從對應層讀取協議頭和協議尾,並去除, 再將剩餘信息發送至上一層。應用層執行完這些動作後,數據就被傳送至計算機 B 中的應用程序,這些數據和計算機 A 的應用程序所發送的完全相同 。

   一個 OSI 層與另一層之間的通信是利用第二層提供的服務完成的。相鄰層提供的服務幫助一 OSI 層與另一計算機系統的對應層進行通信。一個 OSI 模型的特定層通常是與另外三個 OSI 層聯繫:與之直接相鄰的上一層和下一層,還有目標聯網計算機系統的對應層。例如,計算機 A 的數據鏈路層應與其網絡層,物理層以及計算機 B 的數據鏈路層進行通信。下面的圖表可以解釋這個例子 :

對應層間的數據通信

圖 1 - 3 對應層間的數據通信

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章