Frage

Ich habe vor kurzem bewusst geworden bin, dass es einen Unterschied zwischen IP-Multicasting (die offenbar nicht so gut auf das öffentliche Internet funktioniert) und Anwendung Multicasting (die anscheinend in IRC und PSYC verwendet wird, per http://en.wikipedia.org/wiki/Multicast )

Gibt es eine gute Tutorial Application-Level-Multicast bei der Umsetzung?

dachte ich, der ganze Sinn der Multicast-Bandbreite für die gemeinsamen Netzwerksegmente zu reduzieren war, so ist es schwer für mich zu verstehen, was auf Anwendungsebene-Multicast-Fall ist.

War es hilfreich?

Lösung

Der Zweck der IP-Ebene Multicast ist die Bandbreite für die gemeinsame Netzwerksegmenten zu reduzieren, wo viele Benutzer den gleichen Verkehr erhalten möchten. Es ist in der Regel auf ein bestimmtes Subnetz beschränkt und ein IP-Router die Multicast über das Subnetz nicht ausbreiten. Dies ist für die Skalierbarkeit Gründen getan -. Es wäre keine gute Idee, einen Host zu ermöglichen, Multicast-Pakete stammen, die im Internet zu jeder IP-Adresse weitergeleitet werden

Es gibt verschiedene Möglichkeiten von „Anwendungsebene“ Multicasting zu denken. Ein Ansatz ist es, einen Multicast-Baum mit den Host-Computern in der Multicast zu bauen teilnehmen. Dijkstra-Algorithmus kann verwendet werden, um dies zu tun (Wikipedia hat eine angemessene Beschreibung dieses). Um jedoch die Liste der teilnehmenden Computern beibehalten - und den Baum auf dem neuesten Stand zu halten - kann eine Menge Arbeit, wenn Hosts bündeln und das Netzwerk mit einem erheblichen Rate zu verlassen. Und Sie wahrscheinlich nicht eine gute Schätzung der Hopfen Kosten zur Verfügung auf der Anwendungsebene haben.

Ein weiterer Ansatz sollten Sie der Flooding-Algorithmus in dem Gnutella-Netzwerk der Abfrage Routing-Protokoll verwendet, überprüfen. (Wikipedia hat auch eine gute Beschreibung dafür.) Dieser Ansatz die Notwendigkeit mildert einen Multicast-Baum zu bauen, aber es hat den Nachteil von mehr Netzwerkverkehr zu erzeugen. In der Tat, viel mehr Netzwerkverkehr, da der Verkehr mit dem Quadrat der Anzahl der Knoten zunimmt, das heißt O (N ** 2).

Andere Tipps

Ein weiteres Beispiel für die Anwendung Multicasting verwendet JGroups in Amazon EC2 oder Google App Motor , da sie keine IP-Multicast-Unterstützung, aber Entwickler Multicast-Funktionalität nutzen wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top