Einführung P2P

Transcription

Einführung P2P
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzwerken
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
1
Überblick
• P2P:
– Definition(en)
– Merkmale
– Operationen
•
•
•
•
Vorteile
Historie
Anforderungen
Klassifikation
– Netzwerk-Architekturen
– Suchverfahren
• Beispiele
• Messungen an P2P-Systemen
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
2
P2P – Definitionen
• Engl. peer = Gleichgestellter, Ebenbürtiger
• Wikipedia:
"Kommunikation unter Gleichen"
• Gribble (2001):
A distributed system in which participants rely on one
another for services [...] Peers in the system can elect
to provide services as well as consume them.
• Yang/Garcia-Molina (2002):
Peer-to-peer (P2P) systems are distributed systems in
which nodes of equal roles and capabilities exchange
information and services directly with each other.
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
3
P2P – Merkmale (1)
• Alle Knoten gleichberechtigt
– Symmetrie: gleichzeitig Client und Server (Servents)
– P2P vor allem als Abgrenzung zum Client/Server-Modell
• Peers teilen Ressourcen: z.B. Speicherplatz, Rechenzeit, Inhalte
– Anwendungen: Filesharing (am populärsten), verteiltes Rechnen (SETI,
Grid Computing), Collaboration (ICQ, Projektkoordination, ...)
• Direkte Kommunikation zw. den Peers
• Netzwerkstruktur nicht stabil (Peers kommen und gehen)
• Teilnehmer sind autonom, entscheiden selbst über Dienste, angebotene
Inhalte, Anwesenheit, ...
• keine zentrale Instanz/Kontrolle, kein globales Wissen über Inhalte
• Globales Systemverhalten resultiert aus lokalen Aktionen
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
4
P2P – Merkmale (2)
• Adressierung auf Anwendungsebene (eigener Adreßraum)
• physische Verbindungen z.B. über TCP/IP oder UDP
– von der Anwendung implementiert
– meist über Sockets
• Jedes P2P-System kann prinzipiell als (meist gerichteter)
Graph dargestellt werden
• jeder Anwender kann einfach Inhalte einbringen, sobald er
einen Peer besitzt
• Bildet Communities: oft sind Nachbarschaften
"semantischer" Natur, d.h.
– Nachbarn haben gleiche oder ähnliche Interessen.
– Oft: explizite Kontaktaufnahme möglich (Chat etc.)
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
5
P2P - Operationen
• Implementierung eines Servents umfasst Operationen für:
–
–
–
–
–
Iinitial introduction: erste Verbindung ins Netz
Leave: temporäres Verlassen des Netzes
Join: Wiederaufnahme einer vorher unterbrochenen Verbindung
Suche
Einfügen/Löschen von Dokumenten/Dateien
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
6
P2P – Vorteile
• Höhere Verfügbarkeit/Ausfallsicherheit: kein „single point
of failure“
• Aktualität/Einfachheit des „Publizierens“:
– Zugriff auf unveröffentlichte Daten
– trotzdem Anonymität
•
•
•
•
Skalierbarkeit
Geteilte Ressourcen (Rechenleistung, Speicherplatz)
Keine Zensur/Manipulation durch zentrale Instanz
Nachteile von zentralisierten Systemen (z.B. Google):
–
–
–
–
schlechte Abdeckung
lange Updatezeiten
Kosten für Pflege des Servers
Downstream-Modell
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
7
Historie: ARPANET
• ARPANET (Vorgänger des Internet, 60er Jahre) war im
Prinzip P2P
• Ziel: Rechner-Ressourcen kombinieren
• Herausforderungen:
– heterogene Netzwerke und Rechner integrieren
– alle sollen gleichberechtigt sein (Telnet/FTP für alle)
• keine Firewalls, Schutzmechanismen (Vertrauen unter
Wissenschaftlern)
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
8
Historie: Usenet
• seit 1979
– erste P2P-Anwendung
•
•
•
•
ursprünglich Verbindung zwischen zwei Uni-Rechnern
Es existieren vorgegebene Themenbereiche (newsgroups)
Neue können jederzeit hinzugefügt werden
Replikation der Daten:
– Ursprünglich: jeder teilnehmende News-Server hat alle Daten aller
Newsgroups
– Heutzutage: teilnehmende News-Server entscheiden sich für Untermenge
von newsgroups
• Protokoll:
– sobald ein User etwas einstellt ("postet"), wird es überall hin transferiert.
– neue Newsgroups: Über Aufnahme wird streng demokratisch in
news.admin entschieden
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
9
Historie: DNS
• seit 1983
• Ursprünglich: Datei "hosts.txt" mit Mappings
Hostnamen -> IP
• Heute:
– mehrere DNS-Server, verantwortlich für bestimmte Domains
– hierarchisch angeordnet
• Protokoll:
– Anfragen nach IPs werden nach oben weitergeleitet
– Resultate werden auf demselben Weg zurückgeleitet und
gespeichert
• Ein Nameserver ist sowohl Server als auch Client anderer
Nameserver
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
10
Historie: Internet-Wachstum
• Gründe für das Verlorengehen der P2P-Struktur des ARPANETs:
– Kein Vertrauen mehr möglich: Spam, Viren etc.
– Bandbreiten-Unterschiede
– Begrenzter Adressraum
• Reaktionen:
– Einführung des Client-Server-Modells
– Firewalls, dynamische IPs, NAT
• Folgen:
– Nicht jeder Rechner ist mehr (voll) erreichbar, kann nur noch Client sein
– Port 80 wird von P2P-Anwendungen „mißbraucht“
– Asymmetrische Bandbreiten
• All dies sind ernste Probleme für P2P-Anwendungen!!
• Lösungen:
– bessere Firewalls
– IPv6
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
11
Historie: Napster
• seit 1999
• Interesse daran, Daten zu verbreiten, die man nicht selber
produziert hat:
– Authoring vs. Publishing
• hybrid: kein reines P2P
– Skalierte erstaunlich gut
– Effiziente Suche
• Verbot von Napster führte überhaupt erst zu der
Notwendigkeit, reines P2P zu benutzen...
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
12
P2P - Anforderungen
• Skalierbarkeit:
– möglichst wenige Nachrichten pro Anfrage
– begrenztes lokales Wissen
•
•
•
•
Robustheit bei An-/Abmelden
Sicherheit
evtl. Anonymität
evtl. Reputation, d.h. eine gewisse Art von
Qualitätskontrolle
• geringe Latenz
• speziell für IR:
– hoher Recall (bei wenigen Nachrichten und geringer Latenz)
– Globales Ranking
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
13
Klassifikation: Hierarchie (1)
• Hybrid:
–
–
–
–
–
Server mit Index über Peers und ihre Ressourcen
nur Datenaustausch dezentral
Beispiele: Napster, ICQ
Vorteil: Suche sehr effizient, Anmeldung einfach
Nachteile: Ausfallsicherheit, Skalierbarkeit?, Zensur
• Super-Peer:
–
–
–
–
Super-Peer = Server für eine gewisse Anzahl von Peers
Beispiele: KaZaA, Edutella
Vorteile: skalierbarer, Suche leidet kaum
Nachteile: alle Nachteile von hybrid bleiben erhalten nur evtl.
abgeschwächt...
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
14
Klassifikation: Hierarchie (2)
• Reines P2P:
–
–
–
–
Alle gleichberechtigt
Beispiele: Gnutella, Freenet
Vorteile: Ausfallsicherheit, Skalierbarkeit, ... (s.o.)
Nachteile:
• schwierige Suche
• Anmeldung schwierig (initiale Adressen nötig)
• Zerfall des Graphen möglich
• Ab jetzt: nur noch reine P2P-Systeme
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
15
Klassifikation: Strukturierung
• Strukturiert:
–
–
–
–
–
Speicherungsort von Daten vom System festgelegt
Peers für bestimmte Bereiche verantwortlich
Topologie stark strukturiert (und fest): z.B. Ring
Vorteil: Suche schnell und trotzdem dezentral
Nachteile:
• An-/Abmeldung von Peers teuer
• Load balancing
• echtes IR schwierig (s. Vorlesung 5)
• Unstrukturiert: jeder Peer kann beliebige Daten haben
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
16
Klassifikation: Feste vs. variable Topologie
• Fest:
– Nachbarschaft eines Peers ist unveränderlich
– Vorteil: Struktur des Netzes kann festgelegt werden (Garantie für
Zusammenhalt)
– Nachteil: semantische Suche braucht viel Information
• Variabel:
– Peers können Nachbarn selbst auswählen
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
17
Klassifikation von Suchverfahren (1)
• Basis der Suche:
– (Datei-)Schlüssel vs.
– Inhalte (Schlüsselwörter)
• Informiertheit:
– keinerlei Information (blinde Suche)
– Strukturiert: Speicherungsort an bestimmte Peers gebunden
DHTs: Hashfunktion gibt direkt Hinweis auf Suchziel
– Profile von Nachbarn (Auswahl von Inhalten)
– Caching von Anfragen und Peers, die diese beantwortet haben
– Komplette, replizierte Indizes (verteiltes IR)
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
18
Klassifikation von Suchverfahren (2)
• Verbreitung:
– Broadcast
– verminderter Broadcast (Multicast)
– Weiterleitung jeweils nur an einen (den besten) Nachbarn
• Caching und Replikation von Dokumenten erlaubt
– Caching: z.B. nur Meta-Infos von Dateien mit Verweis auf
Speicherungsort merken
– Replikation: physische Verdopplung
• Medienformate: Text oder Multimedia?
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
19
Hybride P2P-Systeme: Napster
• schlüsselbasierte Suche
• Dateien werden über ihren Dateinamen identifiziert
• Wichtige Nachrichtentypen:
– Anmelden von User oder Datei beim Server
– Suchanfrage an den Server + Antwort vom Server
– Download-Request (an einen anderen Peer)
• Server überwacht angemeldete Peers:
– Inhalte
– Bandbreite
– Uptime
=> Diese Daten werden in Antwort auf Anfragen mitgeteilt
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
20
Super-Peer-Systeme: KaZaA
• Proprietäres, verschlüsseltes Protokoll
• Peers melden sich bei Superpeers an
• Superpeers funktionieren jeweils wie kleine NapsterServer
• Peers schicken Anfragen an Super-Peers
– diese sind untereinander nach P2P-Manier vernetzt
– Leiten Suchanfragen untereinander per Flooding weiter
• Datenaustausch direkt zw. Peers (s. hybrid)
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
21
Reines P2P: Gnutella
• Es gibt viele Implementierungen des Gnutella-Protokolls:
–
–
–
–
LimeWire
Gnotella
Mutella
Gnucleus, ...
• Suche:
– Flooding
– begrenzende TTL (typ. 7)
– Eingrenzung auch durch Message-ID (128 bit)
• ID wird temporär gespeichert
• bei Empfang einer Nachricht mit bekannter ID: Stop der
Propagierung
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
22
Gnutella: Nachrichtentypen
Nachricht
Beschreibung
Inhalt
Ping
Kontaktaufnahme
-
Pong
Antwort auf Ping
Query
Anfrage
IP, Port-Nr., Info über
gespeicherte Dateien, Bandbreite
des anderen Peers
Anfrageschlüssel und minimale
Bandbreite des antwortenden
Peers
Beschreibung des Peers (IP, Port,
Bandbreite, Servent ID)
Servent ID, IP, Port, Index der
angeforderten Datei
QueryHit
Antwort auf Anfrage
Get/Push
Download-Anforderung
eines Peers (Push: hinter
Firewall)
- Filetransfer außerhalb des Protokolls über HTTP
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
23
Gnutella: Anmeldung
• Initial introduction:
– Neuer Peer erhält Adresse eines existierenden Peers
– ursprünglich: Mund-zu-Mund-Propaganda
– heute: aus "GWebCache" = Netzwerk von Caches
•
•
•
•
Jeweils als FIFO organisiert
über HTTP anzusteuern
wird von den Peers des Netzes aktualisiert
Caches sind auch untereinander verbunden
– GWebCaches werden von (fast) allen GnutellaImplementierungen benutzt
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
24
Gnutella: Anmeldung (2)
•
•
Join: Implementierungen unterscheiden sich.
Ein generisches Protokoll:
1. Einlesen von Dateien: Liste von Caches, "known
hosts", "permanent hosts"
2. finde minimale Anzahl aufzubauender Verbindungen
(oft 4)
3. Versuche nacheinander:
a) known hosts und permanent hosts (aus vorherigen
Sitzungen)
b) hole Adressen von einem GWebCache und probiere sie
aus
4. Periodisch prüfen, ob Nachbarn noch erreichbar
(Ping/Pong)
5. Falls nicht: gehe zu 3.
6. Periodisch einen GWebCache mit eigenen Daten
füttern
7. Beim Abmelden: Listen wieder auf Platte schreiben
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
25
Gnutella: Anmeldung (3)
• Anmerkungen zum Join-Verfahren:
– Permanent verfügbare Peers werden mit der Zeit als Nachbarn
bevorzugt
– Manche Implementierungen haben Listen von „Ultrapeers“:
• Ultrapeers haben große Bandbreite und Uptime
• werden in Schritt 3 bevorzugt
–
Listen von Caches sind hart in den Code verankert
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
26
Gnutella: Anmeldung (4)
• Gnutella-Peers entdecken während ihrer Uptime weitere
Nachbarn durch einen Gossiping-Prozeß:
– Zweck: Erweiterung der Datei „known hosts“
– Vorgehen:
• Aussenden von Ping-Messages (mit eigener TTL)
• Diese werden auch per Broadcast verteilt
• Antworten (Pong) werden ausgewertet
– Periodisch, irgendwo zw. Schritt 4 und 6
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
27
Messungen (Saroiu et al.)
• Betrachtete Meßgrößen:
– Bandbreitenverteilung
– Mittlere Verweildauer
– Anzahl angebotene Dateien
• Vorgehensweise:
– System mit Crawler durchwandern (Momentaufnahme)
• Gnutella: Ping-Nachrichten mit hoher TTL aussenden, alle Peers
merken, die mit Pong antworten
• Von den Peers angegebene Kennzahlen direkt abspeichern
– Gefundene Peers beobachten:
• Periodisch Verfügbarkeit prüfen
• „Bottleneck link bandwidth“ messen
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
28
Messungen: Bandbreite
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
29
Messungen: Uptime
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
30
Messungen: Sitzungsdauer
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
31
Messungen: Angebotene Dateien
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
32
Messungen: Netzwerkgraph
a) Gesamtgraph
Einführung P2P
b) 30% zufällig entfernt c) 4% Hubs entfernt
Inhaltsbasierte Suche in P2P-Netzen
33
Messungen: Ergebnisse
• Zusammenfassung:
– Bandbreite, Uptime, # angebotene Dateien schwanken um 3-5
Größenordnungen
– Peers verbreiten absichtlich Falschinformation, falls Anreiz
besteht
• Fazit:
– Annahme der Gleichberechtigung aller Peers ist falsch
• unterschiedliche Voraussetzungen (Ressourcen)
• Client/Server-Verhalten
• Beim Design berücksichtigen!
– Umgang mit Falschinformation:
• kein Vertrauen in Anwender
• Oder: Anreiz für Wahrheit
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
34
Literatur
• Historie:
http://www.oreilly.com/catalog/peertopeer/chapter/ch01.html
• Klassifikation von Suchverfahren:
D. Tsoumakos, N. Roussopoulos (2003): „A Comparison of Peer-to-Peer
Search Methods“. In: Proc. Of WebDB 2003, pp. 61-66.
• Nachbarn finden in Gnutella:
P. Karbhari, M. Ammar, A. Dhamdhere, H. Raj, G. Riley, and E. Zegura
(2004): „Bootstrapping in Gnutella: A Measurement Study”, In:
Proceedings of the PAM 2004 workshop.
• Messungen
S. Saroiu, P. K. Gummadi, S. D. Gribble (2002): „A Measurement Study
of Peer-to-Peer File Sharing Systems“. In: Proceedings of Multimedia
Computing and Networking (MMCN) 2002.
Einführung P2P
Inhaltsbasierte Suche in P2P-Netzen
35