Распределенная хеш-таблица
Распределенная хеш-таблица
Распределенная хеш-таблица (англ. Distributed hash table, DHT) — протокол передачи данных и механизм сохранения информации о ресурсах и участниках файлообменной сети типа peer-to-peer децентрализуют (без выделенного сервера), непосредственно на клиентах сети.
Одной из реализаций DHT есть протокол Kademlia
.
Опишем типичную организацию децентрализующей сети, которая использует распределенную хеш-таблицю. Каждый участник сети при первом подключении к сети получает уникальный номер (ID), который выбирается из определенного множественного числа, в некоторых реализациях это 160-битовое число, которое генерируется случайным чином. Для сравнения двух ID вводится понятие метрики или расстояния. В случае Kademlia оно вычисляется как исключительное «или» двух чисел (XOR). Чем меньшее значение такого расстояния — тем два участника сети считаются более близкими друг к другу. Метрика введена таким образом не отображает географическую близость участников сети.
Когда участник хочет разместить в сети некоторый ресурс (файл), он обробяє его содержание и вычисляет значение хеш-функції которая будет, идентифицировать ресурс в сети. Хешувальна функция избирается таким образом, чтобы уникальные номера участников и хеш-функція приобретали значения из одного множественного числа. Обсчитав значение хеш-функції, участник пытается отыскать другого участника сети, ID которого близкий к найденному хешу. Найдя, розміщувач ресурсу передает найденному участнику свой IP-адресу и хеш, которые тот хранит у себя.
Таким образом, клиент сети, который потом хочет загрузить ресурс, зная из некоторых источников его хеш, пытается узнать сведения о нахождении ресурса у тех участников сети, уникальный номер которых близок к хешу.
Поиск ресурсов за названиями файлов может быть организовано таким способом. Имя файла разбивается на ключевые слова, которые при размещении ресурса хешуються и сохраняются в сети вместе с названием файла и его хешем. Номер участника на котором эти сведения зберігаєються находится аналогичным способом — он должен быть как можно ближе к значению хешу соответствующего ключевого слова. Поиск за именем файла происходит следующим образом — по ключевым словам вычисляется их хеш, и у участников сети, которые имеют ID близкие к этому хешу відшуковується полное название файла вместе со значением хеш-функции.
Incoming search terms:
- распределённая хеш-таблица
- распределённая хэш таблица
- хеш таблица

