Kā Bittorrent klients sākotnēji atklāj savus partnerus?
Kad jūsu torrent klients pievienojas spieķim, lai dalītos un savāktu failu gabalus, kā tieši tā zina, kur ir visi tās vienaudži? Lasiet tālāk, jo mēs iesakām iekšpusē mehānismus, kas ir zem BitTorrent protokola.
Šodienas jautājumu un atbilžu sesija mums dod pieklājību no SuperUser-Stack Exchange apakšnodaļas, kas ir kopienas orientēta Q & A tīmekļa vietņu grupa.
Jautājums
SuperUser lasītājam Stīvam V. bija ļoti specifisks jautājums par sadalītās sadursmes tabulas (DHT) sistēmu BitTorrent protokolā:
Esmu jau izlasījis šo SuperUser atbildi un šo Vikipēdijas rakstu, bet abas ir pārāk tehniskas, lai es tiešām varētu ietu galvu.
Es saprotu izsekošanas ideju: klienti izveido savienojumu ar centrālo serveri, kas uztur sarakstu ar vienaudžiem.
Es saprotu arī ideju par vienaudžu apmaiņu: klienti, kas jau ir spārnā, nosūta pilnīgu vienaudžu sarakstu. Ja tiek atklāti jauni vienaudži, tie tiek pievienoti sarakstam.
Mans jautājums ir, kā darbojas DHT? Tas ir, kā jaunais klients var pievienoties slazdam bez izsekošanas vai vismaz viena biedra zināšanas, lai apmainītos ar vienaudžiem ar?
(Piezīme: labākie ir vienkārši paskaidrojumi.)
Viņa jautājums savukārt izraisīja patiesi detalizētu atbildi par dažādām BitTorrent sistēmas funkcijām; apskatīsim to tagad.
Atbilde
SuperUser ziedotājs Allquixotic piedāvā padziļinātu skaidrojumu:
Kā jaunais klients var pievienoties slazdam bez izsekošanas vai vismaz viena biedra zināšanas, lai apmainītos ar vienaudžiem ar?
Jūs nevarat. Tas ir neiespējami.*
* (Ja vien jūsu mezgls nav vietējais tīkls notiek jau mezgls DHT. Šādā gadījumā jūs varētu izmantot apraides mehānismu, piemēram, Avahi, lai “atklātu” šo vienaudžu un no tiem noņemtu bootstrap. Bet kā tas notika viņi bootstrap sevi? Galu galā jūs nokļūsiet situācijā, kad jums ir nepieciešams izveidot savienojumu ar publisko internetu. Un publiskais internets ir tikai unikastisks, nevis multicasts, tāpēc jūs esat iestrēdzis, izmantojot iepriekš noteiktos vienaudžu sarakstus.)
Atsauces
Bittorrent DHT tiek īstenots, izmantojot protokolu, kas pazīstams kā Kademlia, kas ir īpašs sadalītās hash tabulas teorētiskā jēdziena gadījums..
Ekspozīcija
Ar Kademlia protokolu, kad jūs pievienosies tīklam, jūs izmantojat bootstrapping procedūru, kas absolūti prasa, lai jūs zināt, iepriekš, vismaz viena mezgla, kas jau piedalās DHT tīklā, IP adrese un ports. Tracker, ar kuru izveidojat savienojumu, piemēram, var būt pats DHT mezgls. Kad esat izveidojis savienojumu ar vienu DHT mezglu, turpiniet lejupielādēt informāciju no DHT, kas nodrošina savienojamības informāciju par vairākiem mezgliem, un tad jūs pārvietojāt šo “grafiku” struktūru, lai iegūtu savienojumus ar vairāk un vairāk mezglu, kuri var nodrošināt abus savienojamība ar citiem mezgliem un kravas dati (lejupielādes gabali).
Es domāju, ka jūsu patiesais jautājums ir treknrakstā - par to, kā pievienoties Kademlia DHT tīklam, nezinot jebkuršciti dalībnieki - ir balstīta uz nepareizu pieņēmumu.
Vienkārša atbilde uz jūsu jautājumu treknrakstā ir, jums nav. Ja jūs nezināt nekādu informāciju par kādu no uzņēmējiem, kas varētu saturēt DHT metadatus, jūs esat iestrēdzis - jūs pat nevarat sākt. Es domāju, pārliecināts, ka jūs varētu brutālu spēku mēģināt atklāt IP publiskajā internetā ar atvērtu portu, kas notiek, lai pārraidītu DHT informāciju. Bet, visticamāk, jūsu BT klients ir kodēts ar kādu noteiktu statisku IP vai DNS, kas atrisina stabilu DHT mezglu, kas tikai nodrošina DHT metadatus.
Būtībā DHT ir tikai tikpat decentralizēts kā savienošanas mehānisms, un tāpēc, ka savienošanas mehānisms ir diezgan trausls (nav iespējams „pārraidīt” visā internetā! unicastuz individuālu iepriekš piešķirtu uzņēmēju, lai iegūtu DHT datus), Kademlia DHT nav tiešām decentralizēta. Ne vārda visstingrākajā nozīmē.
Iedomājieties, ka šis scenārijs: kāds, kurš vēlas, lai P2P pārtrauktu, izslēdzas un sagatavo uzbrukumu viss parasti izmanto stabilus DHT mezglus, kurus izmanto sāknēšanas laikā. Kad viņi ir uzvarējuši savu uzbrukumu, viņi to atslēdz viss visi mezgli vienlaicīgi. Wham; katrs bootstrapping DHT mezgls ir uz leju viss vienā kritienā. Ko tagad? Jūs esat iestrēdzis, pieslēdzoties centralizēti izsekotāji lejupielādēt tradicionālos vienaudžu sarakstus no tiem. Nu, ja viņi uzbrūk arī sekotājiem, tad jūs tiešām esat, tiešām upe. Citiem vārdiem sakot, Kademlia un viss BT tīkls ir ierobežots ar paša interneta ierobežojumiem, jo ir ierobežots (un salīdzinoši neliels) datoru skaits, kas jums būtu veiksmīgi uzbrukuši vai bezsaistē, lai novērstu> 90% lietotāju savienojumu ar tīklu.
Kad visi “pseido-centralizētie” bootstrapping mezgli ir aizgājuši, DHT iekšējie mezgli, kas nav bootstrapping, jo neviens no DHT ārpuses zina par iekšējiem mezgliem, ir bezjēdzīgi; viņi nevar dot jaunus mezglus DHT. Tātad, tā kā katrs interjera mezgls laika gaitā atvienojas no DHT, vai nu tāpēc, ka cilvēki izslēdz datorus, atjaunina atjauninājumus utt., Tīkls sabruks.
Protams, lai to apietu, kāds varētu izvietot patstāvīgu BitTorrent klientu ar jaunu iepriekš noteiktu stabilu DHT mezglu vai DNS adrešu sarakstu, un skaļi reklamēt P2P kopienu, lai tā vietā izmantotu šo jauno sarakstu. Bet tas kļūtu par „dauzīt-a-molu” situāciju, kurā agresors (mezgls-ēdējs) pakāpeniski lejupielādētu šos sarakstus un mērķētu uz jaunajiem braukšanas mezgliem, pēc tam arī tos bezsaistē..
Mēs ne tikai iemācījāmies atbildi uz sākotnējo jautājumu, bet arī diezgan daudz uzzinājām par BitTorrent sistēmas raksturu un tās ievainojamību.
Vai kaut kas jāpievieno paskaidrojumam? Skaņas izslēgšana komentāros. Vai vēlaties lasīt vairāk atbildes no citiem tehnoloģiju gudriem Stack Exchange lietotājiem? Apskatiet pilnu diskusiju pavedienu šeit.