P2P Grundlagen

Transcription

P2P Grundlagen
Semantische Analyse des Internet (9)
Peer-to-Peer (P2P) Grundlagen
Markus Gräser, 8.6.2004
Gliederung
•
•
•
•
•
•
•
Definition
Geschichte
P2P-Netzwerk-Architekturen
Anwendungsgebiete
Populäre File-Sharing Systeme
Technische Herausforderungen
Forschungsansätze
2
Was ist Peer-to-Peer (P2P)?
• Organisationsstruktur für ein Computernetz
• P2P vor allem Abgrenzung zum Client-Server
Modell
• Gleichberechtigte Netzteilnehmer (Peers)
– Teilen Ressourcen (Speicherplatz, Bandbreite,
Rechenzeit, Inhalte)
– Aktivitäten finden am Rand des Netzes (auf den
Endgeräten der Nutzer) statt
– Meist direkte Kommunikation zwischen Peers
3
Was ist Peer-to-Peer (P2P)? 2
• Weitere Charakteristika:
– Dezentrale Ressourcenverteilung
– Autonome Knoten (entscheiden selbst über
Dienstnutzung, bereitgestellte Ressourcen und
An-/Abmeldung am Netz)
– Vom DNS (Domain Name System)
unabhängige Adressierung der Knoten auf
Anwendungsebene (Sockets)
4
Geschichte
• P2P ist nichts neues: Internetarchitektur baut auf
dieser Idee auf, als dezentrales Netz von
verbundenen Computern, die
– Ressourcen teilen (Pakete weiterleiten, ftp- / httpZugang zu Inhalten, Rechenleistung per telnet,
Kommunikation per mail / talk)
– Sich dynamisch zu-/abschalten können, ohne dass das
Netz kollabiert
– Direkte Kommunikation per IP-Adressen oder über
symbolische Adressen unter Verwendung des DNS
5
Geschichte 2
• Später vor allem Client-Server Modell
– Ressourcenstarke Server sind permanent ans Netz
angeschlossen, stellen Dienste für temporär
angemeldete Endnutzer (Clients) zur Verfügung
– Adressierung: Server per DNS, Clients über temporäre
IP-Adressen
– Server kontrollieren Datenfluss, single point of failure
– Asymmetrischer Datenfluss: hohe Datenmenge von
Server zu Client, geringe Datenmenge in umgekehrter
Richtung
6
Geschichte 3
• Technischer Fortschritt ermöglicht Revival
des P2P:
– Flatrates erlauben permanenten Netzzugang
– bieten Bandbreite für Anwendungen wie VoIP
oder Download großer Dateien
– Endgeräte mit großer Rechenleistung und
Speicherplatz
– Suchmaschinen können mit Netzwachstum
nicht Schritt halten
7
Geschichte 4
• Filesharingsysteme:
– Napster (1999)
– Gnutella (2000)
• Distributed Computing
– Seti@home (1999)
• Collaboration
– ICQ (1996)
8
P2P-Netzwerk-Architekturen
• Pure P2P-Netze
– Komplett dezentral, jeder Peer gleichberechtigt
• Hybride P2P-Netze
– Nutzen zentralen Server, der das Netz organisiert
• Super-Peer Netze
– Leistungsstärkere Rechner (Super-Peers) dienen als
Server, sind selbst in P2P-Manier vernetzt
9
P2P-Netzwerk-Architekturen 2
• Pure P2P-Netze
– Peers (Servents) bauen Verbindung zu bereits
integrierten Peers auf
– Kommunikation (Anmelden, Suchen, Downloads) über
Nachbarn (Schneeballprinzip)
– Vorteile: robust gegen Serverausfälle und Angriffe,
skalierbar (kein Flaschenhals durch Server)
– Nachteile: Anmelden braucht Kenntnis eines
existierenden Knotens, Schneeballprinzip kann zu
Netzüberlastung führen, langsame Suche, Zerfall in
Teilnetze möglich
– Beides: Keine Kontrolle / Zensur möglich
10
– Beispiele: Gnutella, Freenet
P2P-Netzwerk-Architekturen 3
• Hybride P2P-Netze
–
–
–
–
Peer- und Ressourcenverwaltung bei zentralem Server
Ressourcennutzung direkt zwischen Peers
Vorteile: schnelle, effiziente Suche und Anmeldung
Nachteile: Serverausfall zerstört Netz (single point of
failure), Leistungsfähigkeit des Servers limitiert
Skalierbarkeit und Performance des Netzes
– Beides: Kontrolle / Zensur möglich
– Beispiele: Napster, ICQ
11
P2P-Netzwerk-Architekturen 4
• Super-Peer Netze
– Superpeers verwalten Peers und Ressourcen ihres
Clusters
– Ressourcennutzung direkt zwischen Peers
– Vorteile: schnelle, effiziente Suche und Anmeldung,
Reaktion auf heterogene Peers, robuster als hybride
Netze
– Nachteile: Suche nur in Cluster, Knoten müssen SuperPeer-Aufgaben übernehmen, Ausfall von Super-Peers
kann Cluster lahmlegen
– Beispiele: KaZaA / FastTrack, Edutella
12
Anwendungsbereiche von P2P
• Distributed Computing (Verteiltes Rechnen):
– Nutzung freier Rechnerkapazität wie Idle-Cycles,
Bandbreite, Festplattenkapazität
• Collaboration:
– Kontakt zwischen gleichzeitig angemeldeten Peers
– Z.B. Instant Messaging, Projektkoordination
• Content Sharing (Inhalte teilen):
– Dateitauschbörsen
13
Distributed Computing
• Sicherheit / Vertrauen wichtig: Ausführen von
fremdem Code, Speichern fremder Dateien
• Geeignet für gleichbleibende, komplizierte
Berechnungen einer großen Datenmenge
• Kaum Kommunikation zwischen Peers nötig
• Rechnen: Seti@home, RSA-Knacken,
Gridcomputing
• Bandbreite: Dateidistribution über BitTorrent
• Speicherplatz: eher in internen Netzen
14
Collaboration
• Kommunikation in Echtzeit
• Datenkonsistenz wichtig (etwa bei verteilter
Projektarbeit)
• Sicherheit (private / Geschäftsdaten)
• Z.B. Instant Messaging (z.B. ICQ),
Projektkoordination, Onlinespiele, VoIP
• P2P-Groupware erlaubt auch
firmenübergreifende Zusammenarbeit
15
Populäre File-Sharing Systeme
•
•
•
•
•
•
Napster
Gnutella
FastTrack
eMule
Freenet
BitTorrent
16
Napster
• Zentrale Server zur Peer- und
Ressourcenverwaltung
• Nur Tausch von Musik (mp3)
• Suche über Dateinamen, Bitrate,
Samplingfrequenz und Peer-Bandbreite
• Hashwert für erste 300KB
• Datei-Identifikation durch Dateiname
• Proprietäres Protokoll
• Nutzerbewertung
• Aus rechtlichen Gründen geschlossen
17
Gnutella
• Offenes Protokoll
• Komplett dezentrales Netz
• Anmelden an bekannten Peers (aus letzter Session oder
über www), dann eine feste Zahl von Verbindungen (~4)
halten
• Suche durch Flooding (alle Nachbarn fragen, die fragen
weiter, bis Time-to-live flag (TTL) erreicht)
• Horizontbegrenzung durch TTL (~7 hops)
• Sehr hohe Netzbelastung durch Flooding
• Viele Clientprogramme (BearShare, LimeWire, Gnotella,
Morpheus) mit teils eigenen Protokoll-Erweiterungen
18
FastTrack (KaZaA)
• Proprietäres, verschlüsseltes Protokoll
• Leistungsfähige Supernodes verwalten Peers und
Ressourcen, und sind unstrukturiert verbunden
• Zur Suche kommunizieren Supernodes
untereinander
• Peers können mit mehreren Supernodes verbunden
sein
• Lange am stärksten genutztes System
19
eMule
• Rückentwickeltes eDonkey Protokoll
• Leistungsfähige Server verwalten Peers und
Ressourcen
• Suchhorizont durch Server beschränkt, aber
Horizontwanderung durch Neuverbinden
• Eindeutige Datei-IDs durch Hashwerte
• Große Dateien werden in Segmente zerlegt, die
einzeln geladen werden
• Download von mehreren Peers gleichzeitig
• Direktes Credit-System zwischen Peers
20
Freenet
•
•
•
•
Komplett dezentrales Netz
Anonymer, verschlüsselter Dateitausch
Eindeutige Dateischlüssel
Routingtabellen mit Schlüssel-Nachbar-Paaren,
Suchweitergabe an den Nachbar mit ähnlichstem
Schlüssel (TTL-Grenze)
• Selbständiges Caching beliebter Dateien
• Vergleichsweise geringe Nutzung (u.a. weil
Schlüssel zur Dateisuche benötigt wird)
21
BitTorrent
• Verteilter Download (Bandbreite teilen)
• Pro Datei wird ein Tracker (Server) eingerichtet,
der über www erreichbar ist
• Peers registrieren sich bei Tracker, entlasten
Quellserver durch Download von Dateisegmenten
bei anderen Peers
• Dient vor allem der Veröffentlichung großer
Dateien (z.B. Linux-Distributionen)
• Sehr hohe Downloadraten möglich, Erreichbarkeit
steigt mit Nachfrage
22
Technische Herausforderungen
•
•
•
•
•
•
Heterogene Hardware / Software / Netzwerke
Skalierbarkeit des Netzes
Effizientes Finden von Ressourcen
Dynamisches Anmeldeverhalten
Autonomie der Peers
Sicherheit, Vertrauen beim Anbieten von
Ressourcen
• Nutzung von Gruppeneigenschaften
• Vermeidung asozialen Verhaltens (freeriding)
23
Forschungsansätze
•
•
•
•
•
Distributed Hashtables (DHT)
Edutella
Verbesserte Suchalgorithmen
Netzwerk-unabhängige Middleware
Orientierung an Netzwerkschicht
24
Distributed Hashtables
• Dateien haben eindeutige Hash-Schlüssel
• CHORD:
– Jeder Knoten verwaltet Index-Wertebereich
– Fingertable verweist auf nächste Knoten
– Suchanfragen werden im Ring geleitet
• CAN (Content Addressable Network):
– Statt Ring Verwendung von n-dimensionalem
kartesischem Raum
– Knoten verwalten Schlüssel-Teilräume
– Lokale Suchweiterleitung an nächsten Nachbarn
25
Distributed Hashtables 2
• Vorteile:
– schnelle Suche
– geringer Suchoverhead
– dezentrales System
• Nachteile:
–
–
–
–
komplizierter Unterhalt
Schwierigkeiten bei hoher Netzdynamik
kaum Redundanz
zur Suche wird Hashwert benötigt (Ausweg: KeywordIndex)
– Hohe Netzlast bei Knoten, die Index beliebter Dateien 26
verwalten
Edutella
• Rein akademisches Projekt, nutzt JXTA
• Verwendet als Hypercube organisierte Superpeers
– Superpeers verwalten Information über Dokumente auf
ihren Peers
– Anfragen erreichen alle Superpeers mit minimalem
Traffic
• Dokumentauszeichnung durch RDF-ähnliche
Schemata
• Erlaubt Datenbank-Abfragen
27
Verbesserte Suchalgorithmen
• Random Walks
– vermeiden Flooding durch Suchweiterleitung an einen
zufällig gewählten Nachbarknoten
– Vervielfältigung besonders beliebter Dateien
– Dadurch schnelles Finden beliebter Dateien
• Routing Indizes
– Peers speichern Informationen über Nachbarn (aus
Suchanfragen oder Gossip)
– Suchanfragen können an geeignetste Nachbarn
weitergeleitet werden
28
Netzwerk-unabhängige Middleware
• Problem: Jedes Anwendungsgebiet und fast jedes
Anwenderprogramm verwendet eigene,
inkompatible Protokolle mit besonderer PeerAdressierung
• .NET und JXTA abstrahieren von der konkreten
Anwendung und bieten
Anwendungsprogrammierern eine einheitliche
Schnittstelle zum Zugriff auf P2P-Netze
29
Orientierung an Netzwerkschicht
• Bisher werden Netztopologien nur auf
Anwendungsschicht betrachtet. Da das
Internet selbst als P2P-System ausgelegt ist,
läßt sich evt. schon daran eine effizientere
Struktur ausrichten
• Interessant ist das etwa für WLANBürgernetze
30
Literatur / Links
•
Problemseminar „Peer-to-Peer (P2P) Data Management“, Prof. Rahm
–
–
–
–
–
•
•
•
•
Einführung, S. Gebhardt
File Sharing Systeme (Napster, Gnutella, Kazaa...), X. Baldauf
Lokalisierung von Ressource, T. Peitzsch
Verarbeitung komplexer Queries (in schema-basierten P2P-Systemen), S. Stoll
http://dbs.uni-leipzig.de/de/seminare/P2PDM/WS0304/themen.html
Barkai D., Technologies for Sharing and Collaborating on the Net, intel 2002
http://www.informatik.uni-rostock.de/~gs137/Unger/disser_final.ps
http://www-db.stanford.edu/~schloss/docs/HyperCuP-LNCS2530.pdf
http://sundb1.prakinf.tu-ilmenau.de/lehre/2004/hauptseminar/EdutellaAusarbeitung.pdf
31