Zusammenfassung

  • RFC 1112 machte Multicast-Mitgliedschaften durch lokale Abfragen und Berichte sichtbar. Zufällige Verzögerungen ließen jedoch den Bericht eines Hosts für die Gruppe stehen, ohne ihre Mitglieder aufzuzählen.
  • IGMPv1 kannte keine Leave-Nachricht: Erst wenn Berichte ausblieben und der Mitgliedschaftstimer ablief, wusste der Router, dass der letzte Empfänger gegangen war. RFC 2236 ergänzte später ein schnelleres Austrittssignal.

Eine Gruppenadresse war keine Gästeliste

Eine IP-Multicast-Adresse konnte dauerhaft reserviert sein, obwohl ihr kein Host angehörte. Ein Host durfte außerdem an eine Gruppe senden, ohne ihr beizutreten. In RFC 1112 trennte Stephen Deering diese Sachverhalte: Die Zieladresse benannte die Gruppe, die Mitgliedschaft wurde je Host und Netzwerkschnittstelle geführt. Eine Anwendung konnte IP zum Beitritt oder Austritt auffordern; der benachbarte Router brauchte eine andere Information: Wollte auf diesem lokalen Netz noch jemand die Gruppe empfangen?

Der Standard unterschied zwei Unterstützungsstufen. Ein Host der Stufe 1 konnte Multicast senden, trat aber keiner Gruppe bei und implementierte IGMP nicht. Stufe 2 ergänzte Gruppenmitgliedschaft und das Protokoll, mit dem der benachbarte Multicast-Router informiert wurde. Die Gruppenadresse allein verriet also nicht, wer Pakete empfangen würde; nötig war ein aktuelles Signal vom lokalen Segment.

Warum der erste Bericht nicht allein ankam

Der Router sandte eine Host Membership Query an die All-Hosts-Adresse 224.0.0.1. Jeder Level-2-Host prüfte seine Mitgliedschaften auf dieser Schnittstelle. Antworten alle sofort, entsteht eine Welle identischer Steuerpakete. RFC 1112 gab jeder Mitgliedschaft deshalb einen zufälligen Berichtsverzögerungstimer. Hörte ein Host vor dessen Ablauf einen gültigen Bericht für dieselbe Gruppe, brach er seinen eigenen anstehenden Bericht ab. Eine Antwort genügte damit, um dem Router mindestens einen verbliebenen lokalen Teilnehmer zu melden.

Das war eine bewusste Informationskompression. Der Router erhielt weder eine Anzahl noch eine Maschinenliste noch den Nachweis, dass jede Anwendung zum Empfang bereit war. Er erhielt einen Hinweis auf die Anwesenheit der Gruppe auf einem lokalen Netz. Das verringerte redundante Nachrichten, ließ aber Details weg, die für die Weiterleitung nicht benötigt wurden.

Der Beitritt zu einer neuen Gruppe folgte einer anderen Regel. Ein Host sollte sofort berichten, weil er der erste Teilnehmer auf diesem Netz sein könnte. Eine oder zwei Wiederholungen nach kurzer Verzögerung wurden empfohlen, falls der erste Bericht verloren ging. Multicast blieb dennoch wie gewöhnliches IP best effort: Weder vollständiger Empfang bei jedem Mitglied noch eine einheitliche Reihenfolge waren garantiert. Die Mitgliedschaftsmeldung informierte den Router, sicherte aber keine Zustellung.

Das Schweigen nach dem letzten Empfänger

IGMPv1 definierte Queries und Reports, aber keine Leave-Group-Nachricht. Trat ein Host aus, betrachtete ihn sein lokales IP-Modul nicht mehr als Mitglied; der Router erhielt jedoch keine sofortige Meldung. Periodische Abfragen aktualisierten seinen Zustand. Blieb ein neuer Bericht aus, lief der Mitgliedschaftstimer schließlich ab. Die Einfachheit des Protokolls ließ den Zustand noch eine Weile nach dem Weggang des letzten Empfängers bestehen.

Das war kein ewiger Irrtum, sondern eine durch Query- und Mitgliedschaftstimer begrenzte Verzögerung. Bei Gruppen mit hohem Datenvolumen oder häufigem Mitgliederwechsel konnte der Router aber weiter an ein Segment ohne Empfänger senden, bis der Zustand ablief.

RFC 2236 ergänzte IGMPv2 um eine Leave-Group-Nachricht für eine schnellere Meldung. Der zuständige Querier sandte daraufhin gruppenspezifische Queries und wartete auf eine Antwort, ehe er das Segment als leer einstufte. Das machte Schweigen nicht zur Gewissheit, sondern verkürzte das Unsicherheitsfenster und prüfte, ob noch jemand blieb.

Der Tausch von 1989 war klar: IGMPv1 sparte Steuerverkehr, indem es Mitgliedschaft als Präsenzfrage behandelte. Ein Bericht konnte die anderen Antworten unterdrücken und dem Router doch genug Information lassen, um über die Weiterleitung der Gruppe im lokalen Netz zu entscheiden. Wie viele Mitglieder hinter dem einzelnen Bericht standen — oder wann das letzte gegangen war — blieb offen.

Quellen