網路分層基礎(OSI vs TCP/IP)

網路世界中,為了讓不同設備與應用程式能夠互相溝通,制定了很多標準與規範。而這些規範從實體的海底電纜到用戶終端的應用程式,依據理論架構與實際用途可以分成 OSI 七層模型和 TCP/IP 四層通訊協定。今天我們來快速理解這兩個模型以及它們的差異。
OSI 七層模型
OSI 七層模型(Open Systems Interconnection Model)是一個概念性的框架,用來理解和設計網路協定的分工。它將網路通訊過程分為七個不同的層次,每一層都有特定的功能和責任。
L7 應用層 Application Layer 是最接近使用者的一層,負責提供網路服務給應用程式。常見的協定有 HTTP(網頁瀏覽)、FTP(檔案傳輸)、SMTP(電子郵件)等。
L6 表示層 Presentation Layer 負責資料的格式化、編碼和加密。它確保來自應用層的資料能夠被接收端正確理解。常見的功能包括資料壓縮(如 JPEG、MP3)。常見的協定有 SSL/TLS(安全傳輸層協定)。
L5 會議層 Session Layer 負責建立、管理對話控制。它確保兩端在進行資料交換時的順序與同步。常見的協定有 RPC(遠端程序呼叫)、NetBIOS 等。
L4 傳輸層 Transport Layer 負責端到端的流量管制、資料切割/重組、補償,確保資料完整且有序地送達。常見的協定有 TCP(傳輸控制協定,保證收到)和 UDP(使用者資料報協定,不保證收到)。
L3 網路層 Network Layer 負責資料包的路由選擇和轉送,確保資料能夠從來源到達目的地。常見的協定有 IP(網際協定)、ICMP(網際控制訊息協定)等。
L2 資料連結層 Data Link Layer 負責在同一網路區域內的資料傳輸,處理錯誤檢測和流量控制。常見的協定有 Ethernet(乙太網路)、PPP(點對點協定)等。
L1 實體層 Physical Layer 負責實際的物理傳輸媒介,如電纜、光纖和無線電波。它定義了電氣訊號、連接器和傳輸速率等規範。
OSI模型 - 以打電話為例
假設你想要打電話給朋友,你會需要經過幾個步驟:
- 實體層:你至少需要一個電話線或行動訊號來傳輸聲音。
- 資料連結層:系統會確保你的電話訊號能夠在你附近的基地台和交換機之間正確傳輸。
- 網路層:透過查詢你朋友的電話號碼來確定從你這端到朋友那端的路徑。
- 傳輸層:建立通話連線,確定聲音訊號能夠完整且有序地傳送到朋友的電話。
- 會議層:管理通話,誰先說話、誰後說話,確保雙方能夠順利交流。
- 表示層:將你的聲音訊號轉換成適合傳輸的格式,比如壓縮、加密等。(雖然通常一般電話不會有這個需求)
- 應用層:你和朋友開始對話,這是你直接互動的部分。
實際上,當我們在使用網路時,並不會特別去區分這七層,而是直接使用 TCP/IP 通訊協定來進行溝通。
TCP/IP 通訊協定
實際網路協定的分類簡化為:
Layer 4 — 應用層
HTTP、DNS、TLS、SSH、SMTP… → 全部都在這層。
Layer 3 — 傳輸層
TCP(可靠)、UDP(不可靠、低延遲)。
Layer 2 — 網路層
IP、ICMP。
Layer 1 — 實體層
海底電纜、光纖、無線電波。路由器、交換器、集線器。乙太網路、Wi-Fi。
OSI 七層 vs TCP/IP 四層 對照表(最重要的比較)
| 功能 | OSI(7 層) | TCP/IP(4 層) | 備註 |
|---|---|---|---|
| 使用者看到的應用協定 | L7 + L6 + L5 | 應用層 | 會議、表示、應用全包了 |
| 端到端資料傳輸 | L4 | 傳輸層 | TCP/UDP |
| 路由、IP、封包轉送 | L3 | 網路層 | 同層一致 |
| MAC、資料框架(Frame)、交換器 | L2 + L1 | 連結層 | 四層把 1/2 合併 |
OSI 網路模型是用來講解網路架構的理論模型,而 TCP/IP 模型則是實際應用於網路通訊的標準。理解這兩個模型及其差異,有助於我們更好地設計和管理網路系統。 兩種模型沒有衝突,只是抽象程度不同。這篇文章對於整個網路架構僅介紹了非常粗淺的概念,實際上每一層都有非常多的細節和協定可以深入研究。
如果覺得本篇文章的講解不夠深入,可以參考 Cloudflare 的這篇文章。
TIP
有沒有注意過,對於網路的很多術語都是 P 結尾,像是 IP、TCP、UDP、HTTP、FTP? 這是因為 P 代表 Protocol(協定)的意思,表示這些都是用來規範網路通訊的標準和規則。
也就是為了讓多個端點設備可以統一溝通的標準而制定的規範,只要依照規範的方式來傳輸資料,彼此就能夠互相理解、交換資訊。
