7.1 Extensions to the IP Service Interface (Erweiterungen der IP-Dienstschnittstelle)
7.1. Extensions to the IP Service Interface (Erweiterungen der IP-Dienstschnittstelle)
Eingehende Multicast-IP-Datagramme werden von Protokollmodulen der oberen Schicht mit derselben "Receive IP"-Operation wie normale Unicast-Datagramme empfangen. Die Auswahl eines Zielprotokolls der oberen Schicht basiert auf dem Protokollfeld im IP-Header, unabhängig von der Ziel-IP-Adresse. Bevor jedoch Datagramme, die an eine bestimmte Gruppe gerichtet sind, empfangen werden können, muss ein Protokoll der oberen Schicht das IP-Modul auffordern, dieser Gruppe beizutreten. Daher muss die IP-Dienstschnittstelle erweitert werden, um zwei neue Operationen bereitzustellen:
JoinHostGroup ( group-address, interface )
LeaveHostGroup ( group-address, interface )
Die JoinHostGroup-Operation fordert an, dass dieser Host Mitglied der durch group-address identifizierten Hostgruppe auf der angegebenen Netzwerkschnittstelle wird. Die LeaveHostGroup-Operation fordert an, dass dieser Host seine Mitgliedschaft in der durch group-address identifizierten Hostgruppe auf der angegebenen Netzwerkschnittstelle aufgibt. Das interface-Argument kann auf Hosts weggelassen werden, die nur eine Schnittstelle unterstützen. Für Hosts, die an mehr als ein Netzwerk angeschlossen sein können, kann das Protokoll der oberen Schicht wählen, die Schnittstelle nicht anzugeben, in diesem Fall gilt die Anforderung für die Standardschnittstelle zum Senden von Multicast-Datagrammen (siehe Abschnitt 6.1).
Es ist zulässig, derselben Gruppe auf mehr als einer Schnittstelle beizutreten, in diesem Fall können doppelte Multicast-Datagramme empfangen werden. Es ist auch zulässig, dass mehr als ein Protokoll der oberen Schicht die Mitgliedschaft in derselben Gruppe anfordert.
Beide Operationen sollten sofort zurückkehren (d.h., sie sind nicht blockierende Operationen) und Erfolg oder Misserfolg anzeigen. Beide Operationen können aufgrund einer ungültigen Gruppenadresse oder Schnittstellenkennung fehlschlagen. JoinHostGroup kann aufgrund fehlender lokaler Ressourcen fehlschlagen. LeaveHostGroup kann fehlschlagen, weil der Host nicht zur angegebenen Gruppe auf der angegebenen Schnittstelle gehört. LeaveHostGroup kann erfolgreich sein, aber die Mitgliedschaft bleibt bestehen, wenn mehr als ein Protokoll der oberen Schicht die Mitgliedschaft in derselben Gruppe angefordert hat.