Kako Bittorrent stranka najprej odkrije svoje vrstnike?
Ko se vaš torrent odjemalec pridruži roju, da deli in zbira datoteke, kako točno ve, kje so vsi njegovi vrstniki? Beri naprej, ko se prebadamo po mehanizmih, ki podpirajo protokol BitTorrent.
Današnja seja vprašanj in odgovorov prihaja z namenom SuperUser-a, ki je del skupine Stack Exchange, ki temelji na skupnostih spletnih mest za vprašanja in odgovore.
Vprašanje
Čitalnik SuperUser Steve V. je imel zelo specifično vprašanje o distribuirani sistemski tabeli (DHT) v protokolu BitTorrent:
Sem že prebral ta SuperUser odgovor in ta članek iz Wikipedije, vendar sta oba preveč tehnična, da bi se res oklepala.
Razumem idejo sledilca: odjemalci se povežejo s centralnim strežnikom, ki vzdržuje seznam vrstnikov v roju.
Razumem tudi zamisel o izmenjavi vrstnikov: stranke, ki so že v roju, pošiljajo drug drugemu popoln seznam svojih vrstnikov. Če se odkrijejo novi vrstniki, se dodajo na seznam.
Moje vprašanje je, kako deluje DHT? To je, kako se lahko novi odjemalec pridruži roju brez sledilca ali znanja vsaj enega člana roja za izmenjavo vrstnikov z?
(Opomba: preproste razlage so najboljše.)
Njegovo vprašanje je spodbudilo resnično podroben odgovor o različnih funkcijah sistema BitTorrent; Poglejmo ga zdaj.
Odgovor
Sodelavec SuperUser Allquixotic ponuja podrobno razlago:
Kako se lahko nova stranka pridruži roju brez sledilnika ali znanja vsaj enega člana roja za izmenjavo vrstnikov z?
Ne moreš. To je nemogoče.*
* (Razen če vozlišče na vašem lokalno omrežje se zgodi, da je že vozlišče v DHT. V tem primeru lahko uporabite mehanizem za oddajanje, kot je Avahi, da »odkrijete« tega vrstnika in zagonsko datoteko. Toda kako oni sami zagon? Sčasoma boste naleteli na situacijo, ko se morate povezati z javnim internetom. Javni internet je edini, ki ni namenjen oddajanju, ni multicast, zato ste obtičali, da uporabljate vnaprej določene sezname vrstnikov.)
Reference
Bittorrent DHT se izvaja preko protokola Kademlia, ki je poseben primer teoretičnega koncepta porazdeljene razpršene mize..
Razstava
S protokolom Kademlia se, ko se pridružite omrežju, lotite postopka zagona, ki nujno zahteva, da veste, vnaprej, naslov IP in vrata vsaj enega vozlišča, ki že sodeluje v omrežju DHT. Sledilnik, s katerim se povezujete, je lahko na primer DHT vozlišče. Ko se povežete z enim DHT vozliščem, nadaljujete z nalaganjem informacij iz DHT-ja, ki vam zagotavlja informacije o povezljivosti za več vozlišč, nato pa se pomaknete po strukturi »grafa«, da pridobite povezave z vedno več vozlišči, ki lahko zagotovijo oba povezljivost z drugimi vozlišči in podatki o koristnem tovoru (deli prenosa).
Mislim, da je vaše dejansko vprašanje v krepkem tisku - da se ne veš, kako se pridružiti mreži KETMELIA DHT kajdrugih članov - temelji na napačni predpostavki.
Preprost odgovor na vaše vprašanje je krepko, Saj ne. Če sploh ne poznate nobene informacije o celo enem gostitelju, ki bi lahko vseboval metapodatke DHT, ste obtičali - ne morete niti začeti. Mislim, seveda, lahko poskusite s silo odkriti IP na javnem internetu z odprtimi vrati, ki se zgodi, da oddajajo informacije DHT. Bolj verjetno pa je, da je vaš BT odjemalec težko kodiran na nek določen statični IP ali DNS, ki se reši na stabilno DHT vozlišče, ki samo zagotavlja metapodatke DHT-ja..
V bistvu je DHT le tako decentraliziran kot mehanizem združevanja, in ker je mehanizem združevanja precej krhek (ne obstaja način, da bi se »prenašali« po celotnem internetu! unicastza posameznega vnaprej dodeljenega gostitelja, da dobi podatke DHT), Kademlia DHT ni resnično decentralizirano. Ne v najstrožjem pomenu besede.
Predstavljajte si ta scenarij: nekdo, ki želi prekiniti P2P, gre ven in pripravi napad na vse pogosto uporabljena stabilna DHT vozlišča, ki se uporabljajo za zaganjanje. Ko napadejo svoj napad, ga sprožijo vse vozlišč vse naenkrat. Wham; vsak posamezen zagonski DHT vozlišče je v enem naletu. Kaj pa zdaj? Obtičili ste s povezovanjem centralizirani sledilci prenašati tradicionalne sezname vrstnikov. No, če napadajo tudi sledilce, potem ste res, resnično do potoka. Z drugimi besedami, Kademlia in celotno omrežje BT sta omejena z omejitvami samega interneta, saj obstaja omejeno (in relativno majhno) število računalnikov, ki bi jih morali uspešno napadati ali prekiniti, da bi preprečili> 90% uporabnikov iz omrežja.
Ko so "psevdo-centralizirana" vozlišča za zaganjanje izginila, notranja vozlišča DHT-ja, ki niso zaganjača, ker nihče na zunanji strani DHT-ja ne ve za notranja vozlišča, so neuporabni; ne morejo prinašati novih vozlišč v DHT. Ker se vsaka notranja vozlišča čez čas prekinejo z DHT-jem, bodisi zaradi izklopa računalnikov, ponovne zagonske posodobitve itd., Se bo omrežje zrušilo..
Seveda, da bi se izognili temu, bi nekdo lahko namestil zakrpanega BitTorrent odjemalca z novim seznamom vnaprej določenih stabilnih DHT vozlišč ali DNS naslovov in se glasno oglašal P2P skupnosti, da bi uporabil ta novi seznam. Toda to bi postalo "udarno-molsko" stanje, ko bi napadalec (vozliščec) postopoma prenesel te sezname in jih usmeril na nove pogumne vozlišča, potem pa tudi brez povezave..
Ne samo, da smo se naučili odgovora na izvirno vprašanje, ampak smo se tudi veliko naučili o naravi sistema BitTorrent in njegovih ranljivosti..
Imate kaj dodati pojasnilu? Zvok izključen v komentarjih. Želite prebrati več odgovorov drugih uporabnikov tehnologije Stack Exchange? Oglejte si celotno nit razprave tukaj.