UDP 用戶資料報協定
簡潔標頭結構 (8 bytes)
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| 來源埠號 | 目的埠號 |
+--------+--------+--------+--------+
| UDP 長度 | UDP 檢驗和 |
+--------+--------+--------+--------+
關鍵特性
- 無連線、不可靠:不保證送達、不排序、無流量控制
- 長度欄位:含標頭 + 資料,最小 8 bytes (無資料)
- 偽標頭檢驗和:12 bytes (來源/目的 IP + 保留 + 協定 17 + UDP 長度) + UDP 標頭 + 資料
- 檢驗和為 0:表示發送端未計算 (選用)
- 計算結果為 0:存入 0xFFFF (全 1)
IP 分片與 UDP
- IP 層負責分片/重組,UDP 不感知
- DF (Don't Fragment) bit 若置 1 且需分片 → ICMP "Fragmentation Needed"
- 路徑 MTU 發現:設 DF bit 發送,根據 ICMP 回應調整封包大小
UDP 伺服器設計考量
| 考量點 | 說明 |
| 輸入佇列 | 每埠一有限佇列,同時到達請求自動排隊 |
| 通配符 IP | INADDR_ANY 綁定所有介面 |
| 多重綁定 | 同一埠可綁定多個 IP (如乙太網 + 廣播) |
| 遠端 IP 限制 | 可限制只接收特定 IP/埠的封包 |
IP 廣播機制
四種廣播類型
| 類型 | 位址格式 | 範圍 | 路由器轉發 |
| 受限廣播 | 255.255.255.255 | 本地網段 | 不轉發 |
| 網路廣播 | netid.255.255.255 (A 類) | 整個網路 | 視設定而定 |
| 子網廣播 | subnet.255 (需子網遮罩) | 特定子網 | 通常不轉發 |
| 全子網廣播 | netid.255.255 (需子網遮罩) | 所有子網 | 已棄用 |
IP 多播與 IGMP
D 類位址結構
1110 | 28-bit 多播群組 ID
範圍:224.0.0.0 ~ 239.255.255.255
知名多播位址
| 位址 | 用途 |
| 224.0.0.1 | 所有系統 (子網內) |
| 224.0.0.2 | 所有路由器 (子網內) |
| 224.0.0.9 | RIPv2 |
| 224.0.0.5/6 | OSPF |
| 224.0.1.1 | NTP |
多播位址 → 乙太網 MAC 映射
- IANA OUI:
00-00-5E
- 多播 MAC 範圍:
01-00-5E-00-00-00 ~ 01-00-5E-7F-FF-FF
- 映射規則:IP 多播位址低 23 bits → MAC 低 23 bits
- 非唯一性:32 個 IP 多播位址映射到同一 MAC (高 5 bits 捨棄)
- 驅動程式/ IP 層需過濾不需要的多播幀
IGMP 網際網路群組管理協定
IGMP 訊息格式 (IP 協定號 2)
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 版本(4) | 類型(4) | 未用 | 檢驗和 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 群組位址 (D 類 IP) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
訊息類型
- 類型 1 (0x11):會員查詢 (Membership Query) - 路由器發送
- 類型 2 (0x12):會員報告 (Membership Report) - 主機回應
- 類型 3 (0x16):離開群組 (Leave Group) - IGMPv2 新增
運作機制
- 加入群組:首個進程加入 → 發送 Report,後續進程不重複發送
- 離開群組:不主動發送,下次查詢時不再回應 (IGMPv1/v2)
- 定期查詢:路由器定期 (預設 125 秒) 發送 Query (群組位址=0)
- 回應抑制:收到他人同群組 Report → 抑制自己的 Report (隨機延遲)
- TTL=1:查詢/報告限制在本地子網,路由器不轉發
IGMP 版本演進
| 版本 | 關鍵特性 |
| IGMPv1 (RFC 1112) | 基本查詢/報告,無離開機制 |
| IGMPv2 (RFC 2236) | 新增 Leave Group、查詢者選舉、群組特定查詢 |
| IGMPv3 (RFC 3376) | 來源特定多播 (SSM)、INCLUDE/EXCLUDE 模式 |
特殊群組:224.0.0.1 (所有主機群組)
- 所有多播能力介面自動加入
- 無需發送 IGMP Report
- 路由器不轉發 (無論 TTL)
- 上一篇文章: DNS、TFTP 與 BOOTP 協定深度解析:網路基礎服務核心機制
- 下一篇文章: ICMP 診斷工具、IP 選路與 RIP 路由協定深度實戰解析
Copyright ©
程式碼之家 All Rights Reserved