4. Host Requirements (Host-Anforderungen)
Dieser Abschnitt beschreibt Anforderungen an Hosts, die quellenspezifisches Multicast unterstützen, einschließlich:
-
Erweiterungen der IP-Modul-Schnittstelle
-
Erweiterungen des IP-Moduls
-
Zuweisung von SSM-Adressen
4.1. Extensions to the IP Module Interface (Erweiterungen der IP-Modul-Schnittstelle)
Die IP-Modul-Schnittstelle zu Protokollen der oberen Schicht wird erweitert, um Protokollen zu ermöglichen, den Empfang aller Datagramme anzufordern, die an einen bestimmten Kanal gesendet werden.
Subscribe ( socket, source-address, group-address, interface )
Unsubscribe ( socket, source-address, group-address, interface )
wobei
"socket" wie zuvor in Abschnitt 2 definiert ist,
und, unter Umschreibung von [IGMPv3],
"interface" (Schnittstelle) ein lokaler Bezeichner der Netzwerkschnittstelle ist, auf der der Empfang des durch das (source-address, group-address)-Paar identifizierten Kanals aktiviert oder deaktiviert werden soll. Ein spezieller Wert kann verwendet werden, um eine "Standard"-Schnittstelle anzugeben. Wenn der Empfang desselben Kanals auf mehreren Schnittstellen gewünscht wird, wird Subscribe einmal für jede aufgerufen.
Die oben genannten sind streng abstrakte funktionale Schnittstellen -- die Funktionalität kann auf eine implementierungsspezifische Weise bereitgestellt werden. Auf einem Host, der die Multicast-Quellfilter-Anwendungsprogrammierschnittstelle von [MSFAPI] unterstützt, können die Subscribe- und Unsubscribe-Schnittstellen beispielsweise über diese API unterstützt werden. Wenn ein Host so konfiguriert wurde, dass er den SSM-Adressbereich kennt (ob der Konfigurationsmechanismus manuell oder über ein Protokoll erfolgt), SOLLTE (SHOULD) das Betriebssystem des Hosts einen Fehler an eine Anwendung zurückgeben, die eine nicht-quellenspezifische Anforderung stellt, um Multicast zu empfangen, das an eine SSM-Zieladresse gesendet wird.
Ein Host, der diese IP-Modul-Schnittstellen nicht unterstützt (z. B. reine ASM-Hosts) und ihre zugrunde liegenden Protokolle, kann nicht erwarten, zuverlässig Verkehr zu empfangen, der auf einem SSM-Kanal gesendet wird. Wie unten in Abschnitt 5.2 spezifiziert, werden Router keinen SSM-Weiterleitungsstatus einrichten oder Datagramme als Reaktion auf eine ASM-Beitrittsanforderung weiterleiten.
Weit verbreitete Implementierungen der IP-Paketempfangsschnittstelle (z. B. der recvfrom() Systemaufruf in BSD Unix) erlauben es einem Empfänger nicht, die Zieladresse zu bestimmen, an die ein Datagramm gesendet wurde. Auf einem Host mit einer solchen Implementierung kann die Zieladresse eines Datagramms nicht abgeleitet werden, wenn der Socket, auf dem das Datagramm empfangen wird, mehrere Kanäle abonniert (Subscribed) hat. Host-Betriebssysteme SOLLTEN (SHOULD) eine Möglichkeit für einen Host bereitstellen, sowohl die Quelle als auch die Zieladresse zu bestimmen, an die ein Datagramm gesendet wurde. (Als ein Beispiel stellt das Linux-Betriebssystem das Ziel eines Pakets als Teil der Antwort auf den recvmsg() Systemaufruf bereit.) Bis diese Fähigkeit vorhanden ist, können Anwendungen gezwungen sein, Mechanismen der höheren Schicht zu verwenden, um den Kanal zu identifizieren, an den ein Datagramm gesendet wurde.
4.2. Requirements on the Host IP Module (Anforderungen an das Host-IP-Modul)
Ein eingehendes Datagramm, das an eine SSM-Adresse gerichtet ist, MUSS (MUST) vom IP-Modul an alle Sockets zugestellt werden, die (via Subscribe) den Wunsch geäußert haben, Daten zu empfangen, die mit der Quelladresse, der Zieladresse und der ankommenden Schnittstelle des Datagramms übereinstimmen. Es DARF NICHT (MUST NOT) an andere Sockets zugestellt werden.
Wenn der erste Socket auf Host H einen Kanal (S,G) auf Schnittstelle I abonniert, sendet das Host-IP-Modul auf H eine Anforderung auf Schnittstelle I, um benachbarten Routern anzuzeigen, dass der Host Verkehr empfangen möchte, der von Quelle S an das quellenspezifische Multicast-Ziel G gesendet wird. Ähnlich sendet das Host-IP-Modul, wenn der letzte Socket auf einem Host einen Kanal auf Schnittstelle I abbestellt, eine Abbestellungsanforderung für diesen Kanal an Schnittstelle I.
Diese Anforderungen sind typischerweise Internet Group Management Protocol Version 3 (IGMPv3) Nachrichten für IPv4 oder Multicast Listener Discovery Version 2 (MLDv2) Nachrichten für IPv6 [IGMPv3,MLDv2]. Ein Host, der das SSM-Dienstmodell unterstützt, MUSS (MUST) den Host-Teil von [IGMPv3] für IPv4 und [MLDv2] für IPv6 implementieren. Er MUSS (MUST) auch dem in [GMP-SSM] beschriebenen IGMPv3/MLDv2-Verhalten entsprechen.
4.3. Allocation of Source-Specific Multicast Addresses (Zuweisung von quellenspezifischen Multicast-Adressen)
Die SSM-Zieladresse 232.0.0.0 ist reserviert und darf nicht als Zieladresse verwendet werden. Ebenso ist FF3x::4000:0000 reserviert. Das Ziel der Reservierung dieser beiden Adressen ist es, ein ungültiges SSM-Ziel für IPv4 und IPv6 zu bewahren, das in einer Implementierung als Nullwert nützlich sein kann. Der Adressbereich 232.0.0.1 - 232.0.0.255 ist derzeit für die Zuweisung durch die IANA reserviert. SSM-Zieladressen im Bereich FF3x::4000:0001 bis FF3x::7FFF:FFFF sind ebenfalls für die IANA-Zuweisung reserviert [IPv6-MALLOC]. Die Motivation, diese Adressen zu reservieren, wird unten in Abschnitt 9, "IANA-Überlegungen", erläutert.
Die Richtlinie für die Zuweisung der restlichen SSM-Adressen an sendende Anwendungen wird streng lokal durch den sendenden Host bestimmt.
Bei der dynamischen Zuweisung von SSM-Adressen DARF ein Host oder Host-Betriebssystem NICHT (MUST NOT) sequenziell beginnend bei der ersten zulässigen Adresse zuweisen. Es wird EMPFOHLEN (RECOMMENDED), SSM-Adressen an Anwendungen zufällig zuzuweisen, wobei sichergestellt werden muss, dass zugewiesene Adressen nicht gleichzeitig an mehrere Anwendungen vergeben werden (und die reservierten Adressen vermieden werden). Für IPv6 sollte die Randomisierung auf die untersten 31 Bits der Adresse angewendet werden.
Wie in Abschnitt 6 beschrieben, berücksichtigt die Abbildung eines IP-Pakets mit SSM-Zieladresse auf eine Link-Layer-Multicast-Adresse nicht die Quell-IP-Adresse des Datagramms (auf häufig verwendeten Link-Layern wie Ethernet). Wenn alle Hosts bei der ersten zulässigen Adresse beginnen würden, würden mit hoher Wahrscheinlichkeit viele quellenspezifische Kanäle auf lokalen Netzwerken mit gemeinsam genutztem Medium dieselbe Link-Layer-Multicast-Adresse verwenden. Infolgedessen würde Verkehr, der für einen Kanalabonnenten bestimmt ist, an das IP-Modul eines anderen zugestellt, das das Datagramm dann verwerfen müsste.
Ein Host-Betriebssystem SOLLTE (SHOULD) eine Schnittstelle bereitstellen, um einer Anwendung zu ermöglichen, eine eindeutige Zuweisung einer Kanalzieladresse vor Beginn einer Sitzung anzufordern, und diese Zuweisungsdatenbank SOLLTE (SHOULD) über Neustarts des Hosts hinweg bestehen bleiben. Durch die Bereitstellung persistenter Zuweisungen kann eine Host-Anwendung die Sitzung vor ihrer Startzeit auf einer Webseite oder in einem anderen Verzeichnis ankündigen. (Wir stellen fest, dass dieses Problem nicht spezifisch für SSM-Anwendungen ist -- dasselbe Problem tritt bei ASM auf.)
Dieses Dokument definiert weder die Schnittstellen zum Anfordern oder Zurückgeben von Adressen noch spezifiziert es die Host-Algorithmen zum Speichern dieser Zuweisungen. Eine plausible abstrakte API ist in RFC 2771 [RFC2771] definiert. Beachten Sie, dass RFC 2771 es einer Anwendung ermöglicht, eine Adresse innerhalb eines bestimmten Adressbereichs anzufordern. Wenn diese Schnittstelle verwendet wird, SOLLTE (SHOULD) die Startadresse des Bereichs von der Anwendung zufällig ausgewählt werden.
Für IPv6 werden administrativ begrenzte SSM-Kanaladressen erstellt, indem ein geeigneter Bereichsbezeichner für die SSM-Zieladresse gewählt wird. Normale IPv6-Multicast-Bereichsgrenzen [SCOPINGv6] werden auf Verkehr angewendet, der an eine SSM-Zieladresse gesendet wird, einschließlich aller relevanten Grenzen, die sowohl auf die Quell- als auch auf die Zieladresse angewendet werden.
Für IPv4-quellenspezifisches Multicast ist derzeit kein global vereinbarter administrativ begrenzter Adressbereich [ADMIN-SCOPE] definiert. Für IPv4 kann die administrative Begrenzung von SSM-Adressen innerhalb einer administrativen Domäne implementiert werden, indem ausgehender SSM-Verkehr, der an eine begrenzte Adresse gesendet wird, an den Grenzroutern der Domäne gefiltert wird.