Tribler: A social-based Peer-to-Peer System

From
Jump to navigation Jump to search

Einführung

Bei den klassischen P2P-Filesharing-Systemen geht es meist nur um den technischen Aspekt und User werden als anonyme, unabhängige Einheiten wahrgenommen. Sie lassen völlig ausser Acht das sämtliche Nutzer auch in einem complexen sozialen Kontext integriert sind. Würde man die Informationen die ein dieses soziale Netzwerk bietet zu Hilfe nehmen, liessen sich viele wichtige Eigenschaften wie zB. die Performance steigern lassen.

Die Autoren des zugrunde liegenden Papers haben nun genau dies getan und eine Software - Tribler - entwickelt, die die Vorzüge des BitTorrent-Protokolls mit den Eigenschaften eines sozialen Netzes kombiniert.

Tribler logo.png

www.tribler.org

Die 5 grossen Herausforderungen

Heutige Systeme werden von über 1 Million User genutzt, so dass Performance und Verhaltensweisen die so ein System zu Tage bringt nur unter speziellen Voraussetzugen wirklich getetstet werden kann. Die Autoren von Tribler hatten jedoch selbst eine mehrjährige Studie seit 2003 in der Sie BitTorrent sehr genau untersucht haben. Basierend darauf formulieren Sie nun 5 grosse Herausforderungen für die Forschung und wie gerade der sozialbasierende Ansatz hilft, diese zu lösen.

Dezentralisierung
Die schwierigste Herausforderung ist die dezentalisierung der Funktionalität eines P2P-Netzwerks über die einzelnen Peers. Volle D. hiesse wir bräuchten keine zentralen Elemente mehr, die ja auch von jmd aufgesetzt und verwaltet werden müssten und zudem auch zu einem Sicherheitsrisiko werden könnten.
Soziale Gruppen hingegen bilden eine natürliche Art der Dezentralisation, da Kommunikation meist nur unter Gruppenmitgliedern stattfindet.
Verfügbarkeit
Die zweite Herausforderung ist die Verfügbarkeit des Systems als Ganzes, d.h. Daten sollten immer verfügbar sein.
Im sozialen Zusammenhang könnten Anreize wie Belohnungen oder Anerkennung dazu führen das die Software länger an bleibt, was zu einer vergrösserten Verfügbarkeit des gesamten Systems beiträgt.
Integrität & Vertrauen
Die dritte Herausforderung is die Integrität des Systems und das Vertrauen unter den Peers zu wahren. Per Definition benutzten P2P-Systeme freiwillig gespendete bzw. bereitgestellte Daten - nur leider kann man dem Spender nicht immer trauen.
Bei einen sozialen Netzwerk hingegen helfen die Nutzer selbst dabei schlechte Daten auszusortieren und vertrauenswürdige Peers zu identifizieren.
Anreize schaffen
P2P-Systeme hängen sehr stark davon ab wieviel die Nutzer bereit sind zu teilen bzw. überhaupt Daten bereitzustellen. Richtigen Anreize sind daher lebenswichtig um Kooperation und Performance im Netz zu erhöhen.
Auch hier hilft wieder der schon erwähnte soziale Anreiz.
Netzwerk Tranzparenz
Dank dynamicIPs, NAT-Boxen und Firewalls hat sich die Benutzung des Internets verändert. Ein peer hat nichtmehr die Freiheit irgendetwas an irgendwem zu schicken, ohne das ein anderer Peer als Vermittler dazwischen steht.
Dank Social Networks können wir nun aber vertrauenswürdige Peers auswählen die für uns den Mittler spielen.

Architektur

Architecture.jpg

  • Soziale Gruppen
Das Hauptphänomen das in Tribler ausgenutzt wird ist „Verwandschaft fördert Kooperation“.
Um dies zu erreichen wird der Software die Fähigkeit gegeben Freunde und Feinde unterscheiden zu können. Das ganze basiert im Prinzip darauf, daß man die Peers deanonymisiert und ihnen die Möglichkeit bietet Gruppen zu bilden.
  • Megacaches
Um die zukünftige Performance zu steigern werden folgende Kontextinformationen gespeichert: Beziehungen, Altruismuslevel, Verfügbarkeit von Peers, ähnliche Preferenzen usw.. Bei Tribler ist jede Kontextinfo local in Megacaches gespeichert und wird dann innerhalb der Gruppe mit Hilfe von epidemischen Protokollen ausgetauscht.
  • "Taste buddy"-basiertes Inhalte finden
Inhalte zu finden ist essentiell für ein P2P-Stem. Tribler vernetzt dazu Gruppen und Peers mit ähnlichem Geschmack.
Mit "Files I Like" legt man eigene Präferenzen fest, welche durch den "Buddycast" verbreitet werden. Der "Peer Similarity Evaluator" schaut dann wer ähnlichen Geschmack hat. Schlussendlich macht mir die "Recommendation Engine" Vorschläge über potentiell interessante Files.
  • Downloading
Dem ganzen liegt das BitTorrent-Protocol zu Grunde und wird durch das "Cooperative Download"-Modul in seiner Performance gestärkt.
  • Nutzeroberfläche
Das Interface ist ein wichtiges Bestandteil um ein Sozio-Netzwerk überhaupt funktionabel zu machen. Neben den bereits angesprochenen Elementen ist das "MyFriends"-Modul sehr wichtig, um Überblick über Freunde, FreundesFreunde und TasteBuddies zu behalten. Weiterhin gibt es noch eine Map mit deren man den Standort anderer Peers evaluieren kann.
  • Bootstrapping
Anstelle der permanenten Trackerverbindung steht ein einmaliges Superpeer verbinden. Hinzu kommt ein Overlay Swarm für eine grundlegende Einbindung ins Netzwerk.


Social Networking

Die Idee des Social Networking ist es, bestehende soziale Gruppen bzw. Kontakte in das Peer-to-Peer-System zu übertragen und somit vertrauenbasierte soziale Gruppen zu etablieren. Um dies zu bewerkstelligen, ist es nötig permanente IDs einzuführen und so das Problem der session boundary, also den Verlust sämtlicher Kontext-Informationen eines Peers nach dessen Disconnect, zu umgehen.

Sicherheit und Effizienz

Daraus ergeben sich unmittelbar zwei neue Probleme. Zum einen müssen die IDs sicher sein und zum anderen müssen diese Informationen irgendwie verbreitet werden ohne auf zentrale Dienste zugreifen zu können.

Der Sicherheitsaspekt wird mittels zweier Mechanismen erreicht. Das erste dieser Verfahren ist die Einführung von elliptisch verschlüsselten public keys, die einen Peer eindeutig identifizieren. Der zweite Mechanismus ist ein challenge-response-Verfahren, was dazu dient das spoofing von public keys, d.h. das Vortäuschen einer anderen Identität unter Verwendung eines fremden public key, zu verhindern.

Um das Problem der Verteilung der Kontextinformationen ohne dabei das Netzwerk übermäßig zu belasten zu lösen, verwendet man eine Technologie, die in der Datenbanktechnik seit längerem bekannt ist, die sogenannten Bloom-Filter. Diese sind Hash-Tabellen-ähnliche Datenstrukturen, die es mittels Hashfunktionen ermöglichen, die zu sendenden Daten auf ein Minimum zu reduzieren.

Referenzen