目錄
01-3. TCP/IP 四層模型
⏱️ 閱讀時間: 10 分鐘 🎯 難度: ⭐⭐ (簡單)
🎯 本篇重點
理解 TCP/IP 四層模型,知道它和 OSI 七層的差異,以及為什麼實際上我們更常用 TCP/IP 模型。
🤔 什麼是 TCP/IP 模型?
TCP/IP Model = 實際運作的網路架構
一句話解釋: TCP/IP 是實際運作在網路上的模型,把 OSI 的七層簡化成四層,更實用、更容易理解。
🏢 理論 vs 實務的比喻
OSI 七層 = 理想的組織架構圖
總經理(應用層)
↓
副總經理(表現層)
↓
部門經理(會話層)
↓
組長(傳輸層)
↓
主任(網路層)
↓
專員(資料鏈結層)
↓
助理(實體層)
看起來很完整,但太複雜!TCP/IP 四層 = 實際運作的組織
老闆(應用層)
↓
經理(傳輸層)
↓
主管(網路層)
↓
員工(網路介面層)
簡單、實用、容易管理!📊 TCP/IP 四層架構
完整架構圖
┌─────────────────────────────────┐
│ 第 4 層:應用層 │
│ (Application Layer) │
│ │
│ HTTP, HTTPS, FTP, SMTP, │
│ DNS, SSH, Telnet │
└─────────────────────────────────┘
↕
┌─────────────────────────────────┐
│ 第 3 層:傳輸層 │
│ (Transport Layer) │
│ │
│ TCP, UDP │
└─────────────────────────────────┘
↕
┌─────────────────────────────────┐
│ 第 2 層:網路層 │
│ (Internet Layer) │
│ │
│ IP, ICMP, ARP │
└─────────────────────────────────┘
↕
┌─────────────────────────────────┐
│ 第 1 層:網路介面層 │
│ (Network Interface Layer) │
│ │
│ Ethernet, Wi-Fi, PPP │
└─────────────────────────────────┘🔍 TCP/IP 四層詳解
第 4 層:應用層(Application Layer)
功能: 提供各種網路應用服務
比喻: 你用的各種 App(結合了 OSI 的第 5、6、7 層)
常見應用:
├─ 瀏覽網頁 → HTTP/HTTPS
├─ 傳檔案 → FTP
├─ 收發郵件 → SMTP/POP3/IMAP
├─ 遠端登入 → SSH/Telnet
├─ 查詢網址 → DNS
└─ 即時通訊 → WebSocket
就像:
- 你用 Chrome 瀏覽網頁
- 你用 FileZilla 上傳檔案
- 你用 Outlook 收發郵件實際例子:
# 應用層:使用 HTTP 協定
import requests
response = requests.get('https://www.google.com')
print(response.status_code) # 200
# 你只需要知道用 HTTP,不用管底層怎麼傳輸第 3 層:傳輸層(Transport Layer)
功能: 負責端對端的資料傳輸
比喻: 快遞公司的寄送服務
兩種服務方式:
TCP(Transmission Control Protocol):
├─ 掛號快遞(可靠)
├─ 確認送達(三次握手)
├─ 保證順序(編號)
├─ 重新傳送(遺失補寄)
└─ 適合:網頁、郵件、檔案下載
UDP(User Datagram Protocol):
├─ 一般快遞(不保證)
├─ 不確認送達
├─ 不保證順序
├─ 不重新傳送
└─ 適合:視訊、直播、線上遊戲實際例子:
# TCP:下載檔案(必須完整)
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # TCP
sock.connect(('example.com', 80))
sock.send(b'GET / HTTP/1.1\r\n\r\n')
data = sock.recv(1024) # 確保收到資料
# UDP:視訊通話(即時性重要)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
sock.sendto(b'video frame', ('receiver.com', 5000))
# 不等確認,直接送下一幀第 2 層:網路層(Internet Layer)
功能: 負責路由和定址
比喻: GPS 導航系統
核心協定:
IP(Internet Protocol):
├─ IPv4:192.168.1.1(32 位元)
├─ IPv6:2001:0db8:85a3::(128 位元)
└─ 定址、路由
ICMP(Internet Control Message Protocol):
├─ ping(測試連線)
├─ traceroute(追蹤路徑)
└─ 錯誤回報
ARP(Address Resolution Protocol):
└─ IP 地址 → MAC 地址轉換實際例子:
# ping:測試連線(使用 ICMP)
$ ping google.com
64 bytes from 142.250.185.46: icmp_seq=1 ttl=118 time=5.2 ms
# traceroute:追蹤路徑(使用 ICMP)
$ traceroute google.com
1 192.168.1.1 (192.168.1.1) 1.234 ms
2 10.0.0.1 (10.0.0.1) 5.678 ms
3 ...
# 網路層決定封包如何從台北到美國第 1 層:網路介面層(Network Interface Layer)
功能: 實際的硬體傳輸(結合了 OSI 的第 1、2 層)
比喻: 實際的道路和交通工具
負責的工作:
├─ 實體傳輸(網路線、Wi-Fi、光纖)
├─ MAC 地址
├─ 幀(Frame)封裝
└─ 錯誤偵測
技術:
├─ Ethernet(有線網路)
├─ Wi-Fi(無線網路)
├─ PPP(點對點協定)
└─ 光纖實際例子:
你的電腦連到 Wi-Fi 路由器:
網路介面層做的事:
1. 把資料包成 Wi-Fi 訊號
2. 加上 MAC 地址
來源:你電腦的 MAC(aa:bb:cc:dd:ee:ff)
目的:路由器的 MAC(11:22:33:44:55:66)
3. 透過天線發送無線電波
4. 路由器接收並轉發🆚 OSI vs TCP/IP 對比
層級對應關係
OSI 七層 TCP/IP 四層
─────────────────────────────────────────
第 7 層:應用層 ┐
第 6 層:表現層 ├──→ 第 4 層:應用層
第 5 層:會話層 ┘
第 4 層:傳輸層 ───→ 第 3 層:傳輸層
第 3 層:網路層 ───→ 第 2 層:網路層
第 2 層:資料鏈結層 ┐
第 1 層:實體層 ┘─→ 第 1 層:網路介面層詳細對比表
| 特性 | OSI 七層 | TCP/IP 四層 |
|---|---|---|
| 層數 | 7 層 | 4 層 |
| 目的 | 理論標準 | 實際實作 |
| 發展 | 1984 年(較晚) | 1970 年代(較早) |
| 使用 | 教學、概念 | 實際網路運作 |
| 彈性 | 嚴格分層 | 較靈活 |
| 複雜度 | 複雜 | 簡單 |
為什麼實務用 TCP/IP?
原因 1:歷史因素
├─ TCP/IP 先發展(1970 年代)
├─ Internet 建立在 TCP/IP 上
└─ OSI 太晚(1984 年)
原因 2:實用性
├─ TCP/IP 更簡單
├─ 容易實作
└─ 效能更好
原因 3:普及性
├─ 所有作業系統支援 TCP/IP
├─ 所有網路設備使用 TCP/IP
└─ 已成為事實標準
就像:
- VHS vs Betamax(錄影帶格式戰爭)
- TCP/IP 贏了,成為標準🌐 實際範例:瀏覽網頁
完整流程(TCP/IP 四層視角)
你在瀏覽器輸入 www.google.com
【第 4 層:應用層】
瀏覽器(應用程式):
├─ 使用 HTTP 協定
├─ 發送請求:GET / HTTP/1.1
└─ Host: www.google.com
資料:
GET / HTTP/1.1
Host: www.google.com
User-Agent: Chrome
↓ 交給下一層
【第 3 層:傳輸層】
TCP:
├─ 建立連線(三次握手)
├─ 將資料切成小片段(Segment)
├─ 加上序號(保證順序)
├─ 加上 Port 號
- 來源 Port:52341(隨機)
- 目的 Port:80(HTTP)
└─ 確保可靠傳輸
資料變成:
[TCP Header: Port 52341→80] + HTTP 資料
↓ 交給下一層
【第 2 層:網路層】
IP:
├─ 加上 IP 地址
- 來源 IP:192.168.1.100(你的電腦)
- 目的 IP:142.250.185.46(Google)
├─ 決定路由(從台北到美國)
└─ 封包(Packet)
資料變成:
[IP Header: 192.168.1.100→142.250.185.46]
+ [TCP Header] + HTTP 資料
↓ 交給下一層
【第 1 層:網路介面層】
Wi-Fi / Ethernet:
├─ 加上 MAC 地址
- 來源 MAC:你電腦的網卡
- 目的 MAC:路由器的網卡
├─ 包成訊框(Frame)
└─ 轉成無線電波/電子訊號傳送
資料變成:
[Ethernet Header: MAC] + [IP Header]
+ [TCP Header] + HTTP 資料
↓ 實際傳送
透過 Wi-Fi → 路由器 → ISP → 網路骨幹
→ Google 資料中心
↓ 到達 Google 伺服器
【Google 伺服器接收】
反向解封裝:
第 1 層:收到無線電波,還原成資料
第 2 層:檢查 MAC,移除 Ethernet Header
第 3 層:檢查 IP,移除 IP Header
第 4 層:檢查 TCP,重組資料
第 5 層:解析 HTTP 請求,回傳網頁
↓ 回傳過程重複上述步驟
Google 伺服器 → 你的電腦
你的瀏覽器顯示 Google 首頁!🛠️ 實戰工具
查看每一層的資訊
# 第 4 層(應用層):測試 HTTP
$ curl -I https://www.google.com
HTTP/2 200
content-type: text/html
# 第 3 層(傳輸層):查看 TCP 連線
$ netstat -an | grep 80
tcp4 0 0 192.168.1.100.52341 142.250.185.46.80 ESTABLISHED
# 第 2 層(網路層):查看路由
$ ip route
default via 192.168.1.1 dev wlan0
$ traceroute google.com
1 192.168.1.1 (192.168.1.1) 1.234 ms
2 10.0.0.1 (10.0.0.1) 5.678 ms
...
# 第 1 層(網路介面層):查看網卡資訊
$ ifconfig
wlan0: flags=8863<UP,BROADCAST,RUNNING>
inet 192.168.1.100 netmask 0xffffff00
ether aa:bb:cc:dd:ee:ffWireshark 抓包分析
當你訪問網站時,Wireshark 顯示:
【第 1 層:網路介面層】
Frame 1: 74 bytes on wire
Ethernet II
來源: aa:bb:cc:dd:ee:ff
目的: 11:22:33:44:55:66
【第 2 層:網路層】
Internet Protocol Version 4
來源: 192.168.1.100
目的: 142.250.185.46
【第 3 層:傳輸層】
Transmission Control Protocol
來源 Port: 52341
目的 Port: 80 (HTTP)
Seq: 1
Flags: SYN
【第 4 層:應用層】
Hypertext Transfer Protocol
GET / HTTP/1.1
Host: www.google.com📝 每層的核心協定
TCP/IP 協定族
第 4 層(應用層):
├─ HTTP/HTTPS(網頁)
├─ FTP(檔案傳輸)
├─ SMTP/POP3/IMAP(郵件)
├─ DNS(域名解析)
├─ SSH(安全遠端登入)
├─ Telnet(遠端登入)
└─ DHCP(動態 IP 分配)
第 3 層(傳輸層):
├─ TCP(可靠傳輸)
└─ UDP(快速傳輸)
第 2 層(網路層):
├─ IP(定址、路由)
├─ ICMP(ping、錯誤回報)
├─ ARP(IP → MAC)
└─ RARP(MAC → IP)
第 1 層(網路介面層):
├─ Ethernet(有線)
├─ Wi-Fi(無線)
├─ PPP(點對點)
└─ Token Ring(舊技術)🎯 面試常見問題
Q1: OSI 和 TCP/IP 有什麼差別?
答案:
1. 層數不同:OSI 7 層,TCP/IP 4 層
2. 用途不同:OSI 是理論模型,TCP/IP 是實際運作
3. 發展不同:TCP/IP 更早,已成為標準
4. OSI 用於教學,TCP/IP 用於實作
比喻:
OSI = 教科書上的理想流程
TCP/IP = 實際公司運作的流程Q2: 為什麼 TCP/IP 只有四層?
答案:
1. 更簡單、更實用
2. OSI 的第 5、6、7 層合併成應用層
3. OSI 的第 1、2 層合併成網路介面層
4. 減少複雜度,提高效率
比喻:
就像簡化公司組織架構
不需要那麼多層級
扁平化管理更有效率Q3: TCP/IP 模型中最重要的是哪一層?
答案:
每一層都重要,但:
- 應用層:使用者直接接觸(最容易理解)
- 傳輸層:TCP/UDP 決定可靠性(核心)
- 網路層:IP 定址,Internet 的基礎
- 網路介面層:實際傳輸(基礎設施)
比喻:
就像蓋房子
- 地基(網路介面層)
- 樑柱(網路層)
- 管線(傳輸層)
- 裝潢(應用層)
都不能少!✅ 重點回顧
TCP/IP 四層模型:
第 4 層:應用層(HTTP、FTP、DNS)
第 3 層:傳輸層(TCP、UDP)
第 2 層:網路層(IP、ICMP)
第 1 層:網路介面層(Ethernet、Wi-Fi)與 OSI 的關係:
- ✅ OSI 是理論標準(教學用)
- ✅ TCP/IP 是實際運作(實務用)
- ✅ TCP/IP 更簡單(4 層 vs 7 層)
- ✅ Internet 建立在 TCP/IP 上
每層重點:
- 應用層 - 你用的 App(HTTP、Email)
- 傳輸層 - 可靠傳輸(TCP)或快速傳輸(UDP)
- 網路層 - 路由、IP 定址
- 網路介面層 - 實體傳輸(Wi-Fi、網路線)
封裝過程:
發送:
應用層資料
→ 加 TCP Header
→ 加 IP Header
→ 加 Ethernet Header
→ 傳送
接收:
收到訊號
→ 移除 Ethernet Header
→ 移除 IP Header
→ 移除 TCP Header
→ 取得應用層資料實務應用:
- ✅ 網路除錯時知道在哪一層出問題
- ✅ 選擇協定時理解各層的功能
- ✅ 面試時能清楚說明網路架構
上一篇: 01-2. OSI 七層模型 下一篇: 01-4. TCP vs UDP
最後更新:2025-01-06