Kademlia

Материал из Викиреальностя
Перейти к: навигация, поиск

Kademlia — это протокол виртуальной сети, созданный для функционирования полностью децентрализованных файлообменных сетей. Его основное отличие от других протоколов в том, что он независим от центральных серверов. В бессерверной сети каждый пользователь является узлом, через него проходят поисковые запросы и служебная информация. Kad по сути является заменой серверной сети eDonkey2000 (ed2k), но, в отличии от ed2k, Каду не требуется центральный сервер для связи. Все пользователи сети являются серверами и равны между собой по рангу (она и называется «одноранговая сеть»).

Содержание

[править] Зачем нужен Kad?

Чтобы ответить на этот вопрос, условно разделим файлообменные р2р-сети на поколения:

1-ое поколение (Napster)

Файлообменная сеть, имеющая один центральный сервер, через который пользователи ищут нужные им файлы, и далее напрямую соединяются между собой. Минус такого подхода очевиден — при закрытии центрального сервера ликвидируется вся сеть.

2-ое поколение (eDonkey2000, BitTorrent, Direct Connect)

Чтобы сеть не была уязвима, необходимо иметь несколько центральных серверов. В сетях второго поколения реализована частичная децентрализация, когда серверов много и подключиться можно к любому из них. Если закроют большинство центральных узлов, то сеть продолжит подпольное функционирование, юзеры будут пользоваться альтернативными серверами. Но чем больше будет закрыто центральных (координирующих) серверов, тем меньше становится сеть.

3-е поколение (Kademlia, Gnutella)

Сеть не имеет центрального сервера, все пользователи являются серверами этой сети. Закрыть сеть практически невозможно, для этого надо отключить всех её пользователей.

4-e поколение (RetroShare)

Тёмные сети или даркнеты позволяют устанавливать соединения только с определёнными пользователем доверенным пирам (Friend-to-friend), что теоретически позволяет избежать любых деанонимизирующих атак. Ведь, в этом случае, IP-адреса всех пользователей сети (за исключением узкого круга доверенных) не просто трудно обнаружить, а в принципе невозможно обнаружить. Такие сети, как FreeNet и GNUnet так же способны работать в этом режиме.

[править] Сравнение с Интернетом

После запуска Советским Союзом искусственного спутника Земли в 1957 году, Министерство обороны США посчитало, что на случай войны Америке нужна надёжная система передачи информации. Агентство передовых исследовательских проектов США (ARPA) предложило разработать для этого компьютерную сеть. Основная задача заключалась в создании не просто системы передачи данных, а сети с отсутствием строгой иерархичности. Система не должна иметь центрального узла и главным условием была выживаемость сети при как можно более сильном нарушении связности, на случай ядерного удара Советского Союза по центрам связи США

Так появился Интернет.

Времена меняются, и теперь в роли «Империи зла» выступают звукозаписывающие компании США и киноиздатели Голливуда. Сеть Kad является той самой системой, против которой ещё не придумано оружие, ведь её главная задача — это работоспособность сети при любых атаках.

Сеть Kad могла работать и раньше, но несколько лет назад популярность бессерверных сетей сдерживали две причины. Во-первых, Kad генерирует служебную информацию, поэтому для нормальной работы в сети вам желательно иметь соединение с Интернетом на скорости от 128 кбит/с. Во-вторых, работающая сеть нагружает центральный процессор, но на современных компьютерах это практически незаметно.

[править] Как работает Kad?

Kad по сути является заменой серверной сети ed2k и выполняет те же самые функции, что и серверная сеть, ссылки на файлы имеют тот же вид ed2k:// как в сети eDonkey2000. Но в отличии от eDonkey ей не требуется сервер для связи. У каждого клиента Kad Network на компьютере сохраняется файл с данными о источниках и информация о файлах этого источника, которые вы скачиваете. Когда через ваш компьютер идёт поисковый запрос от другого человека, то программа проверяет файл с данными и ищет подходящие источники, если находит, то передаёт информацию тому, кто ищет. Если не находит, то отсылает запрос дальше. Т.е проще говоря, поисковая машина работает как вирус: проверяет наличие файла у вас, если его нет, то идёт по всем вашим контактам дальше и проверяет его у всех ваших знакомых, потом идёт по контактам знакомых и так далее в геометрической прогрессии. Чисто математически процедура поиска происходит довольно быстро.

Сеть Kad поддерживается в программе eMule начиная с версии 0.40 и выше. В последней версии программы eMule 0.48a функционирует усовершенственная версия протокола Kad 2.0. Отдельного клиента для сети Kad Network пока не существует.

Для подключения к сети Kad вам нужен адрес хотя бы одного человека из этой сети. Т.е сперва пользователь подключается к нему, а дальше уже собирает информацию о других людях через него. Для того, чтобы найти этого первого человека, необходимо скачать файл nodes.dat (см. kad ноды) и положить его в папку eMule/config. В этом файле находятся адреса людей, через которые пользователь сможет выйти в сеть. Файл nodes.dat необходим при первом запуске программы eMule, при последующих запусках пользователь будет иметь свой собственный nodes.dat.

После входа в сеть пользователю генерируется сетевой адрес идентификатор (ID). Cеть Kad, в отличии от ed2k, работает только через сетевой протокол UDP.

[править] Происхождение и смысл слова Kademlia

Слово Kademlia имеет турецкое происхождение (разработчик Када по национальности болгарин) и означает счастливого человека, приносящего счастье. Неформально говоря, Kademlia приносит счастье простым файлообменщикам, и разорение организациям-правообладателям типа RIAA.

[править] Источник

Kademlia относится к теме «Файлообмен»   ±