Hajautettu hajataulukko

Hajautettu tiiviste (tai DHT varten Distributed Hash Table ), on tekniikka, jolla perustetaan hash on hajautetussa järjestelmässä . Hash-taulukko on tietorakenne tyypin näppäintä → arvo . Jokainen data liittyy avaimeen ja jaetaan verkon yli . Hash-taulukot mahdollistavat datan tallennuksen jakamisen verkon kaikille solmuille, joista jokainen on vastuussa osasta dataa. Hajautetut hajautustaulukot tarjoavat algoritmin datasta ja sen arvosta vastaavan solmun löytämiseksi avaimesta.

Chord , P2P CAN , Tapestry , Leivonnaiset , Kademlia protokollien perustaa hajautettu tiiviste. Hajautettuja hash-taulukoita käytetään vertaisverkossa tapahtuvassa tiedonjakojärjestelmässä (kuten BitTorrent , IPFS jne.), Mutta myös hajautetusti toimivissa ohjelmistoissa, kuten YaCy- hajautetussa hakukoneessa tai reitityksessä. I2P .

Periaate

Oletetaan, että suuri osa käyttäjistä (5 miljoonaa) on käynnistänyt Peer-to-Peer (P2P) -tiedostojen jakamisohjelmiston tietokoneellaan. Kaikki jakavat tiedostonsa (ääni, kuvat, video, multimedia  jne. ). Käyttäjä (Luc) omistaa esimerkiksi (kuvitteellisen) albumin "  42 mon amour  ".

Oletetaan, että toinen käyttäjä (Peter) haluaa ladata tämän albumin. Kuinka hänen P2P- ohjelmistonsa voi löytää Lucin tietokoneen? Pierren ohjelmisto voisi mahdollisesti kysyä viideltä miljoonalta tietokoneelta, jos heillä on sattumalta tämä albumi. Lucin ohjelmisto vastaisi sitten: "Minulla on se ja voin alkaa siirtää sitä." "Olisi kuitenkin hyvin pitkä ja erittäin resurssien kulutus kysyä viideltä miljoonalta tietokoneelta, jos heillä on tämä albumi, koska siellä olisi jatkuvasti miljoonia kysymyksiä, kuten" Etsin tätä albumia, as-you? ", Tuloksena miljoonia vastauksia:" Ei, anteeksi! ".

Suuri hakemisto, joka arkistoi kaikkien käyttäjien jakamien tiedostojen nimet, ratkaisee kysymyksen: sinun tarvitsee vain kysyä tältä "iso hakemisto" ( hash-taulukko ) musiikkialbumille 42 rakkaani saadakseni vastauksen: "Se on käytettävissä. Lucin tietokoneella. (ja Mathieun, Paulin  jne. ) ”. Näin P2P-verkkojen ensimmäinen sukupolvi toimi. Keskuspalvelin toimi "suurena hakemistona" (esimerkkejä: Napster , Audiogalaxy , Edonkey , Kazaa ). Tätä ratkaisua käytetään yhä vähemmän sen haurauden vuoksi; todellakin, jos keskuspalvelinta ei enää ole käytettävissä, emme voi enää tehdä tutkimusta verkon jaetuista tiedostoista, sitten puhumme yhdestä epäonnistumisesta .

Hajautettu hajautustaulukko tarjoaa siten edellisiin tekniikoihin nähden itsenäisyyden keskuspalvelimeen nähden jakamalla sen eri solmuille.

Esimerkiksi käyttäjä Jean-Claude on vastuussa kaikista A-kirjaimella alkavista tiedostoista, Toto on vastuussa kaikista B-kirjaimella alkavista tiedostoista. Kun uusi käyttäjä muodostaa yhteyden verkkoon, ohjelmisto tekee ensimmäisenä ilmoituksen siitä, mitkä tiedostot voidaan jakaa. Jos hän omistaa esimerkiksi elokuvan Big Buck Bunny , hän sanoo käyttäjälle Toto (joka on vastuussa B-kirjaimella alkavista tiedostoista): ”Minulla on elokuva Big Buck Bunny. Jos ihmiset haluavat sitä, se on saatavilla minun luokseni ”. Siksi haut nopeutuvat. Jos etsimme Big Buck Bunnya, pyydämme suoraan B-kirjaimesta vastaavalta henkilöltä.

Todellisuus on hieman monimutkaisempi: Sinulla ei pitäisi olla yhtä henkilöä, joka on vastuussa sanoista, jotka alkavat kirjaimella "B", koska jos tietokone sammutetaan, osa puhelinluettelosta menetetään. Siksi on välttämätöntä lisätä tietty redundanssi hakemistoon, ja siksi useat tietokoneet ovat samanaikaisesti vastuussa samoista luetteloista. Lisäksi koska jaettuja tiedostoja on satoja miljoonia, hakemiston jakamisen periaate ei perustu aakkosten kirjaimiin, vaan tiedostojen otsikoiden sanojen hajautettuun taulukkoon.

Lopuksi, kaikkien tietokoneiden ei tarvitse tuntea kaikkia tietokoneita, jotka arkistoivat sanoja. Hän tuntee tyypillisesti noin sata tietokonetta. Jos käyttäjä etsii sanaa Big Buck Bunny eikä tiedä tietokonetta, joka arkistoi tiedostot, jotka alkavat kirjaimella B, toimi seuraavasti:

käyttää

Tiedonjako-ohjelmistossa

Monet tiedonjako-ohjelmistot käyttävät DHT: tä hajauttamaan osan tiedoista, esimerkiksi Ares Galaxy , myös monet BitTorrent- protokollan viimeisimmät asiakkaat , kuten Azureus , Bitcomet , Deluge , I2pSnark , KTorrent , Transmission tai jopa µTorrent käyttävät DHT: tä on mahdollista löytää ikäisensä ilman seurantalaitetta .

Ensimmäinen BitTorrent-asiakas, joka käytti DHT: tä, oli Azureus, jota seurasi virallinen BitTorrent- asiakas, joka loi toisen version. Virallista asiakasversiota kutsuttiin sitten Mainline DHT: ksi. Suurin osa asiakkaista tukee nyt Mainline DHT -versiota.

Pikaviestintäohjelmistossa

Jotkut pikaviestintäohjelmistot käyttävät DHT: tä hajauttamaan osan tiedoista, esimerkiksi Jami tai Tox .

Huomautuksia ja viitteitä

Liitteet

Katso myös