2. Semantik quell-spezifischer Multicast-Adressen
Der Dienst für quell-spezifisches Multicast ist wie folgt definiert:
Ein Datagramm mit der Quell-IP-Adresse S und der IP-Zieladresse G im SSM-Bereich wird an jeden Host-Socket zugestellt, der ausdrücklich den Empfang von von S an G gesendeten Datagrammen angefordert hat, und nur an diese Sockets.
Wobei, unter Verwendung der Terminologie von [IGMPv3]:
„socket" ist ein implementierungsspezifischer Parameter, der dient, um die verschiedenen anfordernden Entitäten innerhalb des anfordernden Hosts (z. B. Programm, Prozess oder Kommunikationsendpunkt innerhalb eines Programms/Prozesses) zu unterscheiden; der socket-Parameter des BSD-Unix-Systemaufrufs ist ein konkretes Beispiel.
Jeder Host kann ein Datagramm an eine beliebige SSM-Adresse senden, und die Zustellung erfolgt gemäß der obigen Semantik.
Die IP-Modul-Schnittstelle zu den Protokollen der höheren Schicht wird erweitert, damit ein Socket einen durch eine quell-spezifische Adresse und eine IP-Zieladresse identifizierten bestimmten Kanal „abonnieren" (Subscribe) oder das Abonnement „kündigen" (Unsubscribe) kann. Diese erweiterte Schnittstelle ist in Abschnitt 4.1 definiert. Wenn eine Anwendung oder ein Host den Empfang von an eine SSM-Zieladresse G gesendeten Multicast-Datagrammen anfordert, ohne die entsprechende Quelladresse anzugeben, wie es vom ASM-Modell unterstützt wird, ist eine solche Anforderung sinnlos, und Router MÜSSEN (MUST) jede derartige Anforderung ignorieren.
Mehrere Quellanwendungen auf unterschiedlichen Hosts können eine SSM-Zieladresse G ohne Konflikt gemeinsam nutzen, da jedes von einem Quellhost Si gesendete Datagramm nur an die Sockets zugestellt wird, die ausdrücklich den Empfang von speziell von Si an G gesendeten Datagrammen angefordert haben.
Das entscheidende Unterscheidungsmerkmal dieses Modells ist, dass der Kanal durch die Kombination aus einer Multicast-Zieladresse im SSM-Bereich und einer eindeutigen Unicast-Quelladresse identifiziert (adressiert) wird. Daher ist beispielsweise der Kanal
S,G = (192.0.2.1, 232.7.8.9)
verschieden von
S,G = (192.0.2.2, 232.7.8.9),
obwohl beide denselben Zieladressenteil haben. Ebenso sind für IPv6
S,G = (2001:3618::1, FF33::1234)
und
S,G = (2001:3618::2, FF33::1234)
verschiedene Kanäle.