Kademlia – Protokół P2P
Kademlia to protokół komunikacyjny umożliwiający wyszukiwanie zawartości w sieciach peer-to-peer (P2P) bez konieczności korzystania z centralnego serwera. Oparty jest na algorytmie rozproszonej tablicy mieszającej (DHT), co zapewnia mu decentralizację i odporność na awarie w dużej skali.
Podstawowe cechy Kademlii
Struktura sieci Kademlia przypomina drzewo binarne, w którym każdy węzeł ma unikatowy identyfikator (nodeID). Protokół został zaprojektowany przez Petara Maymounkova i Davida Mazieresa.
Terminologia
W Kademlii wyróżnia się trzy kluczowe elementy:
- Element alfa: Liczba reprezentująca stopień równoległych połączeń (zwykle 3).
- Element B: Rozmiar kluczy identyfikujących węzły (standardowo 160 bitów).
- Element k: Maksymalna liczba kontaktów przechowywanych w jednym pojemniku (zazwyczaj 20).
Węzeł w Kademlii
Węzeł to użytkownik sieci, który posiada nodeID oraz adres IP. Węzły współpracują ze sobą, przechowując informacje o danych. W przypadku potrzeby odnalezienia wartości, węzeł szuka jej na najbliższych węzłach.
ID węzła (nodeID) i Klucze
ID węzła jest 160-bitową liczbą binarną, wybieraną losowo. Klucze przypisane do danych również mają długość B, a pary
Dystans: metryka XOR
Dystans między kluczami lub ID węzłów określany jest poprzez operację XOR, co pozwala na ustalenie bliskości między nimi.
Organizacja kontaktów – k-pojemniki
Węzły grupują swoje kontakty w k-pojemnikach, które przechowują informacje o maksymalnie k kontaktach, organizowanych według dystansu. Kontakty są sortowane według ostatniej komunikacji, co pozwala na efektywne zarządzanie połączeniami.
Procedury Kademlii
Protokół Kademlia definiuje cztery główne procedury:
- PING: Umożliwia weryfikację aktywności węzła.
- STORE: Umożliwia przechowywanie par
. - FIND_NODE: Pozwala na lokalizację najbliższych węzłów do podanego klucza.
- FIND_VALUE: Służy do wyszukiwania wartości przypisanej do danego klucza.
Oprogramowanie P2P wykorzystujące Kademlię
- VarVar – pierwszy klient obsługujący Kademlię
- eMule (od wersji 0.42)
- Sieć overnet
- RevConnect – klient Direct Connect z rozszerzeniami Kademlii
Różne aplikacje P2P nie są ze sobą kompatybilne, co podkreśla unikalność każdej z sieci.