01-1. 網路協定是什麼?

⏱️ 閱讀時間: 8 分鐘 🎯 難度: ⭐ (超級簡單)


🎯 本篇重點

理解網路協定的基本概念、為什麼需要協定,以及常見的協定分類。


🤔 什麼是網路協定?

Protocol(協定) = 通訊的規則

一句話解釋: 網路協定就像是語言,規定了電腦之間如何交換訊息、如何解讀訊息的一套規則。


🗣️ 用日常對話來比喻

人類溝通需要語言規則

情境:打電話

規則(協定):
1. 撥號時說「喂」
2. 對方回應「喂」
3. 開始對話
4. 結束時說「再見」

如果沒有這些規則:
- A: 你好嗎?
- B: 誰?
- A: 我是 John
- B: 什麼?
結果:溝通失敗!

電腦溝通也需要協定

情境:瀏覽網頁

協定(HTTP):
1. 客戶端發送請求:GET /index.html
2. 伺服器回應:200 OK + 網頁內容
3. 客戶端顯示網頁

如果沒有協定:
- 客戶端:給我首頁
- 伺服器:什麼是首頁?
- 客戶端:index.html
- 伺服器:不懂
結果:無法顯示網頁!

📋 為什麼需要網路協定?

1. 統一溝通標準

沒有協定:
├─ Windows 電腦用自己的格式
├─ Mac 電腦用自己的格式
└─ Linux 電腦用自己的格式
結果:無法互相溝通

有協定(如 HTTP):
├─ Windows 電腦 → HTTP 請求
├─ Mac 電腦 → HTTP 請求
└─ Linux 電腦 → HTTP 請求
結果:所有電腦都能溝通!

2. 確保資料正確傳輸

問題:網路傳輸可能出錯

協定的解決:
├─ 檢查資料完整性(Checksum)
├─ 重新傳輸錯誤的封包
└─ 確認資料順序正確

就像掛號信:
1. 寄信(傳輸資料)
2. 對方簽收(確認收到)
3. 簽收單回傳(傳輸成功)

3. 提高傳輸效率

協定優化:
├─ 壓縮資料(減少傳輸量)
├─ 並行傳輸(同時傳多個檔案)
└─ 快取機制(避免重複傳輸)

就像快遞公司:
- 批量運送(效率高)
- 路線規劃(最短路徑)
- 包裝標準化(快速處理)

🌐 網路協定的分類

按功能分類

1. 傳輸層協定
   ├─ TCP(可靠傳輸)
   └─ UDP(快速傳輸)

2. 應用層協定
   ├─ HTTP(網頁)
   ├─ FTP(檔案傳輸)
   ├─ SMTP(郵件發送)
   └─ DNS(域名解析)

3. 網路層協定
   ├─ IP(定址)
   └─ ICMP(錯誤回報)

4. 資料鏈結層協定
   ├─ Ethernet(以太網)
   └─ Wi-Fi(無線網路)

按用途分類

網頁瀏覽

你輸入 www.google.com

使用的協定:
1. DNS → 找到 Google 伺服器的 IP
2. TCP → 建立可靠連線
3. HTTP/HTTPS → 請求網頁內容
4. IP → 確定資料傳輸路徑

視訊通話

你用 Zoom 或 Teams 視訊

使用的協定:
1. SIP → 建立通話連線
2. RTP → 傳輸音視訊資料
3. UDP → 快速傳輸(允許少量丟失)
4. WebRTC → 瀏覽器內即時通訊

即時聊天

你用 Line 或 WhatsApp 聊天

使用的協定:
1. WebSocket → 雙向即時通訊
2. MQTT → 訊息推送
3. XMPP → 即時訊息協定
4. TCP → 確保訊息送達

📊 常見協定一覽表

應用層協定

協定用途範例
HTTP網頁瀏覽打開 Google
HTTPS安全網頁網路銀行
FTP檔案傳輸上傳檔案到伺服器
SMTP郵件發送寄 Email
POP3/IMAP郵件接收收 Email
DNS域名解析www.google.com → IP
SSH遠端登入連線到伺服器
WebSocket雙向通訊即時聊天
SIP視訊通話Zoom、Teams

傳輸層協定

協定特性適用場景
TCP可靠、有序、慢網頁、郵件、檔案
UDP不可靠、快速視訊、遊戲、直播

🔍 協定如何運作?

HTTP 協定範例

1. 客戶端發送請求
   GET /index.html HTTP/1.1
   Host: www.example.com

2. 伺服器回應
   HTTP/1.1 200 OK
   Content-Type: text/html

   <html>
   <body>Hello World</body>
   </html>

3. 客戶端顯示網頁

關鍵要素:

  • 格式固定:GET、HTTP/1.1、200 OK
  • 雙方都懂:客戶端和伺服器都按照 HTTP 規則
  • 可預測:知道會收到什麼格式的回應

TCP 協定範例(三次握手)

建立連線(Three-Way Handshake):

客戶端:你好,我想連線(SYN)
伺服器:好的,我收到了(SYN-ACK)
客戶端:確認,開始傳輸(ACK)

連線建立!開始傳輸資料

💡 協定的重要性

沒有協定的世界

情境:下載檔案

客戶端:給我 file.zip
伺服器:什麼格式?
客戶端:二進位
伺服器:多大?
客戶端:不知道
伺服器:怎麼傳?
客戶端:...

結果:無法下載

有協定的世界(FTP)

客戶端:FTP GET file.zip
伺服器:200 OK, Size: 10MB
客戶端:開始接收
伺服器:傳送資料...
客戶端:收到 10MB,檢查完整性,成功!

結果:順利下載

🎯 協定的標準化組織

主要組織

IETF(Internet Engineering Task Force)
├─ 制定 TCP/IP、HTTP、WebSocket
└─ 發布 RFC(Request for Comments)文件

W3C(World Wide Web Consortium)
├─ 制定 Web 標準
└─ HTML、CSS、WebSocket API

IEEE(電機電子工程師學會)
├─ 制定硬體標準
└─ Ethernet、Wi-Fi(802.11)

📖 如何學習協定?

學習路徑

1. 基礎概念(本篇)
   └─ 理解協定是什麼

2. 分層模型
   ├─ OSI 七層模型
   └─ TCP/IP 四層模型

3. 具體協定
   ├─ HTTP/HTTPS(網頁)
   ├─ WebSocket(即時通訊)
   └─ SIP(視訊通話)

4. 實戰應用
   ├─ 使用工具(Wireshark、Postman)
   └─ 實作簡單的協定客戶端/伺服器

✅ 重點回顧

網路協定定義:

  • 規定電腦間如何通訊的規則
  • 就像人類的語言

為什麼需要協定:

  • ✅ 統一標準(跨平台溝通)
  • ✅ 確保可靠(資料不出錯)
  • ✅ 提高效率(優化傳輸)

常見協定:

  • HTTP/HTTPS - 網頁瀏覽
  • TCP/UDP - 資料傳輸
  • WebSocket - 即時通訊
  • SIP - 視訊通話
  • DNS - 域名解析

協定的特性:

  • ✅ 格式固定
  • ✅ 雙方遵守
  • ✅ 可預測結果

學習重點:

  • ✅ 先理解概念
  • ✅ 再學分層模型
  • ✅ 然後深入具體協定
  • ✅ 最後實戰應用

下一篇: 01-2. OSI 七層模型


最後更新:2025-01-06

0%