1Sep
Kada vaš torrent klijent pridružuje rodu za dijeljenje i skupljanje datoteka, kako to točno zna gdje su svi njegovi vršnjaci?Čitajte dok mi se pokrećemo unutar mehanizama koji podcjenjuju BitTorrent protokol.
Današnje pitanje &Sesija odgovora nam dolazi zahvaljujući SuperUseru - podjele Stack Exchange, grupiranjem zajednice Q & A web stranica.
Pitanje
SuperUser čitač Steve V. imao je vrlo specifično pitanje o Distributed Hash Table( DHT) sustavu unutar BitTorrent protokola:
Već sam pročitao ovaj SuperUser odgovor i ovaj članak u Wikipediji, ali oboje su previše tehnički za mene da stvarnoomotajte glavu oko sebe.
Razumijem ideju trackera: klijenti se povezuju s centralnim poslužiteljem koji održava popis vršnjaka u rodu.
Također razumijem ideju razmjene ravnopravnih partnera: klijenti već u rodu šalju cjelokupni popis svojih vršnjaka jedni drugima. Ako se otkriju novi partneri, oni se dodaju na popis.
Moje pitanje je, kako DHT radi? To jest, kako novi klijent može pridružiti roj bez tragača ili znanje barem jednog člana rojstva za razmjenu vršnjaka?
( Napomena: jednostavna objašnjenja su najbolja.)
Njegovo pitanje zauzvrat potaknulo je doista detaljan odgovor o različitim funkcijama BitTorrent sustava;Pogledajmo sada.
Odgovor
Contributor SuperUser Allquixotic nudi detaljno objašnjenje:
Kako se novi klijent može pridružiti roj bez praćenja ili znanja barem jednog člana rojstva za razmjenu vršnjaka?
Ne možete. To je nemoguće. *
* ( Osim ako se čvor na lokalnoj mreži već dogodi kao čvor u DHT-u, u ovom slučaju možete koristiti mehanizam za emitiranje, kao što je Avahi, kako bi "otkrio" ovaj peer, a bootstrap od njih. Ali kako se oni bootstrap sebe? Napokon, te će pogoditi situaciju u kojoj se morate povezati na javni Internet. A javni Internet je samo unicast, a ne multicast, tako da ste zaglavis pomoću unaprijed određenih popisa vršnjaka.)
Reference
Bittorrent DHT se provodi putem protokola poznatog pod nazivom Kademlia, što je poseban slučaj teorijskog koncepta distribuiranog tablice hash.
Izložba
Kod protokola Kademlia, kada se pridružite mreži, prolazite kroz bootstrapping postupak, što apsolutno zahtijeva da znate, unaprijed , IP adresu i priključak barem jednog čvora koji već sudjeluje u DHT mreži. Tragat koji se povezujete, na primjer, može biti sam DHT čvor. Nakon što ste spojeni na jedan DHT čvor, nastavite s preuzimanjem podataka iz DHT-a koji vam pruža informacije o povezanosti za više čvorova, a zatim kretanje strukturom grafikona kako biste dobili veze za sve više čvorova koji mogu pružiti objepovezivost s drugim čvorovima i podatke o teretima( dijelovi preuzimanja).
Mislim da vaše stvarno pitanje podebljano - kako se pridružiti Kademlia DHT mreži bez poznavanja bilo kojeg drugih članova - temelji se na lažnoj pretpostavci.
Jednostavan odgovor na vaše pitanje podebljan je, ne .Ako ne znate ni o kakvim informacijama o čak jednom hostu koji može sadržavati DHT metapodatke, zaglavljeni ste - čak ni ne možete započeti. Mislim, sigurno, mogli biste pokušati otkriti IP na javnom internetu s otvorenom lozom koja će se dogoditi za emitiranje DHT informacija. No, vjerojatnije je da je vaš BT klijent hardcodiran nekom određenom statičkom IP ili DNS-om koji rješava stabilni DHT čvor koji samo daje metapodatke DHT.
U osnovi, DHT je samo decentraliziran kao i mehanizam spajanja, i zato što je mehanizam spajanja prilično krhki( nema načina za "emitiranje" preko cijelog Interneta, tako da morate unicast pojedinom predefiniranom hostudobiti DHT podatke), Kademlia DHT nije stvarno decentraliziran. Ne u najstrožem smislu te riječi.
Zamislite ovaj scenarij: Netko tko želi P2P zaustavljanje istječe i priprema napad na sve najčešće korištene čvrste DHT čvorove koji se koriste za dizanje. Nakon što su postavili svoj napad, sve to odjednom na sve čvorove. Wham ;svaki pojedini DHT čvor koji se podigao je sve u jednom trenutku.Što sad? Zaboravili ste se povezati s centraliziranim trackerima da biste preuzeli tradicionalne popise vršnjaka od njih. Pa, ako i napadaju tragove, onda ste stvarno, stvarno se podižete u potok. Drugim riječima, Kademlia i cijela BT mreža ograničeni su ograničenjima samog Interneta, budući da postoji konačan( i relativno mali) broj računala koje biste trebali uspješno napasti ili preuzimati izvan mreže kako biste spriječili> 90% korisnika od povezivanja s mrežom.
Nakon što su "pseudo centralizirani" bootstrapping čvorovi nestali, unutarnji čvorovi DHT-a, koji se ne pokreću, jer nitko na vanjskoj strani DHT ne zna o unutarnjim čvorovima , beskorisni su;ne mogu donijeti nove čvorove u DHT.Dakle, budući da se svaki unutarnji čvor povezuje s DHT-om tijekom vremena, bilo zbog ljudi koji ugasuju računala, ponovno podizanje sustava za ažuriranja itd., Mreža bi se srušila.
Naravno, da bi se to ostvarilo, netko bi mogao implementirati zakrpačeni BitTorrent klijent s novim popisom unaprijed određenih čvrsti DHT čvorova ili DNS adresa i glasno oglašavati P2P zajednici da umjesto toga koristi ovaj novi popis. Ali to bi postalo situacija u kojoj bi agresor( čvorni čarobnjak) progresivno preuzeo te popise i ciljala hrabre nove čvorove za pokretanje, a zatim ih odveze i izvan mreže.
Ne samo da smo naučili odgovor na izvorno pitanje, već smo i doznali malo o prirodi BitTorrent sustava i njegovih ranjivosti.
Imate li nešto za objašnjenje? Zvuči u komentarima.Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.