EDonkey2000 (сеть)

EDonkey2000 (сеть)

eDonkey2000 (сеть)

eDonkey2000, eDonkey, eD2k, мул — файлообменная сеть, построенная по принципу P2P на основе сетевого протокола прикладного уровня MFTP. Распространённые в Рунете неформальные названия: «ослик», «осёл»,[1] пользователи сети — «ословоды».

Сеть состоит из нескольких миллионов клиентов и нескольких десятков серверов, взаимодействующих между собой. Клиентами являются пользователи, загружающие файлы, и пользователи, имеющие полные версии файлов («полные источники»). Серверы позволяют находить опубликованные файлы и других пользователей, имеющих эти файлы (полностью или частично). Сами файлы через серверы не проходят.

Содержание

Поиск

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

Возможен поиск по нескольким серверам сразу. Такие запросы и их результаты передаются через протокол UDP, чтобы уменьшить загрузку канала и количество подключений к серверам. Эта функция особенно полезна, если поиск на сервере, к которому клиент подключен в настоящее время, даёт низкий результат.

Кроме того, ссылки на файлы публикуются на различных форумах в Интернете, в виде так называемых «релизов».

Загрузка

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

Принцип работы: Client Z имеет все части Файла (символы строчных букв представляют части файла). Client W, X, и Y хотят загрузить Файл. Начиная с Client X и Client Y, оба имеют различные части Файла, они могут не только получить файл от Client Z, но и могут посылать файл друг другу. Это позволяет скачивать файл намного быстрее вместо того, чтобы загружать канал Client Z. Client W может запустить загрузку файла, даже если источник файла (Client Z) больше не имеет достаточной ширины канала для отсылки.

Межсерверные соединения

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

Хеш-алгоритм ed2k

Файлы в сети eDonkey идентифицируются благодаря использованию корневой MD4-хеш суммы MD4-сумм кусочков файла. Это позволяет считать одинаковыми файлы с разными названиями, но одинаковым содержимым, и различать файлы с разным содержимым, но одинаковым названием.

  1. Файлы делятся на равные кусочки по 9.728.000 байт (9500 КБ) и остаток.
  2. Для каждого кусочка вычисляется 128-битная MD4-хеш сумма.
  3. Если размер файла кратен 9.728.000 байтам, то есть размер остатка равен 0, всё равно рассчитывается сумма для этого пустого остатка.
  4. Затем все рассчитанные суммы объединяются в один единый массив (хеш-список) и рассчитывается MD4-хеш сумма всего этого массива. Эта сумма является корневой MD4-суммой — и идентификатором в сети eDonkey.
  5. Если размер файла меньше 9.728.000 байт, то хеш-список не составляется, а идентификатором файла служит MD4-хеш сумма всего файла.

К сожалению, существует второй вариант алгоритма вычисления контрольной суммы файлов, дающих другой результат для файлов, размер которых кратен размеру секции, то есть с размерами 9728000 байт, 19456000 байт и т.д. Оригинальный алгоритм (использовавшийся в edonkey2000 до версии v0.5.0) содержит ошибку (особенность), благодаря которой, для файлов, кратных 9728000 байт добавляется контрольная сумма пустой секции. Эту особенность далеко не все программы учитывают в расчётах (например emule учитывает, а shareaza нет). В edonkey2000 с версии v0.5.0 до версии v1.4.3 эта «особенность» исправлена.

Отличия от оригинального алгоритма в следующем:

  1. Если размер файла меньше или равен 9728000 байт, то в качестве идентификатора используется MD4 сумма всего файла.
  2. Если размер файла кратен 9728000 байт, то контрольная сумма «пустого» остатка не добавляется.

Различия алгоритмов столь минимально (и возникает только в конце расчёта суммы), что позволяет рассчитать обе суммы одновременно — практически без потери производительности. Вторая версия суммы для таких «особенных» файлов может быть указана, например, в комментариях (так делает программа avdump).

Вот, например, контрольные суммы для файлов, состоящих из одних нулевых кодов для разных «вариантов» алгоритма. Получить их можно, например, такой командой bash для unix систем:

for i in 1 2 3;do dd if=/dev/zero of=zero$i bs=9728000 count=$i;done
Размер файла (байт) "Оригинальный" алгоритм ed2k "Исправленный" алгоритм ed2k Сумма MD5
9728000 fc21d9af828f92a8df64beac3357425d d7def262a127cd79096a108e7a9fc138 0a62f20c78368021785dbb79b826d26c
19456000 114b21c63a74b6ca922291a11177dd5c 194ee9e4fa79b2ee9f8829284c466051 d01f6501678711bdaf6ef11237117c95
29184000 1932517fb346b94b5fbdcab55bf92169 9a68abb94d13f1e6ea13e968279652d7 fc0548e86e6106b68ffc248d871b8c2a

ED2K Ссылка

Используется для обмена файлами и публикации на порталах.

Пример[2]:

ed2k://|file|[Имя файла]|[Размер файла]|[ ed2k хеш файла ]
|h=[ AICH хеш файла]|p=[ Md4 хеш 1ой части ]:[ Md4 хеш 2ой части ]:...
|s=[ URL ссылка на файл]|/|sources,[ IP адрес источника ]:[ Порт источника]|/

Чаще всего встречается короткий вид.

ed2k://|file|[Имя файла]|[Размер файла]|[ ed2k хеш файла ]|/
  • Имя файла рекомендуется URI кодировать.
  • Размер файла - точный размер в байтах.

h — AICH (Advanced Intelligent Corruption Handler)

Дополнительный хеш для ed2k ссылки. Использует более мелкие части для получения хеша. Это позволяет более подробно исследовать файл для нахождения и устранения ошибок, и уменьшает количество данных необходимых для восстановления файла.

Рекомендуется публиковать его в месте со ссылкой, тогда он сразу становится доверяемым хешем и сразу же может использоваться для восстановления файла. Если же его не публиковать вместе со ссылкой, то клиенту необходимо будет получить один и тот же AICH хеш из нескольких источников, прежде чем этот хеш будет признан достоверным.

Расчет AICH хеша

Для получения хеша стандартный ed2k чанк (9728000 байт) делится на 53 части (52x 180KB и 1x 140KB). Каждая часть позже обрабатывается алгоритмом sha1. Далее пары хешей снова походят через алгоритм sha1 до тех пор пока не получается один единственный хеш.

p - набор MD4 хешей

В этом поле перечисляются MD4 хеши ed2k чанков через двоеточие ":". Позволяет проверять части на соответствие даже если нет возможности получить набор хешей другим путём. Например если если единственным источником файла является URL ссылка.

s - URL ссылка

Позволяет при отсутствии ed2k источников загрузить файл по URL ссылке. Обычно сервера доступны постоянно в отличие от ed2k источников которыми в основном являются персональные компьютеры подключенные к сети интернет. Благодаря этому первичная загрузка происходит с сервера а дальнейшее распространение идет уже в сети ed2k что разгружает сервер и увеличивает доступность файла.

Перед вставкой ссылка должна быть URI кодирована.

sources - источники

Позволяет указать ed2k источники, к которым можно обратиться для загрузки файла. Это даёт возможность начать загрузку файла без подключения к ed2k серверу просто подключившись к перечисленным источникам напрямую.

Данное поле имеет смысл использовать только если источник имеет постоянный IP адрес.

Коллекции

Для публикации на порталах ссылки могут быть объединены в коллекции.

Lugdunum server

  • Lugdunum server — серверное ПО сети eDonkey2000. Большинство серверов ed2k-сети работает на Lugdunum. Он более масштабируем и эффективен, чем оригинальный MetaMachine eDonkey server.

См. также

Ссылки

Примечания

  1. Неформальное название «ослик», «осёл» и «ослик ИЕ» также может относиться к браузеру Microsoft Internet Explorer.
  2. ссылка разбита на строчки для удобочитаемости

Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "EDonkey2000 (сеть)" в других словарях:

  • eDonkey2000 (сеть) — У этого термина существуют и другие значения, см. EDonkey2000. Эта статья о файлообменной сети. Для статьи о клиенте, см. EDonkey2000 (программа). eDonkey2000, eDonkey, eD2k  файлообменная сеть, построенная по принципу P2P на основе сетевого …   Википедия

  • EDonkey2000 (программа) — eDonkey2000 Тип Файлообменные сети Разработчик MetaMachine …   Википедия

  • EDonkey2000 — eDonkey2000: eDonkey2000 (программа). eDonkey2000 (сеть) (также известна как eDonkey, ed2k) …   Википедия

  • eDonkey2000 — eDonkey2000: eDonkey2000 (программа). eDonkey2000 (сеть) (также известна как eDonkey, ed2k) …   Википедия

  • eDonkey2000 (программа) — У этого термина существуют и другие значения, см. EDonkey2000. eDonkey2000 Тип Файлообменные сети …   Википедия

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

  • Пиринговая сеть — Одноранговые, децентрализованные или пиринговые (от англ. peer to peer, P2P точка точка) сети это компьютерные сети, основанные на равноправии участников. В таких сетях отсутствуют выделенные серверы, а каждый узел (peer) является как клиентом,… …   Википедия

  • Всемирная сеть — Примерное графическое изображение связей между сетями Интернета. Изображены только связи между серверами. Содержание 1 Написание 2 История 3 …   Википедия

  • Одноранговая сеть — Запрос «P2P» перенаправляется сюда; см. также другие значения. Одноранговая, децентрализованная или пиринговая (от англ. peer to peer, P2P равный к равному) сеть это оверлейная компьютерная сеть, основанная на равноправии участников. В такой …   Википедия

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


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»