1Sep

Miten Bittorrent-asiakas havaitsee alun perin vertaistukijansa?

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

Päivän kysymys &Vastausistunto tulee meille kohteliaasti SuperUser-osastoon Stack Exchange, yhteisöllinen ryhmittely Q & A verkkosivuilla.

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 todellakääri pääni ympäri.

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

Ymmärrän myös vertaisversion ajatuksen: 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? Eli

, miten uusi asiakas voi liittyä hevoselle ilman seurantaohjelmaa tai vähintään yhden jäsenen tietämystä vaihtaakseen vertaisverkkoja?

( Huomaa: yksinkertaiset selitykset ovat parhaita.)

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

Vastaus

SuperUser-avustaja Allquixotic tarjoaa perusteellisen selityksen:

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

Et voi. Se on mahdotonta. *

* ( Jollei : n -verkon -solmu sattuu olemaan DHT: n solmu, tässä tapauksessa voit käyttää lähetysmekanismia, kuten Avahi,, ja bootstrap niistä.Mutta miten ne bootstrap itseään? Lopulta, sinun tulee osuma tilanteeseen, jossa sinun täytyy muodostaa yhteyden Internetiin. Ja julkinen Internet on vain unicast, ei multicast, joten olet jumissakäyttäen ennalta määrättyjä vertailuverkostoja.)

Referenssit

Bittorrent DHT toteutetaan protokolla nimeltä Kademlia, joka on erityinen tapa jakaa hajautetun taulukon teoreettinen käsite.

-näyttely

Kun käytät Kademlia-protokollaa, kun olet liittynyt verkkoon, mene läpi bootstrapping-proseduurin, joka vaatii ehdottomasti : n tunnetuksi : n, DHT-verkkoon jo osallistuvan ainakin yhden solmun IP-osoitteen ja portin. 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 -verkkoon tuntematta : n kaikkia : n muita jäseniä - perustuu vääriin oletuksiin.

Yksinkertainen vastaus kysymykseesi lihavoituna on, 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 Internetiä"), joten sinun on unicast yksittäiselle esiasennetulle isännällesaada DHT tiedot), Kademlia DHT ei todella hajautettu. Ei sanan suppeassa merkityksessä.

Kuvittele tämä skenaario: Joku, joka haluaa P2P: n pysähtymän, menee ulos ja valmistautuu : n kaikkien : n yleisesti käyttämien stabiilien DHT-solmujen hyökkäykseen, joita käytetään bootstrappingiin. Kun he ovat tehneet hyökkäyksensä, he lähettävät : lle kaikki -solmut kaikki kerralla. Wham ;jokainen bootstrap DHT solmu on alaspäin yhdellä iskulla. Mitä nyt? Olet kiinni liittymästä keskitettyihin seurantaan ladata perinteisiä luetteloita vertaisarvioija niistä.No, jos he hyökkäävät jäljittäjiin, 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 lukumäärä, joiden pitäisi hyökätä tai ottaa offline-tilassa estääkseen & gt; 90% käyttäjistä liittymästä verkkoon.

Kun "pseudo-keskitetty" bootstrapping solmut ovat poissa, DHT: n sisäiset solmut, jotka eivät käynnisty, koska kukaan DHT: n ulkopuolelle ei tunne sisäisiä solmuja , on hyödytön;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 tämän ongelman ratkaisemiseksi joku voisi ottaa käyttöön patenteista BitTorrent-asiakkaan 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.

Ainoastaan ​​oppimme vastaamaan alkuperäiseen kysymykseen, mutta olemme myös oppineet melko vähän BitTorrent-järjestelmän luonteesta ja sen haavoittuvuuksista.

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