If-Koubou

Kā Bittorrent klients sākotnēji atklāj savus vienaudžus?

Kā Bittorrent klients sākotnēji atklāj savus vienaudžus? (Kā)

Kad jūsu Torrent klients pievienojas tam, lai dalītos un apkopotu failu gabalus, kā tieši tā zina, kur ir visi tā vienaudži? Lasiet tālāk, kad mēs iepļaukājamies mehānismos, kas atrodas BitTorrent protokola iekšpusē.

Šodienas jautājumu un atbilžu sesija mums priecājas par SuperUser - Stack Exchange dalību, kas ir kopienas vadīta Q & A tīmekļa vietņu grupa.

Jautājums

SuperUser lasītājs Steve V. bija ļoti specifisks jautājums par Distributed Hash tabulu (DHT) sistēmu BitTorrent protokolā:

Esmu jau izlasījis šo SuperUser atbildi un šo Wikipedia rakstu, bet abi ir pārāk tehniski, lai es tiešām wrap manu galvu apkārt.

Es saprotu ideju par izsekotāju: klienti izveido savienojumu ar centrālo serveri, kas uztur vienaudžu sarakstu.

Es arī saprotu domu par vienādranga apmaiņu: klienti, kuri jau ir pietecuši, izsūta pilnīgu viņu vienaudžu sarakstu viens otram. Ja tiek atklāti jauni vienaudži, tie tiek pievienoti sarakstam.

Mans jautājums ir, kā DHT darbojas? Tas ir,kā jaunais klients var pievienoties zobenim bez izsekotāja vai vismaz viena zaru locekļa zināšanas, lai apmainītos ar vienaudžiem?

(Piezīme: vislabāk ir vienkārši paskaidrojumi.)

Savukārt viņa jautājums izraisīja patiesi detalizētu atbildi par BitTorrent sistēmas dažādajām funkcijām; apskatīsim to tagad.

Atbilde

SuperUser ieguldītājs Allquixotic piedāvā padziļinātu skaidrojumu:

Kā jaunais klients var pievienoties zaram bez izsekotāja vai vismaz viena zaru locekļa zināšanas, lai apmainītos ar vienaudžiem?

Jūs nevarat. Tas ir neiespējami.*

* (Ja vien mezglā jūsuvietējais tīkls notiek jau DHT mezglā. Šajā gadījumā jūs varētu izmantot apraides mehānismu, piemēram, Avahi, "atklāt" šo vienādranga un palaist no tiem. Bet kā tas notikaviņi startēt sevi? Galu galā jūs saskaraties ar situāciju, kad jums ir nepieciešams izveidot savienojumu ar publisko internetu. Un publiski pieejamais internets ir vienkvalitatīvs, nevis multikasts, tādēļ jūs izmantojat iepriekš noteiktus vienaudžu sarakstus.)

Atsauces

BitTorrent DHT tiek ieviests ar protokolu, kas pazīstams kā Kademlia, kas ir īpašs izplatīšanas hex tabulas teorētiskās koncepcijas gadījums.

Izstāde

Izmantojot Kademlia protokolu, kad pievienojat tīklam, jūs izmantojat startēšanas procedūru, kas pilnīgi prasa, lai jūs zināt,iepriekš, IP adresi un ostu, kurā ir vismaz viens mezgls, kas jau piedalās DHT tīklā. Piemēram, tracker, ar kuru izveidojat savienojumu, pats var būt DHT mezgls. Kad esat izveidojis savienojumu ar vienu DHT mezglu, pēc tam veicat DHT informācijas lejupielādi, kas nodrošina jums savienojamības informāciju vairākām mezglām, un pēc tam pārvietojieties šajā "diagrammas" struktūrā, lai iegūtu savienojumus ar vairāk un vairāk mezgliem, kuri var nodrošināt abus savienojamība ar citiem mezgliem un dati par kravnesību (lejupielādes gabali).

Es domāju, ka jūsu faktiskais jautājums ir treknrakstā - tas, kā pievienoties Kademlia DHT tīklam, nezinotjebkuraciti locekļi - balstās uz nepareizu pieņēmumu.

Vienkārša atbilde uz jūsu jautājumu treknrakstā ir,jums nav. Ja jūs nezināt par jebkuru informāciju par pat vienu saimniekdatoru, kas varētu saturēt DHT metadatus, jums ir iestrēdzis - jūs pat nevarat sākt darbu. Es domāju, protams, jūs varētu brutāli mēģināt atklāt IP publisko internetu ar atvērtu portu, kas notiek, lai pārraidītu DHT informāciju. Bet visticamāk, jūsu BT klients ir cietā koda ar kādu noteiktu statisku IP vai DNS, kas atgriežas stabilā DHT mezglā, kas tikai nodrošina DHT metadatus.

Būtībā DHT ir tikai decentralizēta kā pievienošanās mehānisms, un tāpēc, ka savienošanas mehānisms ir diezgan trausls (nav iespējams "pārraidīt" visā internetā), tāpēc jums irvienreizējsuz individuālu iepriekš piesaistītu uzņēmēju, lai saņemtu DHT datus), Kademlia DHT navtiešām decentralizēta. Nav precīzākā vārda izpratnē.

Iedomājieties šo scenāriju: kāds, kas vēlas P2P pārtraukt izdzēst un sagatavo uzbrukumuvisiparasti izmanto stabilus DHT mezglus, kurus izmanto bootstrapping. Kad viņi ir uzlikuši uzbrukumu, viņi pavada tovisi mezgli visi uzreiz.Wham; katrs bootstrapping DHT mezgls ir uz leju visi vienā kritās. Ko tagad? Jūs esat iestrēdzis, lai izveidotu savienojumu arcentralizēti izsekotāji lejupielādēt tradicionālos vienaudžu sarakstus no tiem. Nu, ja viņi uzbrūk arī trackeriem, tad jūs patiešām esattiešām izveidojiet līci. Citiem vārdiem sakot, Kademlia un viss BT tīkls ir ierobežots ar paša interneta ierobežojumiem, jo ​​pastāv ierobežots (un salīdzinoši mazs) datoru skaits, kuru jums vajadzētu veiksmīgi uzbrukt vai veikt bezsaistē, lai novērstu> 90% lietotāju pieslēgšanās tīklam.

Tiklīdz "pseido-centralizētie" bootstrapping mezgli ir pazuduši, DHT iekšējie mezgli, kas nav bootstrapping, joneviens no DHT ārpuses nezina par interjera mezgliem, ir bezjēdzīgi; viņi nevar dot jaunus mezglus DHT. Tātad, tā kā katrs iekšējais mezgls laika gaitā atvienojas no DHT vai nu tādēļ, ka cilvēki, kas slēdz datoru, pārslēdz uz atjauninājumiem utt, tīkls sabruktu.

Protams, lai to apietu, kāds varētu izvietot labotu BitTorrent klientu ar jaunu iepriekš noteiktu stabilu DHT mezglu vai DNS adreses sarakstu un skaļi reklamēt P2P kopienu, lai tā vietā izmantotu šo jauno sarakstu. Bet tas varētu kļūt par "dauzīt-molu" situāciju, kad agresors (mezglu eater) pakāpeniski lejupielādētu šos sarakstus paši un mērķētu uz drosmīgajiem jaunajiem sāknēšanas mezgliem, pēc tam tos arī darītu bezsaistē.

Mēs ne tikai uzzinājām atbildi uz sākotnējo jautājumu, bet mēs arī guvāmies nedaudz par BitTorrent sistēmas būtību un tās neaizsargātību.

Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.