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- / http- Zugang 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 Beispiele: Gnutella, Freenet 10
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 Super- Peer-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: Keyword- Index) Hohe Netzlast bei Knoten, die Index beliebter Dateien verwalten 26
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 Peer- Adressierung.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 WLAN- Bü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/edutella- Ausarbeitung.pdf 31