IP 多點傳送是介於點對點傳送與廣播傳送之間的一種通訊方式。它針對特定的組播群組進行有限範圍的廣播:群組內的任一成員發送資料,其他所有成員都能接收。這項技術屬於 UDP Socket 的一個分支,特別適合高帶寬應用,如網路視頻、音頻串流、線上會議、分散式資料儲存、交互式遊戲等。此外,客戶端還可利用多點傳送在網路上尋找伺服器,發送組播請求後,任何監聽的伺服器均可回應並建立連線。
UDP(User Datagram Protocol)是一種無連線、不可靠、面向訊息的傳輸協議。發送端將資料封裝成固定大小的資料報發送,接收端能否收到並回應完全不確定——資料報可能在傳輸中丟失,回應報文也可能丟失,接收端甚至可能直接忽略資料。創建 UDP Socket 類似於設置一個郵箱:不需為每個發送者建立專屬郵箱,只需在明信片上寫上目的地址投遞即可;接收端等待資料報到達,信件上會標註發送者的回覆地址。
為支援多點傳送,IANA 預留了 D 類 IP 地址(224.0.0.0 至 239.255.255.255),其最高四位位模式為 "1110"。每個 D 類地址代表一個多點傳送群組,發往該地址的 IP 封包會被群組內所有成員接收。群組成員是動態變化的,主機可隨時加入或退出。
網際網路組管理協議(IGMP)負責管理群組成員資格。支援多點傳送的路由器透過 IGMP 判斷本地主機是否加入某群組,並決定是否轉發多點傳送封包。封包的生存時間(TTL)決定其可跨越的網路躍點數:每經過一個路由器 TTL 減 1,歸零時封包被丟棄,防止無限循環佔用頻寬。
java.net 套件提供了 UDP 通訊所需的工具類,包含 MulticastSocket、DatagramPacket、InetAddress 等,開發者可直接利用這些 API 實現 IP 多點傳送功能。