UDP (User Datagram Protocol) 是網際網路傳輸層的無連線、不可靠、面向資料報協議。假設底層為 IP,提供最簡單的「發送即忘」服務。需可靠傳輸請改用 TCP。
| 欄位 | 長度 | 說明 |
|---|---|---|
| Source Port | 16 bits | 來源埠(選填,0 表無)。回覆時作為目的埠。 |
| Destination Port | 16 bits | 目的埠(配合 IP 定址)。 |
| Length | 16 bits | 整個 UDP 資料報長度(含標頭),單位:位元組。最小值 8。 |
| Checksum | 16 bits | 覆蓋「偽標頭 + UDP 標頭 + 資料」的 16 位元組補數和。0 表示未計算。 |
為防止誤送,校驗時在 UDP 標頭前加上 12 位元組偽標頭:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Zero | Protocol (17) | UDP Length (again) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0xFFFF(全 1),接收端驗證結果應為 0xFFFF。IP 協議號欄位固定為 17 (十進制) / 0x11 (十六進制) / 21 (八進制)。
| 特性 | UDP | TCP |
|---|---|---|
| 連線建立 | 無 | 三向交握 |
| 可靠性 | 無保證 | 序號/ACK/重傳 |
| 順序保證 | 無 | 有 |
| 流控/擁塞控制 | 無 | 滑動窗口 |
| 標頭開銷 | 8 bytes | ≥20 bytes |
| 適用場景 | 即時、廣播、小資料 | 檔案、郵件、Web |
UDP 以極簡設計支撐起 DNS、VoIP、遊戲等關鍵基礎設施。理解其標頭、校驗與偽標頭機制,是網路程式開發與封包分析的基本功。