4.1. Extensions to the IP Module Interface (Erweiterungen der IP-Modulschnittstelle)
4.1. Extensions to the IP Module Interface (Erweiterungen der IP-Modulschnittstelle)
Die Schnittstelle des IP-Moduls zu Protokollen der oberen Schicht wurde erweitert, um Protokollen zu ermöglichen, den Empfang aller Datagramme anzufordern, die an einen bestimmten Kanal (channel) gesendet werden.
Subscribe ( socket, source-address, group-address, interface )
Unsubscribe ( socket, source-address, group-address, interface )
Dabei gilt:
socket ist wie in Abschnitt 2 definiert,
und, unter Bezugnahme auf die Beschreibung in [IGMPv3],
interface ist der lokale Bezeichner einer Netzwerkschnittstelle, der die Netzwerkschnittstelle identifiziert, auf der der Empfang des durch das Paar (source-address, group-address) identifizierten Kanals aktiviert oder deaktiviert werden soll. Ein spezieller Wert kann verwendet werden, um die "Standard"-Schnittstelle anzugeben. Wenn derselbe Kanal auf mehreren Schnittstellen empfangen werden soll, muss Subscribe für jede Schnittstelle separat aufgerufen werden.
Das Obige ist eine streng abstrakte funktionale Schnittstelle — die Funktionalität kann auf implementierungsspezifische Weise bereitgestellt werden. Auf einem Host, der die Multicast Source Filtering Application Programming Interface (Multicast-Quellfilter-Anwendungsprogrammierschnittstelle) [MSFAPI] unterstützt, können die Subscribe- und Unsubscribe-Schnittstellen beispielsweise ü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 protokollbasiert ist), SOLLTE (SHOULD) das Betriebssystem des Hosts einer Anwendung, die eine nicht-quellenspezifische Anfrage zum Empfang von Multicast stellt, der an eine SSM-Zieladresse gesendet wird, einen Fehler zurückgeben.
Hosts, die diese IP-Modulschnittstellen (z. B. nur ASM-fähige Hosts) und die zugrunde liegenden Protokolle nicht unterstützen, können nicht zuverlässig Verkehr empfangen, der auf einem SSM-Kanal gesendet wird. Wie in Abschnitt 5.2 unten beschrieben, richten Router keinen SSM-Weiterleitungszustand ein und leiten keine Datagramme als Reaktion auf ASM-Join-Anfragen weiter.
Weit verbreitete Implementierungen der IP-Paketempfangsschnittstelle (z. B. der Systemaufruf recvfrom() in BSD Unix) erlauben es einem Empfänger nicht, die Zieladresse zu bestimmen, an die ein Datagramm gesendet wurde. Auf Hosts mit einer solchen Implementierung ist es nicht möglich, die Zieladresse eines Datagramms abzuleiten, wenn der empfangende Socket mehrere Kanäle abonniert hat. Das Betriebssystem des Hosts SOLLTE (SHOULD) eine Möglichkeit bereitstellen, mit der ein Host die Quell- und Zieladresse bestimmen kann, an die ein Datagramm gesendet wurde. (Das Linux-Betriebssystem stellt beispielsweise das Ziel eines Pakets als Teil der Antwort auf den Systemaufruf recvmsg() bereit.) Bis diese Funktionalität vorhanden ist, können Anwendungen gezwungen sein, Mechanismen der oberen Schicht zu verwenden, um den Kanal zu identifizieren, an den ein Datagramm gesendet wurde.