Multicastprogrammierung

Die Multicastprogrammierung wird über Windows Sockets aktiviert. Windows Sockets ermöglicht die MulticastListener Discovery (MLD) Versionen 1 (MLDv1) und 2 (MLDv2) auf IPv6 und die Internet Group Management Protocol-Versionen 2 (IGMPv2) und 3 (IGMPv3) durch die Verwendung von Socketoptionen oder IOCTLs. In diesem Abschnitt wird die Windows-Implementierung beschrieben, erläutert, wie Die Multicastprogrammierung mithilfe von Windows Sockets aktiviert wird, und es werden Programmierbeispiele bereitgestellt, um die Verwendung zu veranschaulichen.

Die zweite Version von IGMP, im Folgenden als IGMPv2 bezeichnet, ermöglicht Hosts das Beitreten und Verlassen von Multicastgruppen, die durch eine IPv4-Multicastadresse auf einer bestimmten Netzwerkschnittstelle identifiziert werden. Windows Sockets ermöglicht es einer Anwendung, solche Gruppen auf bestimmten Sockets zu verbinden und diese zu belassen. Ein Nachteil von IGMPv2 besteht jedoch darin, dass jede IPv4-Quelladresse, die mit der IGMPv2-Gruppe verknüpft ist, an alle Mitglieder übertragen kann, was die Gruppe möglicherweise überflutet und für Übertragungen unbrauchbar macht, die eine primäre Quelle erfordern, z. B. eine Internetradiostation. Das Problem mit IGMPv2 besteht darin, dass es nicht in der Lage ist, eine einzelne IPv4-Quelladresse (oder sogar ein paar Quellen) selektiv auszuwählen, und seine Unfähigkeit, Absender (z. B. Schurkensender oder Denial-of-Service-Täter) für eine bestimmte Multicastgruppe zu blockieren. IGMPv3 behebt diese Mängel.

Mit Windows Sockets und IGMPv3 können Anwendungen ein bestimmtes Multicast-IPv4-Quelladressen- und Multicastgruppenpaar auswählen. Darüber hinaus ermöglicht Windows Sockets Entwicklern, zusätzliche Sender in einem bestimmten Quell-/Gruppenpaar selektiv zuzulassen, oder anwendungen das Blockieren bestimmter Sender. IGMPv3 wird unter Windows Vista und höher unterstützt.

Die erste Version von MLD unter IPv6, die als MLDv1 bezeichnet wird, ist IGMPv2 sehr ähnlich und weist dieselben Einschränkungen auf. MLDv1 ermöglicht Hosts das Beitreten und Verlassen von Multicastgruppen, die durch eine IPv6-Multicastadresse auf einer bestimmten Netzwerkschnittstelle identifiziert werden. Windows Sockets ermöglicht es einer Anwendung, solche Gruppen auf bestimmten Sockets zu verbinden und diese zu belassen. Jede IPv6-Quelladresse, die der MLDv1-Gruppe beigetreten ist, kann jedoch an alle Mitglieder übertragen werden, wodurch die Gruppe möglicherweise überflutet und für Übertragungen, die eine primäre Quelle erfordern, unbrauchbar ist. Das Problem mit MLDv1 besteht darin, dass es nicht möglich ist, eine einzelne IPv6-Quelladresse (oder sogar einige Quellen) selektiv auszuwählen, und seine Unfähigkeit, Absender (z. B. Schurkensender oder Denial-of-Service-Täter) für eine bestimmte Multicastgruppe zu blockieren. MLDv2 behebt diese Mängel.

Mit Windows Sockets und MLDv2 können Anwendungen ein bestimmtes Multicast-IPv6-Quelladressen- und Multicastgruppenpaar auswählen. Darüber hinaus ermöglicht Windows Sockets Entwicklern, zusätzliche Sender in einem bestimmten Quell-/Gruppenpaar selektiv zuzulassen, oder anwendungen das Blockieren bestimmter Sender. MLDv2 wird unter Windows Vista und höher unterstützt.

Es gibt zwei Ansätze, die ein Anwendungsprogrammierer bei der Entwicklung von Multicastanwendungen in Windows verfolgen kann. Der erste Ansatz ist änderungsbasiert; Multicastquellen werden nach Bedarf mithilfe von Socketoptionen hinzugefügt oder entfernt, auch während der Übertragung. Der zweite Ansatz basiert auf dem Endgültigzustand; Quelladressen und alle eingeschlossenen/ausgeschlossenen Adressen werden mit einer IOCTL angegeben. Jeder Ansatz ist eine gültige Multicastingmethode, aber Entwickler finden die Verwendung von Socketoptionen und den änderungsbasierten Ansatz möglicherweise intuitiver und flexibler.

Dieser Abschnitt umfasst die folgenden Seiten:

Seitentitel BESCHREIBUNG
MLD und IGMP mit Windows-Sockets Listet die Multicastsocketoptionen auf, die für die Verwendung in der Windows Sockets-Programmierung verfügbar sind, wobei ein änderungsbasierter Programmieransatz verwendet wird. Definiert zwei Multicastanwendungskategorien.
Multicast-Socketoptionsverhalten Enthält eine umfassende Tabelle, in der die Auswirkungen und Anforderungen des Aufrufens von Multicastsocketoptionen in einer bestimmten Reihenfolge erläutert werden.
Beispiel für die Multicastprogrammierung Programmierausschnitt, der veranschaulicht, wie Socketoptionen zum Aktivieren von Multicastanwendungen in Windows verwendet werden.
Final-State-basierte Multicastprogrammierung Erläutert den Final-State-Ansatz und die Verwendung von IOCTLs für die Multicastprogrammierung mit Windows Sockets.
Portieren von Broadcastanwendungen zu IPv6 Enthält Richtlinien für das Portieren von IPv4-Broadcastanwendungen zu IPv6-Multicasts.