1Sep

Cum descoperă inițial un client Bittorrent inițial colegii săi?

click fraud protection

Când clientul dvs. torrent se alătură roiului pentru a partaja și a aduna fragmente de fișiere, cum exact știe unde sunt toți colegii săi? Citește-ne pe măsură ce ne întoarcem în interiorul mecanismelor care fac obiectul protocolului BitTorrent.

Întrebarea de astăzi &Sesiunea de răspuns vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor web Q & A.

Întrebarea

Reader-ul SuperUser Steve V. a avut o întrebare foarte specifică despre sistemul Distributed Hash Table( DHT) în cadrul protocolului BitTorrent:

Am citit deja acest răspuns SuperUser și acest articol Wikipedia, dar ambele sunt prea tehnice pentru mineînfășurați capul în jurul meu.

Înțeleg ideea unui tracker: clienții se conectează la un server central care întreține o listă de colegi într-un roi.

Înțeleg și ideea de schimb de la egal la egal: clienții aflați deja într-un roi trimite o listă completă a colegilor lor reciproc. Dacă sunt descoperiți noi colegi, aceștia sunt adăugați în listă.

instagram viewer

Întrebarea mea este cum funcționează DHT?Asta este, cum poate un nou client să se alăture unui roi fără nici un tracker sau cunoașterea a cel puțin un membru al roiului pentru a face schimb de la egal la egal?

( Notă: explicațiile simple sunt cele mai bune.)

Întrebarea lui la rândul său a determinat un răspuns foarte detaliat cu privire la diferitele funcții ale sistemului BitTorrent;Hai să ne uităm acum la asta.

Răspunsul

Contribuitor SuperUser Allquixotic oferă o explicație în profunzime:

Cum poate un nou client să se alăture unui roi fără nici un tracker sau cunoașterea a cel puțin unui membru al roiului pentru a schimba colegii?

Nu poți. Este imposibil *

* ( Cu excepția cazului în care un nod pe rețeaua locală se întâmplă să fie deja un nod în DHT.În acest caz, ați putea folosi un mecanism de radiodifuziune, cum ar fi Avahi, pentru a "descoperi", și bootstrap de la ei. Dar cum a făcut ei bootstrap ei înșiși? În cele din urmă, veți lovi o situație în cazul în care aveți nevoie pentru a vă conecta la Internet public.Și Internetul public este unicast-numai, nu multicast,cu utilizarea listelor predefinite de colegi.)

Referințe

Bittorrent DHT este implementat printr-un protocol cunoscut ca Kademlia, care este un caz special de concept teoretic al unei tabele distribuite hash. Expunerea

Cu protocolul Kademlia, când vă alăturați rețelei, treceți printr-o procedură de bootstrapping, care necesită absolut să știi în prealabil , adresa IP și portul cel puțin unui nod care deja participă la rețeaua DHT.Dispozitivul de urmărire la care vă conectați, de exemplu, poate fi el însuși un nod DHT.După ce vă conectați la un nod DHT, continuați să descărcați informații de la DHT, care vă oferă informații de conectivitate pentru mai multe noduri și apoi navigați structura "graf" pentru a obține conexiuni la mai multe noduri și care pot oferi atâtconectivitate la alte noduri și date privind sarcina utilă( bucăți de descărcare).

Cred că întrebarea dvs. reală cu caractere aldine - despre cum să vă alăturați unei rețele Kademlia DHT fără a cunoaște pe orice alți membri ai - se bazează pe o presupunere falsă.

Răspunsul simplu la întrebarea dvs. cu caractere aldine este, nu aveți .Dacă nu cunoașteți nicio informație despre nici măcar o gazdă care ar putea conține metadate DHT, sunteți blocat - nici nu puteți începe. Vreau să spun, sigur, ați putea încerca o forță brutativă de a descoperi o IP pe internetul public, cu un port deschis care se întâmplă să difuzeze informații DHT.Dar, mai probabil, clientul dvs. BT este codificat greu pentru o anumită IP statică sau DNS specifică care rezolvă un nod DHT stabil, care oferă doar metadatele DHT.

În principiu, DHT este doar la fel de descentralizat ca mecanismul de îmbinare și pentru că mecanismul de îmbinare este destul de fragil( nu există nici o modalitate de a "difuza" pe întregul Internet!), Deci trebuie să unicast la o gazdă individualăobțineți datele DHT), Kademlia DHT nu este descentralizată cu adevărat .Nu în sensul cel mai strict al cuvântului.

Imaginați-vă acest scenariu: Cineva care vrea să se oprească P2P se stinge și pregătește un atac asupra toate utilizate în mod uzual noduri stabile DHT care sunt utilizate pentru bootstrapping. După ce și-au pus în scenă atacul, ei izvorăsc pe toate nodurile toate odată. Wham ;fiecare nod de DHT de bootstrapping este în jos într-o singură lovitură.Acum ce? Sunteți blocat( ă) de conectarea la tracker-ele centralizate pentru a descărca listele tradiționale de colegi de la aceștia. Ei bine, dacă atacă și ele trackerele, atunci tu chiar ești, cu adevărat un pârâu. Cu alte cuvinte, Kademlia și întreaga rețea BT sunt constrânse de limitările Internetului în sine, prin faptul că există un număr finit( și relativ mic) de computere pe care ar trebui să-l ataci sau să-l iei off-line pentru a preveni> 90% dintre utilizatori se conectează la rețea.

Odată ce nodurile de bootstrapping "pseudo-centralizate" au dispărut, nodurile interioare ale DHT, care nu sunt bootstrapping deoarece nimeni pe partea exterioară a DHT nu știe despre nodurile de interior , sunt inutile;ele nu pot aduce noduri noi în DHT.Deci, deoarece fiecare nod interior se deconectează de DHT-ul de-a lungul timpului, fie din cauza închiderii calculatoarelor, a repornirii pentru actualizări etc., rețeaua s-ar prăbuși.

Desigur, pentru a face acest lucru, cineva ar putea implementa un client patch BitTorrent cu o nouă listă de noduri prestabilite DHT stabilizate sau adrese DNS și va promova cu voce tare comunității P2P să folosească această listă nouă.Dar acest lucru ar deveni o situație de "whack-a-mole", în care agresorul( node-eater) va descărca progresiv aceste liste și va viza noile noduri curajoase de bootstrapping, apoi le va lua și offline.

Nu numai că am învățat răspunsul la întrebarea inițială, dar am învățat destul de puțin despre natura sistemului BitTorrent și despre vulnerabilitățile acestuia.

Trebuie să adăugați ceva la explicație? Sunați în comentariile. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.