Zum Hauptinhalt springen

4.1. Erweiterungen der IP-Modul-Schnittstelle

Die IP-Modul-Schnittstelle zu den Protokollen der höheren Schicht wird erweitert, damit ein Protokoll den Empfang aller an einen bestimmten Kanal gesendeten Datagramme anfordern kann.

Subscribe ( socket, source-address, group-address, interface )

Unsubscribe ( socket, source-address, group-address, interface )

Wobei:

„socket" wie in Abschnitt 2 definiert ist,

und, unter Bezugnahme auf [IGMPv3]:

„interface" ist ein lokaler Bezeichner für die Netzwerkschnittstelle, der angibt, auf welcher Netzwerkschnittstelle der Empfang des durch das Paar (source-address,group-address) identifizierten Kanals aktiviert oder deaktiviert werden soll. Ein Sonderwert kann verwendet werden, um die „Standard"-Schnittstelle anzugeben. Wenn der Empfang desselben Kanals auf mehreren Schnittstellen gewünscht wird, ist für jede Schnittstelle ein separater Subscribe-Aufruf erforderlich.

Die obige Schnittstelle ist streng genommen eine abstrakte Funktionsschnittstelle -- ihre Funktionalität kann implementationsspezifisch bereitgestellt werden. Beispielsweise können auf Hosts, die die Multicast-Quellfilter-Schnittstelle (Socket Interface Extensions for Multicast Source Filters, [MSFAPI]) unterstützen, die Schnittstellen Subscribe und Unsubscribe über diese API unterstützt werden. Wenn ein Host so konfiguriert ist, dass er den SSM-Adressbereich kennt (unabhängig davon, ob der Konfigurationsmechanismus manuell oder über ein Protokoll erfolgt), SOLLTE (SHOULD) das Host-Betriebssystem der Anwendung einen Fehler zurückgeben, wenn diese eine nicht quell-spezifische Anforderung zum Empfang von an eine SSM-Zieladresse gesendetem Multicast stellt.

Hosts, die diese IP-Modul-Schnittstellen (z. B. nur ASM unterstützende Hosts) und ihre zugrunde liegenden Protokolle nicht unterstützen, können nicht erwarten, den auf einem SSM-Kanal gesendeten Datenverkehr zuverlässig zu empfangen. Wie in Abschnitt 5.2 unten festgelegt, richten Router keinen SSM-Weiterleitungszustand ein oder leiten Datagramme weiter als Reaktion auf eine ASM-Join-Anforderung.

Die weit verbreitete Implementierung von IP-Datagramm-Empfangsschnittstellen (z. B. der Systemaufruf recvfrom() in BSD Unix) erlaubt es dem Empfänger nicht, die Zieladresse zu bestimmen, an die ein Datagramm gesendet wurde. Auf Hosts mit solchen Implementierungen ist es nicht möglich, die Zieladresse des Datagramms abzuleiten, wenn der Socket, der Datagramme empfängt, für mehrere Kanäle abonniert ist. Das Host-Betriebssystem SOLLTE (SHOULD) eine Möglichkeit bereitstellen, mit der der Host die beim Senden des Datagramms verwendeten Quell- und Zieladressen bestimmen kann. (Als Beispiel stellt das Linux-Betriebssystem die Zieladresse des Pakets in der Antwort des Systemaufrufs recvmsg() bereit.) Bis diese Fähigkeit vorhanden ist, können Anwendungen gezwungen sein, höherschichtige Mechanismen zu verwenden, um den Kanal zu identifizieren, an den das Datagramm gesendet wurde.