1Sep

Kaip "Bittorrent" klientas iš pradžių atranda savo kolegoms?

Kai jūsų torrentas klientas prisijungia prie grotelių dalintis ir rinkti failų vienetus, kaip tiksliai jis žino, kur yra visi jo bendraamžiai? Perskaitykite, kai mes sukasi aplink mechanizmų, kuriuose yra BitTorrent protokolas, viduje.

Šiandienos klausimas &Atsakymų sesija ateina pas mus iš "SuperUser" - "Stack Exchange", bendruomenės pagrįstos "Q & A" svetainių grupės pasidalijimo.

Klausimas

SuperUser skaitytojas Steve V. turėjo labai specifinį klausimą apie Distributed Hash Table( DHT) sistemą BitTorrent protokole:

Aš jau skaitau šį "SuperUser" atsakymą ir šį Vikipedijos straipsnį, tačiau abi yra pernelyg techninės man tikraiapsukite galvą.

Aš suprantu stebėjimo idėją: klientai jungiasi prie centrinio serverio, kuris palaiko vienetų sąrašą.

Aš taip pat suprantu bendraamžių mainų idėją: klientai, kurie jau yra pakilę, išsiųs visą savo bendraamžių sąrašą tarpusavyje. Jei yra atrasti nauji bendraamžiai, jie pridedami prie sąrašo.

Mano klausimas yra, kaip veikia DHT?Tai reiškia, kad

kaip naujas klientas gali prisijungti prie rago be stebėjimo sistemos, ar ne mažiau kaip vieno roko nario žinių, kad galėtų keistis bendraamžiais?

( Pastaba: paprasti paaiškinimai yra geriausi.)

Jo klausimas savo ruožtu paskatino tikrai išsamų atsakymą apie skirtingas BitTorrent sistemos funkcijas;let's look at it now.

Atsakymas

"SuperUser" autorius Allquixotic siūlo išsamų paaiškinimą:

Kaip naujas klientas gali prisijungti prie rago be stebėjimo sistemos ar žinių bent iš vieno nario, kad galėtų keistis bendraamžiais?

Jūs negalite. Neįmanoma. *

* ( Jei jūsų vietinio tinklo mazgas nevyksta, tai DHT mazgas. Tokiu atveju galite naudoti transliavimo mechanizmą, pvz., "Avahi", kad "atrastumėt" šį lygį, o iš jų - iš bootstrap, bet kaip jie sukūrė patys? Galų gale jūs pateksite į situaciją, kai turėsite prisijungti prie viešojo interneto. Ir viešasis internetas yra vienkartinis, o ne multicast, todėl jūs įstrigonaudojant iš anksto nustatytus vienetų sąrašus.)

Nuorodos

Bittorrent DHT yra įdiegtas per protokolą, žinomą kaip "Kademlia", kuris yra išskirtinis "Distributed hash" lentelės teorinės koncepcijos atvejis.

ekspozicija

Naudodamiesi Kademlia protokolu, kai prisijungiate prie tinklo, vykdote paleidimo procedūrą, kuri iš anksto reikalauja, kad iš anksto žinotumėte , IP adresą ir prievadą, kuriame yra bent vienas mazgas, jau dalyvaujantis DHT tinkle. Pavyzdžiui, stebėjimo priemonė, prie kurios prisijungiate, gali būti DHT mazgas. Kai esate prisijungę prie vieno DHT mazgo, tuomet nusiųskite informaciją iš DHT, kuri suteikia jums ryšių informaciją daugiau mazgų, ir tuomet pereikite prie šios "diagramos" struktūros, norėdami gauti ryšius su daugiau ir daugiau mazgų, kurie gali tiekryšys su kitais mazgais ir krovinio duomenys( atsisiuntimo gabalai).

Manau, kad jūsų faktinis klausimas paryškintas - tai, kaip prisijungti prie "Kademlia DHT" tinklo, nežinant kitų narių, yra pagrįstas klaidinga prielaida.

Paprastas atsakymas į jūsų klausimą paryškinamas, jūs neturite .Jei visai nežinote jokios informacijos apie netgi vieną kompiuterį, kuriame gali būti DHT metaduomenų, jūs esate užsikimšęs - net negalite pradėti. Aš turiu galvoje, be abejo, jūs galėtumėte netyčia bandyti atrasti IP viešajame internete su atviro prievado, kuris vyksta transliuojant DHT informaciją.Bet labiau tikėtina, kad jūsų "BT" klientas yra sunkiai koduotas tam tikram konkrečiam statiniam IP ar DNS, kuris išsprendžia stabilų DHT mazgą, kuris tiesiog pateikia DHT metaduomenis.

Iš esmės, DHT yra tik decentralizuotas kaip prisijungimo mechanizmas, o prisijungimo mechanizmas yra gana trapus( nėra galimybės "transliuoti" visame internete), todėl turite unicast prie individualaus iš anksto priskirto kompiuteriogauti DHT duomenis), Kademlia DHT nėra , tikrai decentralizuota. Ne toje pačioje žodžio prasme.

Įsivaizduokite šį scenarijų: kažkas, kas nori, kad P2P nebeveiktų, ir rengia užpuolimą, visų dažniausiai naudojamų stabilių DHT mazgų, kurie naudojami paleidžiant. Kai jie sukonstruos savo ataką, jie iš karto visus mazgas išveda į . Wham ;kiekvienas paleidžiamojo DHT mazgas nusileidžia viskuo. Kas dabar? Jūs įstrigo prisijungdami prie centralizuotų sekimo programų , kad atsisiųstumėte tradicinius tų pačių kolegų sąrašus. Na, jei jie atakuoja ir sekimo, tada jūs tikrai, tikrai up creek. Kitaip tariant, "Kademlia" ir visas "BT" tinklas yra apribotas pačios interneto apribojimų, nes yra ribotas( ir palyginti nedidelis) kompiuterių skaičius, kurį turėtumėte sėkmingai atakuoti arba įjungti neprisijungus, kad išvengtumėte & gt; 90% vartotojų prisijungia prie tinklo.

Kai "pseudo-centralizuotos" bootstrapping mazgai yra viskas, DHT vidiniai mazgai, kurie nėra paleidžiami, nes niekas iš DHT išorės nežino apie vidinius mazgus , yra nenaudingas;jie negali pridėti naujų mazgų į DHT.Taigi, kadangi kiekvienas vidinis mazgas iš karto atsijungia nuo DHT arba dėl to, kad žmonės uždaro savo kompiuterius, perkrauna atnaujinimus ir tt, tinklas sugestų.

Žinoma, norint išspręsti šią problemą, kažkas gali įdiegti pataisytą "BitTorrent" klientą su nauju iš anksto nustatytu stabiliu DHT mazgų ar DNS adresų sąrašu ir garsiai reklamuoti P2P bendruomenei, o ne naudoti šį naują sąrašą.Bet tai taps "staiga", kai agresorius( mazgas-eateras) palaipsniui atsisiųs šiuos sąrašus patys ir nukreiptų į drąsius naujus paleidimo įtaisus, o tada juos ir neprisijungę.

Ne tik išmokome atsakymą į pradinį klausimą, bet ir giliai sužinojome apie "BitTorrent" sistemos pobūdį ir jos pažeidžiamumą.

Ar ką nors įtraukti į paaiškinimą?Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų?Patikrinkite visą diskusijų temą čia.