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