If-Koubou

Miten Bittorrent-asiakas havaitsee alun perin vertaistukijansa?

Miten Bittorrent-asiakas havaitsee alun perin vertaistukijansa? (Miten)

Kun torrent-asiakas liittyy jouduin jakamaan ja keräämään tiedostoja, kuinka tarkalleen tietää, missä kaikki sen peers ovat? Lue lisää, kun törmäämme mekanismeihin, jotka tukevat BitTorrent-protokollaa.

Tämän päivän kysymys- ja vastausistunto tulee meihin SuperUserin hyväksi - Stack Exchangein alaosasto, joka on yhteisöllinen Q & A-sivustojen ryhmittely.

Kysymys

SuperUser-lukija Steve V: lla oli hyvin erityinen kysymys BitTorrent-protokollan Distributed Hash Table (DHT) -järjestelmästä:

Olen jo lukenut tämän SuperUser-vastauksen ja tämän Wikipedia-artikkelin, mutta molemmat ovat liian teknisiä minulle, jotta voin todella päästä pään ympäri.

Ymmärrän idean trackerista: asiakkaat muodostavat yhteyden keskustietokoneeseen, joka ylläpitää luettelon vertaisryhmistä.

Ymmärrän myös peer-vaihtoehdon: asiakkaat, jotka jo ovat parhaillaan, lähettävät täydellisen luettelon vertaistaan ​​toisilleen. Jos uusia vertaisia ​​löytyy, ne lisätään luetteloon.

Kysymykseni kuuluu, miten DHT toimii? Tuo on,kuinka uusi asiakas voi liittyä hevoselle ilman joko seurantaohjelmaa tai ainakin yhden jäsenen tietämystä vaihtaa vertaisia?

(Huomaa: yksinkertaiset selitykset ovat parhaita.)

Hänen kysymyksensä puolestaan ​​herätti todella yksityiskohtaisen vastauksen BitTorrent-järjestelmän eri toiminnoista. katsotaan nyt.

Vastaus

SuperUser-avustaja Allquixotic tarjoaa perusteellisen selityksen:

Kuinka uusi asiakas voi liittyä hevoselle ilman seurantaohjelmaa tai ainakin yhden jäsenen tietämystä vaihtaakseen vertaisia?

Et voi. Se on mahdotonta.*

* (Jollei solmua teidänpaikallisverkko tapahtuu jo DHT: n solmuna. Tässä tapauksessa voit käyttää lähetysmekanismia, kuten Avahi, "löytää" tämän vertaisryhmän ja aloittaa niiden käynnistäminen. Mutta mitenne bootstrap itse? Lopulta voit törmätä tilanteeseen, jossa sinun täytyy muodostaa yhteyden julkiseen Internetiin. Ja julkinen Internet on vain unicast, ei multicast, joten olet jumissa käyttämällä ennalta määrättyjä vertaisarviointilistoja.)

Viitteet

Bittorrent DHT toteutetaan Kademlia-nimisen protokollan avulla, joka on erikoistunut hajautetun hash-taulukon teoreettiseen käsitteeseen.

näyttely

Kademlia-protokollan avulla, kun liityt verkkoon, mene läpi bootstrapping-menettelyn, joka edellyttää ehdottomasti, että tiedät,etukäteen, DHT-verkkoon jo osallistuvan ainakin yhden solmun IP-osoite ja portti. Esimerkiksi seurantaan liittyvä seuranta voi olla itsessään DHT-solmu. Kun olet liittänyt yhteen DHT-solmuun, siirryt sitten DHT: n tiedot, jotka tarjoavat sinulle yhteystietoja useammille solmuille, ja selaa sitten "graafi" -rakennetta saadaksesi yhteyksiä useammalle solmulle, jotka voivat tarjota sekä yhteydet muihin solmuihin ja hyötykuormatiedot (latauksen palaset).

Mielestäni todellinen kysymys on lihavoituna - miten liittyä Kademlia DHT -verkostoon tietämättäminkä tahansamuut jäsenet - perustuu vääriin oletuksiin.

Yksinkertainen vastaus kysymykseesi on lihavoitu,et. Jos et tiedä mitään tietoa lainkaan isännästä, joka saattaa sisältää DHT-metatietoja, olet jumissa - et voi edes aloittaa. Tarkoitan, voisitte hyvinkin yrittää löytää Internetin IP julkisella internetyhteydellä avoimella portilla, joka sattuu lähettämään DHT-tietoja. Mutta todennäköisemmin BT-asiakkaasi on koodattu tiettyyn staattiseen IP: hen tai DNS: hen, joka ratkaisee vakaata DHT-solmua, joka vain antaa DHT-metatiedot.

Pohjimmiltaan DHT on vain hajautettu kuin liittymismekanismi ja koska liittymismekanismi on melko hauras (ei ole mahdollista "lähettää" koko Internetin yli, joten sinun onunicastyksittäiselle esiasetetulle isännälle DHT-datan saamiseksi), Kademlia DHT ei oleTodella hajautettu. Ei sanan suppeassa merkityksessä.

Kuvittele tämä skenaario: Joku, joka haluaa P2P: n lopettaa, menee ulos ja valmistautuu hyökkäykseenkaikkiyleisesti käytettyjä stabiileja DHT-solmuja, joita käytetään käynnistämiseen. Kun he ovat tehneet hyökkäyksensä, he alkavatkaikki solmut kaikki kerralla.jysäys; jokainen bootstrap DHT solmu on alaspäin yhdellä iskulla. Mitä nyt? Olet jumissa liittymisessäkeskitettyä seurantaa ladata perinteisiä vertailuverkostoja näistä. Jos he hyökkäävät myös seuralaisia, niin olet todella,Todella ylös puro. Toisin sanoen, Kademlia ja koko BT-verkko rajoittavat itse Internetin rajoitukset, sillä on olemassa rajallinen (ja suhteellisen pieni) tietokoneiden määrä, jonka pitäisi hyökätä tai ottaa offline-tilassa estääkseen yli 90% käyttäjistä liittymästä verkkoon.

Kun "pseudo-keskitetyt" käynnistyssolmut ovat poissa, DHT: n sisäiset solmut, jotka eivät käynnisty, koskakukaan ei DHT: n ulkopuolella tiedä sisäisistä solmuista, ovat hyödyttömiä; ne eivät voi tuoda uusia solmuja DHT: hen. Joten, koska jokainen sisäinen solmu irtautuu DHT: stä ajan myötä, joko sen vuoksi, että ihmiset sulkevat tietokoneensa, päivittävät päivitykset jne., Verkko romahtaisi.

Tietenkin, jotta päästäisiin ympäri tätä, joku voisi ottaa käyttöön patenteista BitTorrent-asiakasohjelman uuden luettelon ennalta määritetyistä vakaista DHT-solmuista tai DNS-osoitteista ja mainostaa äänekkäästi P2P-yhteisöä käyttämään tätä uutta luetteloa. Mutta tämä muuttuisi "mölyä" -tilanteeksi, jossa aggressori (solmun syöjä) progressiivisesti lataa nämä luettelot itse ja kohdistaa rohkeat uudet käynnistyssolmut, ja vie ne myös offline-tilaan.

Paitsi, että opimme vastauksen alkuperäiseen kysymykseen, mutta olemme myös oppineet melko vähän BitTorrent-järjestelmän luonteesta ja sen haavoittuvuuksista.

Onko jokin asia lisättävä selitykseen? Kuulkaa kommentit. Haluatko lukea lisää vastauksia muilta tech-tajuilta Stack Exchange-käyttäjiltä? Katso koko keskusteluketju täältä.