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