Kad Network
Kad Network — децентрализованная бессерверная файлообменная сеть, которая использует протокол оверлейной сети Kademlia. Поддерживается в eMule (Kad 2.0), iMule, aMule и MLDonkey.
Использование
Kad Network использует UDP для :
- Поиска источников ed2k-хэша
- Поиска ed2k-хэша на ключевые слова в названиях файла
- Нахождения комментариев и оценки для файлов (хэша)
- Оказания услуг узлам, находящимся за файерволом (Low ID)
Заметим, что сеть Кад не используется для передачи файлов через Р2Р-сети. Когда начинается передача файлов, подключения клиентов происходят напрямую друг с другом (используя стандартные IP-сети).
Как и во всех децентрализованных сетях, Kad не требует официальных или общих серверов. Она не может быть закрыта отключением ключевых узлов. Однако, поскольку узлы постоянно связываются друг с другом, сеть может нагружать отдельные машины по сравнению с централизированной сетью.
Единственное, что нужно для соединения с этой сетью — IP-адрес и порт любого клиента, уже подключённого к сети. То есть требуется Bootstrap (самонастройка).
Как только происходит соединение с сетью, клиент опрашивает других клиентов, чтобы определить, можно ли с ними соединиться. Этот процесс похож на определение HighID/LowID на серверах.
Если удастся свободно соединиться, узел получает высокий ID (HighID) и статус open. В противном случае присваивается статус firewalled (и, соответственно, LowID).
Поиск
В сети Kad неважно, что вы ищете. Будь то файл, источник загрузки или другой пользователь.
В ней нет серверов, отслеживающих активность клиентов. В сущности, каждый клиент — маленький сервер, работающий в сети Kademlia как сервер для ключевых слов или источников. Хеш клиента определяет ключевые слова или источники.
Таким образом, цель любого запроса — найти соответствующих этому запросу клиентов. Затем вычисляется «расстояние» к конечному клиенту путём опроса других клиентов о наикратчайшем маршруте к нему.
Kad Network поддерживает поиск файлов как по имени, так и по размеру, расширению, битрейту и так далее.