P2P-Systeme ■ Überblick ■ Hybride P2P-Systeme ● ■ Unstrukturierte P2P-Systeme ● ■ Chord, CAN, Pastry, Kademlia Infrastrukturen für P2P-Systeme ● P2P.fm: 03.02.04 14:00 Gnutella, Freenet Strukturierte P2P-Systeme ● ■ Napster JXTA Verteilte Algorithmen (VA), WS 2003/04 1 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Überblick ■ Grundform des Internet (1969-1995) P2P.fm: 03.02.04 14:00 Informationsanbieter Informationskonsument Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 2 Überblick ■ WWW-dominiertes Internet (1995-1999) P2P.fm: 03.02.04 14:00 Informationsanbieter Informationskonsument Verteilte Algorithmen (VA), WS 2003/04 3 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Überblick ■ Peer-to-Peer Internet (ab 1999) P2P.fm: 03.02.04 14:00 Informationsanbieter Informationskonsument Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 4 Überblick ■ Nachteile der Client-Server-Architektur ● Verkehrsaufkommen – Konzentration beim Server, Unterlast in anderen Netzteilen – Asymmetrischer Verkehr ● Skalierbarkeit ● Ungenutzte Ressourcen in Clients – Speicherplatz, Rechenleistung, Informationen P2P.fm: 03.02.04 14:00 ● Server oft Single Point of Failure Verteilte Algorithmen (VA), WS 2003/04 5 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Überblick ■ Schwache Definition: P2P.fm: 03.02.04 14:00 „Peer-to-Peer computing is a network-based computing model for applications where computers share resources via direct exchange between the participating computers” (David Barkai) Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 6 Überblick ■ Ein System kann als Peer-to-Peer bezeichnet werden wenn, ● eine gemeinsame Nutzung von Ressourcen statt findet – Jedes Teilsystem kann sowohl Informationsanbieter als auch Informationskonsument sein ● jedes Teilsystem einen gewissen Grad an Autonomie besitzt – Keine zentrale Kontrolle oder Nutzung von zentralen Diensten ● die einzelnen Teilsysteme nicht permanent mit dem Gesamtsystem verbunden sein müssen – Selbstorganisation des Systems ● die einzelnen Teilsysteme keine permanente Netzwerkadresse benötigen P2P.fm: 03.02.04 14:00 – Von der Netzwerkschicht unabhängige Adressierung Verteilte Algorithmen (VA), WS 2003/04 7 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Überblick ■ Bessere Definition (vgl. Tutorial KIVS 2003) P2P.fm: 03.02.04 14:00 Selbstorganisierendes System gleichberechtigter, autonomer Systeme ohne Nutzung zentraler Dienste auf der Basis eines unzuverlässigen Netzwerks Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 8 Überblick P2P.fm: 03.02.04 14:00 ■ Anforderungen an P2P-Systeme ● Skaliert in einem globalen Rahmen ● Einfaches publizieren von Informationen für eine beliebige Anzahl von Informationskonsumenten ● Schnelles und effizientes Finden von Informationen ● Teilnehmende Peers können zu beliebigen Zeitpunkten dem Gesamtsystem beitreten und es wieder verlassen Verteilte Algorithmen (VA), WS 2003/04 9 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Überblick ■ Was wird alles als P2P-System bezeichnet ● File Sharing – Napster, Gnutella, FastTrack .... ● Verteilte Dateisysteme – Freenet, PAST, Oceanstore ● Instant Messaging – ICQ, AIM (AOL Instant Messenger), Jabber ● Verteiltes Rechnen – GRID Computing, SETI@home, Popular Power ● Collaboration P2P.fm: 03.02.04 14:00 – Konferenzanwendungen, Groupware Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 10 Überblick ■ Klassifikation ● Client-Server: WWW, Seti@Home – Klassische Rollenverteilung – Keine Interaktion zwischen Clients ● Hybride P2P-Systeme: Napster, ICQ, AIM – Gemeinsame Nutzung von verteilten Ressourcen – Interaktion zwischen Peers – Koordination durch zentrale Server ● Reine P2P-Systeme: Gnutella, Freenet, Chord P2P.fm: 03.02.04 14:00 – Vollständige dezentale Organisation und Nutzung der Ressourcen Verteilte Algorithmen (VA), WS 2003/04 11 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Überblick ■ Klassifikation von reinen P2P-Systemen ● Unstrukturierte P2P-Systeme – Es gibt keine vorgegebene Organisationsstruktur – Beispiele: Gnutella, Freenet ● Strukturierte P2P-Systeme – Realisieren meist eine verteilte Hash-Tabelle – Jeder Knoten besitzt einen eindeutigen Identfikator – Es existiert ein Modell, das die Topologie des Systems bestimmt P2P.fm: 03.02.04 14:00 – Beispiele: Chord, Can, Past, Kademlia Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 12 Überblick ■ Informationen über P2P-Systeme und Applikationen ● Allgemeine Informationen über P2P-Systeme – http://openp2p.com ● International Workshop on Peer-to-Peer Systems – http://www.cs.rice.edu/Conferences/IPTPS02 – http://iptps03.cs.berkeley.edu/program.html ● Hauptseminar unseres Lehrstuhls – http://www4.informatik.uni-erlangen.de/Lehre/SS02/HS_DOOS – http://www4.informatik.uni-erlangen.de/Lehre/SS04/HS_P2P ● Bücher P2P.fm: 03.02.04 14:00 – Peer-to- Peer: Harnessing the Benefits of Disruptive Technology, O’Reilly & Associates, 2001 Verteilte Algorithmen (VA), WS 2003/04 13 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Napster ■ Erstes populäres P2P-System (1999-2001) ● Austausch von Musik-Dateien Dateitransfer Peer Peer Peer Peer Napster-Server Dateitransfer Peer ● Peer Zentraler Verzeichnisserver P2P.fm: 03.02.04 14:00 – Verwaltet Adressen und Dateilisten der Peers Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 14 Napster ■ Verbindungsaufbau zum Verzeichnisserver ● Peers geben eine Liste der gespeicherten Dateien und ihre IP-Adresse an den Server bekannt Peer Peer Peer IP-Adresse, Dateiliste Peer P2P.fm: 03.02.04 14:00 Peer Napster-Server Peer Verteilte Algorithmen (VA), WS 2003/04 15 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Napster ■ Dateisuche ● Anfrage an den Verzeichnisserver ● Verzeichnisserver sucht im Datenbestand und liefert eine Liste von IP-Adressen Peer Peer Suchanfrage Ergebnisse Peer Napster-Server Peer P2P.fm: 03.02.04 14:00 Peer Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Peer 16 Napster ■ Testen der potentiellen Zielrechner ● Durch Ping-Nachrichten wird die Verbindungsqualität der Zielrechner getestet Ping Peer Peer Ping Ping Pong Peer Peer Napster-Server Peer P2P.fm: 03.02.04 14:00 Pong Peer Verteilte Algorithmen (VA), WS 2003/04 17 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Napster ■ Übertragung der gesuchten Dateien ● Benutzer baut direkte Verbindung zu dem Peer mit der besten Verbindung auf Peer Peer Peer Peer P2P.fm: 03.02.04 14:00 Peer Napster-Server Transfer der Datei Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Peer 18 Napster ■ P2P.fm: 03.02.04 14:00 ■ Eigenschaften ● Skalierbarkeit ist eingeschränkt durch zentralen Verzeichnisserver ● Verzeichnisserver ist Single Point of Failure ● Hybrides P2P-System Erweiterungen ● Mehrere vernetzte Verzeichnisserver (OpenNap-Netzwerk) ● Unterstützung für beliebige Dateiformate Verteilte Algorithmen (VA), WS 2003/04 19 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella ■ Ein Protokoll zur verteilten Suche nach Dateien ■ Ursprünglich von Nullsoft als eine Art freies Napster entwickelt ■ Literatur: ● The Gnutella Protocol Specification v0.4 Servant Host Cache Host Cache Servant Servant Servant P2P.fm: 03.02.04 14:00 Servant Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 20 Gnutella P2P.fm: 03.02.04 14:00 ■ Rahmenbedingungen: ● Zur Teilnahme an einem Gnutella-Netzwerk benötigt ein Servant mindestens eine IP-Adresse eines bereits teilnehmenden Knotens ● Nachrichten werden über TCP-Verbindungen als ASCII-Text ausgetaucht ● In der Regel verfügt jeder Servant über mehrere ständige Verbindungen ● Jeder Teilnehmer kann frei entscheiden welche Dateien dem Netzwerk zur Verfügung gestellt werden ● Das Protokoll dient zur Suche von Dateien. Der eigentliche Transfer von Dateien wird über HTTP abgewickelt Verteilte Algorithmen (VA), WS 2003/04 21 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella P2P.fm: 03.02.04 14:00 ■ Verbindungsaufbau ● Ermittlung der IP-Adresse eines aktiven Knotens zum Beispiel durch einen Host Cache ● Der eigentliche Verbindungsaufbau erfolgt über eine Connect-Nachricht die durch den kontaktierten Knoten mit einer Ok-Nachricht beantwortet wird ● Im Folgenden werden dann die eigentlichen Basisnachrichten über die permanente Verbindung ausgetauscht Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 22 Gnutella ■ Es gibt verschiedene Arten von Nachrichten die alle einen einheitlichen Header besitzen ● Message-ID besteht z. B. aus Zeitstempel, Zufallszahl und MAC-Adresse ● Payload Descriptor bestimmt den Nachrichtentyp ● Time to Live (TTL) für die Begrenzung der Suchtiefe ● Hops bestimmt wie oft die Nachricht bereits weiter geleitet wurde Message ID P2P.fm: 03.02.04 14:00 Byte offset 0 15 Payload Descriptor TTL 16 17 Hops 18 Payload Lenght 19 22 Verteilte Algorithmen (VA), WS 2003/04 23 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella ■ Nachrichten zur Erhaltung der Netzwerkstruktur: ● Ping - wird verwendet um neue aktive Peers kennen zu lernen. Eine solche Nachricht kann zu einem beliebigen Zeitpunkt an andere Peers versendet werden. ● Pong - Anwort auf eine Ping-Nachricht die als Payload Informationen über einen aktiven Knoten enthält • IP-Adresse und Port des antwortenden Rechners • Anzahl der bereitgestellten Dateien P2P.fm: 03.02.04 14:00 • Größe der bereitgestellten Daten Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 24 Gnutella ■ Nachrichten für die Suche nach Dateien: ● Query - Eine Suchanfrage nach Dateien • Gesuchte Zeichenkette • Mindestanforderungen an die Übertragungsgeschwindigkeit an den bereitstellenden Peer ● QueryHit - Antwort auf eine Suchanfrage falls ein Peer Dateien mit passenden Namen bereitstellt • Port und IP-Adresse des antwortenden Peers • Übertragungsrate mit der Dateien angeboten werden • Liste von Dateinamen, sowie einer eindeutigen ID pro Datei und ihrer jeweiligen Größe P2P.fm: 03.02.04 14:00 • Eine eindeutige ID die den bereitstellenden Peer indentifiziert. Diese wird durch eine Funktion über die IP-Adresse gebildet. Verteilte Algorithmen (VA), WS 2003/04 25 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella ■ Optionale zusätzliche Nachricht Push: ● Diese Nachricht ermöglicht das Laden von Dateien falls der bereitstellende Peer hinter einer Firewall liegt und nur aktiv Verbindungen aufbauen kann. Sollte sowohl das suchende Peer als auch das bereitstellende Peer hinter einer Firewall liegen können keine Dateien ausgetauscht werden. ● Zusammensetzung des Payload der Nachricht: • ID des Zielpeers • ID der zu übertragenden Datei P2P.fm: 03.02.04 14:00 • Port und IP Adresse des anfragenden Peers Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 26 Gnutella ■ Transfer von Dateien P2P.fm: 03.02.04 14:00 ● Das eigentliche Laden von Dateien erfolgt nicht über das Gnutella-Netzwerk sondern über HTTP. Hierbei wird der Dateiname und die ID der zu übertragenden Datei über eine HTTP Get-Nachricht an den bereitstellenden Peer übermittelt welcher als Antwort die Datei liefert Verteilte Algorithmen (VA), WS 2003/04 27 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella ■ Routing der Nachrichten zur Erhaltung der Netzwerkstruktur: Ping (1) Ping (2) ng Pi Pi ng (2 ) Pong (2) (2 P2P.fm: 03.02.04 14:00 ) ● Empfängt ein Peer eine Ping Nachricht, wird diese an alle verbundenen Peers weitergeleitet (vgl. Wahlalgorithmen) ● Jeder Peer der eine Ping Nachricht erhält kann mit einer Pong-Nachricht antworten. Diese wird dann zurück an den Initiator geroutet. ● Erhält ein Peer eine bereits beantwortete Ping Nachricht wird sie verworfen. Dies wird durch einen Message-Cache ermöglicht der die Nachrichten kurzzeitig zwischenspeichert. Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 28 Gnutella ■ Routing der Nachrichten zur Erhaltung der Netzwerkstruktur: ● Jede Nachricht verfügt über die Felder Hops und TTL. Ein Peer der eine Nachricht weiterleitet inkrementiert das Feld Hops und dekrementiert das Feld TTL. Sinkt das Feld TTL auf den Wert 0 wird die Nachricht nicht mehr weitergeleitet. P2P.fm: 03.02.04 14:00 Ping (TTL:4 Hops:1) Ping (TTL:5, Hops:0) Verteilte Algorithmen (VA), WS 2003/04 29 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella ■ Routing der Nachrichten zur Suche nach Dateien: Query (1) ) Query (2) ry ) it (3 Q ue (2 H Q ue ry (2 Hit (4) P2P.fm: 03.02.04 14:00 ) ● Empfängt ein Peer eine Query-Nachricht wird diese wie eine Ping-Nachricht an alle verbundenen Peers weitergeleitet ● Jeder Peer der eine Query-Nachricht erhält kann mit einer Query-Hit Nachricht antworten. Diese wird dann zurück an den Initiator geroutet. ● Erhält ein Peer eine bereits beantwortete Query-Nachricht wird sie verworfen. Jeder Peer der eine Nachricht weiterleitet inkrementiert das Feld Hops und dekrementiert das Feld TTL. Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 30 Gnutella ■ Sonderfall die Push-Nachricht (6 ) Push (5) (3 ) H it Pu sh Hit (4) P2P.fm: 03.02.04 14:00 Push File ● Kann eine gefundene Datei nicht geladen werden, da der bereitstellende Peer hinter einer Firewall liegt, wird eine Push-Nachricht versendet ● Diese wird über den Pfad der Query-Hit Nachricht an den bereitstellenden Peer zugestellt Verteilte Algorithmen (VA), WS 2003/04 31 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella ■ Problem der Push-Nachricht: Ausnutzung für DDos-Angriffe ● Fälschen der Quelladresse in Push-Nachrichten mit der Adresse des Angriffsziels ● Versenden vieler solcher Nachrichten an mehrere Peers ● Benachrichtigte Peers versuchen nun eine Datenverbindung zum Angriffsziel aufzubauen ● Die Ermittlung des Angreifers gestaltet sich durch das Gnutella-Protokoll sehr schwierig Hit (4) Push File P2P.fm: 03.02.04 14:00 H it (3 ) Pu sh (6 ) Push (5) Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 32 Gnutella Evolution des Gnutella-Protokolls ■ 1.Gnutella-Generation P2P.fm: 03.02.04 14:00 ■ ● Alle Knoten besitzen die gleiche Anzahl an Verbindungen ● Folge: Knoten die nur über eine schmalbandige Verbindung verfügen werden überlastet. ( Bei einer Modemverbindung ist dies meist bereits bei einer Netzwerkgrösse von 1000 Knoten der Fall. ) ● Konsequenz: Kollaps und Fragmentierung des Netzwerks Verteilte Algorithmen (VA), WS 2003/04 33 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella ■ P2P.fm: 03.02.04 14:00 ■ 2.Gnutella-Generation ● Anzahl der Verbindungen werden entsprechend der zur Verfügung stehenden Bandbreite variiert ● Verbindungen zu überlasteten Knoten werden abgebrochen ● Skalierungsproblem bleibt bestehen 3.Gnutella-Generation ● Einführung von Hierarchien ● Sogenannte Super-Peers übernehmen Netzlast für schmalbandig angebundene Peers ● Hybrides P2P ● Architektur ähnlich der von FastTrack Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 34 Gnutella ■ FastTrack als Erweiterung von Gnutella ■ Super Peers ● Einfache Peers haben nur Verbindungen zu einigen wenigen Super Peers ● Einfache Peers teilen einem Super Peer ihre IP-Adresse und Dateiliste mit ● Super Peers agieren als Proxy für einfache Peers • Anfragen an einfache Peers können von Super Peers beantwortet werden • Entlastung der einfachen Peers P2P.fm: 03.02.04 14:00 ● Super Peers werden je nach verfügbarer Bandbreite und CPU-Leistung bestimmt Verteilte Algorithmen (VA), WS 2003/04 35 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella P2P.fm: 03.02.04 14:00 ■ Netzwerktopologie ● Durch die via Broadcast weitergegebenen Nachrichten entsteht ein hoher Kommunikationsaufwand. Vor allem Knoten mit einer schwachen Netzwerkanbindung werden oft so stark belastet, dass sie nicht mehr reagieren oder ihre Verbindungen abbrechen. ● Messungen haben gezeigt das Gnutella-Netzwerke ein Power-Law-Netz (Potenzgesetz-Verteilung) bilden Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 36 Gnutella ■ Netzwerktopologie ● Potenzgesetz-Verteilung P(x) ∼ x –t • Allgemeine Form: • t ist eine Domänen spezifische Konstante • x ist der Verknüpfungsgrad eines Knotens P2P.fm: 03.02.04 14:00 • P(x) ist die Wahrscheinlichkeit das ein Knoten den Grad x hat ● Knoten mit vielen Verbindungen werden stark belastet ● Neuere Gnutella-Netzwerke bewegen sich weg von PowerLaw-Netzen Verteilte Algorithmen (VA), WS 2003/04 37 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella P2P.fm: 03.02.04 14:00 ■ November 2000 Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 38 Gnutella P2P.fm: 03.02.04 14:00 ■ Mai 2001 Verteilte Algorithmen (VA), WS 2003/04 39 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella P2P.fm: 03.02.04 14:00 ■ Eigenschaften von Small-World Netzwerken ● Small-World Netzwerke können durch die PotenzgesetzVerteilung charakterisiert werden ● Viele Knoten eines solchen Netzwerks verfügen nur über eine geringe Anzahl von Verbindungen ● Eine kleine Anzahl von Knoten sind sehr gut in das Netzwerk integriert und verfügen über viele Verbindungen zu anderen Knoten ● Ein solches Netzwerk verkraftet den zufälligen Ausfall von einer grossen Anzahl von Knoten ohne zu zerfallen ● Der minimale Abstand der beiden am weitesten entfernten Ecken ist sehr klein Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 40 Gnutella ■ Eigenschaften von Small-World Netzwerken (Fortsetzung) ● ■ Die charakteristische Pfadlänge wächst logarithmisch mit der Größe des Netzes Beispiele für Small-World Netze ● Natürliche neuronale Netze • Nervensystem von Caenorhabditis elegans ● Soziale Netze • Einwohner der USA (Six Degree of Separation) P2P.fm: 03.02.04 14:00 • AT&T call graph Verteilte Algorithmen (VA), WS 2003/04 41 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella ■ P2P.fm: 03.02.04 14:00 ■ Wie bilden sich Small-World-Netze? ● Small-World-Netze sind oft einem ständigem Wachstum unterworfen ● Neue Knoten binden sich bevorzugt an Knoten mit hoher Konnektivität Entstehung der Small-World-Topologie bei Gnutella ● Knoten mit vielen Verbindungen antworten auf viele PingNachrichten und werden deshalb für neue Verbindungen bevorzugt ● Host-Caches liefern oft gut vermaschte Knoten als Einstiegspunkte Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 42 Gnutella Reduktion des Nachrichtenaufkommens durch effiziente Suchverfahren basierend auf der Small-World-Topologie ■ Random Walk P2P.fm: 03.02.04 14:00 ■ ● Tiefensuche statt Broadcast ● Suchnachrichten werden immer nur an einen Nachbarn weitergeleitet ● Nachrichten werden höchstens einmal an einen Knoten weitergeleitet. Der Anfragepfad wird dafür in der Nachricht vermerkt. ● Jeder Knoten hat Kenntnis über seine Nachbarn ersten und zweiten Grades und kennt alle Dateien die sie bereit stellen Verteilte Algorithmen (VA), WS 2003/04 43 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella P2P.fm: 03.02.04 14:00 ■ High-degree seeking (DS) ● Vorgehensweise entspricht der von Random Walk ● Zusätzlich kennt jeder Knoten die Konnektivität seiner Nachbarn ● Gerichtete Weiterleitung zu unbesuchten Nachbarn mit höchstem Verbindungsgrad Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 44 Gnutella P2P.fm: 03.02.04 14:00 ■ Beispiel für DS: Simulation mit t=2.1 ● Bei 10.000 Knoten werden 10 Schritte benötigt, um 50% des Graphen abzusuchen ● Mittlere Anzahl Schritte, um beliebige Knoten zu finden ist 217 Verteilte Algorithmen (VA), WS 2003/04 45 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gnutella ■ P2P.fm: 03.02.04 14:00 ■ Nötige Veränderungen zur Realisierung von DS ● Jeder Knoten muss Informationen über Nachbarn speichern ● Anfragen müssen mit dieser Liste verglichen werden ● Periodisches Abgleichen der Liste ● Anhängen der Knotenliste an Anfragen Nachteile ● Knoten mit hoher Konnektivität werden stark belastet ● Suchanfragen dauern länger ● Das System wird anfälliger gegen Angriffe Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 46 Gia ■ Ein verbessertes Gnutella-System durch die Berücksichtigung der Kapazität der einzelnen Knoten ■ Zielsetzung: Jeder Knoten wird so in das Netzwerk integriert, dass er entsprechend seiner Kapazität Anfragen erhält. ■ Literatur: P2P.fm: 03.02.04 14:00 ● Yatin Chawathe, Sylvia Ratnasamy, Lee Breslau, Nick Lanham, Scott Shenker: “Making Gnutella-like P2P Systems Scalable”, SIGCOMM 2003 Verteilte Algorithmen (VA), WS 2003/04 47 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gia ■ P2P.fm: 03.02.04 14:00 ■ Die unterschiedliche Kapazität der Knoten hängt hauptsächlich von folgenden Faktoren ab ● Prozessor ● Festplattenzugriffszeiten ● Anbindung zum Netz Kapazität kann im Kontext von Gnutella als bearbeitete Anfragen pro Zeiteinheit betrachtet werden Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 48 Gia P2P.fm: 03.02.04 14:00 ■ Maßnahmen zur Berücksichtigung der Heterogenität ● Dynamische Anpassung der Topologie ● Aktive Flusskontrolle ● Aktive Replikation von Metadaten ● Bessere Suche basierend auf Random Walk Verteilte Algorithmen (VA), WS 2003/04 49 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gia ■ Dynamische Anpassung der Topologie ■ Zielsetzung ● P2P.fm: 03.02.04 14:00 ■ Knoten mit hoher Kapazität sollen viele Verbindungen besitzen, Knoten mit geringer Kapazität wenige Verbindungen Rahmenbedingungen ● Adressen andere Knoten werden wie bei Gnutella durch Host Caches und Ping/Pong Nachrichten ermittelt. Es wird zusätzlich die Kapazität der Knoten mitgeteilt. ● Jeder Knoten besitzt einen ‘Level of Satisfaction’ bezüglich seiner Verbindungen. Dieser liegt zwischen 0 (unbefriedigend) und 1 (zufriedenstellend) Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 50 Gia ■ Algorithmus (1)Start: Knoten Y öffnet die Verbindung zu X (2)Wenn X noch nicht die maximale Anzahl von Verbindugen geöffnet hat, nimmt X die Anfrage an P2P.fm: 03.02.04 14:00 (3)Sollte schon die maximale Anzahl erreicht sein, werden aus der Menge bestehenden Verbindungen die Knoten ermittlet deren Kapazität geringer ist als die von Y. Aus dieser Menge wird der Knoten Z mit dem höchsten Verbindungsgrad ermittlelt. Verteilte Algorithmen (VA), WS 2003/04 51 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gia ■ Algorithmus (Fortsetzung) (4)Sollte es keinen solchen Knoten geben wird die Verbindung geschlossen. Sollte Y eine höhere Kapazität als alle Nachbarn von X haben oder der Verbindungsgrad von Z höher sein als der von Y, wird die Verbindung zu Y akzeptiert und die Verbindung zu Z abgebrochen. In allen anderen Fällen wird der Verbindungsaufbau von Y nicht akzeptiert. P2P.fm: 03.02.04 14:00 ■ Der Algorithmus beachtet also zuerst die Kapazität und dann den Verbindungsgrad Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 52 Gia P2P.fm: 03.02.04 14:00 ■ Aktive Flusskontrolle ● Jeder Knoten schickt an seine Nachbarn periodisch ein Erlaubnis-Token für eine Anfrage ● Anfragen werden nur bearbeitet wenn der anfragende Knoten auch ein Token besitzt ● Kann ein Knoten nicht alle Anfragen bewältigen, weil seine Kapazität nicht ausreicht oder weil er kein Token besitzt, kann er die Rate der verteilten Token reduzieren ● Token werden nicht gleichmäßig an alle Nachbarn verteilt, sondern entsprechend ihrer Kapazität (Start Time Fair Queuing). ● Oft können Token an Basisnachrichten angehängt werden Verteilte Algorithmen (VA), WS 2003/04 53 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gia P2P.fm: 03.02.04 14:00 ■ Aktive Replikation von Metadaten ● Jeder Knoten verwaltet den Datei-Index aller seiner Nachbarn ● Index wird bei jedem neuen Verbindungsaufbau ausgetauscht ● Aktualisierung erfolgt periodisch Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 54 Gia P2P.fm: 03.02.04 14:00 ■ Bessere Suche basierend auf Random Walk ● Anfragen werden an den Nachbarn mit der größten Kapazität von dem ein Token vorliegt weitergeleitet ● Jeder Nachricht enthält einen Globally Unique Identifier (GUID) mit deren Hilfe Knoten erkennen können, ob sie die Nachricht schon erhalten haben und an welche Nachbarn sie bereits zugestellt wurde ● Wie bei Gnutella gibt es in jeder Nachricht das Feld TTL welches die Ausbreitung einer Nachricht begrenzt ● Zusätzlich besitzt jede Anfrage das Feld MAX_RESPONSES welches bei jedem Treffer der Suchanfrage dekrementiert wird. Sobald MAX_RESPONSES=0 wir die Nachricht nicht mehr weiter geleite Verteilte Algorithmen (VA), WS 2003/04 55 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gia P2P.fm: 03.02.04 14:00 ■ Simulation - Vier Systeme ● FLOOD - Fluten begrenzt durch TTL auf einer zufälligen Topologie (Gnutella) ● RWRT - Random Walk auf einer zufälligen Topologie ● SUPER - Hierarchische Struktur unter Verwendung von Supernodes ● GIA - Initial zufällige Topologie Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 56 Gia ■ System Model ● Knoten • Kapazität Ci verteilt gemäß einer realen Messung des GnutellaNetzwerkes • Anfragerate Qi • Warteschlange ● Zufällige Replikation ● Anfrage - Suche nach einem Schlüsselwort ● GIA • Initial zufällige Topologie P2P.fm: 03.02.04 14:00 • Min_nbrs = 3; Max_nbrs = min(max_nbrs,[C/min_alloc]) min_alloc=4, max_nbrs=128 Verteilte Algorithmen (VA), WS 2003/04 57 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Gia Metrik ● Wieviele Anfragen kann das System verkraften bevor es kollabiert ? ● Collapse point: Weniger als 90% Anfragen sind erfolgreich Collapse Point (qps/node) ■ 1000 SUPER: N=10,000 10 RWRT: N=10,000 FLOOD: N=10,000 0.1 0.001 0.00001 0.01 P2P.fm: 03.02.04 14:00 GIA: N=10,000 0.1 Replication Rate (percentage) Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 1 58 Gia P2P.fm: 03.02.04 14:00 ■ Welche der verwendeten Techniken verbessert das Verhalten von Gia ? Algorithmus Collapse point GIA 7 GIA - Index-Replikation 0.004 GIA - Bessere Suche 6 GIA - Anpassung der Topologie 0.2 GIA - Adap. Flusskontrolle 2 Verteilte Algorithmen (VA), WS 2003/04 59 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg P2P.fm: 03.02.04 14:00 Freenet ■ Freenet ist ein zensurresistentes, sicheres, verteiltes Informationssystem ■ Literatur: ● Ian Clarke, Oskar Sandberg, Brandon Wiley, and Theodore W. Hong, "Freenet: A Distributed Anonymous Information Storage and Retrieval System" in Designing Privacy Enhancing Technologies: International Workshop on Design Issues in Anonymity and Unobservability, LNCS 2009, 2001 ● Ian Clarke, Oskar Sandberg, Brandon Wiley, and Theodore W. Hong,“Protecting Freedom of Information Online with Freenet”, IEEE Internet Computing ● Projektseite: http://www.freenetproject.org Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 60 Freenet P2P.fm: 03.02.04 14:00 ■ Designziele ● Effiziente dynamische Verteilung von Informationen ● Anonymität für Informationsproduzenten und Konsumenten ● Sicherheit für Informationsanbieter ● Resistent gegenüber von Zensur Verteilte Algorithmen (VA), WS 2003/04 61 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet ■ Struktur des Free Network Protocol (FNP) ● Transportschicht • Verbindungsorientiert, zuverlässige Datenübertragung (TCP) ● Verschlüsselungsschicht • Dient zum Aufbau von verschlüsselten Verbindungen zwischen Knoten • Bei einem Verbindungsaufbau wird durch den Public-Key Algorithmus nach ELGamal ein gemeinsamer Schlüssel ausgehandelt. Dieser dient im Folgenden dazu, die übertragenen Daten mit AES (Rijndael) zu verschlüsseln. ● Anwendungsschicht P2P.fm: 03.02.04 14:00 • Definiert das eigentliche Freenet-Protokoll zum Austausch und zur Suche von Informationen Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 62 Freenet P2P.fm: 03.02.04 14:00 ■ Es können grundsätzlich drei Operation in Freenet durchgeführt werden: ● Integration eines neuen Knotens in das Netzwerk ● Einfügen von Daten ● Anfordern von Daten Verteilte Algorithmen (VA), WS 2003/04 63 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet P2P.fm: 03.02.04 14:00 ■ Rahmenbedingungen des Systems ● Jegliche Informationen in Freenet werden durch HashSchlüssel referenziert ● Informationen werden auf Grund von lexikografischer Nähe von Schlüsseln abgelegt und gefunden ● Jeder Knoten verfügt dafür eine Routing-Tabelle die sich aus Hash-Schlüsseln und Knoten-Adressen zusammensetzt. Der einem Hash-Schlüssel zugeordnete Knoten verwaltet entweder die durch den Schlüssel referenzierten Daten oder kennt einen Knoten der die Daten verwaltet. ● Jeder Knoten verfügt über einen sogenannten Data Store. Dieser verwaltet die von einem Knoten zur Verfügung gestellten Daten. Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 64 Freenet ■ Rahmenbedingungen des Systems (Fortsetzung) ● Alle Nachrichten werden über verschlüsselte Verbindungen übertragen ● Wichtige Felder der meisten Nachricht: • UniqueId: Eindeutiger ID • Source: Absender der Nachricht P2P.fm: 03.02.04 14:00 • TTL: Time to Live Zähler Verteilte Algorithmen (VA), WS 2003/04 65 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet ■ Daten anfordern: ● Anfrage an den Data Store ob Daten unter dem gesuchten Hash-Schlüssel abgelegt sind. Ist dies der Fall werden die Daten zurückgeliefert. ● Ansonsten wird aus der Routing-Tabelle der Knoten gewählt, der am ehesten den gesuchten Schlüssel in seinem Data Store verwaltet. An diesen Knoten wird dann eine Data Request-Nachricht versendet. P2P.fm: 03.02.04 14:00 = Data Request = Data Reply = Request Faild KEY DATA dfsee qe4d3 ADDRESS tcp/5.34.27.4:66434 Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 66 Freenet ■ Daten anfordern (Fortsetzung): ● Beim Empfang einer Nachricht wird das Feld TTL dekrementiert und die Nachricht verarbeitet. Werden die Daten nicht durch den lokalen Data Store verwaltet wird die Data Request-Nachricht an den nächsten geeigneten Knoten weitergeleitet. ● Kennt der Knoten keinen weiteren Knoten so antwortet er an den anfragenden Knoten mit einer Request Failed-Nachricht. Der anfragende Knoten kann dann die Request-Nachricht an einen anderen Knoten weiterleiten. P2P.fm: 03.02.04 14:00 Data Request UniqueID=C24..... Source=131.188.34.159:84523 TTL=10 SearchKey=8e0... = Data Request = Data Reply = Request Faild Verteilte Algorithmen (VA), WS 2003/04 67 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet ■ Daten anfordern (Fortsetzung): ● Sinkt das Feld TTL auf den Wert 0 und sind keine Daten auffindbar wird eine Data Not Found-Nachricht an den anfragenden Knoten versendet P2P.fm: 03.02.04 14:00 = Data Request = Data Reply = Data Not Found Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 68 Freenet ■ Daten anfordern (Fortsetzung): ● Verwaltet ein Knoten den gesuchten Schlüssel so versendet er eine Data Reply-Nachricht an den anfragenden Knoten ● Empfängt ein Knoten eine Data Reply-Nachricht so speichert er den Hash-Schlüssel und die Daten im Data Store. Ist der Knoten Initiator der Anfrage, werden die Daten an den Anwender zurückgeliefert, sonst wird die Nachricht an den Vorgänger in der Anfragekette weitergeleitet. P2P.fm: 03.02.04 14:00 Data Reply UniqueID=C24300FB7BEA06E3 DataLength=122 Data ... = Data Request = Data Reply = Request Failed Verteilte Algorithmen (VA), WS 2003/04 69 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet ■ Daten anfordern (Fortsetzung): ● Hat der letzte Knoten in der Anfragekette die Daten erfolgreich übertragen, versendet er eine Store DataNachricht. Diese wird entlang der Anfragekette an den Initiator propagiert P2P.fm: 03.02.04 14:00 Store Data UniqueID=C24300FB7BEA06E3 DataSoure= 131....159:84523 Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg = Data Request = Data Reply = Store Data 70 Freenet P2P.fm: 03.02.04 14:00 ■ Daten anfordern (Fortsetzung): ● Beim Empfang einer Store Data Nachricht wird in die Routing-Tabelle ein neuer Eintrag mit der Adresse der Nachricht und dem Hash-Schlüssel der Nachricht aufgenommen ● Bevor ein Knoten die Data Store Nachricht weiterversendet, ersetzt er mit der Wahrscheinlichkeit p das Feld Data Source durch seine eigene Adresse sonst bleibt die Adresse erhalten ● Nach Verarbeitung der Data Store-Nachricht gilt die Anfrage als erfolgreich verarbeitet und der Knoten kann jegliche Statusinformation zur Anfrage löschen Verteilte Algorithmen (VA), WS 2003/04 71 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet P2P.fm: 03.02.04 14:00 ■ Einfügen von Daten: ● Sollen Informationen in das System eingefügt werden, muss zuerst ein Schlüssel für die einzufügenden Daten generiert werden ● Anschließend wird eine Insert Request-Nachricht mit diesem Hash-Schlüssel dem lokalen Knoten übergeben Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 72 Freenet ■ Einfügen von Daten (Fortsetzung): ● Dieser kontrolliert ob der Schlüssel bereits durch den lokalen Data Store verwaltet wird. Ist dies der Fall wird eine Fehlermeldung generiert und der Vorgang ist beendet, anderenfalls wird die Insert Request-Nachricht an den geeignetesten Knoten weitergeleitet. P2P.fm: 03.02.04 14:00 = Insert Request = Data Reply = Data Insert = Insert Reply Verteilte Algorithmen (VA), WS 2003/04 73 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet ■ Einfügen von Daten (Fortsetzung): ● Verwaltet einer der befragten Knoten den gesuchten HashSchlüssel generiert er eine Data Reply Nachricht. Diese enthält die unter dem Schlüssel abgelegten Daten und wird entlang der Anfragekette an den Initiator übertragen. Die bereits im System abgelegten Daten werden also repliziert. P2P.fm: 03.02.04 14:00 = Insert Request = Data Reply = Data Insert = Insert Reply Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 74 Freenet ■ Einfügen von Daten (Fortsetzung): ● Verwaltet keiner der befragten Knoten den Hash-Schlüssel, wird durch den letzten Knoten in der Anfragekette eine Insert Reply-Nachricht erzeugt. Diese signalisiert dass noch keine Daten mit diesem Hash-Schlüssel im System vorhanden sind und wird an den Initiator der Anfrage zurückgeleitet. ● Der Initiator kann nun die Daten mit einer Data InsertNachricht im Netzwerk verbreiten P2P.fm: 03.02.04 14:00 = Insert Request = Data Reply = Data Insert = Insert Reply Verteilte Algorithmen (VA), WS 2003/04 75 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet ■ Einfügen von Daten (Fortsetzung): ● Hat der letzte Knoten in der Anfragekette die Daten erhalten, generiert er eine Store Data-Nachricht, die zurück an den Initiator übermittelt wird P2P.fm: 03.02.04 14:00 = Insert Request = Data Reply = Data Insert = Insert Reply Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 76 Freenet Integration eines neuen Knotens in das Netzwerk geschieht über ein Announcement-Protokoll ■ Ziel dieses Protokolls ist es einen neuen Knoten möglichst schnell in das Netzwerk zu integrieren. Zusätzlich werden verschiedene Anforderungen gestellt: P2P.fm: 03.02.04 14:00 ■ ● Eine Anzahl von Knoten soll gleichberechtigt in die Zuteilung des Schlüsselbereichs, für den der neue Knoten verantwortlich ist, beteiligt sein ● Der zugeteilte Schlüsselbereich muss völlig zufällig sein ● Der neue Knoten muss nach dem Announcement ausreichend Kenntnis über seinen Schlüsselbereich besitzen, d.h. er kann Anfragen effizient beantworten Verteilte Algorithmen (VA), WS 2003/04 77 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet ■ Anforderung an das Protokoll zur Intergration neuer Knoten P2P.fm: 03.02.04 14:00 ● Alle am Announcement beteiligten Konten besitzen nach der Integration des neuen Knoten Kenntnis über seinen Adresse und dem ihm zugeordneten Schlüsselraum Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 78 Freenet P2P.fm: 03.02.04 14:00 ■ Ablauf der Integration eines neuen Knotens ● Node Announcement - Knoten macht sich einer Reihe von Knoten bekannt. Jeder der Knoten wählt einen Zufallswert den er nur in Form eines kumulativen Hashwertes weiter gibt. ● Announcement Reply - Alle Zufallswerte werden entlang des Anfragepfades via XOR vermengt ● Announcement Exceute - Erzeugter Schlüssel wird an alle beteiligten Knoten vermittelt. Diese überprüfen die korrekte Erzeugung. ● Announcement Completed - Alle beteiligten Knoten übermitteln die zum erzeugten Schlüssel lexikografisch naheliegenden Schlüssel. Verteilte Algorithmen (VA), WS 2003/04 79 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg P2P.fm: 03.02.04 14:00 Freenet ■ Allgemein wird jede in Freenet abgelegte Information durch einen Hash-Schlüssel referenziert, der mit Hilfe des Secure Hash Algorithmus erzeugt wurde ■ Es wird zwischen zwei verschiedene Schlüssel-Arten unterschieden: ● Ein Content Hash Keys (CHK) wird durch die Hashsumme über eine Datei erzeugt und bildet einen Basismechanismus um Dateien global eindeutig zu referenzieren ● Signed Subspace Keys (SSK) bilden einen Mechanismus um einen privaten Namensraum zu erzeugen, der von jedem Benutzer gelesen, aber nur durch den Besitzer des Namensraums geschrieben werden kann Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 80 Freenet enet ■ Erzeugung eines Signed Subspace Keys (SSK) Erzeuge eine zufällige Zeichenkette für den Namensbereich ’mp3/’ Datei Public-Key-Algorithmus Name: mp3/Laid-Back-Bakerman.mp3 Datei-Schlüssel = hash( hash(öffenlicher Schlüssel) XOR hash(Name)) Freeenet-Datei = Datei + sign(Datei) P2P.fm: 03.02.04 14:00 Beispiel: SSK@9G4s~jLQJB7ALQg-v2q5xKAJy9YPAgM/mp3/Laid-Back-Bakerman.mp3 SSK@ öffentlicher Schlüssel + Name der Datei Verteilte Algorithmen (VA), WS 2003/04 Freenet reenet P2P.fm: 03.02.04 14:00 81 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg ■ Wie schnell bzw. in welcher Entfernung können Daten aufgefunden werden? ■ Ausgangspunkt der Simulation ● 1000 Knoten angeordnet in einer Ringstruktur ● Jeder Knoten kennt initial nur seine unmittelbaren zwei Vorgänger und Nachfolger im Ring ● Jeder Knoten verfügt über einen Data Store der maximal 50 Einträge fassen kann und eine Routing-Tabelle mit maximal 200 Einträgen Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 82 Freenet P2P.fm: 03.02.04 14:00 ■ Ablauf der Simulation ● Es werden in zufälliger Reihenfolge Anfrage- und EinfügeOperationen mit einer TTL von 20 durchgeführt ● Nach 100 Operationen wird das Netzwerk betrachtet und 300 Suchanfragen mit einer TTL von 500 die durchschnittliche Pfadlänge bestimmt Verteilte Algorithmen (VA), WS 2003/04 83 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet P2P.fm: 03.02.04 14:00 ■ Durchschnittliche Pfadlänge von Anfragen Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 84 Freenet P2P.fm: 03.02.04 14:00 ■ Verteilte Algorithmen (VA), WS 2003/04 85 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet reenet ■ Wie skaliert Freenet? ■ Ausgangspunkt der Simulation ■ P2P.fm: 03.02.04 14:00 Verknüpfungsgrad der Knoten => Small World Netzwerk ● 20 Knoten angeordnet in einer Ringstruktur ● Sonst gleiche Bedingungen wie in der ersten Simulation Ablauf der Simulation ● Einfüge- und Anfrage-Operationen wie in der ersten Simulation ● Nach jeder fünften Operation wird ein neuer Knoten dem Netzwerk hinzugefügt Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 86 Freenet P2P.fm: 03.02.04 14:00 ■ Durchschnittliche Pfadlänge von Anfragen Verteilte Algorithmen (VA), WS 2003/04 87 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet P2P.fm: 03.02.04 14:00 ■ Wie fehlertolerant ist Freenet? Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 88 Freenet Weitere Entwicklung: Next generation routing mechanism ■ Probleme des aktuellen Systems P2P.fm: 03.02.04 14:00 ■ ● Keine Unterscheidung zwischen Knoten mit unterschiedlicher Anbindung und deshalb oft lange Antwortzeiten ● Schwierigkeiten das System zu verbessern, da sich Simulationen nur bedingt als aussagekräftig erwiesen haben ● Lange Entwicklungszyklen, da Evaluierung von Änderungen nur im realen System möglich sind Verteilte Algorithmen (VA), WS 2003/04 89 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet ■ Idee des next generation routing mechanism ● Intelligenteres Routing basierend auf statistischen Informationen wie • Zeitdauer zum Aufbau von Verbindungen • Antwortzeiten • Anteil der erfolgreichen Anfrage ■ Abschätzung von Antwortzeiten bei Data Reply ● Ziele • Gute Abschätzungen auch für unbekannte Schlüssel • Schätzung passt sich dynamisch an P2P.fm: 03.02.04 14:00 • Lokal berechenbar Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 90 Freenet ■ Algorithmus zur Abschätzung von Antwortzeiten ● Es gibt ca. 10 Referenzpunkt die sich über den gesamten Schlüsselraum verteilen ● Nach jeder erfolgreichen Anfrage werden die nächstliegenden Referenzpunkt verschoben ● Anfragezeiten für unbekannte Schlüssel können abgeschätzt werden Antwortzeit P2P.fm: 03.02.04 14:00 Schlüsselraum Verteilte Algorithmen (VA), WS 2003/04 91 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet P2P.fm: 03.02.04 14:00 ■ Algorithmus (Fortsetzung) ● Die Antwortzeit einer erfogreichen Anfrage setzt sich aus der Zeit zur Lokalisierung des gesuchten Schlüssels und der Transferzeit der Daten zusammen. ● Die Normalisierung der Anfragezeit kann auf der mittleren Dateigröße des lokalen Data Stores erreicht werden Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 92 Freenet ■ Berücksichtigung nicht erfolgreicher Anfragen ● Problem: Wie können legetime ‘Data Not Found’ (DNF) Anfragen von fehlerhaften unterschieden werden? ● Annahme: Man kann bei einer DNF-Anfrage feststellen ob sie falsch ist • Die Dauer einer fehlerhaften Anfrage kann dann aus der mittleren Zeit von DFN-Anfragen des befragten Knotens und der durchschnittlichen Dauer einer erfolgreichen Anfrage an einen anderen Knoten berechnet werden. P2P.fm: 03.02.04 14:00 ● Die Anzahl der legitimen DNF-Anfragen kann näherungsweise durch den Knoten mit den niedrigsten DNFAnfragen Rate bestimmt werden. Knoten mit einer höheren DNF-Anfrage Rate haben ein Routing-Problem. Verteilte Algorithmen (VA), WS 2003/04 93 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg Freenet P2P.fm: 03.02.04 14:00 ■ Berücksichtigung abgebrochener Verbindungen ● Sollte ein Knoten überlastet sein nimmt er temporär keine Verbindungen an ● Man kann die durchschnittliche Anzahl der fehlgeschlagenen Verbindungsversuche und ihre Dauer bertachten. Diese werden der geschätzten Routing-Dauer hinzugerechnet Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 94 Freenet P2P.fm: 03.02.04 14:00 ■ Fazit ● Durch die Abschätzung der Dauer von Anfragen können in Zukunft Routingentscheidungen nicht nur auf Grund von lexikografischer Nähe gefällt werden, sondern zusätzlich basierend auf der Kapazität und der geographischen Nähe der zur Auswahl stehenden Knoten ● Die Erfassung von statistischen Daten und die darauf basierende Abschätzung von Routingzeiten erlaubt eine bessere Evaluierung von Veränderungen des Routings Verteilte Algorithmen (VA), WS 2003/04 (C) 2003 Hans P. Reiser, Rüdiger Kapitza, Informatik 4, Universität Erlangen-Nürnberg 95