Freenet

Werbung
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
Herunterladen