2008-11-01 12 views
6

Ich habe kürzlich festgestellt, dass es eine Unterscheidung zwischen IP-Multicasting (das offenbar nicht so gut im öffentlichen Internet funktioniert) und Multicast-Anwendung (die anscheinend in IRC und PSYC verwendet wird, per http://en.wikipedia.org/wiki/Multicast).Beste Anleitung für die Anwendung Multicasting?

Gibt es ein gutes Tutorial zum Implementieren von Multicasting auf Anwendungsebene?

Ich dachte, der ganze Sinn von Multicast war es, die Bandbreite für gängige Netzwerksegmente zu reduzieren, so dass es mir schwer fällt zu verstehen, was Multicast auf Anwendungsebene tut.

Antwort

3

Der Zweck von Multicasting auf IP-Ebene besteht darin, die Bandbreite für allgemeine Netzwerksegmente zu reduzieren, in denen viele Benutzer denselben Datenverkehr erhalten möchten. Es ist normalerweise auf ein bestimmtes Subnetz beschränkt, und ein IP-Router überträgt das Multicast nicht über das Subnetz hinaus. Dies wird aus Gründen der Skalierbarkeit getan - es wäre keine gute Idee, einem Host zu erlauben, Multicast-Pakete zu erzeugen, die an jede IP-Adresse im Internet weitergegeben werden.

Es gibt verschiedene Möglichkeiten, an "Anwendungslevel" Multicasting zu denken. Ein Ansatz besteht darin, einen Multicast-Baum unter Verwendung der am Multicast teilnehmenden Host-Computer aufzubauen. Der Dijkstra-Algorithmus könnte dazu verwendet werden (Wikipedia hat eine vernünftige Beschreibung davon). Die Liste der teilnehmenden Computer zu pflegen und den Baum auf dem neuesten Stand zu halten, kann jedoch eine Menge Arbeit bedeuten, wenn Hosts dem Netzwerk beitreten und das Netzwerk zu einem erheblichen Preis verlassen. Und Sie haben wahrscheinlich keine gute Schätzung der auf der Anwendungsebene verfügbaren Hop-Kosten.

Ein anderer Ansatz, den Sie überprüfen sollten, ist der Flutungsalgorithmus, der im Query-Routing-Protokoll des Gnutella-Netzwerks verwendet wird. (Wikipedia hat auch eine gute Beschreibung dazu.) Dieser Ansatz verringert die Notwendigkeit, einen Multicast-Baum zu erstellen, hat aber den Nachteil, dass mehr Netzwerkverkehr generiert wird. In der Tat, viel mehr Netzwerkverkehr, da der Verkehr mit dem Quadrat der Anzahl der Knoten wächst, d. H. O (n ** 2).

2

Ein weiteres Beispiel für die Anwendung Multicasting verwendet JGroups in Amazon EC2 oder Google App Engine wie sie IP-Multicast aber die Entwickler nicht wollen, unterstützen Multicast-Funktionalität nutzen.

Verwandte Themen