Freigeben über


IP Multicast

IP-Multicast fällt in die Kategorie nicht gerootete Datenebene und nicht entstammte Kontrollebene. Alle Anwendungen spielen eine Blattrolle. Derzeit verwenden die meisten IP-Multicastimplementierungen eine Reihe von Socketoptionen, die von Steve Deering für die Internet Engineering Task Force (IETF) vorgeschlagen werden. Daher werden fünf Maßnahmen zur Verfügung gestellt:

  • IP_MULTICAST_TTL – Legt den Zeit-zu-Live-Bereich einer Multicastsitzung fest.
  • IP_MULTICAST_IF: Bestimmt die Schnittstelle, die für Multicasting verwendet werden soll.
  • IP_ADD_MEMBERSHI : Verknüpft eine angegebene Multicastsitzung.
  • IP_DROP_MEMBERSHIP – Bricht aus einer Multicastsitzung ab.
  • IP_MULTICAST_LOOP – Steuert den Loopback von Multicastdatenverkehr.

Das Festlegen der Zeit-zu-Live für einen IP-Multicast-Socket wird direkt der Verwendung des SIO_MULTICAST_SCOPE Befehlscodes für WSAIoctl-zugeordnet.

Die Methode zur Bestimmung der für Multicasting zu verwendenden IP-Schnittstelle erfolgt über eine TCP/IP-spezifische Socketoption, wie im Anhang zu Windows Sockets 2 Protocol-Specific beschrieben. Die verbleibenden drei Vorgänge werden gut mit der hier beschriebenen Windows Sockets 2-Semantik behandelt.

Die Anwendung würde Sockets mit c_leaf/d_leaf Flags in WSASocket-öffnen. Es würde WSAJoinLeaf verwenden, um sich einer Multicastgruppe auf der Standardschnittstelle hinzuzufügen, die für Multicastvorgänge bestimmt ist. Wenn das Flag in WSAJoinLeaf angibt, dass dieser Socket nur ein Absender ist, ist der Verknüpfungsvorgang im Wesentlichen ein no-op, und es müssen keine IGMP-Nachrichten gesendet werden. Andernfalls wird ein IGMP-Paket an den Router gesendet, um Interessen beim Empfangen von Paketen anzugeben, die an die angegebene Multicastadresse gesendet werden. Da die Anwendung spezielle c_leaf/d_leaf Sockets erstellt hat, die nur zum Ausführen von Multicasts verwendet werden, würde das Standard-Closesocket--Funktion verwendet, um die Multicastsitzung abzulegen. Der SIO_MULTIPOINT_LOOPBACK Befehlscode für WSAIoctl- bietet einen generischen Kontrollmechanismus zum Bestimmen, ob Daten, die an einem d_leaf Socket in einem nichtrooted Multipoint-Schema gesendet werden, auch im selben Socket empfangen werden können.

Anmerkung

Die Winsock-Version der option IP_MULTICAST_LOOP unterscheidet sich semantisch von der UNIX-Version der option IP_MULTICAST_LOOP:

 

  • In Winsock gilt die option IP_MULTICAST_LOOP nur für den Empfangspfad.
  • In der UNIX-Version gilt die option IP_MULTICAST_LOOP für den Sendepfad.

Anwendungen ON und OFF (die einfacher nachverfolgt werden können als X und Y) verbinden beispielsweise dieselbe Gruppe auf derselben Schnittstelle; application ON legt die option IP_MULTICAST_LOOP fest, application OFF legt die option IP_MULTICAST_LOOP deaktiviert. Wenn "EIN" und "OFF" Winsock-Anwendungen sind, kann OFF an "EIN" senden, aber "EIN" kann nicht an "AUS" gesendet werden. Wenn "ON" und "OFF" UNIX-Anwendungen sind, kann ON dagegen an OFF gesendet werden, aber OFF kann nicht an EIN gesendet werden.