|
Сугубо прикладное ословедение.
Несколько слов о P2P-клиентах
Акустик
lecter@list.ru
Не знаю как сейчас, а во времена моего студенчества было проблемой получить нужное бумажное издание в институтской библиотеке. Сначала автор этих строк обращался к "повелительнице книг" - вечно недовольной тетке без возраста и размера, затем, узнав, что нужная книжка, как всегда, выдана, оставлял запрос на искомую крупицу знаний и лишь через несколько дней обретал счастье в виде изрядно потрепанного фолианта.
Все могло быть намного проще, если бы вредная тетка сразу выдавала координаты текущего владельца книги. Общага была одна, и процесс обучения в ВУЗе мог быть намного эффективнее, если двое молодых разнополых людей проводили бы свой досуг за чтением дефицитного учебника (если физически здоровый молодой человек может за день в лесу насобирать 8 кг черники, а физически здоровая молодая девушка может собрать 5 кг черники, то из этого вовсе не следует, что, отправившись вдвоем в лес, они смогут собрать 13 кг черники - прим. Remo).
Еще пятилетку назад для получения цифровой информации нужно было совершать похожие телодвижения: пользователь отправлялся на поисковый сервер, где в строке поиска вводил искомые данные, после чего получал гигантское количество ссылок, кои вели страдальца в "закрома Родины", то бишь на серверы aka хранилища этой самой информации. Но, как ни крути, факт ужасающей централизации поиска и загрузки контента начал понемногу раздражать.
Гений-недоучка
Подавляющее большинство Homo Computeris было радо существующему порядку вещей до тех пор, пока 18-летний студент Северо-восточного университета Бостона по имени Шон Феннинг не выдал простую и оттого гениальную мысль: а что будет, если одним махом получить доступ ко всем музыкальным файлам, хранящимся на компьютерах университета, где юноша с трудом отучился полтора года? "Было бы неплохо!" - ответил себе Шон и, как вы знаете, начал развивать идею, суть которой сводилась к следующему: файловые серверы отвергались по определению, равно как и предварительный процесс поиска таких хранилищ в Сети.
Согласно идее Феннинга, в системе должен наличествовать центральный сервер, который обязан собирать и хранить информацию о музыкальных файлах, имеющихся на пользовательских машинах. Студент поделился открытием с отцом, а папаня, не будь дурак, идею подхватил и организовал компанию Napster, ставшую всемирно известной. И вроде медиамагнаты, подсчитав убытки (а был ли мальчик?) от разбазаривания музыкального контента, в конечном итоге разорили семейную компанию.
Но было поздно: идея свободного обмена информацией овладела массами, а, как известно, свято место пусто не бывает.
Журнал наш неоднократно рассказывал о программах, с помощью которых можно найти и легко закачать на свой компьютер и музыку, и видео, и графические файлы. Однако речь если в последнее время и шла о P2P, то только в контексте разнообразных клонов Gnutella (BearShare Pro, LimeWire, XoloX, Morpheus и других). Безусловным достоинством этих децентрализованных (в отличие от почившего Napster) сетей являются следующие моменты. Во-первых, работу подобных обменных сетей практически невозможно прибить, поскольку отсутствует центральный сервер.
Если же остановить работу нескольких отдельно взятых клиентов, то ничего не изменится: каждая пользовательская машина в текущий момент времени связана с несколькими другими, одновременно храня в памяти информацию о нескольких десятках "коллег по несчастью". Во-вторых, анонимность участников P2P-сети: в Дании уже имелись прецеденты, когда обычных пользователей привлекали к ответственности за полученные файлы. Ко всему прочему, у таких сетей фактически отсутствует хозяин, ибо владельцами являются все участники (с поправкой на то, что в некоторых сетях работоспособность бескорыстно поддерживается добровольцами).
Таким образом, не стоит предрекать конец Р2Р-сетей, что бы там не говорили и не писали многочисленные апологеты охраны авторских прав. Однако с технической точки зрения децентрализованные системы обладают рядом недостатков, главным из которых является упоминавшееся преимущество - отсутствие центрального сервера. По этой причине такие сети работают медленнее своих централизованных собратьев. Ко всему прочему, машины клиентов свободных систем вынуждены пропускать через самое себя массу поисковых запросов от других пользователей, и если вы работаете через диалап, то перспективы получения искомого контента далеко не самые радужные.
Но, тем не менее, пиринговые сети живут, радуя своих клиентов свободным обменом информации. Рассмотрим несколько Р2Р-сетей и клиентских программ, которые наиболее популярны среди российских пользователей.
eDonkey
Отцы-основатели этой Р2Р-сети учли печальный опыт Napster и построили свое творение на основе распределенных серверов. В этом случае подразумевается работа большого количества серверов, обменивающихся информацией друг с другом. Безусловно, такая схема имеет гораздо больше шансов остаться на плаву, учитывая бесплатность программного обеспечения для клиентов и сервера, а также тот факт, что сами серверы разбросаны по всему миру. Среди российских пользователей клиентская программа получила ласковое прозвище "ослик", или - еще проще - "осел", благодаря смешной ослиной морде, являющейся логотипом сети.

На первый взгляд, работа в такой сети довольно парадоксальна: чем больше пользователей загружают один и тот же файл, тем лучше для всех. Нет нужды объяснять, что, например, FTP-сервер в случае наплыва страждущих получить какой-либо контент ждет скоропостижная смерть. А вот в сети eDonkey (www.edonkey2000.com) все совсем наоборот.
Дело в том, что искомый файл разбивается на небольшие части и загружается из нескольких одновременно доступных источников (для контента, пользующегося большим спросом, всегда найдется десяток-другой постоянных обладателей, и в конечном итоге скорость загрузки ограничивается шириной вашего канала).
Более того, клиентская программа помимо вашей загрузки постоянно "озабочена" доступом к частям файла и других пользователей. Таким образом, контент сети eDonkey довольно быстро расходится по рукам, благодаря загрузке из множества источников (так называемый multi-source). Например, лично я успел загрузить 15 Мб, а от меня при этом ушло собрату по сети 5 Мб; данный собрат, в свою очередь, предоставляет доступ к этим 5 Мб другим пользователям и так далее.
Безусловным преимуществом "ослиной" и аналогичных сетей является "хэширование" файлов: в этом случае шифруется вся информация, касающаяся контента, причем этот алгоритм не позволяет провести обратную дешифровку. Если в интернете обнаруживается ссылка на файл в сети eDonkey, то вряд ли можно понять, что таится в линке, имеющем примерно такой вид: ed2k://
|file|название_файла.расширение|617723904|ACE4929…
Другими словами, здесь контент не распознается по названию - для идентификации служит контрольная сумма файла (названия нужны только для поиска).
Работа с программой под силу любому пользователю. Единственное, на что я бы советовал обратить особое внимание при установке, - приглашение добавить в систему некие модули. В последней (на момент написания этих строк) версии 0.52 появилось выборочное меню установки, позволяющее запретить деятельность шпионских продуктов типа Gator.
В процессе инсталляции программа спросила о типе моего интернет-соединения, выставив оптимальные параметры для загрузки на мой компьютер и "отдачи" коллегам.
По умолчанию при запуске eDonkey не соединяется со своими серверами, а для "оживления" программы служит кнопка Disconnect в левом верхнем углу окна. Впрочем, ничто не мешает автоматическому запуску "ослика": кнопка Options > Server > Always stay connected. Соединение происходит с одним из незанятых серверов, список которых постоянно пополняется и корректируется (доступен для загрузки с сайта программы - ссылка Server list). Также по умолчанию для работы используется специальный протокол MFTP (Multicast File Transfer Protocol - протокол многоадресной передачи файлов) и порт 4662.
Не всегда искомый контент находится в явном виде на каком-либо известном ресурсе (например,
www.sharereactor.com или
www.sharereactor.ru) - в этом случае следует воспользоваться командой Search программного окна. В окне поиска достаточно ввести название искомого продукта (поле Search String) и нажать кнопку Submit. Как правило, результаты поиска появляются почти мгновенно; для загрузки выбранного файла следует щелкнуть правой кнопкой по названию и в контекстном меню выбрать команду Download.
В процессе загрузки вам будет показана информация о скорости скачивания, а также данные о процессе загрузки (upload) с нашей машины: имя пользователя, скорость и объем отданной информации. Для того или иного файла можно назначить приоритет загрузки: щелчок по названию файла > команда Set Priority контекстного меню. Данный момент нередко актуален для выбора наиболее "скоростного" источника.
Также, загружаясь, клиентская программа создает большое количество временных файлов, хранящихся в каталоге \Program Files\eDonkey2000\temp, причем объем такого необходимого балласта равен объему будущего файла в целом. Готовая продукция в виде загруженного контента будет доступна в папке \Program Files\eDonkey2000\incoming.
К сожалению, обычная версия eDonkey показывает баннер, для избавления от которого придется раскошеливаться. Однако существует альтернативное приложение, лишенное этого безобразия.
eMule
Предыдущие версии "ослика" вызывали многочисленные нарекания пользователей, однако разработчики не спешили внимать гласу народа, по каковой причине группа европейских программистов в середине 2002 года занялась расшифровкой протокола работы eDonkey и созданием собственного клиента для этой сети.

В качестве базового языка был взят C++ от .NET, а проект стартовал как OpenSource, в результате чего исходные коды клиента распространялись как в виде инсталлятора (exe-файл), так и в бинарной инкарнации. Так и родился клиент eMule
www.emule-project.net, работающий по протоколу Overnet. Дистрибутив клиентской программы весит 3,84 Мб; программа традиционно бесплатна и не содержит баннеров. Более того, ныне в ходу продвинутая версия - eMule Plus (emuleplus.sourceforge.net), отличающаяся более эргономичным интерфейсом и, со слов разработчиков, некоторыми полезными функциями в части поиска и загрузки контента.
eMule использует те же порты, что и eDonkey (4661-4665), каковые должны быть открыты; прекрасно уживается со старыми версиями eDonkey и без проблем откликается на "ослиные" ссылки. Немаловажный момент - обе версии eMule (обычный и Plus) локализованы. В целом eMule весьма схож с eDonkey, но гораздо более информативен. Так, например, при подключении к серверам и в процессе работы можно наблюдать динамически меняющиеся данные о, например, недобросовестных клиентах.
К безусловным преимуществам eMule можно отнести: возможность получения списка серверов не только от сервера, но и от других клиентов; полезную систему рейтинга, обеспечивающую определенный консенсус между процессами скачивания и закачивания; встроенную функцию предварительного просмотра фильмов, если загружены куски файла с началом и концом фильма; встроенный IRC-клиент; гибкое регулирование скорости upload с вашего ПК, то есть исходящий трафик можно разбить на относительно равные порции между заданным числом качающих.
KaZaA Lite
Данный Р2Р-клиент для работы в сети FastTrack давно стал объектом головной боли музыкальных компаний. На сегодняшний день он является одним из наиболее популярных (ежемесячно распространяется порядка двух с половиной миллиардов (!) нелицензионных копий оригинального медиаконтента).

KaZaA сочетает в себе эффективный набор функций и возможностей, присущих лишь некоторым аналогичным клиентам, с рекордно высоким количеством зарегистрированных пользователей, что позволяет каждому из юзеров, вне зависимости от соединения с интернетом и личных интересов, добиться максимальной отдачи от работы в пиринговой сети, затрачивая при этом минимальные промежутки времени.
Существуют два варианта этого приложения - KaZaA Lite (1,8 Мб,
www.k-lite.tk), полностью свободная от шпионских и рекламных модулей (имеется локализованная версия -
www.kazaalite.ru), а также официальный продукт - KaZaA 2.6 (6,7 Мб, www.kazaa.com), включающий упомянутые выше "вкусности". При наличии 30 долларов можно стать владельцем версии PLUS, которая тянет на 7,5 Мб. Однако я абсолютно убежден, что для полноценной работы вполне достаточно Lite-версии.
Интерфейс программы абсолютно понятен и не вызывает никаких сложностей. Система фильтрации нежелательных находок позволяет изначально исключать сомнительные результаты поиска по размеру и названию файла, в то время как дополнительные настройки значительно упрощают регулирование интернет-канала и подбор подходящих сетевых партнеров. Причем без труда находится и русская музыка.
Процесс копирования файла, благодаря опциям сегментирования и докачки, как правило, не заставляет долго себя ждать - искомый вами документ с большой долей уверенности окажется хотя бы у нескольких из трех миллионов подсоединенных пользователей. Ознакомиться же с загруженным контентом можно тут же - к нашим услугам встроенный медиаплейер. Также имеется поддержка скинов, столь любимых сетевым народом. Пожалуй, единственным недостатком KaZaA я бы назвал ограничение по битрейту для МР3-файлов - не более 128 кбит/с.
По моему скромному мнению, KaZaA Lite великолепно осуществляет поиск, загрузку и просмотр / прослушивание скопированных файлов; добавьте сюда полное отсутствие шпионских и рекламных модулей - и удачи вам.
BitTorrent
Предпочитающих BitTorrent вряд ли можно сравнить с пользовательскими массами KaZaA или eDonkey / eMule, однако и принципы работы этого проекта не требуют максимально возможного числа участников. BitTorrent - это сеть, предназначенная для обмена, в первую очередь, большими файлами. Более всего это похоже на пиринговую сеть, однако не является таковой в чистом виде. С самого начала создатель BitTorrent программист Брэм Коэн
(bitconjurer.org/BitTorrent) заложил в нее несколько принципиальных отличий от других пиринговых сетей: нацеленность на распространение крупных файлов и не совсем децентрализованная структура сети.
Так, например, в службе Napster центральный сервер хранил имена пользователей и названия файлов, которыми те желали обменяться. В сетях FastTrack и eDonkey подобных серверов нет и архитектура сети предполагает максимальную децентрализацию. Архитектура BitTorrent предусматривает наличие у файла, выкладываемого в сеть, единственного владельца, который и заинтересован в его распространении. Другими словами, имеется некий сервер (tracker), выступающий в роли хранилища небольших "торрент"-файлов (о них чуть ниже) и управляющий распределенной загрузкой. Обратите внимание на термин "распределенная загрузка": на сервере-трекере нет предлагаемого контента - файл находится у одного из клиентов, пожелавших поделиться с ближними.
Пример: допустим, вы, уважаемый читатель, в силу своего альтруизма решили поделиться с народом неким контентом. Для этого вы при помощи специальной утилиты создаете небольшой (обычно 20-40 килобайт) "торрент"-файл, содержащий служебную информацию об имени файла, его размере, хэш-коды сегментов (по умолчанию размером 256 кб) и адрес распространителя, у которого, в свою очередь, должен быть запущен трекер-сервер для отслеживания количества загрузок файла в сети P2P, после чего отправляете такой "торрент"-файл на один из серверов (который и занимается распределением загрузки).
Ваш покорный слуга, обуреваемый жаждой пресловутой халявы, находит ссылку на созданный вами "торрент"-файл, после чего либо щелкает по ссылке в браузере, либо сохраняет "торрент"-файл на свой жесткий диск и запускает его. После этого открывается клиентская программа, каковая и начинает процесс загрузки контента. Впоследствии, по мере того как файл по частям уходит с компьютера первоначального владельца в Сеть, пользователи начинают загружать его фрагменты друг у друга. Немного терминологии: Seed - пользователь, владеющий контентом, выступает в роли "раздатчика" (иными словами, это пользователь, предлагающий upload); Peer - пользователь-халявщик, загружающий контент и, в свою очередь, предоставляющий возможность загрузки фрагментов неполного файла другим страждущим.
Практически все программы-клиенты для работы в этой сети являются продуктами с открытым кодом. Наибольшую популярность снискал родной клиент, расположенный на сайте автора:
bitconjurer.org/BitTorrent/download.html (2,7 Мб). Лично я пользуюсь другим клиентом - TheSHAD0W's Experimental Bittorrent Client
(bt.degreez.net/download.
html). Для создания "торрент"-файлов можно воспользоваться утилитой Complete Dir
(sourceforge.net/projects/bittorrent, 2,45 Мб), однако имеется альтернатива - Make Torrent
(krypt.dyndns.
org:81/torrent/maketorrent, 327 кб).
Генерация "торрент"-файла не представляет трудностей: в левой части окна программы выбирается директория, где хранится контент, а в правой мы видим нужные файлы. Разумеется, можно создать "торрент"-файл для содержимого каталога, однако лично мне гораздо удобнее заархивировать содержимое. В списке Tracker следует выбрать сервер, куда отправится созданный файл с расширением torrent, и нажать кнопку Create torrent.
Загрузка нужной информации чрезвычайно проста. При запуске клиентской программы достаточно указать директорию, куда будет сохраняться контент, после чего в списках Settings for, Upload rate и Max Uploade выбрать соответственно тип интернет-соединения, скорость загрузки частей файла от вас другим товарищам и количество одновременных загрузок с вашей машины. Вначале следует проявить терпение: как только к вам на диск загрузятся первые фрагменты контента, вы автоматически начнете их отдавать, при этом ваш share-rating начнет подниматься (одноименная позиция в главном окне клиента), в результате чего увеличится скорость загрузки на ваш ПК. Чуть выше я говорил о сохранении найденного "торрент"-файла на диск: в этих сетях возможна загрузка файла в случае обрыва связи. В этом случае нужно снова запустить "торрент"-файл и указать каталог, куда осуществлялась загрузка.

Иногда после нескольких часов работы клиента BitTorrent теряется связь с сервером. Эта проблема характерна для обладателей динамических IP-адресов (DS- и кабельные соединения). Причин здесь множество, но проблему можно решить установкой скорости "отдачи" (upload) на 85-90% от пропускной способности канала и ограничением количества одновременных соединений. В TheSHAD0W's Experimental Bittorrent Client это выглядит так: Pref > Advanced, где в списке Max peer connections следует выбрать значения 30, 40 или другое - потребуется время для экспериментов. Для систем Windows 98 / Me это значение рекомендуется ограничить (20). Если увидите сообщение "Unable to connect to tracker", то сие означает невозможность подсоединиться к серверу-трекеру; что решается поиском другого "торрент"-файла.
По окончании загрузки контента существует главнейшее правило - не выключайте свой BitTorrent-клиент, поскольку теперь вы переходите в статус "кормящего отца" (seed), который не должен забывать о других коллегах, еще не загрузивших оный контент. Разумеется, это сугубо личное дело, но механизм работы BitTorrent как раз и держится на подобном альтруизме. Во всяком случае, потерпите хотя бы половину того времени, что ушло на загрузку.
Резюме: BitTorrent наиболее оптимален для загрузки новых релизов фильмов, игр и софта. Пожалуй, главным недостатком можно считать централизацию и необходимость в веб-ресурсах с "торрент"-файлами. Ко всему прочему, действует старый принцип: "Бери, что дают".
Послесловие
Пожалуй, стоит напомнить тот факт, что эффективность того или иного P2P-клиента резко отличается при работе на разных машинах и в разных локальных сетях. Так, например, мой приятель, живущий в 50 метрах от меня, но подключенный к другой локальной сети, вполне успешно загружает контент посредством сверхпопулярного "ослика"… Так вот, этот же клиент, установленный на моей машине, хоть и работал, но крайне медленно.
Самое интересное, что продолжалось сие до тех пор, пока автор этих строк не провел крайне "задушевную" беседу с администратором своей локальной сети, после чего все заработало как надо.
BitTorrent загрузил более 350 Мб за несколько часов, но во время написания этих строк "сломался" в процессе установки DirectConnect. Как бы там ни было, есть смысл попробовать различные варианты, за исключением откровенного надувательства в виде XoloX (недавно появившийся P2P-клиент, который не выдерживает никакой критики). Во всяком случае, при скоростном интернет-соединении успех нам гарантирован.
Две проблемы
К многочисленным недостаткам пиринговых сетей можно добавить две проблемы. Первая - это так называемые файлы-"пустышки". Фирмы и компании, владеющие правами на медиаконтент, прилагают немало усилий для того, чтобы нарушить работу этих самых сетей, в частности посредством технологического саботажа.
Так, например, ассоциация RIAA, якобы страдающая от любителей халявы, не раз признавала факт сотрудничества с малоизвестной компанией OverPeer, зарабатывающей на жизнь умышленным искажением и снижением качества цифровой музыки и видео. OverPeer генерирует аудио- и видеофайлы крайне поганого качества, после чего выкладывает их в пиринговые сети.
Разместив свои файлы на высокоскоростных каналах, фирма-саботажник гарантирует их попадание в списки результатов поиска. В итоге пользователь тратит массу времени (и средств за трафик), получая в результате черт знает что.
Другая проблема, как уже говорилось выше, - пользователи, являющиеся по сути своей эгоистами. Ведь залогом успеха пиринговой сети является правило, требующее от пользователей не только загружать файлы себе на ПК, но и предоставлять возможность загрузки со своей машины и другим юзерам. Используемые сегодня методы борьбы с жадными товарищами подразумевают рейтинг пользователей, где самые добрые получают приоритет на чужих серверах, а те, кто страдает скаредностью, при загрузке контента нервно курят в конце очереди.
|