logo
Пиринговые сети. Понятие и виды

Особенности работы

В сравнении со своими предшественниками Winny и Share, требования к пропускной способности интернет-соединения, и свободному месту на жёстком диске в Perfect Dark значительно возросли.

· Минимальная скорость аплоада: 100 Кбайтс;

· Место, занимаемое на диске под распределённое файловое хранилище сети Perfect Dark (каталог unity): как минимум 40 Гб;

· Так же, в отличие от предшественников, Perfect Dark осуществляет постоянную закачку частей файлов, пока его файловое хранилище не достигнет указанного значения.

3.2 eMule

eMule -- свободный файлообменный клиент для Microsoft Windows. Был разработан как замена собственническому клиенту eDonkey2000. В настоящее время может работать как с eDonkey сетью (ed2k), так и с сетью Kademlia.

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

На основе eMule разработан ряд модификаций -- так называемых «модов»; кроме того, доступно его кросс-платформенное ответвление aMule. Поскольку eMule поставляется с открытыми исходными кодами, находится немало желающих нечестно использовать p2p сеть (то есть не «делиться» файлами, а только «получать» их), в которой работает этот клиент. Для этого сегодня разработано немало «нечестных» клиентов, работающих в этой же сети. Чтобы защититься от «нахлебников», в eMule было разработано множество проверок, которые затрудняют неравноценный обмен информацией и блокируют «нечестные» моды.

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

Начиная с версии 0.47b появилась возможность скрывать использование сети eDonkey от провайдеров благодаря вуалированию протокола, которое, тем не менее, не гарантирует такой степени сокрытия информации, как полноценное её шифрование. Также произошло обновление протокола Kad до версии 2.0, который теперь обеспечивает бомльшую анонимность (случаев, когда IP-адрес открывается другому клиенту стало меньше) и в перспективе снимает ограничение в 300 результатов поиска на узел сети. С версии 0.48a добавлена поддержка UPnP на основе кода Shareaza.

Кроме того, в eMule разработана функция MobileMule, которая позволяет управлять клиентом с мобильного телефона, а также вебсервер, который выполняет ту же роль, но только не с телефона, а с другого компьютера.

Некоторые провайдеры модифицируют eMule для проверки аутентификации на сервере, а обмен в сети Kademlia попросту отключается.

Начиная с версии 42.1 eMule поддерживает 2 разных типа сетей: классическую серверную eD2k и новую безсерверную Kademlia.Обе сети обладают примерно одинаковой функциональностью. Они позволяют находить пользователей или файлы для скачивания.

Идентификация файлов

Каждому файлу соответствует свой хэш. Хэш - это комбинация цифр и букв для однозначной идентификации файла. Хэш не зависит от имени файла, только от его содержимого. Это позволяет находить источники файла независимо от того, какое имя тот или иной пользователь дал файлу.Кроме того, файлы разделяются на части размером 9.28 Мб. Для каждой части также вычисляется хэш. Например, 600-Мб файл будет содержать 65 частей. Общий хэш, т.е. хэш файла, вычисляется на основе хэшей частей.

Идентификация других клиентов

Аналогично файлам каждый пользователь сети получает постоянный уникальный пользовательский хэш. Процесс идентификации пользователей защищен от злоумышленников с помощью технологии открытых / закрытых ключей.

Скачивание данных

Важно понимать, что скачивание данных в eMule не зависит от выбора сети, от него зависит только способ поиска файлов и нахождение пользователей-источников.Как только источник найден, ваш клиент связывается с ним, после чего источник ставит вас в очередь. По достижении начала очереди вы начинаете скачивать данные.

Классическая серверная eD2k сеть

Подключение к сети

Ключевым элементом этой сети является eD2k-сервер. Каждый клиент должен подключиться к какому-либо серверу чтобы войти в сеть.При входе в сеть сервер проверяет возможность другим клиентам свободно подключаться к вашему. Положительный результат приводит к присваиванию вам так называемого High ID (высокий уровень), отрицательный - к Low ID (низкий уровень).После того как ID присвоен, eMule посылает серверу полный список ваших файлов обмена. Сервер добавляет этот список, состоящий из имён файлов и их хэшей, в свою базу данных.

Поиск файлов

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

Нахождение источников файлов

Файлы для закачки могут быть добавлены с помощью поиска или специальных ссылок ed2k://, которые размещают многие web-сервера.После добавления файла в список Приема eMule запрашивает источники к нему сначала у локального (подключенного) сервера, потом у всех остальных серверов сети. Сервер производит в своей базе данных поиск по хэшу файла и возвращает всех известных ему клиентов, имеющих этот файл для обмена.Источники - это другие клиенты, которые обладают хотя бы одной частью (9.28 Мб) файла.

Безсерверная сеть Kademlia

Подключение к сети

Для подключения к этой сети необходимо знать IP-адрес и порт любого уже подключенного клиента. В этом случае происходит Самонастройка (Boot Strap).При входе в сеть клиент с помощью других клиентов опрашивает себя на возможность свободного подключения. Этот процесс похож на проверку HighID/LowID сервером. Если вы свободно доступны, то получаете ID (аналогично HighID) и статус Открыт. В противном случае вы получаете статус Файрвол. Начиная с версии 44a сеть Kademlia поддерживает Приятеля для зафайрволенных пользователей. Приятели это клиенты Kademlia со статусом Открыт, работающие как посредники для соединений, недоступных пользователям за файрволом.

Поиск в сети Kademlia

В этой сети нет разницы, что вы ищете: имена файлов, источники, других пользователей - процесс выполняется примерно одинаково.Здесь нет серверов для хранения данных пользователей и списков их открытых файлов, эта работа выполняется каждым подключенным к сети клиентом. Иначе говоря, каждый клиент является также мини-сервером.Используя принцип уникальности пользовательского хэша, в Kademlia за каждым пользователем закрепляется определенная "ответственность". Клиент в сети Kademlia работает как сервер для определяемых его хэшем набора ключевых слов или источников.Таким образом, цель любого поиска - найти клиентов, ответственных за искомые данные. Это осуществляется с помощью сложного алгоритма вычисления кратчайшей дистанции до нужного клиента путем опроса других клиентов.

Итоги

Обе сети используют абсолютно разные концепции для достижения одинаковой цели: поиск файлов и нахождение источников. Основная идея Kademlia - независимость от серверов и масштабируемость. Сервера могут обслуживать ограниченное число клиентов, и в случае отказа большого сервера сеть может серьезно пострадать.Kademlia же самоорганизующаяся сеть и автоматически перестраивается для достижения наилучшей производительности в зависимости от количества пользователей и качества их соединений. Следовательно, она менее критична к крупным сбоям.