多播程式設計是透過 Windows 通訊端啟用。 Windows 套接字透過使用套接字選項或 IOCTL,在 IPv6 上啟用多播接聽程式探索的版本 1(MLDv1)和版本 2(MLDv2),以及在互聯網群組管理協議中啟用版本 2(IGMPv2)和版本 3(IGMPv3)。 本節說明 Windows 實作、說明如何使用 Windows 套接字啟用多播程序設計,並提供程式設計範例來說明其用法。
IGMP 的第二個版本,稱為 IGMPv2,可讓主機加入並保留特定網路介面上 IPv4 多播位址所識別的多播群組。 Windows Sockets 可讓應用程式加入這類群組,並將這類群組保留在特定的套接字上。 不過,IGMPv2 的缺點是,任何加入 IGMPv2 群組的 IPv4 來源位址都可以傳輸到所有成員,並可能淹沒群組,並使其無法用於需要主要來源的傳輸,例如因特網電臺。 IGMPv2 的問題在於它無法選擇性地選擇單一 IPv4 來源位址(甚至少數來源),以及無法封鎖指定多播群組的發件者(例如流氓廣播公司或阻斷服務肇事者)。 IGMPv3 解決了這些缺點。
使用 Windows 套接字和 IGMPv3,應用程式可以選取特定的多播 IPv4 來源位址和多播群組組。 此外,Windows Sockets 可讓開發人員選擇性地允許指定來源/群組配對中的其他廣播公司,或讓應用程式封鎖特定廣播公司。 Windows Vista 和更新版本支援 IGMPv3。
IPv6 上的第一個 MLD 版本稱為 MLDv1,與 IGMPv2 非常類似,而且有相同的限制。 MLDv1 可讓主機加入並離開特定網路介面上 IPv6 多播位址所識別的多播群組。 Windows Sockets 可讓應用程式加入這類群組,並將這類群組保留在特定的套接字上。 不過,任何加入 MLDv1 群組的 IPv6 來源位址都可以傳輸給所有成員,並可能會淹沒群組,並使它無法用於需要主要來源的傳輸。 MLDv1 的問題在於它無法選擇性地選擇單一 IPv6 來源位址(甚至少數來源),以及無法封鎖指定多播群組的發件者(例如流氓廣播公司或阻斷服務肇事者)。 MLDv2 解決了這些缺點。
使用 Windows 套接字和 MLDv2,應用程式可以選取特定的多播 IPv6 來源位址和多播群組對。 此外,Windows Sockets 可讓開發人員選擇性地允許指定來源/群組配對中的其他廣播公司,或讓應用程式封鎖特定廣播公司。 Windows Vista 和更新版本支援 MLDv2。
在 Windows 中開發多播應用程式時,應用程式程式設計人員可以採用兩種方法。 第一種方法是以變更為基礎;多播來源會視需要使用套接字選項來新增或移除,即使在傳輸過程中也是如此。 第二種方法是以最終狀態為基礎;來源位址和任何包含/排除的位址都是使用IOCTL來指定。 每個方法都是有效的多播做法,但開發人員可能會發現使用套接字選項和以變更為基礎的方法更有直覺性和彈性。
本節包含下列頁面:
| 頁面標題 | 描述 |
|---|---|
| 使用 Windows Sockets 的 MLD 和 IGMP | 使用變更為基礎的程序設計方法,列舉在Windows Sockets程式設計中可用的多播套接字選項。 定義兩個多播應用程式類別。 |
| 多播套接字選項運作 | 提供一個詳盡的表格來說明按特定順序呼叫多播套接字選項的含意和需求。 |
| 多播程序設計範例 | 說明如何在 Windows 中使用套接字選項來啟用多播應用程式的程式設計代碼段。 |
| 以最終狀態為基礎的多播程序設計 | 解釋終態方法,並說明如何使用 IOCTL 在 Windows Sockets 上進行多播編程。 |
| 將廣播應用程式移植到 IPv6 | 提供將 IPv4 廣播應用程式移植到 IPv6 多播的指導方針。 |