Fejlesztette | Petar Maymounkov és David Mazières |
---|---|
Az első verzió | 2002 |
Környezet | Független |
típus | Hash asztal |
Kademlia (KAD) egy elosztott hash tábla típusa átfedő hálózat számára a peer-to-peer (P2P) hálózatok. Petar Maymounkov és David Mazières tervezte 2002-ben.
A protokoll meghatározza a Kademlia hálózat felépítését, a csomópontok közötti kommunikációt és az információcserét. A csomópontok UDP használatával kommunikálnak (lásd az OSI modellt ).
A Kademlia egy meglévő hálózaton ( Interneten ) belül létrehoz egy új hálózatot, amelyen belül minden csomópontot azonosító szám, azonosító (160 bites bináris szám ) azonosít.
Az elsődleges fázis után, amely a hálózat egy csomópontjának érintkezéséből, majd az azonosító megszerzéséből áll, egy matematikai operátor kiszámítja a két csomópont közötti „távolságot”, és ennek a „távolságnak” megfelelően több csomópontot kérdez meg a keresett információ megtalálása érdekében. Ez az operátor, amely a kizárólagos VAGY , más néven XOR, lehetővé teszi a két csomópont közötti távolság fogalmának használatát, amely eredményt eredményez egész szám formájában : a „távolság”. Ez utóbbi semmi köze a résztvevők földrajzi elhelyezkedéséhez, de modellezi a távolságot az azonosítók láncolatán belül. Ezért előfordulhat, hogy egy csomópont Németországban és egy csomópont Ausztráliában "szomszédok".
A Kademliában található információkat "értékekben" tárolják, minden értéket egy "kulcshoz" csatolva. Kademliáról azt mondjuk, hogy ez egy hálózat <érték, kulcs>.
A csomópont által kezelt kulcskészlet kapcsolódik ennek a csomópontnak a címéhez; így egy kulcs ismeretében az algoritmus meghatározhatja azt a hozzávetőleges távolságot, amely elválasztja azt a csomóponttól, amelynek értéke van ehhez a kulcshoz. Az N csomóponton található kulcs megtalálásához az A csomópont megkeresi a B szomszédot, amelynek Távolság (B, N) <Távolság (A, N), és megkérdezi tőle az információkat; ha az utóbbi nem rendelkezik vele, akkor kapcsolatba lép a szomszéddal a kulcshoz közelebb, és így tovább, amíg meg nem kapja a kulcs értékét (vagy amíg nem vagyunk biztosak abban, hogy ez a kulcs nem létezik). A hálózat mérete nem befolyásolja nagyban a keresés során megkeresett csomópontok számát; ha a hálózati résztvevők száma megduplázódik, akkor a felhasználó csomópontjának csak egy további csomóponttól kell kérnie az információt.
Más előnyök rejlenek a decentralizált struktúrában, például a szolgáltatásmegtagadási támadásokkal szembeni ellenállás növekedése. Még akkor is, ha egy csomópont egész sora merül el, ennek csak korlátozott hatása lesz a hálózat rendelkezésre állására, ami a hálót ezeknek a furatoknak a köré „varrja”.
A Kademlia protokollt több peer-to-peer kliens használja (a hálózatok nem kompatibilisek egymással):
Néhány program a Kademlia protokollt külön használja: