1Sep

Ako sa klientovi Bittorrent spočiatku objavujú jeho rovesníci?

Keď váš torrent klient pripojí k rojovi a zdieľa a zhromažďuje súbory, ako presne vie, kde sú všetci jeho rovesníci?Čítajte ďalej, keď narazíme do mechanizmov, ktoré podliehajú protokolu BitTorrent.

dnešná otázka &Odpoveď na zasadnutie nám príde s láskavým dovolením SuperUser - subdivíziu Stack Exchange, komunitne riadeného zoskupenia webových stránok Q & A.

Otázka

Čítačka SuperUser Steve V. mala veľmi konkrétnu otázku o systéme Distributed Hash Table( DHT) v rámci protokolu BitTorrent:

Už som si prečítal túto odpoveď SuperUser a tento článok z Wikipédie, ale obaja sú príliš technicky pre mňa skutočneobal mi hlavu okolo.

Chápem myšlienku sledovača: klienti sa pripájajú k centrálnemu serveru, ktorý udržuje zoznam rovesníkov v roji.

Chápem tiež myšlienku vzájomnej výmeny: klienti, ktorí už v roji posielajú kompletný zoznam svojich partnerov navzájom. Ak sa objavia noví rovesníci, pridajú sa do zoznamu.

Moja otázka je, ako funguje DHT?To znamená, že , ako sa môže nový klient pripojiť k roju bez sledovania alebo znalosti aspoň jedného člena roja na výmenu rovesníkov?

( Poznámka: jednoduché vysvetlenie je najlepšie.)

Jeho otázka následne vyvolala naozaj podrobnú odpoveď o rôznych funkciách systému BitTorrent;Pozrime sa na to teraz.

Odpoveď

SuperUser prispievateľ Allquixotic ponúka hĺbkové vysvetlenie:

Ako sa môže nový klient pripojiť k rohu bez sledovania alebo znalosti aspoň jedného člena roja na výmenu rovesníkov?

Nemôžete. Je to nemožné *

* ( Pokiaľ nie je na vašej miestnej sieti uzol už uzol v DHT, v takom prípade by ste mohli použiť vysielací mechanizmus, ako napríklad Avahi, aby "objavil" toto peer, a bootstrap od nich. Ale ako sa oni bootstrap sami? Nakoniec, narazíte na situáciu, kedy sa musíte pripojiť k verejnému internetu. A verejný internet je unicast, ale nie multicast, takže ste prilepenés použitím vopred určených zoznamov rovesníkov.)

Referencie

Bittorrent DHT sa implementuje protokolom známym pod názvom Kademlia, čo je špeciálny prípad teoretickej koncepcie tabuľky Distributed hash.

Expozícia

S protokolom Kademlia, keď sa pripojíte do siete, prejdete postupom bootstrapingu, ktorý absolútne vyžaduje, aby ste predtým poznali , adresu IP a port aspoň jedného uzla, ktorý sa už zúčastňuje siete DHT.Tracker, ku ktorému sa pripojíte, môže byť samo o sebe ako uzol DHT.Po pripojení k jednému uzlu DHT potom pokračujete v preberaní informácií z DHT, ktoré vám poskytujú informácie o pripojení pre viac uzlov a následne budete prechádzať štruktúrou "grafu", aby ste získali pripojenia k viac a viac uzlov, ktorí môžu poskytnúťspojenie s inými uzlami a údaje o užitočnom zaťažení( bloky sťahovania).

Myslím si, že vaša skutočná otázka v tučnom texte - o tom, ako sa pripojiť k sieti Kademlia DHT bez toho, aby ste poznali všetkých ostatných členov - je založená na falošnom predpoklade.

Jednoduchá odpoveď na vašu otázku je tučná, nemáte .Ak nepoznáte žiadnu informáciu o žiadnom hostiteľovi, ktorý by mohol obsahovať metadáta DHT, ste neviete - nemôžete dokonca ani začať.Myslím, že by ste sa mohli pokúsiť o hrubou silou objaviť IP na verejnom internete s otvoreným portom, ktorý vysiela informácie DHT.Ale je pravdepodobnejšie, že váš klient BT je pevne zakódovaný na určitú špecifickú statickú IP alebo DNS, ktorá rieši stabilný uzol DHT, ktorý práve poskytuje metadáta DHT.

V zásade je DHT len decentralizovaný ako spojovací mechanizmus a pretože spojovací mechanizmus je pomerne krehký( nie je žiadny spôsob, ako "vysielať" po celom internete!), Takže musíte unicast pridať k individuálne priradenému hostiteľovizískať údaje DHT), Kademlia DHT nie je skutočne decentralizovaná .Nie v najprísnejšom zmysle slova.

Predstavte si tento scenár: Niekto, kto chce P2P zastaviť, zhasne a pripravuje útok na všetky bežne používajú stabilné uzly DHT, ktoré sa používajú na bootstrapping. Akonáhle oni predstaví ich útok, oni jar na všetky uzly naraz. Wham ;každý jeden bootstrapovací uzol DHT je všetko v jednom poklese. Teraz čo? Ste prilepené k pripojeniu k centralizovaným trackerom na stiahnutie tradičných zoznamov rovesníkov z nich. No, ak napadnú aj stopy, potom ste naozaj, naozaj do potoka. Inými slovami, Kademlia a celá sieť BT sú obmedzené obmedzeniami samotného internetu, pretože existuje obmedzený( a relatívne malý) počet počítačov, ktoré by ste mali úspešne napadnúť alebo prevziať offline, aby ste zabránili> 90% používateľov sa pripojilo k sieti.

Akonáhle sú "pseudo-centralizované" bootstrapping uzly preč, vnútorné uzly DHT, ktoré nie sú bootstrapping, pretože nikto na vonkajšej strane DHT vie o vnútorných uzlov , sú zbytočné;nemôžu priniesť nové uzly do DHT.Takže, ak sa každý vnútorný uzol odpojí od DHT v priebehu času, buď kvôli tomu, že ľudia vypínajú počítače, reštartujú aktualizácie atď., Sieť by sa zrútila.

Samozrejme, aby sa to mohlo stať, niekto by mohol nasadiť patchovaný BitTorrent klient s novým zoznamom vopred určených stabilných uzlov DHT alebo DNS adries a nahlas propagovať do komunity P2P, aby namiesto toho použil tento nový zoznam. Ale toto by sa stalo "whack-a-mole" situácia, kde agresor( node-jedlík) by postupne sťahovať tieto zoznamy sami, a zameriavať na odvážne nové bootstrapping uzly, potom sa aj offline.

Nielenže sme sa naučili odpoveď na pôvodnú otázku, ale tiež sme sa trochu naučili o povahe systému BitTorrent a jeho zraniteľnostiach.

Máte niečo doplniť vysvetlenie? Zvuk vypnúť v komentároch. Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu.