Linux中國

5 分鐘內了解 OSI 模型

理解 OSI 框架的基本概念,掌握計算機系統通信機制。

開放系統互聯 Open Systems Interconnection OSI)模型是一個定義計算機、伺服器和用戶如何在一個系統內通信的標準。它是第一個網路通信標準模型,在上世紀 80 年代早期,所有主流的計算機和通信公司都採用了這個標準。

OSI 模型提供了一種用於描述網路的通用語言,並以離散的塊或層的方式來描述。

OSI 模型的各個層

該模型描述了計算機系統通過網路進行通信的七個層。

  • 7 應用層
  • 6 表示層
  • 5 會話層
  • 4 傳輸層
  • 3 網路層
  • 2 數據鏈路層
  • 1 物理層

每個層都有自己的工作方式和一系列跟其他層不同的協議。本文將逐個剖析這些層級。

應用層

應用層是在軟體中實現的。它是與應用程序交互的層級。

用發送消息作為例子。發送消息的程序與應用層進行交互,並發送消息。接著,應用層向 OSI 模型的下一個層級(即表示層)發送消息。

表示層

來自應用層的數據被轉發到表示層。表示層接收到文字、字元、字母、數字等形式的數據,並把它們轉換為機器可識讀的二進位格式數據。這個過程叫做編譯。

在此階段,ASCII(美國信息交換標準碼)字元被轉換為擴充的二進位編碼的十進位交換碼(EBCDIC)。轉換後的數據在繼續傳輸前,也會進行編碼和加密過程,使用 SSL 協議進行加密和解密。

表示層的作用是抽象化,它假設下面的層級會處理它們收到的數據。它也負責壓縮數據。數據的壓縮可能是有損的,也有可能是無損的,這取決於很多因素,這不屬於本文的討論範圍。

會話層

會話層的作用是建立和管理連接。該層級的主要工作是建立會話。例如,你登錄網上商城,就在你的機器和伺服器之間建立了會話。

會話層的作用是實現數據的發送和接收,完成後連接的會話就終止了。在一個會話建立前,會進行身份驗證。與上一層類似,會話層也假設在它的工作完成後,下面的層級也會準確無誤地處理數據。

傳輸層

傳輸層的作用是管理數據傳輸和其自身的關於數據如何傳輸的一些協議。從會話層傳到這裡的數據被分為更小的數據單元,這些數據單元稱為片段。這個過程叫做「分段」。每個片段包含來源埠號、目標埠號和一個序列號。埠號用來識別發送數據的應用程序。注意,數據以塊的形式傳輸。序列號用於把這些片段按正確的順序排列。

傳輸層負責控制流量或在給定的時間內傳輸的數據量。它也負責錯誤控制,比如數據丟失、損壞等情況。它利用一種錯誤檢測值,通常叫做校驗和。傳輸層對每個數據片段加上校驗和,就可以檢查所發送的數據是否被正確接收。然後數據傳輸到網路層。

網路層

網路層的作用是跟其他網路進行通信。它把從一台機器接收到的數據片段傳輸給另一台位於不同網路的機器。路由器是作用於網路層的。

網路層的功能是邏輯定址(就是確定 IP 地址)。它為發送方和接收方分配 IP 地址,數據包附帶了這個地址,就可以被傳輸到正確的目標機器。接著網路層對數據包進行路由。負載均衡也是在網路層進行的,旨在確保不會發生過載。下一步,數據傳輸到數據鏈路層。

數據鏈路層

數據鏈路層支持跟其他設備直接通信。

它接收到來自網路層、包含發送方和接收方 IP 地址的數據包,進行物理定址,然後將發送方和接收方的 MAC 地址分配給數據包,形成幀。

物理層

物理層由系統的所有硬體和物理設備(包括網線、導航系統、適配器等)組成。在這裡,從前面層級接收到的數據都是 0 和 1 形式的。物理層把這些數據轉換並通過各種方式(如果是光纖電纜,有電線、電信號、光信號;如果是 WIFI,則為無線電信號)傳輸至本地媒介。

注意,物理層作用於接收方的一端,把接收到的信號以幀的形式傳輸到數據鏈路層(把它轉換回二進位數據形式)。然後幀傳輸到上面的層級,最終應用層(應用軟體)會接收到需要的數據。

結語

當你需要描述網路架構或排除網路問題時,OSI 模型的相關知識會對你有所幫助。我希望本文能令你對這個模型的方方面面有清晰的理解。

via: https://opensource.com/article/22/10/osi-model-network-communications

作者:Anamika 選題:lkxed 譯者:cool-summer-021 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國