Nutzergemeinschaften der Rechnernetz-Anwendungsschicht bilden Peer-to-Peer-Netze, um eigene Ressourcen anwendungsbezogen gemeinschaftlich zu nutzen, und dabei mit wenig oder ganz ohne zentralisierte Dienstfunktionalitäten auszukommen.
P2P-Organisationsprinzip
Peer-to-Peer (P2P) bezeichnet im Englischen die Beziehung zwischen ebenbürtigen, symmetrisch ausgestatteten, gleichgestellten Personen oder Instanzen. Statt der asymmetrischen, zentralistischen Arbeitsteilung der beteiligten Instanzen bei der Client-Server-Rollenarchitektur übernehmen in Peer-to-Peer-Netzen die teilnehmenden Nutzerprozesse auch Server-Aufgaben.
Dezentral organisiertes, nach einheitlichem Protokoll in direkter Kommunikation unter den virtuellen P2P-Nachbarn koordiniertes Zusammenwirken der Peers bringt die Dienstfunktionalität mehr oder weniger komplett selbsttätig hervor. Reine Server erfüllen dabei nur Teilaufgaben oder fehlen ganz.
Die P2P-Nachbarschaft wird als Overlay-Netz in einem zugrunde liegenden Trägernetz implementiert. Mithilfe der Transportdienste und Adressen des Trägernetzes, meist UDP- und/oder TCP-Tranport im Internet, versenden die Peers Koordinations-Nachrichten und leiten sie untereinander nach anwendungsspezifischen Weiterleitungsmechanismen weiter.
P2P-Filesharing
Bei Napster, dem historisch ersten prominenten P2P-Filesharing-Protokoll, geht die Suchanfrage, bei welchem Peer eine gewünschte Datei erhältlich ist, noch an einen zentralen Server. Um auch diese Teilaufgabe auf die Peers zu verteilen, gibt Gnutella der Anfrage einen Identifikationsschlüssel mit. Jeder Peer kennt einige andere, an die er eigene sowie neue, von Peers erhaltene Anfragen weiterleitet. Es sei denn, er ist selbst der gesuchte Dateiinhaber. Dann wird seine Antwortnachricht mithilfe des Identifikationsschlüssels auf dem umgekehrten Pfad zum Anfragesteller zurückgereicht.
Strukturierte, auf verteilte suchaufgabenrelevante Datenstukturen aufbauende Nachbarschaften ergeben besser skalierende, aufwandseffiziente P2P-Netze. Gezieltes statt flutendes Weiterleiten führt dabei sukzessive zu dem Peer, der Auskunft über die Adresse des Dateiinhaber-Peers gibt. Das CHORD-Protokoll z.B. verwendet hierzu verteilte Hash-Tabellen und Finger-Indizes. Weitere bekannte Filesharing-Protokolle dieser zweiten P2P-Generation sind u.a. Pastry, Kademlia und Distance Halving.
Weitere Anwendungsfelder
P2P-Netztechniken finden zunehmende Anwendung zur gemeinschaftlichen Nutzung weiterer Inhalts-, Speicher- oder Verarbeitungs-Ressourcen, u.a. von Rechenkapazitäten im Grid-Computing, inzwischen auch in ganz anderen Inhaltsbereichen wie etwa Zahlungsmitteln in elektronischen Währungsgemeinschaften, z.B. bei Bitcoin.
Zu den neueren P2P-Anwendungen, die inzwischen einen erheblichen Teil des Internet-Verkehrsaufkommens ausmachen, gehört BitTorrent. Es dezentralisiert den Upload-Aufwand je einer umfangreichen, von vielen Peers nachgefragten, zunächst nur bei einem einzigen Inhaber-Peer erhältlichen Datei. Sie ist in mehrere, einzeln zufallsgewählt herunterzuladende Segmente unterteilt. Zwischen den erfolgenden Einzelsegment-Downloads stellen sich die Peers als zusätzliche temporäre Segmentinhaber-Peers der bei ihnen schon vorhandenen Segmente zur Verfügung. Der Upload geht für alle Beteiligten viel schneller, weil es nun mehr als nur eine einzige Inhalts-Quelle gibt.
Über den raschen Entwicklungsfortschritt im P2P-Bereich informieren Foren und Konferenzen, etwa die jährliche 3PGCIC (Conference on P2P, Parallel, Grid, Cloud and Internet Computing, http://www.lsi.upc.edu/~net4all/3PGCIC-2012/index.html)
Literatur
Khan, J.I. ; Wierzbicki, A. (eds): Foundations of Peer-to-Peer Computing, Elsevier Journal of Computer Communication 31(2), 2008
Oram, A. (ed.) ; Peer-to-Peer, Harnessing the Benefits of a Disruptive Technology, OReilly Inc, 2001
Peterson, L.L. ; Davie, B.S.: Computernetze, 4.Auflage, dpunkt-Verlag 2008, S.714ff