1Sep

Wie entdeckt ein Bittorrent-Client seine Peers?

click fraud protection

Wenn Ihr Torrent-Client dem Schwarm beitritt, um Dateien zu teilen und zu sammeln, wie genau weiß er dann, wo all seine Peers sind? Lesen Sie weiter, während wir uns in den Mechanismen bewegen, die das BitTorrent-Protokoll unterstützen.

Heutige Frage &Die Antwortsitzung kommt dank SuperUser, einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites, zu uns.

Die Frage

SuperUser Leser Steve V. hatte eine sehr spezifische Frage über das Distributed Hash Table( DHT) -System innerhalb des BitTorrent-Protokolls:

Ich habe diese SuperUser-Antwort und diesen Wikipedia-Artikel bereits gelesen, aber beide sind zu technisch für michwickle meinen Kopf herum.

Ich verstehe die Idee eines Trackers: Clients verbinden sich mit einem zentralen Server, der eine Liste von Peers in einem Schwarm führt.

Ich verstehe auch die Idee des Peer-Austauschs: Kunden, die sich bereits in einem Schwarm befinden, senden die komplette Liste ihrer Peers untereinander. Wenn neue Peers entdeckt werden, werden sie zur Liste hinzugefügt.

instagram viewer

Meine Frage ist, wie funktioniert DHT?Das heißt, , wie kann ein neuer Klient einem Schwarm beitreten ohne einen Tracker oder das Wissen von mindestens einem Mitglied des Schwarms, mit dem er Peers austauschen kann?

( Anmerkung: einfache Erklärungen sind die besten.)

Seine Frage wiederum führte zu einer sehr detaillierten Antwort über die verschiedenen Funktionen des BitTorrent-Systems;Schauen wir uns das jetzt an.

Die Antwort

SuperUser-Mitwirkender Allquixotic bietet eine ausführliche Erklärung:

Wie kann ein neuer Client einem Schwarm beitreten ohne einen Tracker oder das Wissen von mindestens einem Mitglied des Schwarms, mit dem er Peers austauschen kann?

Sie können nicht. Es ist unmöglich. *

* ( Es sei denn, ein Knoten in Ihrem -LAN ist bereits ein Knoten im DHT. In diesem Fall können Sie einen Broadcasting-Mechanismus wie Avahi verwenden, um diesen Peer zu "entdecken", und wie bootet man von bootst du selbst? Schließlich wirst du eine Situation treffen, in der du dich mit dem öffentlichen Internet verbinden musst. Und das öffentliche Internet ist Unicast-Only, nicht Multicast, also steckst du festunter Verwendung von vorbestimmten Listen von Peers.)

Referenzen

Bittorrent DHT wird über ein Protokoll implementiert, das als Kademlia bekannt ist, was ein Spezialfall des theoretischen Konzepts einer verteilten Hash-Tabelle ist.

Exposition

Mit dem Kademlia-Protokoll, wenn Sie dem Netzwerk beitreten, durchlaufen Sie ein Bootstrapping-Verfahren, das unbedingt voraussetzt, , die IP-Adresse und den Port mindestens eines Knotens, der bereits am DHT-Netzwerk teilnimmt. Der Tracker, mit dem Sie beispielsweise eine Verbindung herstellen, kann selbst ein DHT-Knoten sein. Sobald Sie mit einem DHT-Knoten verbunden sind, fahren Sie fort mit dem Herunterladen von Informationen aus dem DHT, die Ihnen Konnektivitätsinformationen für weitere Knoten bereitstellen. Anschließend navigieren Sie durch diese "Graph" -Struktur, um Verbindungen zu immer mehr Knoten zu erhalten, die beides bereitstellen könnenVerbindung zu anderen Knoten und Nutzdaten( Teile des Downloads).

Ich denke, dass Ihre eigentliche Frage in Fettschrift - die, wie man einem Kademlia DHT Netzwerk beitritt, ohne andere Mitglieder zu kennen - basiert auf einer falschen Annahme.

Die einfache Antwort auf Ihre Frage in Fettschrift ist Sie nicht .Wenn Sie überhaupt KEINE Informationen über einen einzigen Host, der DHT-Metadaten enthalten könnte, kennen, stecken Sie fest - Sie können nicht einmal anfangen. Ich meine, sicher, Sie könnten brutal versuchen, eine IP im öffentlichen Internet mit einem offenen Port zu entdecken, der zufällig DHT-Informationen sendet. Wahrscheinlicher ist jedoch, dass Ihr BT-Client fest auf eine bestimmte statische IP oder DNS programmiert ist, die in einen stabilen DHT-Knoten aufgelöst wird, der nur die DHT-Metadaten bereitstellt.

Grundsätzlich ist der DHT nur so dezentral wie der Verbindungsmechanismus, und weil der Verbindungsmechanismus ziemlich brüchig ist( es gibt keine Möglichkeit, über das gesamte Internet zu "übertragen"), so muss Unicast an einen einzelnen vordefinierten Host angeschlossen werdenHolen Sie sich die DHT-Daten), Kademlia DHT ist nicht wirklich dezentral. Nicht im strengsten Sinne des Wortes.

Stellen Sie sich dieses Szenario vor: Jemand, der P2P stoppen möchte, geht aus und bereitet einen Angriff auf vor, alle häufig verwendeten stabilen DHT-Knoten, die zum Bootstrapping verwendet werden. Sobald sie ihren Angriff inszeniert haben, springen sie auf alle Knoten auf einmal. Wham ;Jeder einzelne Bootstrapping-DHT-Knoten ist auf einen Schlag heruntergefahren. Was jetzt? Sie sind mit der Verbindung zu zentralisierten Trackern stecken, um traditionelle Listen von Peers von diesen herunterzuladen. Nun, wenn sie die Tracker auch angreifen, dann bist du wirklich, wirklich ein Bach. Mit anderen Worten, Kademlia und das gesamte BT-Netzwerk sind durch die Beschränkungen des Internets selbst eingeschränkt, da es eine endliche( und relativ kleine) Anzahl von Computern gibt, die Sie erfolgreich angreifen oder offline schalten müssen, um & gt; 90 zu verhindern% der Benutzer können keine Verbindung zum Netzwerk herstellen.

Sobald die "pseudo-zentralisierten" Bootstrapping-Knoten alle verschwunden sind, sind die inneren Knoten des DHT, die nicht Bootstrapping sind, da niemand auf der Außenseite des DHT von den inneren Knoten weiß, nutzlos;Sie können keine neuen Knoten in das DHT bringen. Wenn sich also jeder interne Knoten im Laufe der Zeit vom DHT trennt, entweder weil die Leute ihre Computer herunterfahren, nach Updates usw. neu starten, würde das Netzwerk zusammenbrechen.

Natürlich könnte jemand einen gepatchten BitTorrent-Client mit einer neuen Liste vordefinierter stabiler DHT-Knoten oder DNS-Adressen bereitstellen und lautstark an die P2P-Community werben, um stattdessen diese neue Liste zu verwenden. Aber das würde zu einer "whack-a-mole" -Situation werden, in der der Aggressor( der Knotenfresser) diese Listen nach und nach selbst herunterladen und die tapferen neuen Bootstrapping-Knoten zielen würde, um sie dann auch offline zu schalten.

Wir haben nicht nur die Antwort auf die ursprüngliche Frage gelernt, sondern auch einiges über die Natur des BitTorrent-Systems und seine Schwachstellen gelernt.

Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.