52852

eMule. Полное описание

Доклад

Педагогика и дидактика

Своей целью я поставил написать наиболее полное руководство по программе eMule при этом не вдаваясь в технические подробности с одной стороны и с другой стороны объясняя не только назначение отдельных кнопочек но и рассказывая про принципы работы как самого eMule так и функционирования сети в частности. Почему именно eMule а не чтото другое Здесь есть целый ряд причин. Самое главное: eMule это наиболее функциональный P2Pклиент к тому же его использует подавляющее большинство пользователей. Вот статистика собранная моим Мулом за 18...

Русский

2014-02-19

231.5 KB

1 чел.

eMule. Полное описание

Автор: Heller

Введение

Вначале пару слов о самой статье. Своей целью я поставил написать наиболее полное руководство по программе eMule, при этом не вдаваясь в технические подробности с одной стороны, и, с другой стороны, объясняя не только назначение отдельных кнопочек, но и рассказывая про принципы работы как самого eMule, так и функционирования сети в частности. Условно статью можно разделить на две части: вначале идёт краткое описание всех возможностей Мула, а далее я уделяю отдельное внимание способам эффективной работы. Думаю, что даже опытным ословодам будет полезно прочитать некоторые моменты. Даже если вы уже инсталлировали и используете Мула, разделы про начало использования и установку всё равно советую почитать - могут обнаружиться полезные советы.

Почему именно eMule, а не что-то другое? Здесь есть целый ряд причин. Самое главное: eMule это наиболее функциональный P2P-клиент, к тому же его использует подавляющее большинство пользователей. Вот статистика, собранная моим Мулом за 18 часов работы: eMule используют 93.1% пользователей, eD Hybrid 0.0% (2 человека из 4194 пользователей), eDonkey - 0 (совсем ноль, в отличие от Hybrid'а), aMule 0.9%, MLdonkey 0.4%, Shareaza 2.4%, eM Compat 3.1%. Думаю, превосходство Мула очевидно. Так же сюда можно добавить то, что eMule наиболее хорошо задокументированный клиент - на официальном сайте можно найти любую информацию. В отличие от того же eDonkey, у которого на сайте написано "мы используем лучшую технологию!", на сайте eMule описывается сама технология, без упоминания преимуществ.

Статья написана для широкого круга читателей, как для опытных пользователей, так и для новичков, и порой в ней разъясняются самые простые вещи, такие как "архивация" или "где находится трей". В тоже время от отдельных компьютерных терминов уйти было нельзя, и что бы сделать статью понятной каждому, но не перегружать её излишне объяснением простейших вещей, написано "Приложение II", где разъясняются все существенные компьютерные термины, которые можно встретить по мере прочтения. Если вы не уверены в своих силах или вдруг встречаете незнакомые слова, лучше вначале заглянуть туда.

Что такое eMule?

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

Слово "eMule" образовано от английского слова "Mule", т.е. Мул. Это животное, чем-то похожее на Осла (англ. Donkey) ;)

13-го мая 2002 года, человек по имени Merkur окончательно разочаровался в оригинальном клиенте для сети eDokney2000, и он решил, что может сделать гораздо лучше. Он собрал команду разработчиков, и так родился проект eMule. Их целью стало создание нового клиента для сети ED2K (в которой в то время господствовал клиент eDonkey), и дополнить его кучей новых свойств и симпатичным интерфейсом. Они даже представить не могли, что их клиент станет настолько популярным, что практически полностью вытеснит все остальные клиенты для ED2K сети.

На сегодняшний день, eMule - один из самых больших и надежных клиентов для сетей обмена файлами peer-to-peer в мире. Благодаря принципам открытого кода (open source), многие разработчики со всего мира могут участвовать в проекте, делая сеть более эффективной с каждой новой версией eMule.

Список некоторых свойств eMule:

  •  Клиент использует несколько сетей, чтобы создать одну надежную сеть (ED2K, Source Exchange, Kad).
  •  Kad (Kademlia) находится в стадии тестирования. Но eMule v0.42 может быть настроен на использование Kad.
  •  Система очереди и кредитов  помогают добиться того, чтобы каждый человек получил нужные ему файлы гораздо быстрее, если он будет закачивать (upload) тот же файл другим пользователям.
  •  eMule - совершенно бесплатная программа (freeware). Она не содержит никакого мусора вроде Adware и Spyware. Мы делаем это для забавы и обучения, а не за деньги.
  •  Каждый файл проверяется на ошибки по мере скачивания, чтобы убедиться, что он скачан правильно.
  •  Умный Контроль Ошибок ускоряет исправление поврежденных частей файла.
  •  Автоматические настройки и Диспетчер источников делают возможным одновременное скачивание нескольких файлов без необходимости следить за работой клиента.
  •  Функция "Предпросмотр" позволяет просмотреть недокачанные Фильмы и заглянуть в Архивы еще до того, как они скачаны до конца. Для предпросмотра видео, мы рекомендуем программу Video Lan Client.
  •  В eMule есть вэб-сервисы и вэб-сервер, позволяющий управлять клиентом через Интернет или с мобильного телефона (телефон должен поддерживать Java).
  •  Вы можете создать категории для ваших закачек, и рассортировать их как угодно.
  •  Для поиска любых файлов, eMule предлагает целый ряд способов: На Сервере (локально и глобально), в WWW (Jigle, FileDonkey), в сети Kad (Альфа-версия).
  •  eMule позволяет использовать очень сложные Булевы (Boolean) поиски, которые делают поиск гораздо более гибким.
  •  Есть возможность отправлять сообщения другим клиентам, и добавлять их в список друзей. Вы всегда будете видеть, когда ваши друзья бывают online.
  •  В eMule интегрирован IRC-клиент. Вы можете общаться с другими людьми по всей планете.

Инсталляция

Рассказывать отдельно про установку, думаю, не нужно - она стандартна. Скачивать надо Installer с официального сайта eMule (http://emule-project.net). Так же там отдельно лежит бинарник - он требуется для обновления старых клиентов (файлы просто переписываются); в новых версиях обновление происходит автоматически.

После установки eMule у Вас появится окно "Первый запуск", где предложат указать начальные настройки (я предполагаю, что используется русская версия; язык выбирается при установке).

Первое, что спросят - ник. Изначально стоит адрес Муловского сайта, но я рекомендую не оставлять это по умолчанию. Очень важно указать в скобках после ника слово "rus" - без этой надписи вас не пустят на ряд русских серверов. То есть выглядеть ник должен так: "Nickname (rus)". Наверняка существуют подобные сервера и для других стран, где требуется ввести что-нибудь типа (ita), (ua) и подобное, но я с такими не сталкивался.

В том же окне можно выставить галки для автозапуска Мула при старте Windows и для автоматического соединения с сервером при наличии доступа в Инет. Рекомендую включить эти пункты (по умолчанию они не отмечены).

Следующее окно - выбор портов. Желательно оставить по умолчанию, т. к. в противном случае могут возникнуть проблемы. Так же нажмите кнопку "Тест портов" - она перекинет вас на страницу eMul'а, где будет указано их состояние. Проблемы могут возникнуть в случае использования роутеров, файрволлов и проксей. Если такое имеется, покопайтесь в их настройках - указанные порты должны быть полностью свободны. Кстати, файерволлы после установки eMule или подобных клиентов любят жаловаться на "хакерские атаки" типа "short fragments" - это нормально. Просто особенности работы протокола, на самом деле никакими хакерами тут не пахнет.

Потом будет ещё несколько окон - то что вы там поставите особой роли не играет, всё равно потом всё под свои нужды перенастроите. Проще оставить по умолчанию - настройки там не плохие. Единственное, на что надо обратить серьёзное внимание - это установка вашей скорости. По возможности её надо указать максимально точно (если у вас модем, то лучше после каждого соединения залезать в настройки и указывать реальное соединение). Указывается скорость в килобитах либо в килобайтах - как удобнее. Один килобайт содержит 8 килобит.

Так же важно при выборе сети отметить сразу оба флажка - и eD2k, и Kademlia (сокращённо Kad).

Начало работы

"Сколько отдал - столько получил" - это девиз eMule. И хотя сами сети eD2k и Kad этого не оговаривают, а многие клиенты этому правилу не следуют, т. к. основная масса использует eMule, к этому всё же придётся прислушаться. Вообще если даже ничего не отдавать, качать у других всё равно никто не запрещает, однако скорости скачивания тогда будут на порядок меньше.

Первое, что надо сделать - это расшарить собственные папки, файлы из которых будут доступны другим пользователям. Для этого достаточно нажать на кнопку "Настройки" наверху и выбрать пункт "Папки" (в английском варианте "Directories"). Там можно указать временную папку, куда будут скачиваться чужие файлы, а так же можно отметить папки, из которых вы разрешаете скачивать другим пользователям. ВАЖНО! Когда вы отмечаете расшаренные папки, вложенные папки всё равно остаются недоступными для других пользователей - их надо выбирать отдельно. Если хотите расшарить папку со всеми вложенными директориями, можете отметить её, зажав клавишу Ctrl - тогда он расшарит всё. При этом, что именно за файлы находятся в ваших папках никто не будет знать - ваши файлы будут показываться только в том случае, если кто-то ищет файл, который у вас есть, через поиск (остальных файлов он всё равно не увидит).

Как только файлы расшарены, у вас сразу же начнут скачивать другие пользователи. Естественно, вы должны быть подключены к Kad и/или к eD2k. Если вы не подключены, то для подключения к eD2k достаточно нажать на кнопку "Соединить" с жёлтой молнией сверху слева. К Kad по умолчанию подключение происходит автоматически, как только вы подключились к eD2k. Если этого не произошло, нажмите на кнопку Kad вверху и в появившемся окне на кнопку "Самонастройка" справа. При этом должен быть отмечен пункт "От известных клиентов". Без подключения к eD2k с Kad'ом могут возникнуть проблемы, во всяком случае, при первом включении.

Что бы начать скачивание, первое, что надо сделать, это нажать на "Поиск", в поле "Имя" ввести ключевые слова и нажать на "Старт". Для поиска на первых порах лучше использовать "Глобальный" метод (выбирается там же). Подробности касательно разных методов объясню чуть ниже. Через какое-то время после начала поиска у вас отобразятся результаты. Многие файлы могут иметь одинаковое название - это ничего не значит. Раз они указываются отдельно, значит, различия в них всё же есть. Чтобы удалить страницу результатов (для каждого поиска создаётся отдельная страница), достаточно щёлкнуть на крестик на вкладке соответствующей конкретному поиску.

Особое внимание при поиске нужно уделить графам "Доступность" и "Полные источники". Первая показывает, у какого количества пользователей в принципе имеется этот файл, в "Полных источниках" указывается какой именно процент источников, указаных в графе "Доступность", имеет этот файл полностью. Если полных источников 0% - файл можно даже не пытаться качать, ничего из этого не выйдет, скорее всего. Так же лучше выбирать для скачивания по возможности те файлы, где источников 10 и более.

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

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

Выкачивать по одному файлу не советую - всё равно качать непрерывно с максимальной скоростью не получится - скачивание всегда будет достаточно медленным. Выкачивать одновременно особенно много тоже не надо - только потеряете на этом. Лично я выкачиваю обычно где-то по шесть файлов. Дать конкретную рекомендацию, сколько качать, невозможно - зависит от скорости. Определиться поможет только метод проб и ошибок. Закачанные файлы по умолчанию будут попадать в папку "Incoming", которая находится в директории, куда устанавливался eMule (его удобно установить прямо на рабочий стол).

Так же на странице передач перед именами файлов может быть изображена буква "i" - либо красная, либо зелёная. Она говорит о том, что кто-то из пользователей дал оценку файлу или оставил комментарий. Что бы посмотреть, что именно он написал, жмёте правой кнопкой на файл и выбираете "Показать комментарии". Красный цвет "i" означает, что файл хотя бы один человек оценил как испорченный/подделка (fake), зелёный - то что среди комментариев нет негативных отзывов. Свои собственные комментарии и оценки для файлов можно оставить в меню "файлы обмена" - правый клик на имени файла и далее пункт "изменить комментарии файла".

Непосредственно описание

Для начала упомяну про две полезных функции. Нажатие Alt+X выводит быстрое меню, которое достаточно удобно в ряде случаев. Так же в eMule задействована средняя клавиша мыши (если мышь со скроллингом, то роль средней клавиши играет нажатие на колёсико) - что оно делает, зависит от контекста. Описывать её я не буду - быстрее узнать всё в результате собственных экспериментов. Удобнее всего использовать среднюю клавишу на странице закачек для быстрого вывода информации о файле или пользователе.

Так же удобно нажать правой кнопкой мыши на изображение Мула в трее (внизу справа), когда его окно свёрнуто - это вызовет меню, где можно быстро и удобно изменить лимиты скорости и установить соединение. Двойной щелчок на Мула в трее восстановит его в нормальное окно, а одинарный щелчок вызовет окно со статистикой. Теперь подробнее о каждом окне eMule.

Kad.
Это меню содержит информацию о сети Kad. Никаких действительно важных вещей там нет. Единственное, если по каким-то причинам не произошло автоматическое подключение к Kademli'и, то это можно сделать вручную здесь. Есть два способа - либо указать справа IP (или домен) с портом конкретного сервера, либо выбрать настройку от известных клиентов и нажать кнопку "Самонастройка". Ввод конкретного адреса, в общем-то, штука не нужная - самонастройка замечательно работает и без конкретных адресов. Подробности опять же сообщу ниже.

В основном окне Kad находится список серверов. Перед каждым из них имеется "светофор". Зеленый цвет означает нормальное соединение с сервером, жёлтый говорит о том, что соединение есть, но были ошибки. Красный говорит о недоступности сервера.

Серверы.
Вопреки расхожему мнению ответственно могу сказать, что сервер, к которому вы подключены в данный момент, не играет вообще никакой роли - он используется ТОЛЬКО для поиска, а выкачивание идёт непосредственно с компьютеров других пользователей. Каким бы медленным не был ваш сервер, на скорость скачивания это не повлияет никак (на время поиска, кстати, тоже, но об этом ниже).

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

Справа можно почитать информацию о сервере и сети, что на самом деле так же бесполезно. Единственное, про что стоило бы сказать, это ID. ID бывают двух типов - HighID и LowID. Первое - хорошо, второе - плохо. Вообще ID доджен быть High - это нормальное соединение. Насколько именно он высок - не имеет значения. Сам ID присваивается каждый раз новый, получается он из IP-ареса (A.B.C.D) по следующей формуле:
ID=A+256*B+256*256*C+256*256*256*D
LowID говорит о том, что вы имеете какую-то проблему с портами. Это может случиться, если их перекрывает файрволл, неправильно настроен прокси или используется роутер. Разрешение таких проблем в эту статью не войдёт - к eMule это уже мало относится. Так же LowID можно получить, если очень сильно загружен ваш Интернет-канал либо вы соединяетесь с перегруженным сервером. Если это так, то через какое-то время ваш порт будет проверен и сервер выдаст вам нормальный HighID.

Минусов LowID много. Во-первых, из-за особенностей протокола, два пользователя с LowID не могут обмениваться файлами, хотя обмениваться ими с пользователями с HighID никто не запрещает. Так же, пользователей с LowID не пускают на ряд серверов для поиска, клиенты некоторых пользователей вообще игнорируют тех, у кого LowID, либо выделяют для них минимум скорости. Словом - если вы получили LowID и это явление постоянное, то надо проверять настройки своей сети.

Опеределить, High вы или Low, можно непосредственно по вашему ID (он написан в информации справа), либо по символу глобуса в панели состояния (внизу). Глобус имеет две стрелки. Левая стрелка символизирует eD2k, правая Kad (в Kad и eD2k ID выбираются независимо). Зеленый цвет стрелки означает HighID, жёлтый LowID, красный отсутствие соединения с сетью.

Так же определить ID можно по значку Мула в трее (на панели задач) в свёрнутом виде. Если изображение Мула чёрно-белое - Мул не соединён, если цветное - соединён, если цветное, но у Мула завязаны глаза - LowID.

Так же в меню "серверы" можно добавлять новые сервера. Чем больше вы знаете серверов, тем эффективнее будет поиск новых файлов. Заносить вручную новые сервера не требуется, т. к. их адреса eMule регулярно выкачивает сам от других пользователей/серверов. Если всё же хочется добавить сервер вручную, для этого нужно указать IP или домен сервера в поле "Новый сервер", а так же задать ему имя.

Можно для обновления списка загрузить файл server.met. Файл этот - обыкновенный список серверов. Самый популярный из сайтов, где постоянно лежат обновляемые списки, это ed2k.has.it. Заходите по этому адресу браузером - щелкаете на ссылку и загружаете. Прописывать адрес до файла вручную не требуется - при нажатии на ссылку в браузере eMule уже сам разберется, что ему дальше делать.

Передачи.
Это самое объёмное и самое полезное окно eMul'а. Оно разделено на две части - верхняя содержит список закачек, нижняя - список того, что выкачивают у вас. Справа над списком закачек имеется вкладка "Все". Нажатие на неё правой кнопкой выводит меню категорий. Вещь, на мой взгляд, совершенно бесполезная и не нужная. Позволяет разделять закачки на группы (тип файла, количество источников, приоритет и пр.), позволяет производить закачку в алфавитном порядке и много прочих мелочей, с практической необходимостью которых мне не приходилось сталкиваться. Рассказ про категории малоинтересен, поэтому данный пункт я опущу.

Так же не буду рассказывать про список отдачи (кто что качает) - там всё достаточно понятно. Скорость, сколько времени человек уже качает и т. д. Никаких действий над юзерами делать нельзя - окно носит только информационный характер. Единственное, что надо отметить, можно нажать на саму кнопку "Отдача" - это изменит режим работы окна. Таким образом можно переключаться между списком качающих в данный момент пользователей, списком тех, кто стоит в очереди на закачку и вообще полным списком известных юзеров.

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

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

Правее графы "прогресс" идёт графа "источники". Её значения имеют следующий формат: A/B+C(D). Каждая из цифр может отсутствовать, за исключением "B". "B" показывает полное чисто источников, работающих в данный момент, A - количество полезных источников (тех, у кого можно качать), D - количество источников, с которыми идёт обмен в данный момент, С - количество источников, у которых запрошен другой файл (у каждого источника одновременно можно скачивать только что-то одно). Число "C" выводится только в том случае, если в настройках выбран пункт "расширенное управление".

Следующая графа "приоритет". По умолчанию всем файлам ставится приоритет "Авто". В этом случае файлам с большим количеством источников даётся минимальный приоритет, а файлам с малым количеством источников - максимальный. Выставленный приоритет (в ручную он выставляется через правую кнопку) имеет значение только в том случае, если у вас доунлоад забит по максимуму. Чаще всего, во всяком случае, если ваша скорость хотя бы 15КБ/сек, максимум не достигается практически никогда. Если такое всё же произойдёт - режим "Авто" является наилучшим, если только вы не испытываете особых симпатий к каким-то конкретным файлам. В любом случае выставлять маленький приоритет для файлов с небольшим количеством источников не следует - так вы их точно никогда не выкачаете.

Графа "Осталось" показывает, сколько ещё времени требуется на выкачивание файла. При этом не учитывается то время, пока вы стоите за файлом в очередях - только время непосредственно скачивания. Есть два алгоритма подсчёта этого времени - по первому время рассчитывается исходя из скорости последнего соединения, а по второму считается средняя скорость выкачивания файла. По умолчанию стоит второй алгоритм, но это можно поменять в настройках (хотя и не нужно, если у вас только не очень слабенький компьютер).

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

Левее от "компьютера пользователя" изображена физиономия. Если она зелёная - в данный момент идёт передача данных от источника. Жёлтая - либо вы стоите в очереди, либо опрашиваете клиента (что бы узнать положение в очереди, узнать другие источники и т. д.). Красная - идёт соединение с источником. Серая - скачивание от клиента невозможно по какой-либо причине.

Правее, в графе "приоритет", указывается значение QR - это ваше положение в очереди. Чем ниже число, тем быстрее начнётся закачка, однако очередь идёт не последовательно, а в соответствии с тем, кто больше отдал данному клиенту информации. Ещё правее, в графе статус, указывается текущее состояние клиента. Либо там написано "в очереди", что говорит о том, что вы ожидаете, когда пользователь разрешит у него скачивать, либо "нет нужных частей" - у такого пользователя физически нечего выкачивать. Всё что у него есть, вы уже скачали (относительно данного файла). Так же возможны значения "очередь заполнена" и "запрошен другой файл". Про последнее я уже говорил выше, а "очередь заполнена" говорит о том, что пользователь в своих настройках выставил ограничение очереди для скачивания и уже достигнут предел. Через какое-то время вы сможете встать в очередь, но это может произойти очень не скоро. Остальные статусы говорят о недоступности пользователя (например, у вас обоих LowID), о том, что в данный момент идёт закачка и т. д. - здесь, думаю, дополнительных комментариев не требуется.

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

Поиск.
Вообще всё самое необходимое о поиске я уже рассказал. За исключением, наверное, различных методов, но это не критично. Поиск по серверу - это собственно поиск по серверу, к которому вы подключены в данный момент. Выводит мало результатов и вообще штука не практичная. Работает немногим быстрее других способов поиска, однако не сильно это важно - главное количество источников. Глобальный поиск аналогичен поиску по серверу, только в этом случае поиск ведётся уже по всем серверам из списка, а не только по тому, который подключен в данный момент. Оба варианта осуществляют поиск в сети eD2k. Kad-поиск - это поиск по сети Kad. Обычно он более эффективен, но при этом не выводится процент полных источников. Хотя это и не особо важно - можно поставить файл на закачку и тут же посмотреть на информацию по источникам в меню "передачи". FileDonkey - это web-поиск (через браузер) по сайту filedonkey.com. Вообще сервера выдают только ограниченное количество файлов с целью экономии трафика (а сжирает поиск достаточно много).

Ещё важный момент: и в Kad и в глобальном поиске одновременно искать можно только что-то одно. При попытке что-то искать в Kad, когда поиск уже идёт, будет выдано сообщение об ошибке. Глобальный же поиск вместо этого начинает новый поиск, заканчивая предыдущий, но это не значит, что поиск дошёл до конца. eMule же об этом никак не предупреждает. Это не должно вводить в заблуждение.

Справа от основного меню можно добавить дополнительные критерии поиска - размер, расширение и т. д. Там всё достаточно просто. Единственное, надо отметить, что при глобальном поиске не стоит указывать "доступность" и "полные источники". Каждый сервер имеет свои источники, и доступность он высчитывает относительно себя. Если вы укажете 100 источников, а каждый сервер из трёх десятков будет иметь только по 10, но зато на каждом сервере они будут разные, то данный поиск не принесёт результатов. Хотя в общей сложности источников хватает, сервер об этом знать не может.

Интересен сам синтаксис поисковых запросов. Когда вы ищете, например "lara croft", то поиск выдаст вам только те результаты, в именах файлов которых встречается и "lara" и "croft". Аналогичного результата можно добиться, написав "lara AND croft" - это то же самое. AND в данном случае логическая операция. Есть ещё две логических операции: OR и NOT, ИЛИ и НЕТ соответственно.

Пример:
lara AND croft OR anna AND kurnikova NOT porno
Такой поиск выдаст результаты с Ларой Крофт и Анной Курниковой, но без порнухи (вообще-то порнуха там будет всё равно, ну да не суть важно). Важно, что порнихи не будет только с Анной Круниковой - у Лары Крофт она будет присутствовать. Дело в том, что NOT имеет больший приоритет, чем AND, но меньший чем OR. То есть мы получили на самом деле два разных поисковых запроса, объединённых в один: первый, это "lara AND croft", а второй "anna AND kurnikova NOT porno". Может быть, это будет более просто объяснить на языке арифметики с умножением, сложением и делением. Фактически запрос наш имеет такой вид:
lara*croft+anna*kurnikova/porno
Вначале выполняется умножение с делением, а только потом сложение. Приведённая строка, конечно, не имеет смысла в eMule - привёл такое сравнение исключительно для упрощения объяснения. Если бы мы написали в поиске:
anna AND kurnikova NOT porno OR lara AND croft
то от этого результаты никак не изменились бы.

Если в поиске требуется нарушить такой порядок, то можно использовать круглые скобки (кстати, AND на самом деле можно опускать):
(lara croft OR anna kurnikova) NOT porno
Вот теперь результаты станут приемлимыми для молодёжи. Если же требуется включить в поиск сами слова AND, OR, NOT или круглые скобки, то поисковый запрос можно заключить в кавычки:
"lara croft or anna kurnikova" not porno
Такой поиск (теоретически) выведет файлы, содержащие строку про Курникову и Лару в точности, в том числе он должен будет содержать слово OR. Само OR при этом теряет свой логический смысл.

Заканчивая раздел про поиск, сделаю ещё несколько замечаний. Во-первых, поиск в Kad несколько отличается от обычного поиска. Первое поисковое слово должно содержать не меньше трёх символов, а так же после него нельзя использовать никаких логических операций кроме AND. После второго слова и далее уже можно. Во-вторых, все логические выражения можно свободно использовать вместе с расширенным поиском, с заданием количества источников, размером и т. д. Правда, для FileDonkey это не пройдёт. Так же, при расширенном поиске такие выражения можно использовать, если ищешь mp3-файлы в полях "Имя", "Альбом" и "Артист". Хотя отмечу, что реальной необходимости в таких выражениях я опять же ни разу не испытывал.

Файлы обмена.
Здесь всё достаточно просто. Это список расшаренных (доступных для скачивания у вас другим пользователям) файлов. Тут же можно написать комментарий к файлу, выставить ему оценку, изменить имя (хотя это можно сделать и в проводнике), удалить файл (не из списка, а совсем). Всё это делается с помощью правой кнопки мыши. Важная кнопка на этой странице "Перегрузить". Она может пригодиться в тех случаях, когда вы делали какие-то действия с расшаренными папками/файлами не через eMule, а через проводник. Например, переименовали файл, удалили, перенесли из одной расшаренной папки в другую или вручную дополнили в расшаренную папку какой-то файл. Кнопка "Перегрузить" обновит этот список. Для её работы может потребоваться несколько минут (а на старых компьютерах достаточно продолжительное время).

IRC.
IRC - это многофункциональный, быстрый и нетребовательный к трафику чат. IRC-серверов достаточно много, но для eMul'а они не подходят - в IRC он использует свой протокол, хотя и очень похожий. Лично мне известен только один IRC-сервер для eMule: irc.freshirc.com, он выставлен по умолчанию. Этот адрес вам может понадобиться, если вы его мало ли удалите из настроек. Несмотря на то, что это практически полный аналог нормального IRC, говорить там не о чем - предназначен он большей частью для того, что бы задавать вопросы более опытным пользователям. После прочтения данной статьи, если вопросы и останутся, то ответить на них вряд ли кто там сможет :-)

Пользоваться IRC достаточно просто. В "Настройках" в меню IRC можно выбрать себе ник, подключение осуществляется кнопкой внизу "соединение". Выключить IRC можно кнопкой "закрыть". Во всём остальном это обычный IRC - описывать его я не буду, в Интернете полно документации на русском. Когда вы соединитесь с сервером, сверху у вас будет две закладки (может быть и больше, но важны только две): "Статус" и "Список каналов". Статус - это диалог вашего Мула с сервером, там удобно набирать основные команды. В "Списке каналов" можно выбрать канал и двойным щелчком перейти на него. При этом откроется дополнительная закладка с этим каналом - остальное общение полностью аналогично IRC или чату.

Если какой-то канал вам более не нужен, его можно закрыть аналогично страницам поиска - щёлкнув крестик вверху справа у закладки. Слева, в списке пользователей, нажимая на них правой кнопкой, можно организовывать с ними приват. Про остальные функции IRC можно почитать на любом тематическом сайте, отличаются они не особенно сильно. Документацию именно по Муловскому IRC можно найти на freshirc.com.

Настройки.
Я пропущу разделы "Сообщения" и "Статистика", т. к. в "Статистике" и так всё понятно, а меню сообщения реально нужны только в отдельных случаях, которые я пока не рассматривал. Обычное же общение через "Сообщения" достаточно просто для того что бы отдельно про него рассказывать (послать сообщение пользователю можно щелкнув по нему правой кнопкой на странице "Передачи"; при этом открывается окно чата, аналогичное IRC). Пойду по всем настройка подряд по пунктам.

Основные. Тут всё предельно просто - лишних комментариев вряд ли требуется. Так же здесь можно изменить ник и настроить запуск вместе с Windows, если вы этого не сделали при первой загрузке.

Дисплей. Исключительно визуальные параметры, позволяет менять шрифты, цвета и прочее.

Соединение. Здесь уже интересней. Позволяет выставить скорость, пределы на отдачу/загрузку, поменять порты (что в общем случае не нужно), указать сети, с которыми работать (должны быть отмечены обе галки), изменить максимальное число соединений и т. д. Там имеется кнопка "Помощник", нажимая на которую вы увидите окно, аналогичное тому, что было при первом запуске - там можно указать лишь наиболее важные параметры, такие как соединение и операционную систему, остальное eMule настроит сам, исходя из этих данных.

Прокси. Нужно, если вы хотите/используете прокси. Вещь в общем случае не нужная, так что этот пункт мы опустим.

Сервер. Ряд не особо важных и достаточно очевидных настроек. Не сильно критично, поставите ли вы обновление списка серверов при включении или обновление списка серверов при соединении с сервером - главное, что бы они обновлялись хотя бы каким-нибудь образом. Остальное не столь важно (на связь оно так же не влияет, поскольку обновление в любом случае идёт только при установке соединения, что случается не так часто, да и сами списки достаточно маленькие по объёму). Единственное, что может вызвать непонимание - это безопасное соединение. Если вдруг при соединении с сервером вы получаете LowID, то если у вас указано безопасное соединение, вы будете пытаться подключаться к другим серверам. Если же соединение небезопасно, то вы так и продолжите работать с LowID (хотя проверки всё равно идут регулярно). Вообще LowID просто так присваивается достаточно редко - данная опция опять же не критична.

Папки. Уже рассматривал. Установка расшаренных директорий, временной папки и папки для скачивания. Кстати, временная папка и папка для скачивания расшарены всегда по определению.

Файлы. Опять же вполне очевидные настойки, не влияющие напрямую на скорость и качество скачивания.

Уведомления. Настройка звуковых сигналов и всплывающих сообщений. Я обычно настраиваю для начала нового чата и нового сообщения.

Статистика. Если Мул отжирает много ресурсов, здесь можно замедлить сбор статистики, чем уменьшить загрузку процессора. Даже на средних компьютерах это не критично.

IRC. Настройка IRC-сервера, ника, прочих настроек IRC.

Безопасность. Здесь можно запретить соединения для пользователей с низким ID. Так же можно запретить соединения по конкретным IP-адресам, если вспомнить, каким образом генерируются эти самые ID. Так же имеется фильтр сообщений, который не будет пропускать сообщения, содержащие в себе перечисленные строки (несколько строк разделяются с помощью "|"). Аналогичный фильтр можно выставить и для комментариев к файлам. Опция "запуск eMule без привилегий Админа" доступна только в системах семейства NT (куда относится так же Windows 2000 и XP), хотя с ней имеется ряд проблем - в таком режиме Мул частенько начинает глючить, по большей части интерфейсом. Про безопасную идентификацию расскажу позже.

Планировщик. Ещё одна настолько же полезная вещь, как и категории. Позволяет задавать изменение настроек eMul'а по расписанию. Понадобиться может только в том случае, если у вас Инет работает по расписанию, когда в зависимости от времени суток надо менять скорость, порты, адреса, сервера и прочее. Достаточно редкая ситуация. Создавать задачи достаточно просто. Единственное, что может вызвать затруднение - это задание действия для конкретного времени. Делается это с помощью правого клика по окну "действия".

Web сервер. Вот это классная штука. Позволяет установить на ваш компьютер web-сервер для удалённого управления Мулом. Включается простым нажатием на флажок "включён". После вводите пароль и можете пользоваться. Веб-сервер будет иметь адрес http://ваш_ip:порт/. Если IP-адрес у вас динамический, то можно воспользоваться одной из следующих служб:
http://directory.google.com/Top/Computers/Software/Internet/Servers/Address_Management/Dynamic_DNS_Services/
Они позволяют привязать к компьютеру адрес вида "домен.сервис.com", IP которого будет соответствовать вашему компьютеру и который будет меняться, если меняется ваш IP. Тогда по конкретному адресу вы всегда сможете управлять своим Мулом. Управление достаточно простое - веб-интерфейс практически полностью дублирует сам Мул.

Установленный флажок gzip-сжатия указывает на то, что сервер должен поддерживать сжатие трафика. Нужная вещь, которая поддерживается любым браузером и позволяет повысить скорость передачи, уменьшив объёмы передаваемых данных. Шаблон emule.tmpl содержит непосредственно шаблон для веб-интерфейса. Другие шаблоны можно найти в сети или самому сделать, но это уже вещь исключительно оформительская.

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

Другие настройки. Здесь целая куча опций, не вошедших в остальные пункты, большая часть которых достаточно очевидна и не вызывает вопросов. Остановлюсь только на некоторых.

Макс. число соединений за 5 sec: по умолчанию стоит 20. Увеличивать рекомендуется только в том случае, если имеется хороший канал Интернет, такой как LAN.

Макс. полуоткрытых соединений: наибольшее количество соединений, которые открыты, но не используются в данный момент. Официальная рекомендация разработчиков eMule не делать это значение больше 9 для Windows XP SP2. Для остальных систем рекомендуется устанавливать это значение в 50. Вообще максимальное число полуоткрытых соединений влияет на скорость обмена источниками - чем меньше значение, тем медленнее будет идти обмен. В то же время после завершения обмена источниками, за счёт такого жёсткого запрета, скачивание будет идти быстрее, т. к. на эти соединения не будет потерь.

Использовать кредитную систему: должна быть включена. Когда кредитная система работает, в вашей очереди пользователи продвигаются тем быстрее, чем больше они отдали вам. Это логично - давать больше выкачивать тем, кто вам полезен. С учётом того, что у тех, кто отдаёт вам, с большой степенью вероятности работает такая же система (а она работает по умолчанию во всех eMule-клиентах и в ряде других), это окажет хорошее влияние на ваши собственные закачки.

Фильтр сервера и клиентов LAN IP: запрещает соединение с вами пользователей, IP которых не является IP Интернета. Если вы сами находитесь внутри локальной сети, то отключить её просто необходимо, иначе не сможете обмениваться с другими пользователями вашей сети (а даже если сеть небольшая, это достаточно полезно). В общем же случае данная опция защищает вас от появления некорректных источников. Пользователи, которые сами сидят в локалке, да ещё на кривых клиентах, могут по ошибке отправлять вам источники с указанием локального IP, который для вас значить ничего не будет. Не особо критичная настройка, но лучше оставить по умолчанию.

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

Отключить проверку ЗДФ для разгрузки CPU: эту опцию никогда не стоит включать. Особенно, если работаете в режиме дополнительного контроля. ЗДФ - это "запрошен другой файл". Если проверку отключить, то вы и знать не будете, что у вас такое происходит. В режиме дополнительного контроля всеми этими ЗДФ можно достаточно эффективно управлять, а CPU загружается не так уж и сильно. В английском варианте ЗДФ выглядит как "A4AF" (Asked For Another File, "for" часто на письме пишется просто как "4", поскольку и то и другое имеет одинаковое произношение).

Отключить скачивание с PeerCache: PeerCache это система, которая позволяет ускорить закачку и уменьшить трафик. Если у вашего провайдера несколько пользователей качают один файл (одновременно или в разное время - не важно), то этот файл у провайдера кэшируется и дальнейшее скачивание ведётся уже не из Интернета, а из кэша провайдера. Это и быстрее и дешевле, однако, должно поддерживаться на уровне самого провайдера. Какая ситуация с PeerCache происходит в России, автору не известно. В любом случае работающй PeerCache в Муле хуже не сделает - отключать его смысла нет.

Безопасная запись .met/.dat: это файлы закачек. Ставить рекомендую максимально защищённый способ записи, а не только при выключении компьютера. Несмотря на то что существует целый ряд утилит для восстановления закачек после сбоев (например, отключения электричества), от их применения как-то легче не становится. Установка же максимальной защиты гарантирует вам, что после скачивания полугиговова куска он у вас не пропадёт после непредвиденной перезагрузки.

Подробности.

Описание интерфейса и настроек Мула закончено и теперь пора перейти к теории функционирования самой сети. Может показаться, что это уже ненужное углубление в детали, однако, понимание механизмов eD2k и Kad сильно упрощает работу с P2P.

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

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

Такого понятия как "Рейтинг" в глобальном понимании не существует, и посмотреть его, соответственно, нельзя. eMule считает рейтинг всех пользователей, которые что-то отдали вам или взяли у вас, независимо от других клиентов. Если я отдал клиенту "A" 10 мегабайт, то мой рейтинг для него будет достаточно высок. В то же время я могу иметь низкий рейтинг у клиента "B", которому я не отдал ничего. Как именно считается рейтинг, зависит исключительно от реализации клиента (где-то такой системы вообще нет) и его настроек. Что касается настроек, то в eMule их всего две: либо рейтинги используются, либо нет.

В последних версиях система такая: вначале вычисляется "соотношение" (это кривой русский перевод, в оригинале это звучит как "модификатор"). Для его получения вначале вычисляют два рейтинга:
R1 = ( Upload * 2 ) / Download
R2 = SQRT ( Upload + 2 )
Здесь Upload - это сколько пользователь отдал информации (в мегабайтах), Download - сколько скачал сам (в мегабайтах), SQRT - корень квадратный. В качестве модификатора выбирается наименьшая из этих двух оценок, округлённая до десятых по правилам арифметики. Здесь есть ряд НО:
1). Если в общей сложности было закачано меньше 1 Мб, модификатор устанавливается в единицу.
2). Если пользователь ещё ничего сам не скачивал, модификатор устанавливается в десятку.
3). Если пользователь ещё ничего не качал и не закачивал, модификатор устанавливается всё равно как 1.
4). Максимальное значение модификатора - 10. Минимальное - 1. Если полученные значения выходят за эти диапазоны, то они понижаются/повышаются до единицы/десяти соответственно.

С помощью модификатора вычисляется непосредственно Рейтинг. Изначально он равен 100, умноженный на модификатор и, если пользователь не поддерживает расширенный протокол eMule, делит Рейтинг пополам. Если в окне "файлы обмена" вы устанавливаете файлам приоритеты, то если он запросил файл, приоритет которого низкий/высокий, то и рейтинг его соответственно тоже понижается/повышается. Множители, на которые умножается рейтинг в зависимости от приоритета, такие: 0.2, 0.6, 0.7, 0.9 и 1.8 для "очень низкого", "низкого", "нормального", "высокого" и "очень высокого" соответственно. В ранних версиях эти множители отличаются (вообще в предыдущих версиях eMule рейтинг вычислялся несколько по другим правилам, но таких клиентов сейчас пренебрежимо мало).

Как только пользователь запрашивает у вас какой-либо файл, для него начинают считаться Очки по формуле:
Очки = ( Рейтинг * время_в_очереди_в_сек ) / 100
Порядок, кто в каком будет у вас скачивать, определяется количеством очков - у кого их больше, тот и качает. Естественно, что тот, у кого выше Рейтинг, будет набирать очки быстрее и продвигаться по очереди соответственно тоже быстрее. Само QR показывает положение пользователя в очереди исходя из распределения Очков, и в вычислениях никакого участия не принимает.

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

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

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

Иная ситуация с Kad. В Kademli'и каждый клиент сам по себе является сервером. Какого-либо "главного" сервера не существует - все равны. Для подключения к сети надо знать хотя бы одного клиента, который имеет подключение. Он в свою очередь передаёт адреса других клиентов, те третьих и пошло-поехало. Каждому клиенту (он же сервер) присваивается ID. В этом случае ID это уже не просто число - оно содержит в себе информацию о том, списком источников на какие файлы в основном располагает данный пользователь. Если человек собирает видеоклипы, очевидно, его ID будет содержать информацию о том, что клипы лучше всего искать через него. Углубляться в математические алгоритмы, которые это всё реализуют я не буду, по крайней мере в этой статье.

При получении списка KAD-серверов учитывается иерархия, называемая в eMule дистанцией. Естественно, что отправить запрос на поиск по тысяче адресов как минимум неэкономно, поэтому запрос отправляется только на "ближайшие" сервера, которые в свою очередь отправляют запросы на ближайшие для них и так далее и так далее. При этом учитывается скорость соединения, основная тематика источника и прочее - это материал отдельной статьи, не меньшей по объему, чем эта.

В любом случае назначение сети Kademlia, так же, как и eD2k, исключительно в поиске источников. Отличие Kad в том, что для её функционирования не требуется серверов, но недостатка в последних пока не наблюдается. Если через сеть Kad кто-то ищет что-то у вас, то у вас это отобразится в окне Kad в таблице "поиски в данный момент". Делать с ними ничего нельзя.

Если посмотреть на странице "передачи" в графу "размер" для источников, то там можно увидеть одну из четырёх надписей для каждого клиента: eD2k server, Kad, "обмен" или "пассивный". Надпись указывает на способ, которым был найден этот источник. С Kad и eD2k и так всё понятно; обмен означает, что вы узнали про этот источник в результате опроса других источников, "пассивный" - источник сам к вам постучался за каким-то файлом, и у него оказалась требуемая часть.

После получения списка источников от сервера или из Kad, идёт опрос каждого из них на наличие ещё неизвестных источников (это в случае если закачка запущена). От новых источников вы получаете новые списки и так продолжается, пока источники не "иссякнут". Подключение к какой-либо из сетей при этом не обязательно - можно вообще отрубить eD2k и Kad - закачек это не остановит, и новые источники по-прежнему будут искаться.

Следующий важный момент - это хэш. Каждый файл разбивается Мулом (и другими клиентами - это стандарт eD2k и Kad) на блоки по 9.28 Мб. От каждого блока вычисляется хэш-функция по алгоритму MD4. Когда хэши каждого блока подсчитаны, от всех хешей вместе взятых вычисляется опять же MD4-хэш, который в совокупности с размером и является идентификатором файла. Ссылки на ed2k файлы выглядят следующим образом:
ed2k://|file|name|size|fh|/
С установленным Мулом браузер может обрабатывать такие ссылки так же как и обыкновенные. Здесь file - ключевое слово, обозначающее то, что это именно файл, а не что-то другое (аналогичные ссылки бывают для серверов, источников, списков серверов и пр.), name - имя файла как есть, size - размер файла в байтах, fh - хэш файла. Сам хэш файла официально (в оригинале) называется "File Hash", хэши для конкретных блоков "Part Hashes". Эти самые Part Hashes можно добавлять в ed2k ссылку:
ed2k://|file|name|size|fh|p=ph_1:ph_2:...:ph_n|/
Part Hashes отделяются друг от друга двоеточиями. Полный набор Part Hashes называется Hashset (в ссылках можно указывать только полный Hashset, указание только отдельных Part Hashes не допускается).

В то время как File Hash является идентификатором файла, по которому происходит поиск, Part Hashes необходим за контролем над ошибками. Этот механизм называется ICH (Intelligent Corruption Handling - Интеллектуальная Обработка Ошибок). После полного скачивания каждого блока, eMule вычисляет его Part Hash и сопоставляет с оригиналом. Если они сходятся - всё скачано правильно. В противном случае произошла ошибка, и скачивание блока начинается заново. Алгоритм ICH заключается в том, что скачивается не весь блок, а последовательные маленькие кусочки по 180 Кб. После каждого такого куска Part Hash проверяется заново и, если ошибка произошла при передаче начального фрагмента блока, то в случае совпадения хэшей дальнейшее скачивание не требуется. Если ошибка произошла в конце блока, то ICH мало чем поможет. Таким образом, ICH в среднем ускоряет повторную закачку повреждённых блоков на 50%.

Начиная с версии eMule v.44a вводится ещё один механизм - AICH (Advanced ICH). Это придумка разработчиков eMule, но постепенно этот алгоритм начинают поддерживать и все остальные клиенты. Идея полностью аналогична обычному хэшу, но только есть два отличия: используется не MD4, а SHA-1 и вычисляется функция не сразу от целых блоков, а от маленьких кусков по 180 Кб. При скачивании файла его целостность (отсутствие повреждений) дополнительно проверяется с помощью AICH.

В обычном ICH, как я уже говорил, идёт последовательное скачивание 180 Кб кусков, пока полученный хэш не будет соответствовать действительности. В случае с AICH этого не требуется - скачиваются только маленькие AICH-хэши для 180-килобайтных кусков и таким способом идёт поиск куска, при передаче которого произошла ошибка. Естественно, что такой способ быстрее. При начале закачки передаётся только полный AICH для всего файла, если же происходит сбой, то AICH для каждого куска отдельно запрашивается у источников. Ссылки с AICH выглядят так:
ed2k://|file|name|size|fh|h=aich|/
где AICH - непосредственно AICH-хэш. Его можно комбинировать с Hashset - тогда они разделяются с помощью "|".

Стоит сделать ещё один комментарий о сохранении своего хэша пользователя. Как уже писал, при первом запуске eMule присваивает пользователю свой хэш, по которому его определяют другие клиенты. В случае, если надо переставить Мула, перенести на другой компьютер и в других подобных случаях, когда без перестановки Мула не обойтись, нужно знать, где эти хэши хранятся. Здесь всё просто: это файлы preferences.dat и cryptkey.dat, которые хранятся в поддиректории Мула "config". Для переноса своего хэша на другого Мула достаточно перенести эти файлы. На этом обзор механизмов eMule можно считать законченным.

Оптимизация

Вот и дошли до того, ради чего, собственно, статья и затевалась. Говорить много о настройках не буду - все важные аспекты я уже выделил в соответствующем разделе "непосредственно описания". Отдельно остановлюсь только на лимитах скорости. Обычная рекомендация - отдавать под еМул много, но не всё. В этом, конечно, есть доля правды, однако только доля. Как в основном пишут, если отдать все ресурсы сети еМулу, то ничего не останется на другие приложения вроде того же интернет-браузера. В действительности, использовать ВСЕ ресурсы Мулу не даст операционная система - какой бы приоритет мы не поставили, как только тому же Эксплореру или качалке потребуется сеть, сам Windows урежет доступ еМулу, отдав часть другим приложениям - за это можно не беспокоиться.

Однако выставлять максимум всё же не стоит. Дело в том, что лимит на самом деле выставляется не жёстко и Мул всегда может незначительно выходить за пределы дозволенного настройкой. В то же время лимит используется как показатель того, с какой скоростью надо вести именно закачку/скачивание - обычные запросы хотя бы для обмена источниками здесь не учитываются. Если же закачка идёт на максимуме (что чаще всего и бывает), а лимит не установлен, то для таких важных вещей, как, например, опрос источников или установление соединения для скачивания, ресурсов может не хватить - Windows в этом случае уже не поможет, так как заботится он только о конкретных программах, не разбираясь, как они используют сетевые ресурсы внутри себя.

По этой причине, если лимит всё же установить, то при необходимости Мул выйдет за ограничения и нормально пошлёт запрос. В противном случае, весь канал будет забит закачкой, и запрос с большой степенью вероятности не пройдёт. То же самое касается и лимита на скачивание, однако если учесть, что скачивание в основном никогда не идёт на максимуме, лимит на даунлоад можно не ставить. Итого: настройка даунлоада - безлимитно, аплоада - лимит максимально большой, оставляя только 1-2 Кб/сек для нужд общения с другими источниками.

Второй важный момент, касающийся оптимизации - это расшаривание. Допустим, что вы поклонник группы Rammstein, однако совершенно случайно у вас оказался альбом группы "Стрелки", которых вы не перевариваете (я сказал для примера, мне вот клипы их очень нравятся, например :-)). Логично, что и качать вы будете в основном тяжёлый металл, может быть рок, панк, гранж. Нужно ли выкладывать для общего доступа "Стрелок"?

Вспомним о том, что рейтинг ведётся на компьютере каждого пользователя независимо. Вот у вас люди накачают "Стрелок", ваш рейтинг у них будет очень высоким, скачивание от них будет проходить на ура. А оно вам надо, с учётом того, что это пользователи, которые явно отличаются во вкусах с вами? Вряд ли у них окажется именно то, что требуется вам. Зато среди любителей Rammstein у вас рейтинга как раз таки из-за этих "Стрелок" и не будет. Вывод: расшаривайте только то, что вам самим интересно и то, подобное чему вы собираетесь выкачивать.

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

Дружба. Друг, в понимании eMule, это пользователь, который находится у вас в списке в окне "Сообщения" и вы всегда знаете в online он или нет. Так же всегда можно послать ему сообщение - очень похоже на контакт-лист в аське. Что бы добавить человека в список друзей надо нажать на нём на странице "передачи" правой кнопкой и выбрать "добавить в друзья". Никакого подтверждения с его стороны не требуется - ему даже можно не сообщать, что он ваш друг. Так же друзей можно добавлять непосредственно по IP-адресу с портом (если знаете), а так же в IRC (там оно, правда, как-то криво реализовано).

Для друзей существует полезная вещь, называемая "дружественный слот". Он выставляется правым кликом на друге в окне "сообщения" - там будет одноимённый пункт. Дружественный слот можно выставлять только один. Человек, для которого стоит эта опция, всегда находится в вашей очереди в самом начале и, соответственно, всегда, когда ему что-то надо от вас, в очереди ему стоять не приходится. При этом количество того, что он у вас скачал, не считается.

Как я уже сказал, вашему другу можно даже не говорить, что вы его сделали своим другом. Так же не обязательно ему сообщать про дружественный слот - его eMule сам об этом не узнает. Вот вы сделали человека своим другом, выделили ему слот, и что получается - он непрерывно у вас что-то качает, но причин, по которым он так качает, ему не известно. Следовательно, в его Муле во всё это время сильно растёт ваш рейтинг. Таким образом, вы можете сами выбирать, с кем хотите меняться. Узнать, требуется ли ему что-то от вас или нет, можно, просмотрев очередь на странице "передачи". Так же, если у вас есть какой-то кусок файла, которого нет у него, а у него есть то, что требуется вам, однозначно его нужно делать вашим другом. К сожалению, такой способ пройдёт не всегда - у кого-то может быть отключена система рейтингов, кто-то может докачать нужный кусок и убрать файл, однако в большинстве случаев это срабатывает.

Теперь отвлечёмся от доунлоада и поговорим о предпросмотре. В самом Муле это реализовано откровенно отвратно. Для того, что бы была доступна опция "предпросмотр" необходимо скачать первый и последний блоки файла, что вообще-то не соответствует нормальным представлениям о формате видеофайлов. Даже без начальной части часто можно просмотреть то что скачалось. Все файлы, которые качаются Мулом в данный момент, лежат в поддиректории Мула "temp". Там лежит множество файлов. Сами качающиеся файлы имеют имя xxx.part, где xxx - некоторое число. Просто открываем файл любым проигрывателем и смотрим. Что там себе думает по этому поводу Мул совершенно не важно. Посмотреть, какой из файлов xxx.part соответствует какой закачке, можно в файле downloads.txt в директории Мула.

Официальная рекомендация от разработчиков eMule - использовать для предпросмотра программу "VideoLAN Client", однако эта рекомендация мне не понятна. Советую использовать "Media Player Classic 6" - он максимально прост, быстр и компактен, однако за счёт отсутствия наворотов с такими неполными файлами работает намного лучше всех остальных клиентов. К тому же он входит в пакет "K-Lite Codec Pack" - его так же необходимо установить для нормального просмотра видео любых форматов. Хотя, здесь уже, конечно, дело вкуса.

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

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

Обман

А вот и самое интересное. Начну, как водится, с теории.

Сам Мул имеет в себе встроенную защиту от возможного обмана - я не раз её уже упоминал; прежде всего это защищённый метод аутентификации.

При обычной аутентификации (то есть процессе, когда другой пользователь "узнаёт" вас) передаётся ваш хэш и всё. Однако никто вам не мешает и чужой хэш передать. При защищённом же методе - при передаче используется алгоритм шифрования RSA на 384х-битном ключе. Такой ключ не является надёжным (сейчас рекомендуемая длина ключа 2048 бит), однако этого чаще всего вполне достаточно - если иногда и появляется интерес покачать от имени другого человека с крупным рейтингом, то он в основном ограничивается одной закачкой. Пока будете ломать 384 бита, всё уже успеет докачаться по-честному. И хотя подделать чужой хэш даже без защиты не так уж и просто (а даже если его и подделают - это мало чем грозит, да и сложно предугадать у кого какой рейтинг - неясно кого ломать), отключать безопасную аутентификацию не стоит хотя бы по той причине, что это сейчас очень активно продвигаемая "фича" и вполне возможно, что так же, как пользователям без поддержки расширенного протокола eMule занижают рейтинг, в ближайших версиях рейтинг будут занижать и тем, у кого нет надёжной аутентификации. ВАЖНО!!! Если вы однажды использовали Мула с аутентификацией, то после, если аутентификацию вы отключите, ваши данные потеряются, т. к. остальные пользователи не будут знать, что вы отрубили защиту и по-прежнему будут требовать с вас цифровую подпись.

Переходим от теории к практике. В Инете есть множество "подправленных" Мулов, которые, якобы, ускоряют скачивание. Здесь надо опять ненадолго углубиться в архитектуру Мула. Регулярно eMule отправляет запросы пользователям, у которых вы что-либо качаете на предмет спросить место в очереди, обменяться источниками т. п. Такие запросы он шлёт каждые десять минут одному случайному пользователю из списка источников (для каждого из файлов). Если для файла в общей сложности менее сорока источников, то каждые десять минут запросы он шлёт каждому пользователю, с которым идёт обмен этим файлом.

Многие клиенты устроены таким образом, что чем чаще ты шлёшь запросы, тем быстрее продвигаешься в очереди. Все "подправленные" Мулы действуют именно по такой схеме. Однако сам Мул частые запросы не считает поводом для продвижения по очереди, а даже напротив. На странице "передачи" в самом низу в скобках около числа клиентов в очереди указано, сколько клиентов Мул забанил. Бан - это фактически игнорирование клиента, после бана он вообще теряет возможность что-либо у вас скачивать. Банит он как раз тех, кто шлёт запросы чаще, чем раз в десять минут, поэтому все эти "модификации" максимум что могут, это повредить.

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

Можно привести ещё один малоэффективный, не являющийся откровенно нечестным, но тем не менее нехороший способ улучшить своё положение в Муле. Как я уже писал, сеть Kad нужна только для поиска. Но, когда вы соединены с Kad'ом, то поиск ведётся так же по вашему компьютеру, что несколько забивает канал. Вывод - Kad можно отключить. Хотя такие советы можно встретить в сети, многого вы от этого не выиграете, а кто-то что-то не сможет найти. Не советую так поступать чисто по этическим соображениям.

Последний способ - единственный работающий и эффективный. Дело в том, что данные передаются не в том виде в каком они есть, а в сжатом. Например, нам надо передать строку "12312312312312345". Вместо того, что бы передавать её как есть, мы можем передать "(123)x(5)45" - получилось намного короче. В действительности используются другие способы сжатия, но про них я рассказывать не буду. Пример привёл исключительно с целью объяснить принцип людям, мало разбирающимся в компьютерных технологиях.

Чем больше в данных можно выявить подобных зависимостей, тем сильнее файл можно ужать (заархивировать). Опять же обращу внимание, что я привёл только самую примитивную зависимость в примере. Допустим, что мы передаём файл размером гигабайт, но он весь от и до состоит только из одних нулей - передастся по сети он за считанные минуты (из-за того, что передаваться всё равно будет ограниченными блоками). нормальный файл размером гигабайт будет передаваться несколькими часами больше, не говоря уже о передаче по eMule.

Что мы делаем: нам известно, что человеку требуется какой-то файл, он стоит за ним в очереди. Мы берём этот файл (если он у нас есть) и подменяем таким же по размеру, но полностью забитым нулями. Хэш оставляем прежний. За считанные минуты клиенту передадутся десятки мегабайт информации и наш рейтинг сразу же резко повысится. А человек потом сверит полученные данные с хэшем, и будет выкачивать файл заново, но у нас рейтинг уже есть. Стоит отметить, что если человек постоянно повторно выкачивать у вас "нулевой" кусок файла, то очень быстро обман вскроется. Поэтому желательно проследить тот момент, когда он будет закачивать уже концовку девятимегабайтного блока и быстро его отрубить, пока он не начал сверять части - в этом случае успех гарантирован. Вообще даже не обязательно иметь исходный файл - можно создать такой файл в ручную, дописав нужный хэш - Мул проверять ничего не станет, но о форматах файлов я расскажу уже в следующий раз, ограничившись в этой статье лишь кратким перечислением.

Как защититься от подобной "накрутки"? Никак. Только если разработчики обратят внимание на эту статью и усовершенствуют в будущих версиях алгоритмы проверки. Единственное, как можно бороться - блокировать тем или иным способом подобных "хакеров". Самое простое - с помощью файрволла. Так же, если покопаться в файлах Мула, можно забанить недоброжелателей или сбросить весь их рейтинг, что проще. Но об этом уже в следующий раз.

Однако я просто не могу не сказать, что приведённый способ лучше не использовать. Не потому что за это могут посадить или набить морду - просто это не хорошо. Всё-таки eMule - это сообщество, где люди бескорыстно делятся, и засорять его всякой гадостью не хочется. Комьюнити однако. Данный способ я привёл исключительно в целях теоретического интереса.

Приложение I. Файлы eMule

(данное приложение является переводом с небольшими поправками официальной документации: http://www.emule-project.net/home/perl/help.cgi?l=1&topic_id=106&rm=show_topic)

known.met - здесь сохранена вся информация о всех файлах, с которыми когда-либо доводилось работать Мулу (расшаренные, скаченные, те, которые качаются в данный момент). Содержит их названия, размеры, статистику, адреса и хэши.

clients.met - информация обо всех пользователях, которые когда-либо что-либо качали или отдавали пользователю.

servers.met - содержит все известные серверы..

emfriends.met - список друзей.

preferences.ini - содержит все настройки Мула (часть из них доступна только из этого файла).

fileinfo.ini - комментарии и оценки расшаренных файлов.

category.ini - хранит информацию о всех категориях.

ipfilter.dat - содержит информацию об ip-фильтре.

onlinesig.dat - содержит в себе "online signature" - статистику о даунлоаде/аплоаде.

preferences.dat - содержит хэш пользователя.

sharedir.dat - содержит пути до всех расшаренных директорий.

staticservers.dat - содержит информацию о постоянных (статических, не меняющих IP и постоянно работающих) серверах.

adresses.dat - если в нём указан адрес до некоторого файла server.mets, то каждый раз при загрузке eMule будет обновлять свой список оттуда.

ac_searchstrings.dat - содержит все поисковые запросы, когда-либо проводившиеся.

ac_servermeturls.dat - аналогичен adresses.dat, с той разницей, что содержит сразу несколько адресов, где брать списки серверов. Из списка ищет первый рабочий (хотя я в этом не уверен - на официальном сайте разъяснений нет, а мне не было нужды разбираться).

cryptkay.dat - содержит в себе ключ RSA для безопасной аутентификации.

emule.tmpl - содержит шаблон для веб-сервера eMule (тот что в настройках выставляется для удалённого администрирования).

xxx.part - незаконченная закачка (то, что качается в данный момент). xxx - число.

xxx.part.met - содержит информацию о закачках (Part Hashes). Такой файл сопровождает любой файл .part

xxx.part.met.bak - запасной .part.met-файл, который создаётся на случай повреждения основного.

emule.log - сохраняет лог-файл Мула. Работает только если включено расширенное управление.

emule_debug.log - сохраняет лог дебага. Работает только если включено расширенное управление.

Приложение II. Простейшие компьютерные термины, используемые в статье.

(Для новичков за компьютером и в Интернете. Я допускаю в описании некоторые незначительные неточности - для меня самым главным является донести понимание, а не научить разбираться в маршрутизации и иерархии DNS)

Installer (Инсталлер) - програма, которая устанавливает что-то на компьютер

Бинарник - сама программа, не требующая установки. Чаще всего не работает и предназначена либо для специалистов, либо для обновлений, поскольку её ещё нужно настраивать, чем обычно занимается инсталлер. Однако это всё больше относительные и жаргонные выражения - вполне возможно может встретиться и другая интерпритация.

Порт - каждый компьютер имеет множество портов. Если на компьютере загружено несколько интернет-приложений, то каждому из них соответствует один или несколько портов. Соединение с конкретной программой происходит по адресу и по номеру порта - это как идентификатор программы.

Ник (nick) - псевдоним

Инет - Интернет

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

Расшарить - сделать общедоступным

Лимит - предел, за который нельзя выходить

IP - уникальный адрес компьютера в Интернет (устанавливается для каждого компьютера при входе в Сеть). Имеет вид "a.b.c.d", где a, b, c, d - целые числа от 0 до 255. Бывают статическими, когда у компьютера адрес постоянный, и динамическими, когда при каждом входе в Сеть компьютеру присваевается новый IP.

Домен - адрес сервера. Например, "heller.ru", "emule-project.net". В действительности является синонимом IP-адреса.

Юзер - пользователь

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

Проводник - программа Windows для управления файлами и папками.

LAN - локальная сеть

CPU - процессор

Предпросмотр - просмотр куска ещё не скачанного до конца файла

Хэш - результат вычисления над данными некоторой функции, которая потом может служить как доказательство целостности данных. Если от них опять вычислить хэш-функцию и она будет отличаться, то значит что и сам файл изменён. Хэш по объёму значительно меньше данных, для которых он вычислялся (бывают исключения, но не в данном случае).

MD4, SHA-1 - известные хэш-функции

RSA - система шифрования, которая часто применяется в схемах аутентификации.

Браузер - программа для просмотра страниц Интернета (чаще всего Internet Explorer)

Цифровая подпись - средство для установления подлинности автора. Часто используется в системах аутентификации.

Даунлауд (Download) - скачивание

Аплоуд (Uploud) - закачивание. В русском написании для Download и Upload могут быть различные варианты - конкретного правописания не существует - все пишут кто во что горазд.

Трафик - объём передачи информации по Интернету

Провайдер (ISP) - фирма, которая предоставляет доступ в Интернет и через оборудование которой вся информация из Интернета попадает к вам на компьютер.


 

А также другие работы, которые могут Вас заинтересовать

59445. Cценарій: Інтелектуальна гра — КВК 45.5 KB
  Котра команда назбирає в своїй; карбничці більше фішок та і буде переможцем. Та от дружбу ціним більше Сперечатися не будем. Завдання: з поданих літер за 1 хв скласти якомога більше слів АБИ брат краб бант танк кат раб кабан.
59446. Сценарій: Інтелектуально-розважальна гра “Калейдоскоп” 49 KB
  Все починається зі слова. Шевченко: Ну що здавалося б слова Слова та голос більш нічого. На цій станції наші гравці покажуть який словарний запас української мови вони мають. Команди зачитують слова чиє слово буде останнє той і переміг.
59447. Cценарій святкової лінійки: Спорт, туризм, здоровя 26.5 KB
  Що тільки людина посіє - те й пожне. Порушиш правила здоровя - пожнеш хворобу. Тому сьогодні особливо важливо сформувати потребу в здоровому способі життя, а також в задоволенні від повноцінного життя.
59448. Сценарій концерту, присвячений Дню Вчителя: Учителю, ти є і будеш вічно! 50 KB
  Всім у цей день веселитись Сміятись співати на жарт не скупитись. Хай кращою буде учительська Доля Щоб добре вам всім працювалось у школі Рятує хай ангел-спаситель всіх вас Щасливі й здорові були щоб весь час.
59449. Cценарій: Ні наркотикам! 45 KB
  Мета. Пропагувати здоровий спосіб життя. Викликати в учнів негативне ставлення до наркоманії, до вживання наркотиків, які завдають великої шкоди здоровю людини.
59450. Cценарій: Світова Велич Шевченка (Брейн-ринг) 61.5 KB
  Талант Шевченка його допитливість незвичайна любов до всього рідного до свого пригнобленого народу до своєї культури що перебувала тоді в московському ярмі а також освіта начитаність праця над собою все це було ґрунтом для появи геніальних його творів.
59451. А щоб краща була в мене хата... (З історії української хати) 95.5 KB
  Обладнання: Ілюстрації картин з інтер’єрами та елементами хати фотографі записи пісень про хату. Збудуй хати збудуй хату з лободи Збудуй хату з лободи з лободи з лободи А в чужую не веди не веди. З хати пішли в світ такі велетні як Тарас Шевченко.
59452. Відкритий позакласний захід: “Знай і умій” (деревообробка) 67.5 KB
  Обладнання та інструменти: Вивіска €œЗнай і умій рекламні щити від спонсорів емблема конкурсу додатки до кожної з вікторин набори букв насіння і плоди дикоростучих дерев деревний матеріал пластилін столярні інструменти різні ребус...
59453. Устами вдячно притулюсь до материнської руки 92 KB
  Перша мати Непорочна як лілея біла Із дитятком немовлятком Пречистая Діва. Друга мати це найкраща на світі країна Земля наша наша славна ненька Україна Третя мати що ж про неї гарного сказати Це ласкава люба мила рідна моя мати...