OSI 七層模型完全解析:從實體層到應用層 | Networking

2026/05/06

OSI 七層模型 是理解網路通訊的基礎框架,由 ISO 國際標準化組織於 1984 年制定。它將複雜的網路通訊過程拆解為七個各司其職的層級,從最底層的電信號傳輸到最上層的應用程式互動,每一層都有明確的分工。不論是排查網路故障、設計網路架構,還是準備 CCNA 等網路認證考試,OSI 模型都是你必須掌握的核心知識。

七層架構總覽

OSI(Open Systems Interconnection)模型由下而上分為七層,每一層為上一層提供服務,並使用下一層的服務:

┌─────────────────────────────────────────────────────┐
│  第七層  │  應用層(Application Layer)               │  L7
├─────────────────────────────────────────────────────┤
│  第六層  │  表現層(Presentation Layer)              │  L6
├─────────────────────────────────────────────────────┤
│  第五層  │  會議層(Session Layer)                   │  L5
├─────────────────────────────────────────────────────┤
│  第四層  │  傳輸層(Transport Layer)                 │  L4
├─────────────────────────────────────────────────────┤
│  第三層  │  網路層(Network Layer)                   │  L3
├─────────────────────────────────────────────────────┤
│  第二層  │  資料鏈結層(Data Link Layer)             │  L2
├─────────────────────────────────────────────────────┤
│  第一層  │  實體層(Physical Layer)                  │  L1
└─────────────────────────────────────────────────────┘

記憶口訣:All People Seem To Need Data Processing(由上而下,取每層英文首字母)。

接下來逐層解析每一層的功能、PDU(Protocol Data Unit,協定資料單元)、常見協定與設備。


第一層:實體層(Physical Layer)

實體層(Physical Layer)是 OSI 模型的最底層,負責在物理介質上傳輸原始的 位元(Bit) 信號。這一層定義了電壓、電流、連接器規格、傳輸速率等物理特性。

項目說明
PDU位元(Bit)
定義內容電氣信號、光信號、無線電波、連接器規格
代表標準RS-232、RJ-45、IEEE 802.3、光纖標準
代表設備集線器(Hub)、中繼器(Repeater)、數據機(Modem)、網路線纜

生活比喻:實體層就像是「公路本身」——柏油路面、車道寬度、紅綠燈的電壓規格。它不管車上裝了什麼貨物,只負責讓車子能在路上跑。

常見的傳輸介質包括雙絞線(UTP/STP)、同軸電纜、光纖(單模/多模)、無線電波。傳輸模式分為單工(Simplex)、半雙工(Half-Duplex)和全雙工(Full-Duplex)。


資料鏈結層(Data Link Layer)負責在相鄰節點之間建立可靠的資料傳輸連結。它將位元組合成 框架(Frame),並使用 MAC 位址(Media Access Control Address)進行實體定址。

項目說明
PDU框架(Frame)
定址方式MAC 位址(48 bit)
代表協定Ethernet(IEEE 802.3)、Wi-Fi(IEEE 802.11)、PPP
代表設備交換器(Switch)、橋接器(Bridge)、NIC(網路介面卡)

資料鏈結層又細分為兩個子層:

  • LLC(Logical Link Control):負責多工、流量控制與錯誤處理
  • MAC(Media Access Control):負責 MAC 位址管理、碰撞處理與框架封裝

Ethernet Frame 結構

┌──────────┬──────────┬──────────┬──────┬──────────┬─────┐
│ Preamble │ Dest MAC │ Src MAC  │ Type │ Payload  │ FCS │
│  8 bytes │ 6 bytes  │ 6 bytes  │ 2 B  │46-1500 B │ 4 B │
└──────────┴──────────┴──────────┴──────┴──────────┴─────┘

其中 FCS(Frame Check Sequence)使用 CRC-32 進行錯誤偵測。交換器會學習來源 MAC 位址,建立 MAC 位址表來進行精確轉發。

生活比喻:資料鏈結層就像「同一棟大樓裡的信件收發室」——它知道大樓裡每個房間的門牌號碼(MAC 位址),負責把信件準確送到同一棟樓裡的收件人手上。


第三層:網路層(Network Layer)

網路層(Network Layer)負責邏輯定址與路由選擇。它使用 IP 位址 來識別設備,並透過路由演算法決定封包從來源到目的地的最佳路徑。

項目說明
PDU封包(Packet)
定址方式IP 位址(IPv4: 32 bit / IPv6: 128 bit)
代表協定IP、ICMP、ARP、OSPF、BGP
代表設備路由器(Router)、L3 交換器

網路層的關鍵概念包括:

  • 路由演算法:距離向量(RIP)、鏈路狀態(OSPF)、路徑向量(BGP)
  • TTL(Time to Live):防止封包無限迴圈,每經一個路由器減 1
  • NAT(Network Address Translation):私有位址與公共位址轉換
  • ARP(Address Resolution Protocol):將 IP 位址解析為 MAC 位址

生活比喻:網路層就像「郵局的分揀系統」——它根據收件人的地址(IP 位址),決定這封信要走哪條路線、經過哪些中轉站,才能送到正確的城市與街區。


第四層:傳輸層(Transport Layer)

傳輸層(Transport Layer)提供端對端(End-to-End)的資料傳輸服務,負責分段(Segmentation)、流量控制和錯誤修復。這一層最重要的兩個協定是 TCPUDP

項目說明
PDU區段(Segment, TCP)/ 資料報(Datagram, UDP)
定址方式埠號(Port Number, 0-65535)
代表協定TCP、UDP、SCTP、QUIC
代表設備防火牆(L4)、負載平衡器(L4)

TCP vs UDP 比較

特性TCPUDP
連線方式連線導向(三次握手)無連線
可靠性可靠(ACK / 重傳)不可靠
順序保證
流量控制有(滑動視窗)
開銷較大(20 bytes header)較小(8 bytes header)
適用場景HTTP/HTTPS、FTP、SSHDNS、VoIP、串流、遊戲

TCP 三次握手(Three-Way Handshake) 是建立連線的核心流程:

客戶端                               伺服器
  |                                    |
  |  ─── SYN (seq=x) ──────────────>  |   第一次:客戶端發送連線請求
  |                                    |
  |  <── SYN-ACK (seq=y, ack=x+1) ──  |   第二次:伺服器確認並回應
  |                                    |
  |  ─── ACK (ack=y+1) ────────────>  |   第三次:客戶端確認
  |                                    |
  |  ═══ 連線建立,開始傳輸 ═══════════  |

常見埠號速查

埠號協定服務
22TCPSSH
53TCP/UDPDNS
80TCPHTTP
443TCPHTTPS
3306TCPMySQL
5432TCPPostgreSQL

生活比喻:傳輸層就像「快遞服務的選擇」——TCP 像掛號信,有簽收確認、遺失會重寄;UDP 像投遞廣告傳單,速度快但不保證送達。埠號則像是收件人的「部門編號」,確保封包送到正確的應用程式。


第五層:會議層(Session Layer)

會議層(Session Layer)負責建立、管理和終止兩端應用程式之間的會議(Session)。

項目說明
PDU資料(Data)
核心功能會議建立 / 維護 / 終止、同步點(Checkpoint)
代表協定NetBIOS、RPC(Remote Procedure Call)、PPTP

會議層的一個重要機制是 同步點(Checkpoint):在長時間資料傳輸中設定檢查點,若傳輸中斷可從最近的檢查點恢復,無需從頭開始。

生活比喻:會議層就像「電話總機」——它負責接通、維持和掛斷通話,還能在通話中斷時幫你重新接上,從上次講到的地方繼續。


第六層:表現層(Presentation Layer)

表現層(Presentation Layer)處理資料的格式化、編碼轉換、加密解密與壓縮解壓,確保不同系統間的資料表示一致。

項目說明
PDU資料(Data)
核心功能資料格式轉換、加密 / 解密、壓縮 / 解壓
代表標準SSL/TLS、JPEG/PNG、MPEG、ASCII/Unicode

資料處理流程如下:

發送端:應用資料 → 字元編碼(UTF-8)→ 壓縮(gzip)→ 加密(TLS)→ 傳輸層
接收端:傳輸層 → 解密(TLS)→ 解壓(gzip)→ 字元解碼(UTF-8)→ 應用資料

生活比喻:表現層就像「翻譯員」——把一方說的法語翻譯成另一方能理解的英語,同時負責把文件加密封存(加密)或把壓縮包解開(解壓)。


第七層:應用層(Application Layer)

應用層(Application Layer)是最接近使用者的一層,為應用程式提供網路服務介面。

項目說明
PDU資料(Data)
核心功能提供網路服務(網頁瀏覽、檔案傳輸、電子郵件等)
代表協定HTTP/HTTPS、FTP、SMTP/POP3/IMAP、DNS、DHCP、SSH
實務對應Web 瀏覽器、電子郵件客戶端、FTP 客戶端

生活比喻:應用層就像「你在手機上操作的 App」——你點開瀏覽器看網頁、用 LINE 傳訊息、用 Gmail 寄信,這些都是應用層提供的服務。你不需要知道底下六層做了什麼,只要操作介面就好。


資料封裝與解封裝(Encapsulation / Decapsulation)

當資料從應用層向下傳送時,每一層會加上自己的標頭(Header),這個過程稱為 封裝(Encapsulation);接收端則反向移除標頭,稱為 解封裝(Decapsulation)

發送端(封裝過程)                              接收端(解封裝過程)

┌─────────────────┐                        ┌─────────────────┐
│   L7 應用層      │  Data                  │   L7 應用層      │
├─────────────────┤                        ├─────────────────┤
│   L6 表現層      │  Data                  │   L6 表現層      │
├─────────────────┤                        ├─────────────────┤
│   L5 會議層      │  Data                  │   L5 會議層      │
├─────────────────┤                        ├─────────────────┤
│   L4 傳輸層      │  [L4 Hdr] + Data       │   L4 傳輸層      │
│                 │  = Segment             │                 │
├─────────────────┤                        ├─────────────────┤
│   L3 網路層      │  [L3 Hdr] + Segment    │   L3 網路層      │
│                 │  = Packet              │                 │
├─────────────────┤                        ├─────────────────┤
│   L2 資料鏈結層  │  [L2 Hdr]+Packet+[FCS] │   L2 資料鏈結層  │
│                 │  = Frame               │                 │
├─────────────────┤                        ├─────────────────┤
│   L1 實體層      │  Bits (010110...)      │   L1 實體層      │
└────────┬────────┘                        └────────┬────────┘
         │                                          │
         └──────── 實體介質(銅線/光纖/無線) ─────────┘

PDU 對照表

層級PDU 名稱加上的資訊
L7-L5Data(資料)應用資料
L4Segment / Datagram來源 / 目的埠號、序號
L3Packet(封包)來源 / 目的 IP 位址、TTL
L2Frame(框架)來源 / 目的 MAC 位址、FCS
L1Bit(位元)電信號 / 光信號 / 無線信號

重要觀念:IP 位址在整個傳輸過程中保持不變(除非經過 NAT),但 MAC 位址每經過一個路由器就會改變。這是因為 MAC 位址只在同一個區域網路內有效。


OSI 模型 vs TCP/IP 模型

OSI 模型是理論參考模型,而實際網路通訊以 TCP/IP 模型為主。兩者的對應關係如下:

OSI 層級TCP/IP 對應層說明
L7 + L6 + L5應用層(Application)TCP/IP 將上三層合併,由應用程式自行處理
L4傳輸層(Transport)完全對應,TCP / UDP
L3網際網路層(Internet)完全對應,IP / ICMP
L2 + L1網路存取層(Network Access)TCP/IP 將下兩層合併

為什麼實務中使用 TCP/IP 而非 OSI?

  1. TCP/IP 先於 OSI 被實作並廣泛部署,它是 Internet 的基礎
  2. OSI 的 L5 / L6 在實務中很少獨立存在,功能通常整合在應用層
  3. TCP/IP 的四層模型更簡潔,更貼近實際實作
  4. 幾乎所有現代網路設備和作業系統都基於 TCP/IP 協定棧

不過 OSI 模型仍然是最好的 教學與排錯框架——當你遇到網路問題時,按照七層架構逐層排查,可以快速定位問題所在。


使用 OSI 模型排查網路問題

掌握 OSI 七層模型最大的實務價值,就是 系統性地排查網路故障。從 L1 實體層開始逐層向上排查,可以避免漫無目的的猜測。

各層常見問題與排錯工具

問題類型對應層級排錯工具
網路線鬆脫、無燈號L1 實體層觀察指示燈、測線器
MAC 位址衝突、VLAN 錯誤L2 資料鏈結層ip link show、交換器管理介面
無法 ping 通、路由問題L3 網路層pingtracerouteip route
連線逾時、埠被擋L4 傳輸層ssnetstattelnet
憑證錯誤、TLS 問題L5/L6openssl s_clientcurl -v
404、500 錯誤、API 異常L7 應用層curl、瀏覽器開發者工具、日誌

常用排錯指令

L3 網路層 — 測試連通性

# 測試目標主機是否可達(ICMP 協定,L3)
ping 8.8.8.8

# 預期輸出
# PING 8.8.8.8 (8.8.8.8): 56 data bytes
# 64 bytes from 8.8.8.8: icmp_seq=0 ttl=118 time=3.245 ms
# 64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=3.112 ms
# 追蹤封包經過的路由路徑(L3)
traceroute 8.8.8.8

# 預期輸出
# traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
#  1  192.168.1.1 (192.168.1.1)  1.234 ms  1.122 ms  1.056 ms    ← 你的 Gateway
#  2  10.0.0.1 (10.0.0.1)  5.678 ms  5.432 ms  5.321 ms          ← ISP 路由器
#  3  ...                                                          ← 中繼路由器
# 查看路由表
ip route show

# 預期輸出
# default via 192.168.1.1 dev eth0   ← 預設閘道
# 192.168.1.0/24 dev eth0 scope link ← 本地網段

L4 傳輸層 — 檢查埠與連線狀態

# 查看正在監聽的埠與程式(L4)
ss -tulnp

# 預期輸出
# Netid  State   Recv-Q  Send-Q  Local Address:Port  Peer Address:Port  Process
# tcp    LISTEN  0       128     0.0.0.0:22           0.0.0.0:*          users:(("sshd",pid=1234))
# tcp    LISTEN  0       128     0.0.0.0:80           0.0.0.0:*          users:(("nginx",pid=5678))
# udp    UNCONN  0       0       127.0.0.53:53        0.0.0.0:*          users:(("systemd-resolve",...))

L7 應用層 — DNS 查詢與 HTTP 測試

# DNS 查詢(L7,測試域名解析是否正常)
nslookup example.com

# 預期輸出
# Server:    127.0.0.53
# Address:   127.0.0.53#53
#
# Non-authoritative answer:
# Name:   example.com
# Address: 93.184.216.34
# 使用 curl 測試 HTTP 連線(含詳細資訊)
curl -v https://example.com

# 預期輸出(部分)
# * Trying 93.184.216.34:443...
# * Connected to example.com (93.184.216.34) port 443 (#0)
# * SSL connection using TLSv1.3
# > GET / HTTP/2
# < HTTP/2 200
# 擷取封包進行深度分析(需要 root 權限)
sudo tcpdump -i eth0 -c 10 port 80

# 預期輸出
# listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
# 12:00:01.123456 IP 192.168.1.100.52341 > 93.184.216.34.80: Flags [S], seq 123456
# 12:00:01.156789 IP 93.184.216.34.80 > 192.168.1.100.52341: Flags [S.], seq 654321, ack 123457

排錯實戰口訣

遇到網路問題時,建議按照以下順序逐層排查:

  1. L1:網路線有沒有插好?燈號是否正常?
  2. L2ip link show 看介面是否 UP?
  3. L3ping Gateway 通不通?ping 外部 IP(如 8.8.8.8)通不通?
  4. L4:目標埠有沒有開?用 sstelnet 確認
  5. L7:DNS 解析正常嗎?用 nslookup 確認。HTTP 回應正常嗎?用 curl -v 確認

如果 ping 8.8.8.8 成功但 ping google.com 失敗,問題通常出在 DNS(L7)而不是網路連通性。這就是分層排查的威力。


總結

OSI 七層模型 是理解網路通訊最重要的參考框架。讓我們回顧每一層的核心職責:

層級名稱一句話說明PDU
L7應用層為使用者提供網路服務介面Data
L6表現層資料格式化、加密、壓縮Data
L5會議層管理通訊會議的建立與終止Data
L4傳輸層端對端傳輸,TCP / UDPSegment
L3網路層IP 定址與路由選擇Packet
L2資料鏈結層MAC 定址與框架傳輸Frame
L1實體層位元信號在物理介質上傳輸Bit

雖然實務中我們使用的是 TCP/IP 四層模型,但 OSI 的七層框架提供了更細緻的分層思維。掌握 OSI 模型最大的價值在於:當你遇到網路問題時,能夠 從 L1 到 L7 系統性地逐層排查,快速定位問題出在哪一層,而不是盲目地亂試。

下次遇到「網路怎麼連不上」的時候,不妨從「網路線有沒有插好」開始,一層一層往上查,你會發現大多數問題其實都能在前四層找到答案。