Alle Geräte mit WLAN-Schnittstellen verfügen über eine “LAN-Bridge”, die für die Übertragung der Daten zwischen den Ethernet-Ports und den WLAN-Schnittstellen sorgen. Die LAN-Bridge arbeitet dabei in vielen Aspekten wie ein Switch. Die zentrale Aufgabe eines Switches – im Gegensatz zu einem Hub – besteht darin, Pakete nur an den Port weiterzuleiten, an dem der Empfänger angeschlossen ist. Dazu bildet der Switch automatisch aus den eingehenden Datenpaketen eine Tabelle, in der die Absender-MAC-Adressen den Ports zugeordnet werden.
Wenn eine Ziel-Adresse eines eingehenden Pakets in dieser Tabelle gefunden wird, kann der Switch das Paket gezielt an den richtigen Port weiterleiten. Wird die Ziel-Adresse nicht gefunden, so leitet der Switch das Paket an alle Ports weiter. D.h. ein Switch kann ein Paket nur dann zielgerichtet weiterleiten, wenn die Zieladresse schon einmal als Absenderadresse eines Pakets über einen bestimmten Port bei ihm eingegangen ist. Broadcast- oder Multicast-Pakete können aber niemals als Absenderadresse in einem Paket eingetragen sein, darum werden diese Pakete immer auf alle Ports “geflutet”.
Während dieses Verhalten für Broadcasts die richtige Aktion ist (Broadcasts sollen schließlich alle möglichen Empfänger erreichen), ist es für Multicasts nicht unbedingt die gewünschte Lösung. Multicasts richten sich in der Regel an eine bestimmte Gruppe von Empfängern in einem Netzwerk, nicht aber an alle:
- Videostreams werden z. B. häufig als Multicast übertragen, aber nicht alle Stationen im Netzwerk sollen einen bestimmten Stream empfangen.
- Verschiedene Anwendungen im medizinischen Bereich nutzen Multicasts, um Daten an bestimmte Endgeräte zu übertragen, die nicht an allen Stationen eingesehen werden sollen.
Bei einer LAN-Bridge im Gerät wird es daher auch Ports geben, an denen kein einziger Empfänger des Multicasts angeschlossen ist. Das “überflüssige” Versenden der Multicasts auf Ports ohne Empfänger ist zwar kein Fehler, es führt aber zu Performance-Problemen:
- Viele Stationen können die unerwünschten Multicasts nicht in der Hardware der Netzwerkadapter aussortieren, sondern reichen die Pakete einfach an die höher gelegenen Protokollschichten weiter, was zu einer höheren Belastung der CPU führt.
- Gerade in WLANs kann die unnötige Aussendung der Multicasts zu einer deutlichen Einschränkung der verfügbaren Bandbreite führen, wenn keiner der angemeldeten WLAN-Clients Bedarf für den Multicast hat.
Mit dem Internet Group Management Protocol (IGMP) stellt die TCP/IP-Protokollfamilie ein Protokoll bereit, mit dem die Netzwerkstationen dem Router, an dem sie angeschlossen sind, das Interesse an bestimmten Multicasts mitteilen können. Dazu registrieren sich die Stationen bei den Routern für bestimmte Multicast-Gruppen, von denen Sie die entsprechenden Pakete beziehen wollen (Multicast-Registration). IGMP nutzt dazu spezielle Nachrichten zum Anmelden (Join-Messages) und Abmelden (Leave-Messages).
IGMP kann als Layer-3-Protokoll nur IP-Subnetze entsprechend der Anmeldungen an Multicast-Gruppen verwalten. Die in den Netzwerkstrukturen vorhandenen Geräte wie Bridges, Switches oder WLAN Access Points leiten die Pakete aber oft nur auf Layer 2 weiter, so dass IGMP zunächst keine Funktionen bietet, um die Pakete zielgerichtet durch diese Netzwerkstrukturen zu leiten. Die Bridges nutzen daher die Multicast-Registrierung zwischen Stationen und Routern, um zusätzliche Informationen über die zielgerichtete Verteilung der Multicasts zu erhalten. IP-Multicasts müssen nur an die Ports weitergeleitet werden, an denen sich ein Router befindet, der Multicast-Routing beherrscht und die Pakete in bestimmte IP-Subnetzen weiterleiten kann. Dieses Verfahren wird als IGMP Snooping bezeichnet. Die Bridges, die eigentlich die Entscheidung für das Weiterleiten der Pakete anhand der MAC auf Layer 2 treffen, nutzen damit zusätzlich die Layer 3-Informationen der IP-Multicast-Pakete.
Für die weitere Beschreibung der Funktionen des IGMP Snooping im LCOS werden zwei wesentliche Begriffe unterschieden:
- Ein Port ist “Mitglied einer Multicast-Gruppe”, wenn mindestens eine daran angeschlossene Station Pakete für eine bestimmte Multicast-Adresse empfangen möchte. Diese Multicast-Registrierung kann sowohl dynamisch über IGMP Snooping gelernt wie auch manuell konfiguriert sein.
- Ein Port ist ein “Router-Port”, wenn daran ein Router angeschlossen ist, der Multicast-Routing beherrscht und die Pakete in bestimmte IP-Subnetzen weiterleiten kann.
- Eine Multicast-Gruppe ist “nicht registriert”, wenn kein Port der Bridge Mitglied dieser Multicast-Gruppe ist.