Вторник, 2024-11-26, 5:55 PM
Приветствую Вас Гость | RSS
Главная | Kad Network, Kademlia, ed2k, eMule - Форум | Регистрация | Вход
Пиринговые сети
Форма входа

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Kad Network, Kademlia, ed2k, eMule
netnsk7072Дата: Понедельник, 2009-08-31, 4:11 PM | Сообщение # 1
Майор
Группа: Администраторы
Сообщений: 96
Репутация: 0
Статус: Offline
Kad Network — децентрализованная без серверная файлообменная сеть, которая использует протокол оверлейной сети Kademlia. Поддерживается в eMule (Kad 2.0), aMule и MLDonkey.

Использование

Kad Network использует UDP для :

* Поиска источников ed2k хэша
* Поиска ed2k хэша на ключевые слова в названиях файла
* Нахождения комментариев и оценки для файлов (хэша)
* Оказания услуг узлам, находящимся за файерволом (Low ID)

Заметим, что Кад сеть не используется для передачи файлов через Р2Р сети. Когда начинается передача файлов, подключения клиентов происходят напрямую друг с другом (используя стандартные IP-сети).
Как и во всех децентрализованных сетях, Kad не требует официальных или общих серверов. Она не может быть закрыта отключением ключевых узлов. Однако, поскольку узлы постоянно связываются друг с другом, сеть может нагружать отдельные машины по сравнению с централизированной сетью.
Единственное, что нужно для соединения с этой сетью — IP и порт любого клиента, уже подключённого к сети. То есть требуется Boot Strap (самонастройка).
Как только происходит соединение с сетью, клиент опрашивает других клиентов, чтобы определить, можно ли с ними соединиться. Этот процесс похож на определение HighID/LowID на серверах.
Если удастся свободно соединиться, узел получает высокий ID (HighID) и статус open. В противном случае присваивается статус firewalled (и, соответственно, LowID).

Поиск

В сети Kad не важно, что искать. Будь то файл, источник загрузки или другой пользователь.
В ней нет серверов, отслеживающих активность клиентов. В сущности, каждый клиент — маленький сервер, работающий в сети Kademlia как сервер для ключевых слов или источников. Хеш клиента определяет ключевые слова или источники.
Таким образом, цель любого запроса — найти соответствующих этому запросу клиентов. Затем вычисляется "расстояние" к конечному клиенту путем опроса других клиентов о наикратчайшем маршруте к нему.
Kad Network поддерживает поиск файлов как по имени, так и по размеру, расширению, битрейту и так далее.

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

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

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

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

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

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

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

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

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

eMule — свободный клиент файлообменной сети ed2k для Microsoft Windows. Был разработан как замена собственническому клиенту eDonkey2000. Также может работать с Kad сетью.

Проект размещён на SourceForge.net. В 2007 году eMule завоевал номинацию «Best New Project»[1](хотя к тому времени проект давно уже новым не являлся).

Со времени первых своих версий и до сегодняшнего дня, eMule претерпел множество изменений и улучшений. Сеть часто пытались закрыть. Для этого создавались программы, которые наносили вред сети и отбивали у людей желание пользоваться eMule’ом (или аналогичными клиентами, например, edonkey, ilphant и др.). Например, была разработана система порчи файлов, когда вместо оригинальных его частей в процессе отдачи подсовывались заведомо повреждённые. На сегодня это сделать практически невозможно, так как в современных версиях производится постоянная проверка частей при закачке (при помощи т.н AICH-хеша). Даже если часть случайно повредится, то eMule сразу это заметит и перекачает заново.

 
  • Страница 1 из 1
  • 1
Поиск:

/forum/5-4-1


Copyright www.netnsk.ru © 2024
Сделать бесплатный сайт с uCoz