stringtranslate.com

эМюль

eMule — это бесплатное приложение для обмена файлами по пиринговой сети для Microsoft Windows . Запущенное в мае 2002 года как альтернатива eDonkey2000 , eMule теперь подключается как к сети eDonkey , так и к сети Kad . Отличительными особенностями eMule являются прямой обмен источниками между клиентскими узлами, быстрое восстановление поврежденных загрузок и использование кредитной системы для поощрения часто загружающих пользователей. Кроме того, eMule передает данные в сжатом zlib виде для экономии полосы пропускания.

eMule написан на языке C++ с использованием Microsoft Foundation Classes . С июля 2002 года eMule является свободным программным обеспечением , выпущенным по лицензии GNU General Public License ; его популярность привела к использованию кодовой базы eMule в качестве основы кроссплатформенных клиентов aMule , JMule , xMule , а также к выпуску множества модов eMule (модификаций оригинального eMule) в Интернете.

По состоянию на октябрь 2023 года это пятый по количеству загрузок проект на SourceForge , с более чем 693 миллионами загрузок. [5]

Разработка была позднее возобновлена ​​сообществом как eMule Community ; последняя стабильная версия — 0.70b. [4]

История

Проект eMule был начат 13 мая 2002 года Хендриком Брайткройцем (также известным как Merkur), который был недоволен исходным клиентом eDonkey2000 . Со временем к работе присоединилось больше разработчиков. Исходный код был впервые выпущен в версии 0.02 и опубликован на SourceForge 6 июля 2002 года.

eMule был впервые выпущен как двоичный файл 4 августа 2002 года в версии 0.05a. «Кредитная система» была впервые реализована 14 сентября 2002 года в версии 0.19a. Веб-сайт проекта eMule был запущен 8 декабря 2002 года.

Узлы в сети Kad

Текущие версии (v0.40+) eMule добавили поддержку сети Kad . Эта сеть имеет реализацию протокола Kademlia , которая не полагается на центральные серверы, как сеть eDonkey , а является реализацией распределенной хэш-таблицы .

В последних версиях также была добавлена ​​возможность поиска с использованием Unicode , что позволяет искать файлы с нелатинскими алфавитами, а также возможность искать на серверах файлы с полными источниками незавершенных файлов в сети eDonkey .

В новых версиях добавлен «Список плохих источников». Приложение добавляет IP-адрес в этот список после одного неудачного подключения. После добавления IP в «Список плохих источников» приложение рассматривает этот IP как «мертвый» IP. Недоступные IP-адреса блокируются на период времени от 15 до 45 минут. Некоторые пользователи жаловались, что это приводит к потере активных источников и, как следствие, к снижению скорости загрузки.

Другие недавние дополнения включают: возможность запуска eMule из учетной записи пользователя с ограниченными привилегиями (что повышает безопасность) и AICH (что позволяет не загружать повторно поврежденный фрагмент целиком).

В версии 0.46b добавлена ​​возможность создания и управления файлами «eMule collection», которые содержат набор ссылок на файлы, предназначенные для загрузки в виде набора.

С 2007 года многие интернет-провайдеры использовали регулирование пропускной способности для обычных портов P2P, что приводило к снижению производительности. [6] Версия 0.47b добавляет обфускацию протокола , и eMule автоматически выбирает два случайных номера порта в мастере запуска.

Основные понятия

Статистика передачи файлов v0.48a

Каждый файл, который передается с помощью eMule, хэшируется как список хэшей , состоящий из отдельных фрагментов по 9500 КиБ с использованием алгоритма MD4 . Хэш MD4 верхнего уровня , размер файла, имя файла и несколько вторичных атрибутов поиска, таких как битрейт и кодек, хранятся на серверах eD2k и в сети Kad без сервера .

Параметры поиска в eMule v0.50a

Пользователи могут искать имена файлов в servers/kad и им предоставляются имена файлов и уникальный идентификатор, состоящий из MD4-хеша верхнего уровня для файла и размера файла, который может быть добавлен к их загрузкам. Затем клиент спрашивает серверы, где другие клиенты используют этот хеш. Серверы возвращают набор IP/портов, которые указывают местоположения клиентов, которые совместно используют файл.

Затем eMule запрашивает у пиров файл. Затем eMule будет поставлен в очередь, пока не станет доступен слот для загрузки.

После загрузки и проверки полного фрагмента размером 9 728 000 байт (9500 КиБ) загрузчик также делится этими данными, помогая другим также загрузить файл.

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

Более новые версии eMule поддерживают AICH ( Advanced Intelligent Corruption Handling ). Это сделано для того, чтобы сделать обработку повреждений eMule конкурентоспособной с BitTorrent . Хэши SHA-1 вычисляются для каждого 180-килобайтного фрагмента, и формируется целое дерево хэшей SHA- 1. AICH обрабатывается исключительно с помощью одноранговых исходных обменов. eMule требует 10 согласованных одноранговых узлов относительно хеша SHA-1, поэтому редкие файлы, как правило, не получают выгоды от AICH.

Низкий идентификатор

Пользователи, которые не могут быть доступны извне, потому что они защищены брандмауэром , находятся за устройством NAT , на котором неправильно настроена переадресация портов , или чей IP-адрес заканчивается на ноль (например, 123.45.67.0) [7], получают от серверов «Low ID». Они по-прежнему могут загружать и скачивать, но нуждаются в помощи серверов или других клиентов kad , чтобы другие клиенты могли с ними связаться. Поскольку они не могут быть уведомлены о том, что находятся перед очередью загрузки, им приходится опрашивать пиров, доступен ли слот загрузки. Поскольку они не могут подключиться ни к каким другим клиентам с низким идентификатором, они видят только 40–60% [8] клиентов, которых может видеть High ID. Их IP-адреса /порты не обмениваются между собой, что ограничивает их возможности по поиску источников с помощью чистого обмена источниками eMule P2P.

Клиент с низким ID также потребляет гораздо больше данных [9] на eserver, чем клиент с высоким ID из-за обратных вызовов lowid. Кроме того, релизер или тяжелый загрузчик, использующий мод релизера, такой как MorphXT или Xtreme, который вынужден работать с низким ID (гостиничный номер, работа), также обнаружит, что у него будет мало контроля над приоритетами загрузки (особенно powershares), поскольку серверы, по-видимому, ограничивают переадресацию соединений для каждого клиента, тем самым превращая свою очередь загрузки в ситуацию конкуренции, когда первый, кто сможет получить переадресацию и найти открытый слот, получает ее.

Кредитная система

Кредиты не являются глобальными; они обмениваются между двумя конкретными клиентами. Система кредитов используется для вознаграждения пользователей, вносящих вклад в сеть, т. е. загружающих данные другим клиентам. Строгая система очередей в eMule основана на времени ожидания, которое пользователь провел в очереди. Система кредитов обеспечивает основной модификатор этого времени ожидания, принимая во внимание загрузку и скачивание между двумя клиентами. Чем больше пользователь загружает данные клиенту, тем быстрее он продвигается в очереди этого клиента. Модификаторы рассчитываются на основе объема переданных данных между двумя клиентами. Используемые значения можно увидеть в диалоговом окне сведений о клиенте. Чтобы просмотреть эту информацию, щелкните правой кнопкой мыши любого пользователя и выберите «Просмотреть сведения».

Все клиенты, загружающие вам файлы, вознаграждаются кредитной системой. Неважно, поддерживает ли клиент кредитную систему или нет. Неподдерживающие клиенты не предоставят вам кредитов, когда вы загружаете им файлы. Кредиты хранятся в файле clients.met. Уникальный хэш пользователя используется для идентификации клиента. Ваши собственные кредиты сохраняются клиентом, который должен вам кредит. Это предотвращает подделку кредитов. Ваши собственные кредиты не могут быть отображены.

Формула расчета официальной кредитной системы состоит из двух следующих соотношений: [10]

Затем оба соотношения сравниваются, и меньшее из них используется в качестве модификатора. Существует несколько условий:

Исключение из этого правила применяется только тогда, когда пиру назначается «слот друга» после добавления в список друзей клиента. Это автоматически назначает зарезервированный слот загрузки для этого пира, чтобы он/она мог начать загрузку независимо от кредитного рейтинга. Только один слот друга может быть зарезервирован, чтобы предотвратить любую форму злоупотребления, такую ​​как дискриминация загрузки. [11]

eMule по сравнению с другими P2P-приложениями

eMule считается наиболее полной реализацией протокола eD2k и его расширений [ кем? ] . eMule поддерживает AICH, что делает его обработку повреждений конкурентоспособной с BitTorrent . eMule также поддерживает обмены источниками, что позволяет ему существенно снизить нагрузку на серверы и Kad. Благодаря высокому идентификатору и хорошо организованным загрузкам, предварительно полученным сервером и/или Kad, eMule может дольше поддерживать независимость одноранговых источников этих файлов после отключения от eD2k и Kad.

eMule моды

Как популярная программа с открытым исходным кодом, eMule имеет множество вариантов, обычно называемых модами. Некоторые моды начинались как ответвления официальных версий eMule, а затем продолжали развиваться независимо, а не модифицировали новые официальные версии. Примером такого типа мода является устаревший eMule Plus . Поскольку eMule Plus отделился до выпуска v0.30, первой официальной версии, включающей Kad, eMule Plus не поддерживает эту функцию, в основном потому, что разработка проекта была заброшена около 4 лет назад. Другие текущие моды следуют официальным выпускам eMule и выпускают собственные релизы на основе каждого нового выпуска официальной версии. Поскольку распространяемые моды обязаны публично делиться своим исходным кодом в соответствии с GNU General Public License, полезные функции, созданные разработчиками модов, могут быть быстро включены в официальную версию.

Поддельные сайты eMule и вредоносное ПО

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

Эти версии обычно можно найти через вращающиеся объявления, иногда размещаемые на легальных сайтах. [12] [13]

Китайские моды клиента eMule

easyMule от VeryCD — популярный клиент eMule среди китайских пользователей. Он имеет упрощенный интерфейс и не имеет некоторых расширенных настроек, доступных в стандартном клиенте eMule. Начиная с версии 1.1 он поддерживает только поиск по базе данных VeryCD, хотя внешние ссылки eD2k принимаются. Некоторые критиковали VeryCD за вводящее в заблуждение название «Dianlv» ( китайский :电驴; пиньинь : Diàn Lǘ ; букв. «Электронный осел»; обычно китайское название eDonkey или eMule) и сайт emule.org.cn, который называется «Китайский сайт Dianlv (eMule)» (电驴(eMule)中文网站). [14] [15]

Версия сообщества

29 июля 2017 года была выпущена «Community Version» eMule [16], поддерживаемая официальными пользователями форума. Эта версия доступна для загрузки в репозитории GitHub и основана на последнем официальном релизе или бета-версии, но содержит дополнительные функции и исправления ошибок, сделанные сообществом, отдавая приоритет более актуальной версии. [17]

Смотрите также

Ссылки

  1. ^ "Проект eMule на SourceForge.net". eMule.SourceForge.net. 2010-04-07 . Получено 2010-07-11 .
  2. ^ Lextrait, Vincent (январь 2010 г.). "The Programming Languages ​​Beacon, v10.0". Архивировано из оригинала 30 мая 2012 г. Получено 14 марта 2010 г.
  3. ^ Источник eMule 0.50a Архивировано 13 июня 2011 г. на Wayback Machine : /srchybrid/lang/
  4. ^ ab "Релизы". GitHub .
  5. ^ "Лучшие списки проектов". sourceforge.net . Получено 29.10.2023 .
  6. ^ "DailyTech - Еще больше признаний интернет-провайдеров: мы ограничиваем трафик P2P". Архивировано из оригинала 2009-09-16 . Получено 2009-08-08 .
  7. ^ forum.emule-project.net Архивировано 27.09.2007 на Wayback Machine Как рассчитывается низкий идентификатор.
  8. ^ "Low Id customers increase - Official eMule-Board". emule-project.net . Архивировано из оригинала 2023-01-17 . Получено 2007-11-02 .
  9. ^ forum.emule-project.net Архивировано 17.01.2023 в техническом сообщении lugdunummaster на Wayback Machine о прямом и сопутствующем потреблении полосы пропускания восходящего потока клиентами с низким и высоким идентификаторами на RazorBack, в этом примере в 20 раз больше накладных расходов
  10. ^ "eMule-Project.net - Официальная домашняя страница eMule. Загрузки, помощь, документы, новости..." emule-project.net . Архивировано из оригинала 2008-05-12 . Получено 2008-05-22 .
  11. ^ "eMule-Project.net - Официальная домашняя страница eMule. Загрузки, помощь, документация, новости..." www.emule-project.net . Архивировано из оригинала 2007-10-11 . Получено 2007-10-12 .
  12. ^ "Список программ обмена файлами, зараженных шпионским ПО". 10 ноября 2006 г. Архивировано из оригинала 26 февраля 2009 г. Получено 11.03.2009 .
  13. ^ "Мошеннические сайты для eMule". 11 декабря 2008 г. Архивировано из оригинала 2009-03-07 . Получено 2009-03-16 .
  14. ^ 陈佼"每周一蛋疼":诚恳建议"电驴"改名 (на китайском языке). cnBeta. Архивировано из оригинала 20 июля 2010 г. Проверено 20 июля 2010 г.
  15. ^ "VeryCD对eMule/电驴/电骡/VeryCD/EasyMule等词的混淆性宣传分析与证据" (на китайском языке). Архивировано из оригинала 5 июля 2010 г. Проверено 17 сентября 2009 г.
  16. ^ "Release eMule_v0.50b-unofficial: .: Исправлено: сворачивание в трей после изменения масштаба дисплея". irwir/eMule . 29 июля 2017 г. Архивировано из оригинала 11 декабря 2020 г. Получено 7 апреля 2021 г.
  17. ^ "eMule-Project.net". Архивировано из оригинала 9 августа 2020 г. Получено 7 апреля 2021 г.

Внешние ссылки