Multicast
Multicast ist eine Methode der Datenübertragung in IP-Netzwerken, bei der ein Sender Pakete an eine Gruppe von Empfängern gleichzeitig sendet. Anders als bei Unicast (Punkt-zu-Punkt) oder Broadcast (an alle) werden die Daten nur an diejenigen Geräte geliefert, die sich für den Empfang registriert haben.
Stell dir Multicast wie einen Radiosender vor: Der Sender strahlt das Programm einmal aus, und nur die Hörer, die ihren Empfänger auf die richtige Frequenz eingestellt haben, empfangen es. Die Nachricht muss nicht für jeden Empfänger einzeln gesendet werden, was enorm Bandbreite spart.
Unicast, Broadcast und Multicast im Vergleich
Um Multicast richtig einordnen zu können, ist es hilfreich, die drei grundlegenden Übertragungsarten in Netzwerken zu verstehen. Jede hat ihre spezifischen Einsatzgebiete und Vor- sowie Nachteile.
Unicast
Bei Unicast sendet ein Gerät Daten gezielt an genau einen Empfänger. Das ist die häufigste Kommunikationsform im Internet. Wenn du eine Webseite aufrufst oder eine E-Mail versendest, nutzt du Unicast. Der Nachteil: Möchte ein Server dieselben Daten an 100 Clients senden, muss er 100 separate Datenströme erzeugen.
Broadcast
Bei Broadcast sendet ein Gerät Daten an alle Teilnehmer im lokalen Netzwerksegment. Das ist nützlich für Dienste wie DHCP, bei denen ein Client noch keine Adresse hat und den Server erst finden muss. Der Nachteil: Alle Geräte im Netzwerk müssen das Paket verarbeiten, auch wenn es für sie irrelevant ist. Broadcast-Pakete werden zudem nicht über Router weitergeleitet.
Multicast
Multicast kombiniert die Vorteile beider Ansätze: Der Sender erzeugt nur einen Datenstrom, aber nur interessierte Empfänger erhalten die Daten. Die Vervielfältigung der Pakete erfolgt erst an den Netzwerk-Knotenpunkten (Routern und Switches), wo sie tatsächlich benötigt wird.
| Eigenschaft | Unicast | Broadcast | Multicast |
|---|---|---|---|
| Empfänger | Einer | Alle im Segment | Gruppe (registriert) |
| Bandbreitenverbrauch | Hoch bei vielen Empfängern | Mittel | Niedrig |
| Router-Durchgang | Ja | Nein | Ja (mit Multicast-Routing) |
| Typische Anwendung | Web, E-Mail | DHCP, ARP | Streaming, IPTV |
Fazit: Multicast ist die effizienteste Lösung, wenn dieselben Daten an viele, aber nicht alle Empfänger gesendet werden sollen. Während Unicast bei steigender Empfängerzahl linear mehr Bandbreite benötigt und Broadcast alle Geräte belastet, skaliert Multicast elegant mit der Netzwerkstruktur.
Multicast-Adressen in IPv4
Für Multicast ist in IPv4 ein eigener Adressbereich reserviert: die sogenannten Klasse-D-Adressen von 224.0.0.0 bis 239.255.255.255. Diese Adressen identifizieren keine einzelnen Hosts, sondern Multicast-Gruppen. Jedes Gerät, das einer bestimmten Gruppe beitritt, empfängt alle an diese Gruppenadresse gesendeten Pakete.
Die IANA (Internet Assigned Numbers Authority) verwaltet die Zuweisung dieser Adressen. Einige Bereiche sind für spezielle Zwecke reserviert:
- 224.0.0.0 - 224.0.0.255: Link-lokale Adressen (werden nicht geroutet)
224.0.0.1: Alle Hosts im lokalen Netz224.0.0.2: Alle Multicast-fähigen Router224.0.0.5: Alle OSPF-Router
- 224.0.1.0 - 224.0.1.255: Internetweit routbare Adressen
- 239.0.0.0 - 239.255.255.255: Administrativ begrenzte Adressen (für private Nutzung)
Wie Multicast funktioniert
Die Funktionsweise von Multicast basiert auf zwei zentralen Komponenten: einem Protokoll zur Gruppenverwaltung und einem Routing-Protokoll zur Verteilung der Pakete.
IGMP - Internet Group Management Protocol
IGMP (Internet Group Management Protocol) ist das Protokoll, mit dem Hosts ihrem lokalen Router mitteilen, dass sie einer Multicast-Gruppe beitreten oder diese verlassen möchten. Der Router führt eine Liste aller aktiven Gruppen in seinem Netzwerksegment und leitet Multicast-Pakete nur weiter, wenn mindestens ein interessierter Empfänger vorhanden ist.
IGMP existiert in drei Versionen: IGMPv1, IGMPv2 und IGMPv3. Die neueste Version ermöglicht es Hosts, nicht nur Gruppen beizutreten, sondern auch anzugeben, von welchen Quellen sie Daten empfangen möchten (Source-Specific Multicast). Die technischen Details sind in RFC 1112 und nachfolgenden RFCs spezifiziert.
PIM - Protocol Independent Multicast
PIM (Protocol Independent Multicast) ist das am weitesten verbreitete Multicast-Routing-Protokoll. Es baut sogenannte Verteilungsbäume auf, über die Multicast-Pakete von der Quelle zu allen Empfängern gelangen. PIM nutzt die vorhandene Unicast-Routing-Tabelle und ist daher unabhängig vom verwendeten Routing-Protokoll.
Es gibt verschiedene PIM-Modi, die je nach Anwendungsszenario eingesetzt werden:
- PIM Dense Mode: Flutet Multicast-Pakete zunächst an alle Router und schneidet ("prunt") dann die Äste ab, an denen keine Empfänger sind. Geeignet für Netze mit vielen Empfängern.
- PIM Sparse Mode: Baut Verteilungsbäume nur dort auf, wo Empfänger existieren. Benötigt einen Rendezvous Point (RP) als zentralen Treffpunkt. Standardmodus in den meisten Netzen.
- PIM Source-Specific Multicast (SSM): Empfänger geben die gewünschte Quelle explizit an. Ideal für IPTV und ähnliche Anwendungen.
Die Spezifikation von PIM Sparse Mode findest du in RFC 4601.
Praktische Anwendungen von Multicast
Multicast wird überall dort eingesetzt, wo dieselben Daten effizient an viele Empfänger verteilt werden müssen. Die wichtigsten Anwendungsgebiete sind:
- IPTV und Video-Streaming: Fernsehsender werden als Multicast-Ströme übertragen. Jeder Kanal hat eine eigene Multicast-Adresse.
- Videokonferenzen: Mehrere Teilnehmer empfangen denselben Video- und Audiostrom.
- Software-Verteilung: Updates können gleichzeitig an viele Clients ausgerollt werden.
- Finanzmärkte: Börsenkurse werden per Multicast an Handelsplattformen verteilt.
- Routing-Protokolle: OSPF und andere Protokolle nutzen Multicast für ihre Kommunikation zwischen Routern.
Multicast in IPv6
In IPv6 spielt Multicast eine noch größere Rolle als in IPv4, da es dort kein Broadcast mehr gibt. Alle Broadcast-Funktionen wurden durch Multicast ersetzt. IPv6-Multicast-Adressen beginnen mit dem Präfix ff00::/8.
Die Adressstruktur enthält Informationen über den Gültigkeitsbereich (Scope):
- ff02::1: Alle Hosts im lokalen Link (entspricht 224.0.0.1 in IPv4)
- ff02::2: Alle Router im lokalen Link
- ff02::1:2: Alle DHCPv6-Server
- ff05::: Site-lokaler Scope
- ff0e::: Globaler Scope
Statt IGMP verwendet IPv6 das Protokoll MLD (Multicast Listener Discovery), das ähnliche Funktionen erfüllt, aber in ICMPv6 integriert ist.
Multicast im lokalen Netzwerk
Auf Layer 2 (Ethernet) müssen Multicast-IP-Adressen in entsprechende MAC-Adressen umgewandelt werden. Hierfür wird ein spezieller Adressbereich verwendet: Die Ethernet-Multicast-MAC-Adressen beginnen mit 01:00:5E, gefolgt von den unteren 23 Bit der IP-Multicast-Adresse.
Ein Problem dabei: Da nur 23 Bit der IP-Adresse in die MAC-Adresse übernommen werden, können verschiedene Multicast-IP-Adressen auf dieselbe MAC-Adresse abgebildet werden. Switches können daher mit IGMP Snooping konfiguriert werden. Dabei lauscht der Switch auf IGMP-Nachrichten und lernt, an welchen Ports sich Multicast-Empfänger befinden. So kann er Multicast-Pakete gezielt nur an diese Ports weiterleiten, anstatt sie an alle Ports zu fluten.
Quellen und weiterführende Links
- RFC 1112 - Host Extensions for IP Multicasting - Grundlegende Multicast-Spezifikation
- RFC 4601 - Protocol Independent Multicast - Sparse Mode - PIM-SM Spezifikation
- IANA Multicast Addresses - Offizielle Adresszuweisungen
- Cisco IP Multicast Overview - Detaillierte technische Einführung
- Elektronik-Kompendium: Multicast - Deutschsprachige Erklärung