Kademlia

Kademlia

Kademlia — это реализация распределённой хеш-таблицы для одноранговых компьютерных сетей, разработанная Петром Маймунковым и David Mazières. Протокол Kademlia определяет структуру сети, регулирующей связь между узлами, и способ обмена информацией в ней. Узлы сети, работающей по протоколу Kademlia, общаются между собой по протоколу транспортного уровня UDP. Узлы Kademlia хранят данные посредством распределённых хеш-таблиц (DHT). В итоге над существующей LAN/WAN (как интернет) создаётся новая виртуальная или оверлейная сеть, в которой каждый узел обозначается специальным номером («Node ID»). Этот номер также выполняет и другие функции.

Узел, который хочет присоединиться к сети, обязан пройти «загрузочную» процедуру (bootstrap process). В этот момент узел должен знать адрес другого узла (полученный от пользователя или взятый из списка), который уже входит в оверлейную сеть. Если подключаемый узел ещё не входил в эту сеть, то происходит расчет случайного значения ID, которое ещё не принадлежит никакому узлу. ID используется до момента выхода из сети.

Алгоритм Kademlia базируется на расчете «расстояния» между узлами путем применения операции исключающее ИЛИ к ID этих узлов.

Эта «дистанция» не имеет никакого отношения к географическому положению. К примеру, узлы из Германии и Австралии могут быть «соседними» в оверлейной сети.

Информация в Kademlia хранится в так называемых «значениях» (values). Каждое «значение» привязано к «ключу» (key).

При поиске соответствующего ключу значения алгоритм исследует сеть в несколько шагов. Каждый шаг приближает к искомому узлу до полного нахождения «значения» либо до отсутствия таких узлов. Количество контактируемых узлов зависит от размера сети логарифмически: при увеличении количества участников (number of participants) вдвое количество запросов увеличится всего на один.

Содержание

Использование в файлообменных сетях

Задача хранения индексов файлов в сети Kad раскладывается на всех участников сети. Если узел хочет «расшарить» файл, он обрабатывает его, получая хэш, который идентифицирует этот файл в сети. Затем узел ищет несколько узлов, ID которых близки к хэшу (размеры хешей и узлов должны совпадать), при этом на эти узлы отдается информация об адресе этого узла. Клиент при поиске ищет ID узла, который имеет наименьшую дистанцию к хэшу файла и извлекает из него адреса узлов, которые имеют этот файл. Контакты, хранимые в сети, всегда находятся в постоянном изменении, так как узлы постоянно подключаются и отключаются. Для отказоустойчивости эти контакты реплицируются по нескольким узлам.

Поиск осуществляется по ключевым словам. Имя файла разбивается на составные части. Каждое ключевое слово хэшируется и сохраняется в сети аналогично файловому хэшу, вместе с соответствующим файлом и хэшем файла. Ищущий узел выбирает одно из ключевых слов, соединяется с узлом, чей ID самый близкий к хэшу ключа и запрашивает у него список файлов для этого ключа. Так как каждый файл в списке имеет свой хэш, имя файла легко вычисляется.

Клиенты файлообменных сетей, использующие различные вариации протокола Kademlia

См. также

Kad Network

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "Kademlia" в других словарях:

  • Kademlia — is a distributed hash table for decentralized peer to peer computer networks designed by Petar Maymounkov and David Mazières [* [http://pdos.csail.mit.edu/ petar/papers/maymounkov kademlia lncs.pdf Kademlia: A Peer to peer information system… …   Wikipedia

  • Kademlia — (kad) est un réseau de recouvrement créé pour décentraliser les autres réseaux d échange de fichiers pair à pair (Peer to Peer ou P2P en anglais). Il a été conçu par Petar Maymounkov et David Mazières en 2002[1]. Le protocole précise la structure …   Wikipédia en Français

  • Kademlia — ist eine Technik für Peer to Peer Netze, die eine verteilte Hashtabelle implementiert, also Informationen in einem verteilten Netzwerk speichert. Kademlia legt nur Art und Aufbau des Netzes fest. Es wurde von Petar Maymounkov und David Mazières… …   Deutsch Wikipedia

  • Kademlia — es un protocolo de la capa de aplicación diseñado para redes P2P descentralizadas. Especifica la estructura de la red, regula la comunicación entre nodos y el intercambio de información. Los nodos se comunican entre sí usando el protocolo sin… …   Wikipedia Español

  • Kademlia — Protocolo de la capa de aplicación diseñado para redes P2P descentralizadas. Especifica la estructura de la red, regula la comunicación entre nodos y el intercambio de información. Los nodos se comunican entre sí usando el protocolo sin conexión… …   Enciclopedia Universal

  • Kadmelia — Kademlia Kademlia est un réseau de recouvrement créé pour décentraliser les autres réseaux d échange de fichiers pair à pair (Peer to Peer ou P2P en anglais). Le protocole précise la structure du réseau Kademlia, les communications entre les… …   Wikipédia en Français

  • E-Mule — eMule Downloadübersicht bei eMule 0.48a Basisdaten Entwickler …   Deutsch Wikipedia

  • EMule — Downloadübersicht bei eMule 0.48a Basisdaten Entwickler …   Deutsch Wikipedia

  • Emule — Downloadübersicht bei eMule 0.48a Basisdaten Entwickler …   Deutsch Wikipedia

  • File-Sharing — Mit Filesharing (deutsch Dateifreigabe oder gemeinsamer Dateizugriff, wörtlich Dateien teilen) bezeichnet man das direkte Weitergeben von Dateien zwischen Benutzern des Internets unter Verwendung eines Peer to Peer Netzwerks. Dabei befinden sich… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»