1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung.

Slides:



Advertisements
Ähnliche Präsentationen
Christian Scheideler SS 2009
Advertisements

Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Eine dynamische Menge, die diese Operationen unterstützt,
Vorlesung Programmieren II
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Christian Schindelhauer
Prof. Dr. W. Conen 15. November 2004
Kapitel 6: Klassifizierung von Sortiertechniken
Verifizieren versus Berechnen
Algorithmen und Komplexität
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung.
Christian Schindelhauer
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken IX Christian Schindelhauer
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken X Christian Schindelhauer
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung.
Sortierverfahren Richard Göbel.
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Algorithmen und Komplexität
Christian Schindelhauer
Christian Schindelhauer
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung.
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung.
Christian Schindelhauer
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung.
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung.
Algorithmen des Internets 2005 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität 1 Klausuraufgaben.
Algorithmen des Internets 2005 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität 1 Materialien zu Übung 9 Bälle in Körbe Ranged.
Verteilte Algorithmen
Minimum Spanning Tree: MST
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Verteilte Algorithmen und Datenstrukturen Kapitel 4: Caching Christian Scheideler Institut für Informatik Universität Paderborn.
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester.
Peer-to-Peer-Netzwerke
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester.
Analyse der Laufzeit von Algorithmen
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VIII Christian Schindelhauer
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
 Präsentation transkript:

1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen für Peer-to-Peer-Netzwerke Sommersemester Vorlesung Peter Mahlmann

Algorithmen für Peer-to-Peer- Netzwerke 2 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Kapitel III Tapestry von Zhao, Kubiatowicz und Joseph (2001) Skalierbare Peer to Peer-Netzwerke

Algorithmen für Peer-to-Peer- Netzwerke 3 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Tapestry Grundlagen und Routing

Algorithmen für Peer-to-Peer- Netzwerke 4 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Tapestry Objekte und Peers im Netzwerk werden durch eindeutige Objekt-IDs (Globally Unique Identifiers GUIDs) bzw. Peer-IDs identifiziert IDs werden (wie schon bei CAN und CHORD) durch Hashfunktion berechnet IDs sind Zeichenketten zur Basis b (Im Fall b=16 also Zahlen im Hexadezimalsystem) Frage: Was sind die Vor- und Nachteile bei Verwendung von Hashfunktionen?

Algorithmen für Peer-to-Peer- Netzwerke 5 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Nachbarschaftsmenge eines Knotens (1) Jeder Knoten A unterhält Links zu anderen Knoten, die einen Prefix x seiner Peer-ID mit ihm teilen Peer mit ID B=xoy ist Nachbar mit A, falls xoy´=A für beliebige y, y´ Links sind in Level unterteilt (abhängig von der Länge des gemeinsamen Prefix) Level L = |x|+1

Algorithmen für Peer-to-Peer- Netzwerke 6 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Nachbarschaftsmengen eines Knotens (2) Links mit gleichem Prefix werden weiter unterteilt nach dem ersten Buchstaben j, in dem sie sich unterscheiden Das Peer mit NodeID A besitzt b|A| Nachbarschaftsmengen, die alle mit xoj beginnenden NodeIDs enthalten Wobei: A = Peer-ID x = Prefix von A j = erste Buchstabe, in dem sich der Nachbar von A unterscheidet Knoten dieser Mengen werden (x,j) Knoten genannt

Algorithmen für Peer-to-Peer- Netzwerke 7 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Beispiel einer Nachbarschaftsmenge ?40??0??? ?41??1??? ?42??2??? ?43??3??? ?44??4??? ?45??5??? ?46??6??? ?47??7??? Nachbarschaftsmengen des Knotens 4221 j=0 j=1 j= Level 4Level 3Level 1Level 2

Algorithmen für Peer-to-Peer- Netzwerke 8 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Nachbarschaftsmengen (3) Es werden jedoch nur k Links in jeder Nachbarschaftsmenge verwaltet: (sonst vollständiger Graph!) Nachbarschaftsmengen können (und werden) leer sein!

Algorithmen für Peer-to-Peer- Netzwerke 9 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Eigenschaften von Nachbarschaftsmengen 1. Konsistenz: Falls für beliebiges A, dann existieren keine (x,j) Peers im Netzwerk. Wir bezeichnen dies als Loch in der Routing-Tabelle bei Level |x|+1, Buchstabe j. Hieraus folgt, dass das Netzwerk zusammenhängend ist Routing kann geschehen, indem Schritt für Schritt ein Buchstabe des Startknotens A dem Zielknoten B mit NodeID b 1 ob 2 o…ob n angepasst wird So werden sukzessive Knoten der folgenden Mengen gewählt: (1. Hop, zu Knoten A 1 ) (2. Hop, zu Knoten A 2 ) (3. Hop, zu Knoten A 3 ) …

Algorithmen für Peer-to-Peer- Netzwerke 10 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Eigenschaften von Nachbarschaftsmengen 2. Lokalität Jede Menge enthält die bezüglich eines gegebenen metrischen Raumes nahesten (x,j) Nachbarn. Der naheste Knoten mit Prefix xoj wird primärer Nachbar genannt, alle anderen sekundäre Nachbarn Wichtige Eigenschaft, die einen geringen Stretch gewährleistet! (Verhältnis zwischen der vom Routing gefunden Distanz und der kürzesten Distanz) Beobachtung: Jeder Knoten findet seinen nahesten Nachbarn in der Menge

Algorithmen für Peer-to-Peer- Netzwerke 11 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Root-Sets Objekte mit ID Y werden von Root-Peers R Y verwaltet. Zuständige Peers werden durch Funktion MapRoots(Y) berechnet. Menge R Y wird Root-Set genannt und es gilt: Eigenschaft 3: Eindeutiges Root-Set Root-Set R Y für Objekt Y muss eindeutig sein, egal wo im Netzwerk MapRoots(Y) berechnet wird (Einfach zu gewährleisten, falls Hashfunktionen benutzt werden) Problem: von MapRoots(Y) gelieferte Knoten müssen existieren!!

Algorithmen für Peer-to-Peer- Netzwerke 12 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Publikation von Objekten Peers die ein Objekt Y bereitstellen (Storage Server), müssen dies den zuständigen Root-Peers mitteilen: Storage Server berechnet MapRoots(Y)=R Y Und schickt Nachricht an alle Roots in R Y (entlang primärer Nachbarn) Jeder Peer, der die Nachricht weiterleitet, speichert Objekt-Zeiger auf den Storage-Server

Algorithmen für Peer-to-Peer- Netzwerke 13 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Anfragen Sucht ein Peer Objekt Y, so berechnet er ebenfalls MapRoots(Y ) wählt einen zufälligen Root-Server aus R Y Routet zu diesem Root-Server (entlang primärer Nachbarn) Wird dabei ein Objekt-Zeiger angetroffen, so wird direkt zum Storage-Server gesprungen

Algorithmen für Peer-to-Peer- Netzwerke 14 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Fehlertoleranz Beobachtung 1: Wenn |R Y | >1 und die Root-Server in R Y unabhängig voneinander sind (uniformes Hashing), können fehlgeschlagene Suchen mit einem anderen Root-Server wiederholt werden. Kleine temporäre Fehler in den Routing Tabellen können tolleriert werden Fehlertoleranz durch Soft-State Pointer: Links auf Objekte werden nach bestimmter Zeit verworfen =>Storage Server müssen ihre Objekte regelmässig neu publizieren Vermeidet tote Links auf bereits ausgeschiedene Storage Server Neu eingetroffene Peers werden mit Links versorgt

Algorithmen für Peer-to-Peer- Netzwerke 15 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Surrogate Routing Bislang vernachlässigt: MapRoots(Y) kann auf Server verweisen, die nicht existieren! (sogar mit hoher Wahrscheinlichkeit! Warum??) Was geschieht bei Löchern in den Routing-Tabellen? Lösung: Surrogate Routing Versuche schrittweise den berechneten Root-Server zu erreichen Wird dabei auf ein Loch an Stelle (x,j) getroffen, dann wähle den nächsten Eintrag (x,j+1) (existiert dieser nicht, dann (x,j+2),…) Fahre so lange fort, bis der aktuelle Peer der letzte Peer auf oder oberhalb des aktuellen Routing Levels ist. Der so gefundene Peer wird als Surrogate-Server bezeichnet

Algorithmen für Peer-to-Peer- Netzwerke 16 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Beispiel Surrogate Routing Suche nach 4666 durch Peer 2716: Level 1, j=4 Level 2, j=6 existiert nicht, nächste Link: j=8 Level 3, j=6 Knoten 4860 hat keine Level 4 Nachbarn => fertig

Algorithmen für Peer-to-Peer- Netzwerke 17 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Eindeutigkeit Surrogate Routing Theorem: Wenn Eigenschaft 1 gilt (Konsistenz), dann wird Surrogate Routing eine eindeutigen Root-Server bestimmen Beweis durch Wiederspruch: Angenommen eine Anfrage nach Y endet bei verschiedenen Peers A und B. Sei x das längste gemeinsame Prefix von A und B mit |x|=i. Seien A´,B´ die Peers, die den i+1 Routing Schritt durchführen. (nach diesem Schritt bleiben die ersten i+1 Buchstaben gleich!) Von und müssen wegen Konsistenz die gleichen Mengen Leer sein! A´und B´ werden die Nachricht an einen Knoten mit demselben Buchstaben an Stelle i+1 schicken, es sei denn, die Konsistenz ist gestört. Wiederspruch!

Algorithmen für Peer-to-Peer- Netzwerke 18 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Surrogate Routing Beobachtung 2: Surrogate Routing lässt sich auf Gebrauch mit mehreren Root-Peers verallgemeinern. Es muss lediglich zum Surrogate-Peer des ausgewählten Root-Peers geroutet werden. Offensichtlich: Routing in Tapestry benötigt O(log n) Hops

Algorithmen für Peer-to-Peer- Netzwerke 19 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Tapestry Einfügen neuer Peers

Algorithmen für Peer-to-Peer- Netzwerke 20 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Einfügen neuer Peers Wird ein Peer in das Netzwerk eingefügt, so soll das enstehende Netzwerk das gleiche sein, als wenn das Netzwerk von Grund auf mit ihm konstruiert worden wäre Dafür muss Folgendes gewährleistet sein: Eigenschaft 4: Liegt Knoten A auf dem Pfad zwischen dem publizierenden Knoten von Objekt Y und dessen Root-Server, dann besitzt A einen Link auf Y

Algorithmen für Peer-to-Peer- Netzwerke 21 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Algorithmus zum Einfügen eines Peers Der Algorithmus lässt sich in die folgenden Schritte gliedern Suche im Netzwerk nach eigener ID, kopiere Nachbarschaftstabellen von so gefundenem Surrogate-Peer Kontaktiere die Peers, die Löcher in ihren Routing Tabellen haben, die durch den neuen Peer gefüllt werden können Bsp: 1234 ist neuer Peer und es existierten keine 123? Peers, so müssen alle 12?? Peers benachrichtigt werden Aufbauen der eigenen Routing Tabelle Wir betrachten zunächst Schritt 2 …

Algorithmen für Peer-to-Peer- Netzwerke 22 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Acknowledged Multicast Algorithmus Multicast Nachricht besteht aus Prefix X und einer Funktion Ablauf: Der neue Peer sendet Multicast Nachricht an seinen Surrogate-Peer (bestehend aus gemeinsamen Prefix und Funktion) Empfängt ein Knoten A die Nachricht, sendet er sie weiter an seine Nachbarn (mit Prefix x*) Empfängt ein Knoten eine Nachricht, die nicht mehr weitergeleitet werden kann, wendet er die mitgesendete Funktion an. Die Funktion transferiert Objekte zum neuen Peer und löscht nicht mehr benötigte Verweise Jeder Knoten, der Nachrichten verschickt hat, erwart eine Rückmeldung von allen empfängern. Sind diese eingetroffen, benachrichtigt er den über ihm liegenden Peer

Algorithmen für Peer-to-Peer- Netzwerke 23 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Acknowledge Multicast Algorithmus Pseudocode des Algorithmus:

Algorithmen für Peer-to-Peer- Netzwerke 24 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Aufwand Acknowledge Multicast Algorithmus Vernachlässigt man die Nachrichten, die ein Peer an sich selbst sendet, so entsteht ein Spannbaum Werden k Peers erreicht, so hat der Baum k Knoten und k-1 Kanten O(k) Nachrichten

Algorithmen für Peer-to-Peer- Netzwerke 25 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Aufbauen der Nachbarschaftsmengen Wir wollen die Nachbarschaftsmengen für einen neuen Peer A bestimmen Diese müssen Eigenschaften 1 (Konsistenz) und 2 (Lokalität) erfüllen! Dies kommt dem Lösen des Nächste-Nachbarn Problems für viele verschiedene Prefixe gleich Die Nachbarschaftsmengen werden nun Level-weise aufgebaut. Aus dem vorigen Schritt (Multicast) kennen wir bereits alle Knoten, die das Prefix x, |x|=i, mit A teilen Nun werden schrittweise die Level i Nachbarschaftsmengen aus den Level i+1 Nachbarschaftsmengen berechnet

Algorithmen für Peer-to-Peer- Netzwerke 26 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Schichtweise Erweiterung der N.-Mengen Algorithmen Beschreibung Fordere von allen Level i Nachbarn Listen mit ihren Links auf Level i-1 an Kontaktiere alle diese Peers und berechne Entfernung zu Ihnen (dabei prüfen kontaktierte Peers, ob sie den neuen Knoten selbst noch aufnehmen müssen) Speichere die k nahesten Peers in der eigenen Nachbarschaftsmenge (dies gewährleistet die Lokalität) Fahre fort, bis Level 0 erreicht ist

Algorithmen für Peer-to-Peer- Netzwerke 27 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Algorithmus für Nachbarschaftsmengen Pseudocode Algorithmus: Algorithmus hat mit hoher Wahrscheinlichkeit Laufzeit O(log 2 n) (ohne Beweis)

Algorithmen für Peer-to-Peer- Netzwerke 28 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Korrektheit Korrektheit (Gewährleistung der Lokalität) des Algorithmus ist schwer zu zeigen! Restriktion des Raumes ist notwendig: Sei B A (r) die Menge aller Peers im Ball mit Radius r um Peer A. Um Lokalitätseigenschaft für neue Peers gewährleisten zu können, muss gelten: Für beliebige Konstante c (c wird Expansionskonstante gennant) In diesem Fall kann man zeigen, dass falls b>c 2 ein k=O(log n) existiert, so dass der Algorithmus mit hoher Wahrscheinlichkeit die nahesten Nachbarn findet. Beweis: siehe Distributed Object Location in a Dynamic Network,Hildrum, Kubiatowics, Rao und Zao (2002)

Algorithmen für Peer-to-Peer- Netzwerke 29 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Tapestry Entfernen von Knoten

Algorithmen für Peer-to-Peer- Netzwerke 30 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Entfernen von Knoten Stellt Knoten A fest, dass Nachbar B tot ist, dann: Entferne B aus Routing Tabelle –Entstehen hierbei Löcher, müssen diese gefüllt werden, oder es muss sichergestellt sein, dass das Loch nicht gefüllt werden kann Lösung: Acknowledged Multicast Republiziere alle Objekte, deren nächster Hop zum Root-Peer B ist (grüne Kanten) A B Root

Algorithmen für Peer-to-Peer- Netzwerke 31 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Peter Mahlmann Zusammenfassung Besondere Eigenschaft von Tapestry: –Konsequente Berücksichtigung von Lokalität dadurch niedriger Stretch! Jedoch vergleichsweise komplizierter Aufbau!! (insbesondere im Vergleich zu Chord und Koorde)

32 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Vielen Dank Ende der 7. Vorlesung Nächste Vorlesung: Fr Uhr Nächste Übung: 6. Übung Mo ,11,16 Uhr (A,B,C)