Kotisivu » miten » Miten Bittorrent-asiakas havaitsee alunperin sen ikäisensä?

    Miten Bittorrent-asiakas havaitsee alunperin sen ikäisensä?

    Kun torrent-asiakassi yhdistää swarmiin jakaa ja kerätä tiedostoja, kuinka tarkalleen se tietää, missä kaikki sen ikäisensä ovat? Lue lisää, kun pyöritämme BitTorrent-protokollan alla olevien mekanismien sisällä.

    Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUserin - Stack Exchange -alueen, yhteisöpohjaisen Q & A-sivustojen ryhmittymän - kautta..

    Kysymys

    SuperUser-lukija Steve V.: llä oli hyvin erityinen kysymys BitTorrent-protokollan DHT-järjestelmästä:

    Olen jo lukenut tämän SuperUser-vastauksen ja tämän Wikipedia-artikkelin, mutta molemmat ovat liian teknisiä, jotta voisin todella kääriä päätäni.

    Ymmärrän seurannan ajatuksen: asiakkaat muodostavat yhteyden keskuspalvelimeen, joka ylläpitää luetteloa pariskunnista.

    Ymmärrän myös ajatuksen vertaisvaihdosta: jo parvella olevat asiakkaat lähettävät täydellisen luettelon ikäisensä. Jos uusia vertaisia ​​löytyy, ne lisätään luetteloon.

    Kysymykseni on, miten DHT toimii? Tuo on, miten uusi asiakas voi liittyä parviin ilman seurantalaitetta tai vähintään yhden jäsenen tietämystä vaihtaakseen vertaisia?

    (Huomaa: yksinkertaiset selitykset ovat parhaita.)

    Hänen kysymyksensä puolestaan ​​sai todella yksityiskohtaisen vastauksen BitTorrent-järjestelmän eri toiminnoista; Katsokaamme sitä nyt.

    Vastaus

    SuperUserin avustaja Allquixotic tarjoaa perusteellisen selityksen:

    Miten uusi asiakas voi liittyä parviin ilman seurantalaitetta tai vähintään yhden jäsenen tietämystä vaihtaakseen vertaisia?

    Et voi. Se on mahdotonta.*

    * (Ellei solmua ole paikallisverkko sattuu jo olemaan solmu DHT: ssä. Tässä tapauksessa voit käyttää lähetysmekanismia, kuten Avahia, "löytääksesi" tämän vertaisarvon ja käynnistyslevyn niistä. Mutta miten ne bootstrap itse? Lopulta saat osuman tilanteeseen, jossa sinun täytyy muodostaa yhteys julkiseen Internetiin. Ja julkinen Internet on vain yksinkertaisuus, ei monilähetys, joten olet juuttunut käyttämään ennalta määritettyjä luetteloita ikäisistä.)

    Viitteet

    Bittorrent DHT toteutetaan Kademlia-nimellä tunnetulla protokollalla, joka on erikoistapauksessa Distributed hash -taulukon teoreettinen käsite.

    näyttely

    Kun Kademlia-protokolla, kun liityt verkkoon, käydään läpi käynnistysprosessi, joka edellyttää ehdottomasti sitä, etukäteen, vähintään yhden DHT-verkkoon osallistuvan solmun IP-osoite ja portti. Esimerkiksi seuraaja, johon muodostat yhteyden, voi olla itse DHT-solmu. Kun olet yhteydessä johonkin DHT-solmuun, voit ladata tietoja DHT: stä, joka tarjoaa liitettävyysinformaation useampia solmuja varten, ja siirry sitten kyseiseen "kuvaaja" -rakenteeseen saadaksesi yhteyksiä yhä useampiin solmuihin, jotka voivat tarjota molempia liitettävyys muihin solmuihin ja hyötykuormitustiedot (latauksen osat).

    Mielestäni todellinen kysymys on lihavoitu - siitä, miten liittyä Kademlia DHT -verkkoon tietämättä minkä tahansamuut jäsenet - perustuu vääriin oletuksiin.

    Yksinkertainen vastaus kysymykseesi lihavoituina on, et. Jos et tiedä mitään tietoa edes yhdestä isännästä, joka voi sisältää DHT-metatietoja, olet jumissa - et voi edes aloittaa. Tarkoitan, voisit varmasti yrittää löytää IP: n julkisessa Internetissä avoimen portin avulla, joka tapahtuu lähettämään DHT-tietoja. Mutta todennäköisemmin BT-asiakas on koodattu tiettyyn staattiseen IP: hen tai DNS: ään, joka ratkaisee vakaan DHT-solmun, joka tarjoaa vain DHT-metatiedot.

    Periaatteessa DHT on vain hajautettu liitosmekanismiksi, ja koska liittymismekanismi on melko hauras (ei ole mitään mahdollisuutta "lähettää" koko Internetissä! unicastyksittäiselle ennalta määritetylle isännälle DHT-tietojen saamiseksi), Kademlia DHT ei ole Todella hajautettu. Ei sanan tiukimmassa merkityksessä.

    Kuvittele tämä skenaario: Joku, joka haluaa P2P: n lopettaa, menee ulos ja valmistelee hyökkäyksen kaikki yleisesti käytettävät vakaat DHT-solmut, joita käytetään käynnistyksen aikana. Kun he ovat järjestäneet hyökkäyksensä, ne käynnistävät sen kaikki solmut kaikki kerralla. jysäys; jokainen bootstrapping DHT-solmu on alaspäin yhdellä iskulla. Mitä nyt? Olet jumissa liittymällä keskitetty seuranta ladata perinteisiä luetteloita heidän kanssaan. No, jos he hyökkäävät myös seurantaan, niin olet todella, Todella ylös puro. Toisin sanoen Kademlia ja koko BT-verkko rajoittuvat itse Internetin rajoituksiin, sillä siinä on rajallinen (ja suhteellisen pieni) tietokoneiden lukumäärä, joille sinun pitäisi hyökätä tai ottaa yhteys offline-tilaan, jotta estetään> 90% käyttäjät voivat muodostaa yhteyden verkkoon.

    Kun "pseudo-keskitetyt" käynnistyssilmukat ovat kaikki poissa, DHT: n sisäiset solmut, jotka eivät käynnisty, koska ne kukaan DHT: n ulkopuolelta ei tunne sisäsolmuja, ovat hyödyttömiä; he eivät voi tuoda uusia solmuja DHT: hen. Joten, koska kukin sisäinen solmu irrottautuu DHT: stä ajan myötä, joko siksi, että ihmiset sammuttavat tietokoneensa, käynnistävät päivitykset uudelleen jne., Verkko romahtaa.

    Tietysti, jos haluat kiertää tämän, joku voisi käyttää korjattua BitTorrent-asiakasta uudella luettelolla ennalta määritetyistä stabiileista DHT-solmuista tai DNS-osoitteista ja mainostaa äänekkäästi P2P-yhteisöä käyttämään tätä uutta luetteloa. Mutta tästä olisi tullut "mollan" -tilanne, jossa hyökkääjä (solmu-syöjä) lataa itse nämä luettelot asteittain ja kohdistaa rohkeat uudet bootstrapping-solmut ja ottaa ne sitten offline-tilaan..

    Emme vain oppineet vastausta alkuperäiseen kysymykseen, vaan saimme myös melko vähän tietoa BitTorrent-järjestelmän luonteesta ja sen haavoittuvuuksista.


    Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.