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 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 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 verteilte Hash-Tabellen und Finger-Indizes. 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. 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 erfolgenden Einzelsegment-Downloads stellen sich die Peers als zusätzliche Segmentinhaber-Peers der bei ihnen schon vorhandenen Segmente zur Verfügung.
Literatur
Khan, J.I. ; Wierzbicki, A. (eds): Foundations of Peer-to-Peer Computing, Elsevier Journal of Computer Communication 31(2), 2008
Peterson, L.L. ; Davie, B.S.: Computernetze, 4.Auflage, dpunkt-Verlag 2008, S.714ff
Steinmetz, R. ; Wehrle, K. (eds): Peer-to-Peer Systems and Applications, Springer LNCS 3485, 2005