Zusammenfassung
Wie kann ein neuer Kunde einem Schwarm beitreten, ohne dass er einen Tracker oder das Wissen mindestens eines Mitglieds des Schwarms besitzt, mit dem er Peers austauschen kann?
Das kannst du nicht. Es ist unmöglich.*
* (Es sei denn, ein Knoten auf Ihrer lokales Netzwerk ist zufällig schon ein Knoten im DHT. In diesem Fall könnten Sie einen Broadcast-Mechanismus wie Avahi verwenden, um diesen Peer zu "entdecken" und von ihm zu booten. Aber wie war das? Sie Bootstrap selbst? Schließlich werden Sie in eine Situation geraten, in der Sie eine Verbindung zum öffentlichen Internet herstellen müssen. Und das öffentliche Internet ist nur für Unicast gedacht, nicht für Multicast.
Verweise
Bittorrent DHT wird über ein Protokoll implementiert, das als Kademlia Dies ist ein Spezialfall des theoretischen Konzepts von a Verteilte Hashtabelle .
Exposition
Wenn Sie sich mit dem Kademlia-Protokoll dem Netzwerk anschließen, durchlaufen Sie a Bootstrapping Verfahren, das unbedingt erfordert, dass Sie wissen, im Voraus , die IP-Adresse und den Port von mindestens einem Knoten, der bereits am DHT-Netzwerk teilnimmt. Der Tracker, mit dem Sie sich beispielsweise verbinden, kann selbst ein DHT-Knoten sein. Sobald Sie mit einem DHT-Knoten verbunden sind, laden Sie Informationen vom DHT herunter, die Ihnen Konnektivitätsinformationen für mehr Knoten bereitstellen. Navigieren Sie dann zu dieser "Diagramm" -Struktur, um Verbindungen zu immer mehr Knoten zu erhalten, die beide bereitstellen können Konnektivität zu anderen Knoten und Nutzdaten (Teile des Downloads).
Ich denke, Ihre eigentliche Frage ist fett gedruckt: Wie kann man einem Kademlia DHT-Netzwerk beitreten, ohne es zu wissen? irgendein andere Mitglieder - basiert auf einer falschen Annahme.
Die einfache Antwort auf Ihre Frage in Fettdruck lautet: du nicht . Wenn Sie überhaupt keine Informationen über einen Host kennen, der DHT-Metadaten enthalten könnte, stecken Sie fest - Sie können nicht einmal loslegen. Ich meine, klar, Sie könnten brutal versuchen, eine IP im öffentlichen Internet mit einem offenen Port zu entdecken, der DHT-Informationen sendet. Wahrscheinlicher ist Ihr BT-Client jedoch auf eine bestimmte statische IP- oder DNS-Adresse festgelegt, die in einen stabilen DHT-Knoten aufgelöst wird, der nur die DHT-Metadaten bereitstellt.
Grundsätzlich ist die DHT nur so dezentral wie der Verbindungsmechanismus, und weil der Verbindungsmechanismus ziemlich spröde ist (es gibt keine Möglichkeit, über das gesamte Internet zu "senden"! Sie müssen also Unicast Kademlia DHT ist es nicht Ja wirklich dezentral. Nicht im engsten Sinne des Wortes.
Stellen Sie sich dieses Szenario vor: Jemand, der möchte, dass P2P gestoppt wird, geht aus und bereitet einen Angriff auf vor alles Häufig verwendete stabile DHT-Knoten, die für das Bootstrapping verwendet werden. Sobald sie ihren Angriff inszeniert haben, springen sie auf alles Knoten auf einmal. Wham ; Jeder einzelne Bootstrapping-DHT-Knoten ist auf einen Schlag ausgefallen. Was jetzt? Sie haben keine Verbindung mehr zu zentralisierte Tracker Hier können Sie traditionelle Listen von Kollegen herunterladen. Nun, wenn sie auch die Tracker angreifen, dann sind Sie wirklich Ja wirklich einen Bach hinauf. Mit anderen Worten, Kademlia und das gesamte BT-Netzwerk sind durch die Beschränkungen des Internets selbst eingeschränkt, da es eine begrenzte (und relativ kleine) Anzahl von Computern gibt, die Sie erfolgreich angreifen oder offline schalten müssten, um & gt; 90 zu verhindern % der Benutzer können keine Verbindung zum Netzwerk herstellen.
Sobald die "pseudozentralisierten" Bootstrapping-Knoten alle verschwunden sind, werden die inneren Knoten des DHT, die nicht mehr booten, da Niemand außerhalb des DHT kennt die inneren Knoten , sind nutzlos; Sie können keine neuen Knoten in die DHT bringen. Wenn sich also jeder interne Knoten im Laufe der Zeit vom DHT abmeldet, entweder weil Leute ihren Computer herunterfahren, wegen Updates neu starten usw., würde das Netzwerk zusammenbrechen.
Um dies zu umgehen, könnte jemand einen gepatchten BitTorrent-Client mit einer neuen Liste festgelegter stabiler DHT-Knoten oder DNS-Adressen bereitstellen und der P2P-Community lautstark die Verwendung dieser neuen Liste ankündigen. Dies würde jedoch zu einer "Whats-a-Mole" -Situation werden, in der der Angreifer (der Node-eater) diese Listen schrittweise selbst herunterladen und die tapferen neuen Bootstrapping-Knoten anvisieren und dann auch offline schalten würde.