使用 Windows 通訊端的 MLD 和 IGMP
Windows 通訊端可啟用 IPv6 上的多播接聽程式探索 (MLD) ,以及 IPv4 上的網際網路群組管理通訊協定 (IPV4 上的 IGMP) ,透過使用通訊端選項和 IOCTLs。 此頁面描述啟用多播程式設計的通訊端選項,並描述其使用方式。 如需每個通訊端選項的定義,請參閱 通訊端選項 頁面。
如需使用 IOCTL 進行多播程式設計的詳細資訊,請參閱本節稍後的 以狀態為基礎的多播程式設計 。
在 Windows Vista 和更新版本上,有一組通訊端選項可用於支援 IPv6 和 IPv4 位址的多播程式設計。 這些通訊端選項與 IP 無關,可在 IPv6 和 IPv4 上使用。 在 IPv6 上,這些通訊端選項會使用 MLDv2。 在 IPv4 上,這些通訊端選項會使用 IGMPv3。 這些 IP 無關的選項是 Windows Vista 和更新版本上多播程式設計慣用的通訊端選項。 Windows Sockets 使用下列通訊端選項:
通訊端選項 | 引數類型 |
---|---|
MCAST_BLOCK_SOURCE | GROUP_SOURCE_REQ 結構 |
MCAST_JOIN_GROUP | GROUP_REQ 結構 |
MCAST_JOIN_SOURCE_GROUP | GROUP_SOURCE_REQ 結構 |
MCAST_LEAVE_GROUP | GROUP_REQ 結構 |
MCAST_LEAVE_SOURCE_GROUP | GROUP_SOURCE_REQ 結構 |
MCAST_UNBLOCK_SOURCE | GROUP_SOURCE_REQ 結構 |
一組通訊端選項可用於僅支援 IPv6 位址的多播程式設計。 這些通訊端選項會使用 MLDv1 或 MLDv2。 使用的 MLD 版本取決於 Windows 版本。 Windows Vista 和更新版本支援 MLDv2。 Windows Sockets 使用下列通訊端選項:
一組通訊端選項可用於僅支援 IPv4 位址的多播程式設計。 這些通訊端選項使用 IGMPv3 或 IGMPv2。 使用的 IGMP 版本取決於 Windows 版本。 Windows Vista 和更新版本支援 IGMPv3。 Windows Sockets 使用下列通訊端選項:
通訊端選項 | 引數類型 |
---|---|
IP_ADD_MEMBERSHIP | ip_mreq 結構 |
IP_ADD_SOURCE_MEMBERSHIP | ip_mreq_source 結構 |
IP_BLOCK_SOURCE | ip_mreq_source 結構 |
IP_DROP_MEMBERSHIP | ip_mreq 結構 |
IP_DROP_SOURCE_MEMBERSHIP | ip_mreq_source 結構 |
IP_UNBLOCK_SOURCE | ip_mreq_source 結構 |
當 IGMPv3 可供使用時,IP_ADD_SOURCE_MEMBERSHIP、IP_BLOCK_SOURCE、IP_DROP_SOURCE_MEMBERSHIP和IP_UNBLOCK_SOURCE選項會更有效率地處理,因為路由器可以處理篩選。 當只有 IGMPv2 可用時,主機必須處理篩選。
有兩種類別,其中大部分的應用程式都可能落在其中:任何來源和受控制的來源。
- 任何來源 應用程式預設都會接受所有來源,允許視需要關閉個別來源。 任何來源應用程式的範例是可讓所有收件者參與的視訊會議通話。
- 受控制的來源 應用程式會將來源限制為指定的清單,例如網際網路無線電站或值得注意事件的廣播。 每個使用通訊端選項的程式稍有不同。
在 Windows Vista 和更新版本上,下列步驟適用于任何來源應用程式:
- 使用 MCAST_JOIN_GROUP 加入群組。
- 如有需要 ,請使用MCAST_BLOCK_SOURCE 關閉指定的來源。
- 如有需要 ,請使用MCAST_UNBLOCK_SOURCE 重新允許封鎖的來源。
- 使用 MCAST_LEAVE_GROUP 離開群組。
在 Windows Vista 和更新版本上,下列步驟適用于受控制的來源應用程式:
- 使用 MCAST_JOIN_SOURCE_GROUP 來聯結每個群組/來源組。
- 如果所有來源使用相同的群組位址,請使用 MCAST_LEAVE_SOURCE_GROUP 來離開每個群組/來源,或使用 MCAST_LEAVE_GROUP 來保留所有來源。
下列步驟適用于任何來源應用程式:
- 使用 IP_ADD_MEMBERSHIP 加入 IPv6 ) 的群組 (IPV6_ADD_MEMBERSHIP 。
- 如有需要 ,請使用IP_BLOCK_SOURCE 關閉指定的來源。
- 如有需要 ,請使用IP_UNBLOCK_SOURCE 重新允許封鎖的來源。
- 使用 IP_DROP_MEMBERSHIP 讓 IPv6) 的群組保持 (IPV6_DROP_MEMBERSHIP 。
下列步驟適用于受控制的來源應用程式:
- 使用 IP_ADD_SOURCE_MEMBERSHIP 來聯結每個群組/來源組。
- 使用 IP_DROP_SOURCE_MEMBERSHIP 離開每個群組/來源,或者如果所有來源使用相同的群組位址,請使用 IP_DROP_MEMBERSHIP 來保留所有來源。
這些通訊端選項設定的順序具有相關聯的規則。 如需多播通訊端選項的資訊和疑難排解資訊,請參閱 多播通訊端選項行為。