P2P (Peer-to-Peer) Software / Netzwerke
P2P Peer-to-Peer
Peer-to-Peer (P2P) oder auch Rechner-Rechner-Verbindung sind synonyme Bezeichnungen für eine Kommunikation unter Gleichen, hier bezogen auf ein Rechnernetz. Dabei kann es sich um zwei oder auch sehr viele Rechner handeln. In einem reinen P2P-Netz sind alle Teilnehmer gleichberechtigt und können sowohl Informationen abrufen als auch beisteuern. Auf einen zentralen Server wird dabei verzichtet, vielmehr werden die Informationen dezentral über das Netzwerk verteilt gespeichert. In modernen P2P-Netzwerken werden die Netzwerkteilnehmer jedoch häufig abhängig von ihrer Qualifikation in verschiedene Gruppen eingeteilt, um so spezifische Aufgaben übernehmen zu können. Kernkomponente aller modernen P2P-Architekturen, die meist bereits als Overlay-Netz auf dem Internet realisiert werden, ist daher ein zweites internes Overlay-Netz, welches normalerweise aus den besten Computern des Netzwerks besteht und die Organisation der anderen Computer sowie die Bereitstellung der Such-Funktion übernimmt. Mit der Suchfunktion („lookup“) können Peers im Netzwerk diejenigen Peers identifizieren, die für eine bestimmte Objektkennung (Object-ID) zuständig sind. In diesem Fall ist die Verantwortlichkeit für jedes einzelne Objekt mindestens einem Peer fest zugeteilt, man spricht daher von strukturierten Overlays. Mittels der Such-Operation können die Peers nach Objekten im Netzwerk suchen, die gewisse Kriterien erfüllen (z. B. Datei- oder Buddynamen-Übereinstimmung). In diesem Fall gibt es für die Objekte im P2P-System keine Zuordnungsstruktur, man spricht also von unstrukturierten Overlays.
Sobald die Peers, die die gesuchten Objekte halten, in dem P2P-System identifiziert wurden, wird die Datei (in Dateitauschbörsen) direkt, d. h. von Peer zu Peer, übertragen. Es existieren unterschiedliche Verteilungsstrategien, welche Teile der Datei von welchem Peer heruntergeladen werden soll, z. B. BitTorrent.
Beispiele von P2P Software und Netzwerke:
- Filesharing (Bittorent, eMule)
- Instant Messaging (VoIP-Dienste z.B. Skype)
- Collaboration / Groupware (Adobe Connect)
- Distributed Computing (Verbund von Rechnern für Rechenoperationen)
- Bitcoin
P2P vs. Client-Server
Im Gegensatz zum Peer-to-Peer-Konzept steht das Client-Server-System. Hier werden Aufgaben im Netzwerk von einem Client (Dienstnutzer) angefordert und ein Server (Dienstleister) in Form eines Services, verrichtet diese. Der Server bietet somit dem Client seinen Service an und die Rollen sind verteilt. In Peer-to-Peer-Netzen ist diese Rollenverteilung aufgehoben. Jeder Teilnehmer ist ein peer, denn er kann einen Dienst gleichermaßen nutzen und selbst anbieten.
Standardisierung und Zukunft
Die Zukunft der Peer-to-Peer-Technik wird vor allem davon abhängen, ob es gelingt, einen Standard zu definieren – eine Art Plattform, die es ermöglicht, weitere Anwendungen aufzusetzen.
JXTA ist ein solcher Standard, der stark von Sun Microsystems unterstützt wurde und Open Source ist. Sun stellte die zurzeit umfangreichste und stabilste Referenzimplementierung her.
Gnutella ist ein weiterer offener Standard, der umfangreich getestet ist, jedoch bisher fast ausschließlich für Dateiverteilung und dezentrales Suchen von Dateien genutzt wird.
Außerdem ist es denkbar, dass die Netzwerkübertragungsleistung ähnlich der Rechenleistung bei den PCs steigen wird, sodass die Möglichkeit besteht, dass ein Peer noch den „übernächsten“ Peer kennen kann und dass die Sichtweite eines Peer über Datenbestände und andere Peers weiter anwachsen kann.