Internet Group Management Protocol
# Internet Group Management Protocol

Das Internet Group Management Protocol (IGMP) ist ein Netzwerkprotokoll der Internetprotokollfamilie und dient zur Organisation von Multicast-Gruppen. IGMP benutzt wie ICMP das Internet Protocol (IP) und ist Bestandteil von IP auf allen Hosts, die den Empfang von IP-Multicasts unterstützen.

## Verwendung

Das Internet Group Management Protocol basiert auf dem Internet Protocol (IP) und ermöglicht IPv4-Multicasting (Gruppenkommunikation) im Internet. IP-Multicasting ist die Verteilung von IP-Paketen unter einer IP-Adresse an mehrere Stationen gleichzeitig. IGMP bietet die Möglichkeit, dynamisch Gruppen zu verwalten. Die Verwaltung findet nicht in der Sende-Station statt, sondern in den Routern, an denen Empfänger einer Multicast-Gruppe direkt angeschlossen sind. IGMP bietet Funktionen, mit denen eine Station einem Router mitteilt, dass sie Multicast-IP-Pakete einer bestimmten Multicast-Gruppe empfangen will. Multicast-Routing-Protokolle (DVMRP, MOSPF, PIM) übernehmen die Koordination der Übertragung zwischen den Routern. Der Sender von Multicast-IP-Paketen weiß dabei nicht, welche und wie viele Stationen seine Pakete empfangen, denn er verschickt nur ein einziges Datenpaket an seinen übergeordneten Router. Dieser dupliziert das IP-Paket bei Bedarf, wenn er mehrere ausgehende Schnittstellen mit Empfängern hat.

Für IPv6-Systeme findet das in ICMPv6 integrierte Multicast Listener Discovery (MLD) Verwendung, das in ähnlicher Weise wie IGMP arbeitet.

Es gibt drei Versionen von IGMP mit folgenden prinzipiellen Eigenschaften:

* IGMPv1 Ein Host kann einer Multicast-Gruppe beitreten. Ein Abmelden ist hier nicht implementiert. Nach einem Timeout ist der Host wieder ausgetragen.
* IGMPv2 Ein Host kann sich jetzt von der Multicast-Gruppe abmelden (Leave-Message implementiert). Damit können auch Multicasts mit großer Bandbreite behandelt werden.
* IGMPv3 Hier kann nun vorgegeben werden, von welcher Quelle der Multicast-Stream gewünscht wird. Dies ist ein wesentlicher Sicherheitsaspekt, wenn auch nicht der optimale.

## Paketformat

IGMP-Pakete (in Version 1 und Version 2) haben eine Größe von 64 Bit. Folgendes Format wird verwendet:

| 0 … 7 | 8 … 15 | 16 … 31 |
| - | - | - |
| Typ | maximale Antwortzeit | Prüfsumme |
| Multicast-Gruppenadresse |||

Das Feld „maximale Antwortzeit“ ist nur für Typ 0x11 definiert, bei allen anderen Typen wird dieses Feld ignoriert.

Dabei können folgende Werte für den Typ angenommen werden:

| Typ | Adresse | Bedeutung |
| - | - | - |
| 0x11 | ohne | allgemeine Anfrage |
| 0x11 | mit | gruppenspezifische Anfrage |
| 0x12 | mit | IGMPv1 Mitgliedschaft anmelden/bestätigen |
| 0x16 | mit | IGMPv2 Mitgliedschaft anmelden/bestätigen |
| 0x17 | mit | IGMPv2 Mitgliedschaft beenden |
| 0x22 | mit | IGMPv3 Mitgliedschaft anmelden/bestätigen/beenden |

IGMP-Pakete werden, wie ICMP, in IP-Datagramme gekapselt und benutzen die IP-Protokollnummer 2. IGMP ist im OSI-Schichtenmodell also in der Vermittlungsschicht anzusiedeln.

