Kehittäjä | Petar Maymounkov ja David Mazières |
---|---|
Ensimmäinen versio | 2002 |
Ympäristö | Itsenäinen |
Tyyppi | Hash-taulukko |
Kademlia (kad) on hajautettu tiiviste tyyppi peittoverkon varten peer-to-peer (P2P) verkoissa. Sen suunnittelivat Petar Maymounkov ja David Mazières vuonna 2002.
Protokolla määrittää Kademlia-verkon rakenteen, solmujen välisen viestinnän ja tiedonvaihdon. Solmut kommunikoivat UDP: n avulla (katso OSI-malli ).
Sisällä olemassa olevan verkon ( Internet ), Kademlia luo uuden verkon, jonka sisällä kukin solmu tunnistetaan tunnistenumero, ID (160- bitin binääriluku ).
Alustusvaiheen jälkeen, joka koostuu yhteyden ottamisesta verkon solmuun ja sitten ID: n hankkimiseen, matemaattinen operaattori laskee kahden solmun välisen etäisyyden ja kysyy useita solmuja tämän etäisyyden mukaan etsittävän tiedon löytämiseksi. Tämän operaattorin, joka on yksinomainen OR , jota kutsutaan myös XOR: ksi, on mahdollista käyttää kahden solmun välisen etäisyyden käsitettä, joka tuottaa tuloksen kokonaislukuna : "etäisyys". Jälkimmäisellä ei ole mitään tekemistä osallistujien maantieteellisen sijainnin kanssa, mutta se mallintaa etäisyyttä henkilötodistusten ketjussa. Siksi voi tapahtua, että solmu Saksassa ja solmu Australiassa ovat "naapureita".
Kademliassa olevat tiedot tallennetaan "arvoihin", kukin arvo liitetään "avaimeen". Sanomme Kademliasta, että se on verkko <arvo, avain>.
Solmun hallinnoima avainjoukko liittyy tämän solmun osoitteeseen; täten, tietäen avaimen, algoritmi voi määrittää likimääräisen etäisyyden, joka erottaa sen solmusta, jonka arvo liittyy tähän avaimeen. Solmulle N sijoitetun avaimen löytämiseksi solmu A etsii naapuria B, jonka etäisyys (B, N) <Etäisyys (A, N), ja pyytää tältä tietoa; jos jälkimmäisellä ei ole sitä, se ottaa yhteyttä naapuriin, joka on lähempänä avainta, ja niin edelleen, kunnes saat avaimen arvon (tai kunnes olemme varmoja, että tätä avainta ei ole). Verkon koko ei vaikuta suuresti haun aikana kosketettujen solmujen määrään; jos verkon osallistujien määrä kaksinkertaistuu, käyttäjän solmun on pyydettävä tietoja vain yhdeltä muulta solmulta.
Muut edut ovat luontaisia hajautetulle rakenteelle, esimerkiksi lisäämällä vastustusta palvelunestohyökkäykselle. Vaikka koko solmurivi olisikin veden alla, sillä on vain rajoitetut vaikutukset verkon saatavuuteen, mikä "ompelee" verkon näiden reikien ympärille.
Kademlia-protokollaa käyttävät useat peer-to-peer -asiakkaat (verkot eivät ole yhteensopivia keskenään):
Jotkut ohjelmat käyttävät Kademlia-protokollaa erillään: