Zuverlässiger Multicast

A Zuverlässiger Multicast ist jeder Computernetzwerk Protokoll, das a liefert zuverlässig Sequenz von Paketen an mehrere Empfänger gleichzeitig, sodass sie für Anwendungen wie Multi-Rezeption geeignet ist Datei Übertragung.

Überblick

Multicast ist eine Netzwerkadresungsmethode für die Bereitstellung von Information an eine Gruppe von Zielen gleichzeitig mithilfe der effizientesten Strategie, um die Nachrichten über jeden Link des Netzwerks nur einmal zu liefern, und Kopien nur dann erstellen, wenn die Links zu den mehreren Zielen aufgeteilt werden (normalerweise Netzwerkschalter und Router). Allerdings wie das User Datagram Protocol, Multicast garantiert nicht die Lieferung eines Nachrichtenstroms. Nachrichten können mehrmals fallen gelassen, geliefert oder außerordentlich zur Verfügung gestellt werden. Ein zuverlässiges Multicast-Protokoll fügt Empfängern die Fähigkeit hinzu, verlorene und/oder außerordentliche Nachrichten zu erkennen und Korrekturmaßnahmen zu ergreifen (im Prinzip ähnlich wie TCP), was zu einem spaltfreien Nachrichtenstrom in Ordnung führt.

Verlässlichkeit

Die genaue Bedeutung von Verlässlichkeit hängt von der spezifischen Protokollinstanz ab. Eine minimale Definition von zuverlässigem Multicast ist Eventuelle Bereitstellung aller Daten an alle Gruppenmitglieder, ohne eine bestimmte Lieferaufstellung durchzusetzen.[1] Allerdings sorgen nicht alle zuverlässigen Multicast -Protokolle für diese Zuverlässigkeitsniveau. Viele von ihnen handeln auf unterschiedliche Weise mit Zuverlässigkeit. Während TCP den Absender beispielsweise für die Zuverlässigkeit der Übertragung verantwortlich macht, multicast Nak-Basierte Protokolle verlagern die Verantwortung auf Empfänger: Der Absender weiß nie sicher, dass alle Empfänger tatsächlich alle Daten erhalten haben.[2] RFC- 2887 untersucht den Entwurfsraum für die Übertragung von Massendaten mit einer kurzen Diskussion zu den verschiedenen Themen und einigen Hinweisen auf die möglichen unterschiedlichen Bedeutungen von zuverlässig.

Zuverlässige Gruppendatenabgabe

Zuverlässige Gruppendatenabgabe (RGDD) ist eine Form des Multicasting, bei der ein Objekt von einer einzelnen Quelle zu einem festen Satz von Empfängern verschoben werden soll, das vor Beginn der Übertragung bekannt ist.[3][4] Eine Vielzahl von Anwendungen erfordert möglicherweise eine solche Lieferung: Hadoop Distributed Dateisystem (HDFS) repliziert einen Teil von Daten zweimal auf bestimmte Server. Die VM -Replikation auf mehrere Server ist möglicherweise erforderlich, um die Anwendungen zu skalieren, und die Datenreplikation auf mehrere Server erforderlich sein Für das Lastausgleich, indem mehrere Server dieselben Daten aus ihren lokalen zwischengespeicherten Kopien bedienen können. Eine solche Lieferung ist in Rechenzentren häufig, da eine Fülle von Servern kommuniziert und hochverteilte Anwendungen ausgeführt hat.

RGDD kann auch in den Rechenzentren auftreten und wird manchmal als interdatacenter Punkt zu Multipoint (P2MP) -Transfers bezeichnet.[5] Solche Übertragungen liefern große Datenmengen von einem Rechenzentrum an mehrere Rechenzentren für verschiedene Anwendungen: Suchmaschinen verteilen Suchindex -Updates regelmäßig (z. B. alle 24 Stunden), Social -Media -Anwendungen schieben neue Inhalte auf viele Cache -Standorte weltweit (z. B. YouTube und Facebook) an viele Cache -Standorte (z. B. YouTube und Facebook). und Backup -Dienste machen mehrere geografisch verteilte Kopien für eine erhöhte Verwerfungstoleranz. Zur Maximierung der Bandbreitennutzung und zur Verringerung der Abschlusszeiten von Bulk -Transfers wurden eine Vielzahl von Techniken für die Auswahl von Multicast -Weiterleitungsbäumen vorgeschlagen.[5][6]

Virtuelle Synchronität

Moderne Systeme wie Das Spread Toolkit, Quecksilber, und Corosync Kann Datenraten von 10.000 Multicasts pro Sekunde oder mehr erreichen und mit großer Anzahl von Gruppen oder Prozessen auf große Netzwerke skalieren.

Die meisten verteiltes Computer Plattformen unterstützen einen oder mehrere dieser Modelle. Zum Beispiel die weithin unterstützte objektorientierte Corba Plattformen Alle unterstützen Transaktionen und einige CORBA-Produkte unterstützen die Transaktionsreplikation im Modell mit One-Copy-Serializierbarkeit. Das "CORBA FALIGE TOLERANT EORGIES STANDELD" basiert auf dem virtuellen Synchronitätsmodell. Die virtuelle Synchronität wurde auch zur Entwicklung der New Yorker Börse-Fehlertoleranzarchitektur, dem französischen Flugverkehrskontrollsystem, dem US Navy Aegis System, der Replikationsarchitektur der US-amerikanischen Navy Aegis, der IBM WebSphere und die Windows -Clustering -Architektur von Microsoft für Windows Longhorn Enterprise -Server.[7]

Systeme, die die virtuelle Synchronität unterstützen

Die virtuelle Synchronität wurde erstmals von der Cornell University unterstützt und als "ISIS -Toolkit" bezeichnet.[8] Cornells aktuellste Version, Vsync wurde 2013 unter dem Namen ISIS2 veröffentlicht (der Name wurde 2015 von ISIS2 zu VSYNC nach einem Terroranschlag in Paris von einer extremistischen Organisation namens ISIS) mit regelmäßigen Aktualisierungen und Überarbeitungen seit dieser Zeit geändert. Die aktuellste stabile Version ist V2.2.2020; Es wurde am 14. November 2015 veröffentlicht; Die Version v2.2.2048 ist derzeit in Beta -Form erhältlich.[9] VSYNC zielt an die massiven Rechenzentren, die unterstützen Cloud Computing.

Andere solche Systeme sind das Horus -System[10] Das Transis -System, das Totemsystem, ein IBM -System namens Phoenix, ein verteiltes Sicherheitsschlüsselmanagementsystem namens Rampart, das "Ensemble -System",[11] das Quecksilber System, "The OpenAis Project",[12] seine Ableitung der Corosync -Clustermotor und eine Reihe von Produkten (einschließlich der zuvor erwähnten IBM und Microsoft).

Andere bestehende oder vorgeschlagene Protokolle

Bibliotheksunterstützung

  • JGROUPS (Java -API): beliebt Projekt/Implementierung
  • Verbreiten: C/C ++ API, Java -API
  • RMF (C# API)
  • HMBDC Open Source (nur Header) C ++ Middleware, Ultra-Latenz/hoher Durchsatz, skalierbare und zuverlässige Inter-Thread-, IPC- und Netzwerknachrichten

Verweise

  1. ^ Floyd, S.; Jacobson, V.; Liu, C. -G.; McCanne, S.; Zhang, L. (Dezember 1997). "Ein zuverlässiger Multicast-Framework für leichte Sitzungen und Anwendungsebene-Rahmen". IEEE/ACM -Transaktionen zur Vernetzung. 5 (6): 784–803. doi:10.1109/90.650139. S2CID 221634489.
  2. ^ Diot, C.; Dabbous, W.; Crowcroft, J. (April 1997). "Multipoint -Kommunikation: Eine Übersicht über Protokolle, Funktionen und Mechanismen" (PDF). IEEE Journal über ausgewählte Bereiche in Kommunikation. 15 (3): 277–290. doi:10.1109/49.564128.
  3. ^ C. Guo; et al. (1. November 2012). "DataCast: Ein skalierbarer und effizienter zuverlässiger Gruppendatenertragsdienst für Rechenzentren". ACM. Abgerufen 26. Juli, 2017.
  4. ^ T. Zhu; et al. (18. Oktober 2016). "MCTCP: Überlastungsbewusstes und robustes Multicast-TCP in softwaredefinierten Netzwerken". 2016 IEEE/ACM 24. Internationales Symposium für Servicequalität (IWQOS). IEEE. S. 1–10. doi:10.1109/iwqos.2016.7590433. ISBN 978-1-5090-2634-0. S2CID 28159768.
  5. ^ a b M. NoorMohammadpour; et al. (10. Juli 2017). "DCCAST: Effizienter Punkt zu Multipoint -Transfers in den Rechenzentren". Usenix. Abgerufen 26. Juli, 2017.
  6. ^ M. NoorMohammadpour; et al. (2018). "Schnellcast: Schnelle und effiziente Inter-Daten-Tatazentrum-Übertragungen unter Verwendung von Weiterleitungsbaumkohorten". Abgerufen 23. Januar, 2018.
  7. ^ K. P. Birman (Juli 1999). "Eine Überprüfung der Erfahrungen mit zuverlässigem Multicast". Software: Übung und Erfahrung. 29 (9): 741–774. doi:10.1002/(SICI) 1097-024X (19990725) 29: 9 <741 :: Aid-Spe259> 3.0.co; 2-i. HDL:1813/7380.
  8. ^ "Isis Toolkit"
  9. ^ "VSYNC Cloud Computing Library".
  10. ^ "Horus -System"
  11. ^ "Ensemble -System"
  12. ^ "Das OpenAis -Projekt"
  13. ^ RSP; Info benötigt.

Weitere Lektüre

  • Zuverlässige verteilte Systeme: Technologien, Webdienste und Anwendungen. K.P. Birman. Springer Verlag (1997). Das Lehrbuch deckt ein breites Spektrum verteilter Computerkonzepte ab, einschließlich virtueller Synchronität.
  • Verteilte Systeme: Prinzipien und Paradigmen (2. Auflage). Andrew S. Tanenbaum, Maarten Van Steen (2002). Das Lehrbuch deckt ein breites Spektrum verteilter Computerkonzepte ab, einschließlich virtueller Synchronität.
  • "Der Prozessgruppenansatz für zuverlässige verteilte Computing". K.P. Birman, Kommunikation des ACM 16:12 (Dezember 1993). Geschrieben für Nicht-Experten.
  • "Gruppenkommunikationsspezifikationen: Eine umfassende Studie" Gregory V. Chockler, Idit Keidar,
  • Roman Vitenberg. ACM Computing Surveys 33: 4 (2001). Führt einen mathematischen Formalismus für solche Modelle ein und vergleichen ihn dann, um ihre Ausdruckskraft und ihre Annahmen für die Erkennung von Versagen zu erkennen.
  • "Das Teilzeitparlament". Leslie Lamport. ACM -Transaktionen auf Computersystemen (TOCs), 16: 2 (1998). Führt die Paxos -Implementierung von replizierten Zustandsmaschinen ein.
  • "Virtuelle Synchronität in verteilten Systemen ausnutzen". K.P. Birman und T. Joseph. Proceedings of the 11. ACM Symposium on Operating Systems Principles (SOSP), Austin Texas, November 1987. Früheste Verwendung des Begriffs, aber wahrscheinlich nicht die beste Darstellung des Themas.