Kaip „Bittorrent“ klientas iš pradžių atranda savo partnerius?
Kai jūsų torrent klientas prisijungia prie spiečio, kad galėtų dalintis ir rinkti rinkmenas, kaip tiksliai jis žino, kur yra visi jos bendraamžiai? Skaitykite toliau, nes mes įsisaviname mechanizmus, kurie saugo BitTorrent protokolą.
Šiandienos „Klausimų ir atsakymų“ sesija mums suteikiama pagal „SuperUser“ - „Stack Exchange“ padalinį, bendruomenės sukurtą „Q&A“ svetainių grupavimą.
Klausimas
„SuperUser“ skaitytuvas Steve V. turėjo labai konkretų klausimą apie „Distributed Hash Table“ (DHT) sistemą „BitTorrent“ protokole:
Aš jau perskaičiau šį „SuperUser“ atsakymą ir šį „Vikipedijos“ straipsnį, tačiau abu yra per techniniai, kad galėčiau apvynioti galvą.
Suprantu stebėtojo idėją: klientai prisijungia prie centrinio serverio, kuris prižiūri bendraamžių sąrašą.
Aš taip pat suprantu tarpusavio mainų idėją: klientai, jau turintys spąstus, siunčia visą savo bendraamžių sąrašą. Jei aptinkami nauji bendraamžiai, jie pridedami prie sąrašo.
Mano klausimas yra, kaip veikia DHT? Tai yra, kaip naujas klientas gali prisijungti prie spiečio be stebėtojo arba bent vieno nario nario žinių, kad galėtų keistis bendraamžiais su?
(Pastaba: geriausi yra paprasti paaiškinimai.)
Jo klausimas savo ruožtu paskatino tikrai išsamų atsakymą apie skirtingas „BitTorrent“ sistemos funkcijas; pažvelkime į jį dabar.
Atsakymas
„SuperUser“ autorius „Allquixotic“ pateikia išsamų paaiškinimą:
Kaip naujas klientas gali prisijungti prie spiečio be stebėtojo arba bent vieno nario nario žinių, kad galėtų keistis bendraamžiais su?
Jūs negalite. Tai neįmanoma.*
* (Jei nėra jūsų mazgo vietinis tinklas atsitinka, kad jau yra DHT mazgas. Tokiu atveju galite naudoti transliavimo mechanizmą, pvz., „Avahi“, kad „atrastumėte“ šį bendraamžių ir paleiskite juos iš jų. Bet kaip buvo jie paleisti save? Galų gale, jums bus padaryta situacija, kai jums reikia prisijungti prie viešojo interneto. Ir viešasis internetas yra tik unikalus, o ne daugiaadresis, taigi jūs įstrigo naudodami iš anksto nustatytus bendraamžių sąrašus.)
Nuorodos
„Bittorrent DHT“ įgyvendinamas protokolu, vadinamu Kademlia, kuris yra ypatingas „Distributed hash table“ teorinės koncepcijos atvejis..
Ekspozicija
Su Kademlia protokolu, kai prisijungiate prie tinklo, einate per „bootstrapping“ procedūrą, kuri visiškai reikalauja, kad žinotumėte, iš anksto, bent vieno mazgo, kuris jau dalyvauja DHT tinkle, IP adresas ir prievadas. Pavyzdžiui, stebėtojas, prie kurio prisijungiate, gali būti pats DHT mazgas. Kai prisijungiate prie vieno DHT mazgo, toliau atsisiunčiate informaciją iš DHT, kuris suteikia jums daugiau informacijos apie ryšius, o tada pereikite prie „grafiko“ struktūros, kad gautumėte ryšius su vis daugiau ir daugiau mazgų, kurie gali pateikti abu ryšys su kitais mazgais ir naudingosios apkrovos duomenys (atsisiuntimo dalys).
Manau, kad jūsų faktinis klausimas yra paryškintas - apie tai, kaip prisijungti prie Kademlia DHT tinklo be žinios betkiti nariai - yra pagrįsta klaidinga prielaida.
Paprastas atsakymas į jūsų klausimą yra paryškintas, tu ne. Jei nežinote jokios informacijos apie netgi vieną šeimininką, kuriame gali būti DHT metaduomenų, esate įstrigę - jūs net negalite pradėti. Aš turiu galvoje, žinoma, jūs galėtumėte brutalia jėga bandyti atrasti IP viešajame internete su atviru prievadu, kuris vyksta perduodant DHT informaciją. Tačiau labiau tikėtina, kad jūsų „BT“ klientas yra sunkiai užkoduotas tam tikru konkrečiu statiniu IP arba DNS, kuris išsprendžia į stabilų DHT mazgų, kuris tik suteikia DHT metaduomenis.
Iš esmės, DHT yra tik kaip decentralizuotas kaip prisijungimo mechanizmas, ir todėl, kad sujungimo mechanizmas yra gana trapus (nėra galimybės „transliuoti“ per visą internetą! unicastasindividualiai iš anksto priskirtam priimančiam asmeniui gauti DHT duomenis), Kademlia DHT nėra tikrai decentralizuotas. Ne griežčiausio žodžio prasme.
Įsivaizduokite, kad šis scenarijus: kažkas, kas nori, kad P2P sustabdytų, išeina ir paruošia ataką visi dažniausiai naudojami stabilūs DHT mazgai, kurie naudojami įkrovimui. Kai jie pastatė savo ataką, jie įsijungia visi visi mazgai vienu metu. Kvailas; kiekvienas įkrovos DHT mazgas yra vienas žemyn. Kas dabar? Jūs esate įstrigę prisijungdami prie centralizuoti stebėtojai parsisiųsti tradicinius bendraamžių sąrašus. Na, jei jie taip pat atakuos stebėtojus, tai jūs tikrai, tikrai upė. Kitaip tariant, „Kademlia“ ir visą „BT“ tinklą riboja pačios interneto apribojimai, nes yra baigtinis (ir santykinai nedidelis) kompiuterių skaičius, kurį turėtumėte sėkmingai atakuoti arba atsijungti, kad būtų užkirstas kelias> 90% vartotojų prisijungti prie tinklo.
Kai visi „pseudo-centralizuoti“ įkrovos mazgai yra išnykę, DHT vidiniai mazgai, kurie nėra įkrovos pagrindu, nes niekas DHT išorėje nežino apie vidinius mazgus, yra nenaudingi; jie negali atnešti naujų mazgų į DHT. Taigi, kadangi kiekvienas vidinis mazgas laikui bėgant atsijungia nuo DHT, dėl to, kad žmonės išjungia savo kompiuterius, perkrauna naujinimus ir tt, tinklas žlugs.
Žinoma, norint tai pasiekti, kažkas galėtų įdiegti pataisytą „BitTorrent“ klientą su nauju iš anksto nustatytų stabilių DHT mazgų arba DNS adresų sąrašu ir garsiai reklamuoti P2P bendruomenę, kad galėtumėte naudoti šį naują sąrašą. Bet tai taptų „girtuokliu“ situacija, kai agresorius (mazgas) palaipsniui parsisiųsdintų šiuos sąrašus ir nukreiptų drąsius naujus įkrovos taškus, o po to juos atsijungia.
Mes ne tik išmokome atsakymą į pradinį klausimą, bet ir gana daug išmokome apie „BitTorrent“ sistemos pobūdį ir jos pažeidžiamumą.
Ar ką nors papildyti paaiškinimu? Garsas išjungtas komentaruose. Norite perskaityti daugiau atsakymų iš kitų „tech-savvy Stack Exchange“ vartotojų? Čia rasite visą diskusijų temą.