A scalable application layer mulitcast protocol
NICE
Nice is the Internet Cooperative Environment Alexander Mas
Protokoll für Mulitcasts auf Anwendungsebene.
Basiert auf dem NICE Protokoll. Ist ausgelegt für sehr viele Teilnehmer, wobei Kontroll-Overhead und Latenz klein sind
Sowohl für Anwendungen mit kleinen als auch großen Bandbreiten einsetzbar
Ziel: effizient – skalierbar – erzeugt
Verteilungsbaum – braucht keine Information
über unterliegende Schicht
Application-Layer Multicast 1/2
Pakete werden am End-Host repliziert, nicht am Router im Netzwerk
Weniger effizient wie „normaler“ Multicast. End-Hosts müssen alle Daten über gleiche Leitung
(weiter-)schicken
Gütekriterien:
Stress (per Verbindung. Anzahl redundanter Paket über eine Verbindung)
Stretch (per Teilnehmer. Quotient von Pfadlänge des Overlays und direktem Pfad zw. zwei Hosts)
Application-Layer Multicast 2/2
Bewertung eins ALM-Protokolls
Qualität des Datenbaumes
Stress – Stretch – node degrees
Robustheit des Overlays
Unstabilität der End-hosts (im Ggs. zu Routern)
Unterbrechung der Datenverteilung
Kontroll-Overhead
Je kleiner, desto effizienter die Nutzung der Ressourcen
Nice-Tree
Hierarchische Anordnung und Gruppierung
Layer
Teilnehmer gehören zu Layern
Cluster
Einteilung in Gruppen in jemdem Layer
Cluster-Leader
Nach Graphtheorie der Mittelpunkt des Clusters. Minimales Maximum zu allen Clusterzugehörigen. Bilden Cluster in der darüberliegenden Schicht
Super-Cluster
Cluster des Cluster-Leaders im übergeordneten Layer Hierarchie entscheidend für Skalierbarkeit
Nice-Tree
Kontrollpfade
Verbindung zu allen Clusterzugehörigen
Leader auch zu allen des Super-Clusters
Statusmeldungen
Schnelle Erkennung von Änderungen im Cluster
Datenpfade
Schleifenfreier Baum
Abhängig von der Quelle und implizit durch Kontrollpfade gegeben
Nice-Tree Verhalten
Basiert auf Invarianten
Jeder Layer ist in Cluster der Größe k bis 3k-1 unterteilt
Alle Teilnehmer gehören zu Layer 0 und jeder gehört zu nur einem Cluster eines Layers
Der Cluster-Leader ist der Mittelpunkt seines Cluster und bildet den darüberliegenden Layer
Drei Kernteile
Initiale Clusterbelegung für neue Teilnehmer
Periodische Pflege
Austritt von Teilnehmern
Initiale Clusterbelegung
Neuer Teilnehmer
Kontakt Rendezvous-Point. Suchen des am nahe liegendsten Clusters.
Latenz neuer Teilnehmer
Erlaubnis von temporäre Kommunikation mit Leader des suchenden Layers
Beitreten höherer Layer
Wahl neuen Leaders. Kontakt mit RP und Suche des nächsten Clusters
Periodische Pflege
Heartbeat
Jeder Teilnehmer sendet Nachricht an Nachbarn in der
Kontrollpfade-Topologie. Der Leader auch an höheren Layer
Enthält Entfernung zu demjenigen Host
Indikator für ausgefallene Hosts
Cluster Split und Merge
Cluster-Leader prüft periodisch Größe des Clusters. Wird 3k-1 überschritten, bildet der Leader zwei gleichgroße Cluster. Wird k unterschritten, initiiert Leader Vereinigung mit nächsten Cluster
Reorganisation
Kontrolle aller Zugehörigen des Super-Clusters. Ist aktueller Leader nicht der Naheliegendste, wird Cluster gewechselt.
Austritt
Austritt von Teilnehmern
Sendet Remove zu allen Clustern zu denen er gehört. Bei Ausfall Erkennung durch fehlenden Heartbeat
Austritt eines Leaders
Leaderwahl wieder initiiert. Jeder Clusterangehöriger wählt unabhängig neuen Leader. Bei mehreren wird daraus einer gewählt.
Zusammenfassung
Nice Bäume haben Datenpfade mit einem Stretch vergleichbar mit Narada
Stress-Wert ist kleiner in Nice, besonders bei großer Teilnehmerzahl
Fehlerbehebung ist bei beiden vergleichbar
Nice zeigt, dass die Performance mit kleinem Overhead für Gruppen > 32 möglich ist
Kontroll-Overhead in Nice ist für den Durchschnitt O(k) und im schlimmsten Fall O(k log N)