Multicast
Definition
Multicasting ist die Möglichkeit, ein Datenpaket an viele Empfänger gleichzeitig zu versenden. Es ist eine one-to many - Kommunikation
(Kap.6.1.1)
Der Witz ist, das die Pakete nur einmal gesendet und übertragen werden müssen, und so bei meherern Clients Bandbreite gespart wird.
- RFC1112 Host Extensions for IP Multicasting
-
- Host groups haben eine gemeinsame Multicastadresse. Die Gruppen sind dynamisch, jederzeit können Hosts beitreten und austreten. Ein Host kann gleichzeitig zu mehreren Gruppen gehören. Ein Host braucht nicht zu einer Gruppe gehören um an die Gruppe
senden zu können.
- Multicast-Paket wird best-effort ausgeliefert, und es hat die selben eigenschafften wie ein IP-Unicast-Paket, die Reihenfolge der auslieferung ist nicht garantiert.
- IPv4 Adresszuweisung: Klasse D: 224.0.0.0 bis 239.255.255.255
Address 224.0.0.0 ist garantiert keiner Gruppe zugewiesen und
224.0.0.1 ist die Gruppe aller IP-Hostes einschließlich Gateways.
- permanent-transient:
Eine permanete Gruppe hat eine wohlbekannte administrativ zugewisene IP-Adresse. Die Adresse ist permanent, nicht die Gruppe, deren Mitglieder dynamisch wechseln können.
Die nicht permananenten Mulkticastadressen sind für transiente Gruppen verfügbasr, die nur solange existieren, solange sie Mitglieder haben.
- Multicast-Router verbreiten die Pakete. Die Lebensdauer wird über ttl (Time-To-Live geregelt, wenn ttl > 1 müssen sie Pakete weitergeroutet werden.
Programmierung:
- Multicast-Pakete werden mit der selben Operation gesendet wie ein anderes IP-Paket auch, der Unterscheid ist die MultiCast-Adresse. Man sollte aber die ttl angeben können. Für die ttl sollte 1 voreingestellt sein, damit ein Paket nicht ausserhalb des lokalen Netzes verbreitet wird.
- Beim Empfangen muß ein Interface einer Gruppe beitreten und eine Gruppe
verlassen können.
Netzwerk:
- IGMP : Internet Group Managemet protokoll wird von den Hosts benutzt, um
die Gruppenmitgliedschaft den Routern im Netzzwerk mutuiteilen. (Ebenso elementra vie ICMP bei Unicast)
(Dieser wird laut ip(7) von Linux mindestens seit Version 2.2 implementiert)
- RFC2236 Internet Group Management Protocol, Version 2
- RFC1301 Multicast Transport Protocol. MTP
- beschreibt ein Atomic Multicast Transport Protokoll mit Flußkontrolle
- stellt zuverlässige Auslieferung von Anwendungsdaten zwischen mehereren kommunizierenen Prozessen her.
- RFC2365 Administratively Scoped IP Multicast.
- RFC2375 IPv6 Multicast Address Assignments.
- RFC2432 Terminology for IP Multicast Benchmarking.
- RFC2588 IP Multicast and Firewalls
- RFC2771 An Abstract API for Multicast Address Allocation
- RFC2887 The Reliable Multicast Design Space for Bulk Data Transfer
Anwendungen
- Multimedia-Anwendungen
- Internet-Video oder ein Internet-Radio
- Nachrichtenverteilungen
- Ausgewählte Knoten in einem Rechner sollen informiert werden ...
Beispiel für verteilte Computerspiele
- Redundanz für höhere Verfügbarkeit
-
Notlösungen
Viele Router unterstützen Multicast nicht. Deswegen hat man das
MBONE aufgezogen, was ein virtuelles Netz im Internet ist (Kap.6.1.1)
Man hat Software gebaut, die Multicast über Unicast tunnelt ...
Implementierungen
- Linux- Multi-Cast-HOWTO
- Die Linux-Implementierung ist auch in ip(7) beschrieben.
- Cisco-Multicast-Seite
Organisationen
- http://www.ipmulticast.com/
Programmierung
siehe multicastv4.tgz. Es ist ein einfaches Beispiel,
was direkt die Systemcalls nutzt.