1.3 Пиринговая файлообменная сеть

Одна из областей применения технологии пиринговых сетей — это обмен файлами. Выглядит это так: пользователи сети выкладывают какие-либо файлы в «расшаренную» (англ. share, делиться) папку, т. е. папку, файлы из которой доступны для скачивания другим клиентам. Какой-нибудь другой пользователь сети посылает запрос на поиск какого-либо файла. Программа ищет у клиентов сети файлы, соответствующие запросу, и показывает результат. После этого пользователь может скачать файлы у найденных источников. Современные файлообменные сети позволяют скачивать один файл сразу с нескольких источников (так быстрее и надёжнее). Чтобы убедиться, что этот файл у всех источников одинаковый, производится сравнение не только по названию файла, но и по контрольным суммам или хэшам типа MD4, TTH, SHA-1. Во время скачивания файла пользователем (и после его окончания) этот файл у него могут скачивать и другие клиенты сети, в результате чего особенно популярные файлы могут в итоге быть доступными для скачивания с сотен источников одновременно.

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

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

В феврале 2006 прекратил работу самый популярный сервер сети eDonkey — Razorback, а затем прекращена разработка непопулярного коммерческого клиента EDonkey2000. Сама сеть EDonkey2000 продолжает функционировать, т. к. не завязана на конкретные сервера и существует большое количество свободно распространяемых клиентских программ.


Глава 2. Сети и протоколы 2.1 eDonkey2000 (сеть)

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

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

Поиск

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

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

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


Загрузка

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

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

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

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

2.2 Kad Network

Kad Network — децентрализованная безсерверная файлообменная сеть, которая использует протокол оверлейной сети Kademlia. Поддерживается в eMule (Kad 2.0), aMule и MLDonkey.

Использование

Kad Network использует UDP для :

·           Поиска источников ed2k хэша

·           Поиска ed2k хэша на ключевые слова в названиях файла

·           Нахождения комментариев и оценки для файлов (хэша)

·           Оказания услуг узлам, находящимся за файерволом (Low ID)

Заметим, что Кад сеть не используется, чтобы фактически передать файлы через Р2Р сети. Вместо этого, когда начинается передача файлов, подключения клиентов происходят напрямую друг с другом (используя стандартные IP-сети).

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

Единственная вещь, которая нужна для соединения с этой сетью — IP и порт любого клиента, уже подключённого к сети. Это называется Boot Strap (самонастройка).

Как только происходит соединение с сетью, клиент запрашивает других клиентов, чтобы определить, может ли он свободно с ними соединиться. Этот процесс похож на определение HighID/LowID на серверах.

Если вы можете свободно соединяться, вам дается ID (высокий, HighID) и получаете статус open в Кад сети. Если вы не можете соединяться свободно, вы получаете статус firewalled (соответственно LowID).


2.3 BitTorrent

Логотип BitTorrent

BitTorrent (букв. англ. «битовый поток») — пиринговый (P2P) сетевой протокол Коэна для кооперативного обмена файлами через Интернет.

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

Первый torrent-клиент «BitTorrent» был создан программистом Брэмом Коэном на языке Python 4 апреля 2001 года, запуск первой версии состоялся 2 июля 2001 года. Существует множество других программ-клиентов для обмена файлами по протоколу BitTorrent.

Принцип работы протокола

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

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

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

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

Общие особенности

·           Отсутствие очередей на скачивание.

·           Файлы закачиваются небольшими фрагментами; чем менее доступен фрагмент, тем чаще он будет передаваться. Таким образом, присутствие в сети «сидера» с полным файлом для загрузки необязательно — система распределяет сегменты между «пирами», чтобы в последующем они могли обмениваться недостающими сегментами.

·           Клиенты (peers) обмениваются сегментами непосредственно между собой, по принципу «ты — мне, я — тебе».

·           Скачанные фрагменты становятся немедленно доступны другим клиентам.

·           Контролируется целостность каждого фрагмента.

·           В качестве объекта раздачи могут выступать несколько файлов (например, содержимое каталога).

Протоколы и порты

Клиенты соединяются с трекером по протоколу TCP. Входящий порт трекера: 6969.

Клиенты соединяются друг с другом, используя протокол TCP. Входящие порты клиентов: 6881—6889.

Номера портов не фиксированы в спецификации протокола и могут изменяться при необходимости. Более того, в данный момент большинство трекеров используют обычный HTTP порт 80, а для клиентов рекомендуется выбрать случайный входящий порт.

DHT-сеть в BitTorrent-клиентах использует протокол UDP.

Кроме того, протокол UDP используется UDP-трекерами (не поддерживается всеми клиентами и не является официальной частью протокола) и для соединения клиентов друг с другом через UDP NAT Traversal (используется только в клиенте BitComet и не является официальной частью протокола).

Файл метаданных

Для каждого распространяемого файла создаётся файл метаданных с расширением .torrent, который содержит следующую информацию:

·           URL трекера;

·           общую информацию о закачиваемом файле (имя, длину и пр.);

·           контрольные суммы (точнее, хэш-суммы SHA1) сегментов закачиваемого файла.

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

Первоначально BitTorrent не имел собственной поисковой системы (англ. search engine), но в мае 2005 года Брэм Коэн устранил этот недостаток.[1]

Трекер (англ. tracker; /ˈtrækə(r)/) — специализированный сервер, работающий по протоколу HTTP. Трекер нужен для того, чтобы клиенты могли найти друг друга. Фактически, на трекере хранятся IP-адреса, входящие порты клиентов и хэш-суммы, уникальным образом идентифицирующие объекты, участвующие в закачках. По стандарту, имена файлов на трекере не хранятся, и узнать их по хэш-суммам нельзя. Однако на практике трекер часто помимо своей основной функции выполняет и функцию небольшого веб-сервера. Такой сервер хранит файлы метаданных и описания распространяемых файлов, предоставляет статистику закачек по разным файлам, показывает текущее количество подключенных пиров и пр.

Работа без трекера

В новых версиях протокола были разработаны бестрекерные (англ. trackerless) системы, которые решают некоторые из предыдущих проблем. Отказ трекера в таких системах не приводит к автоматическому отказу всей сети.

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

На данный момент ещё не все клиенты используют совместимый друг с другом протокол. Совместимы между собой BitComet, µTorrent, Deluge, KTorrent и официальный клиент BitTorrent. Azureus также имеет режим бестрекерной работы, но его реализация отличается от официальной, вследствие чего он не может работать через DHT с вышеперечисленными клиентами.[2] Однако, для Azureus существует поддержка стандартного DHT через плагин Mainline DHT.

Super seeding (cупер-сид)

Супер-сид (англ. super seeding) — метод, реализованный в тех клиентах BitTorrent, авторы которых пытаются минимизировать объём данных до первого завершения загрузки пира. Метод был задуман Джоном Хофманом и впервые был осуществлен в клиенте «BitTornado» в середине 2003 г.

Супер-сид является изменением в поведении сидеров и не может быть осуществлен без нарушения протокола BitTorrent. Тем не менее, это не утверждается ни разработчиком протокола, Брэмом Коэном, ни в официальном клиенте.

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

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

Две ошибки начинающих пиров

Начинающие пользователи BitTorrent часто допускают две ошибки:

·           Забывают открыть порт приёма. Всегда, когда это возможно, порт должен быть открыт в брандмауэре или роутере. Пир с закрытым портом не может связаться с другим пиром, у которого порт приёма также закрыт.

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

Терминология

·           Анонс (англ. announce) — обращение клиента к трекеру. При каждом анонсе клиент передаёт на трекер информацию об объёмах им скачанного и отданного, a трекер передаёт клиенту список адресов других клиентов. Обращение клиента к трекеру происходит через определённые интервалы времени, которые определяются настройками клиента и трекера.

·           Доступность (англ. availability), или distributed copies — количество полных копий файла, доступных клиенту. Каждый сид добавляет 1,0 к этому числу; личеры увеличивают доступность в зависимости от количества скачанного, которого нет у других личеров. К примеру, если на раздаче есть один сид и два личера, скачавшие по 50 % файла (скачанные части равны между собой), то доступность равна 1,50.

·           Личер (англ. leech — пиявка) — пир, не имеющий пока всех сегментов, то есть продолжающий скачивание. Термин часто употребляется и в негативном смысле, который он имеет в других файлообменных сетях: пользователь, который отдаёт гораздо меньше, чем скачивает.

·           Отравленный торрент — ситуация, когда часть пиров раздаёт повреждённые сегменты.

·           Пир (англ. peer — соучастник) — клиент, участвующий в раздаче. Иногда пирами называют только скачивающих участников.

·           Раздача (англ. seeding) — процесс распространения файла по протоколу BitTorrent.

·           Рейтинг (англ. share ratio) — отношение отданного к скачанному.

·           Рой (англ. swarm) — совокупность всех пиров, участвующих в раздаче.

·           Сид, иногда сидер (англ. seeder — сеятель) — пир, имеющий все сегменты распространяемого файла, то есть либо начальный распространитель файла, либо уже скачавший весь файл.

·           URL анонса (англ. announce URL) — адрес трекера, к которому клиент делает анонс. Во многих клиентах называется «Tracker URL». Может включать «passkey» — уникальный код, назначаемый трекером для аккаунта пользователя, помогающий идентифицировать его на трекере (добавляется к URL анонса в самом *.torrent-файле).

Программы-клиенты

·           aria2 (англ.) — поддерживает HTTP, FTP, BitTorrent; файлы Metalink[убрать шаблон] 3.0

·           Azureus — написан на языке Java, поэтому является кроссплатформенным. Поддерживает Tor

·           BitTyrant — модифицированный вариант клиента Azureus 2.5

·           BitTornado — кроссплатформенный клиент, написанный на языке Python

·           Deluge — кроссплатформенный клиент, написанный на языке Python; использует GTK

·           FoxTorrent — расширение для браузера Mozilla Firefox, реализующее функции клиента BitTorrent

·           LeechCraft — кроссплатформенный клиент, существует плагин для поддержки BitTorrent

·           mlDonkey — кроссплатформенный клиент

·           Браузер Opera полностью поддерживает закачку торрентов, начиная с версии 9.0

·           TorrentFlux (en) — написан на PHP, работает на удалённом Web-сервере как PHP-скрипт, позволяя не держать свой компьютер включённым постоянно, но при этом качать и раздавать торренты

GNU/Linux, UNIX

·           BTPD — консольный клиент для Unix/GNU+Linux, написанный на C++; работает в режиме демона

·           CTorrent — консольный клиент для Unix/GNU+Linux, прекративший развитие в 2004 году

·           KTorrent — использует библиотеку Qt; работает в среде KDE

·           rTorrent — консольный клиент для UNIX/GNU+Linux, написанный на C++; использует библиотеки ncurses и libTorrent

·           Transmission — клиент для Mac OS X, FreeBSD, OpenBSD, NetBSD, GNU/Linux и BeOS, использующий GTK. Также может работать в консольном режиме и в режиме демона.

·           Bitflu — консольный клиент для Unix/GNU+Linux, написанный на Perl; работает в режиме демона, с поддержкой chroot окружения. Имеет веб-интерфейс, управляется через telnet

Windows

·           µTorrent

·           BitComet

·           BitSpirit

·           FlashGet

·           GetRight

·           Shareaza — поддерживает работу с несколькими файлообменными сетями, в том числе и BitTorrent

·           Free Download Manager

Mac OS

·           XTorrent

·           Transmission

·           BitRocket.

·           Tomato Torrent

·           Acquisition


Глава 3. Программы для работы с пиринговыми сетями 3.1 Perfect Dark (P2P)

Perfect Dark это японский пиринговый файлообменный клиент для Microsoft Windows. Автор известен под псевдонимом Kaichō (Президент (яп. 会長)). Perfect Dark был разработан как замена файлообменным клиентам Winny и Share. В данный момент проект находиться на стадии открытого тестирования и достаточно часто обновляется.

Безопасность

В целом структура сети Perfect Dark напоминает новейшие версии Freenet, но только с более интенсивным использованием распределённых хеш-таблиц.

Анонимность сети Perfect Dark базируется на mixnet, в которых направление движения трафика подчиняется известной вероятности, а распределённое файловое хранилище (unity) не имеет определённой структуры, что осложнит попытки доказать нелегальность производимого файлообмена. Данные хранятся и передаются зашифрованными блоками, отдельно от ключей, использованных для шифрования этих блоков.

Perfect Dark использует алгоритмы RSA (с 1024-битным ключом) и AES (с 128-битным ключом) для шифрования данных, передаваемых между участниками файлообмена. Ключи, использованные для шифрования, кэшируются для повышения эффективности работы.

Выложенные файлы и обсуждения (которые могут автоматически обновляться, если включена соответствующая опция), как правило, подписаны 160-битным ключом ECDSA. Выкладываемые обновления дополнительно защищены 2048-битным ключом RSA.

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

Открытое тестирование

Поскольку на данный момент Perfect Dark всё ещё активно развивается, автор не просит пользователей о полном переходе на Perfect Dark. Вместо этого автор просит пользователей принять участие в тестировании. На стадии тестирования автор надеется получить сообщения об ошибках в работе программы, и рекомендации о том, как сделать её более удобной.

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

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

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

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

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

3.2 eMule

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Поиск файлов

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

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

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

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

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

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

Поиск в сети Kademlia

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

Итоги

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


Глава 4. История пиринговых сетей

Peer-to-peer — "равный-равному", многовековой идеал самураев и социалистов-утопистов, был в самом конце второго тысячелетия воплощен в жизнь восемнадцатилетним бостонским студентом Шоном Фэннингом.

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

Недолго музыка играла...

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

Уже в августе 1999-го группа людей (в том числе и дядя Шона) вложили в проект серьезные деньги, которых должно было хватить еще на полгода, и один из инвесторов — Эйлин Ричардсон — стала в сентябре исполнительным директором компании Napster.

Хотя создатель Napster и его первые инвесторы были полны радужных надежд на будущее, а популярность проекта среди пользователей росла бешеными темпами, осень 1999-го, как выяснилось впоследствии, стала началом конца этой сети. В течение октября и ноября Napster ведет напряженные переговоры с представителями американской звукозаписывающей индустрии (RIAA). То ли возможность компромисса владельцами лейблов изначально не предполагалась, то ли всему виной была несговорчивость Эйлин Ричардсон, но, как бы там ни было, в начале декабря RIAA предъявила Napster ультиматум, грозя штрафами в сто тысяч долларов за каждый скачанный без ее разрешения музыкальный файл.

Карающая рука закона

Вся последующая история Napster состояла из отступлений и временных перемирий с владельцами авторских прав, что, впрочем, не мешало дальнейшему росту числа пользователей сети. В мае 2000 года по требованию рок-группы Metallica более 300 тысяч пользовательских компьютеров, содержащих ее песни, были исключены из пирингового обмена. Смена руководителя компании (обошедшаяся новому инвестору в 15 миллионов долларов) не спасла ситуации: в июне того же года RIAA сделала попытку наложить судебный запрет на все основные лейблы в коллекциях пользователей этой сети.Napster в ответ нанимает Дэвида Бойеса (адвоката, одержавшего победу над Microsoft в ходе затеянного правительством США антимонопольного разбирательства), Милтона Олина (бывшего топ-менеджера звукозаписывающей компании A&M) и объявляет о достижении договоренностей с компанией Liquid Audio, совместно с которой планировалось защитить музыкальный обмен от претензий поборников авторских прав. И все же 26 июля американский окружной судья Мерилин Пател постановила прекратить пиринговый обмен защищенными авторским правом композициями в течение двух суток. На этой интригующей ноте оставим на некоторое время многострадальный Napster наедине с американским правосудием и обратим свое внимание на его многочисленные аналоги.

Партизанская тактика обмена

После того, как популярность пирингового обмена стала очевидной, последователи Шона Фэннинга принялись писать свои собственные программы, стремясь превзойти прототип в удобстве использования, разнообразии доступных для обмена данных и защищенности от внешнего воздействия. В частности, в середине марта 2000 года в Интернете появилось программное обеспечение p2p-сети Gnutella, основанной на новой идеологии. В отличие от Napster, Gnutella не требовала наличия центрального сервера — вернее, функции сервера, обслуживающего запросы небольшой группы пользователей, мог выполнять компьютер любого участника пирингового обмена. Таким образом, блокировать работу сети отключением одного-единственного сервера стало невозможно. Любопытно, что авторы Gnutella Джастин Френкель и Том Пеппер являлись сотрудниками компании Nullsoft, принадлежащей крупнейшему провайдеру America-On-Line (AOL). Сама AOL в это же время готовилась к объединению с медиагигантом Time Warner, так что самодеятельность Френкеля и Пеппера была пресечена на корню. Однако джинн уже был выпущен из бутылки, и, несмотря на закрытие сайта http://www.gnutella.com/, копии программного обеспечения расползлись по Интернету. Как это нередко происходило и с компьютерными вирусами, независимые разработчики принялись усовершенствовать исходный код, породив многочисленные клоны Gnutella (из которых самыми популярными являлись Aimster, LimeWire, BearShare и Xolox).

Серьезную конкуренцию платформе Gnutella в скором времени составила технология голландской компании FastTrack. Разработанная почти одновременно с Napster, платформа FastTrack была не столь популярна вплоть до момента его первого официального закрытия. Так же как и Gnutella, основанные на FastTrack пиринговые сети (например, Morpheus, Grokster и KaZaa) не имели центрального сервера. Вместе с тем в качестве локальных серверов в данном случае выступали не любые, но наиболее мощные компьютеры из числа подключенных к p2p-сети, что значительно ускоряло ее работу. Ко всему прочему, программное обеспечение FastTrack позволяло объединять базы разных пиринговых сетей, увеличивая разнообразие доступных для скачивания файлов. Например, пользователи сети Morpheus (известной также под названием MusicCity), обогнавшей осенью 2000 года по популярности Napster, могли использовать ресурсы Grokster и KaZaa.

Мучения "котёнка"

Вернемся, однако, к Napster, апелляция которого была удовлетворена судом за считанные часы до предписанного срока закрытия. Вялотекущее судебное разбирательство продлилось до середины осени того же года, и к этому времени Napster в глазах владельцев авторских прав стал казаться меньшим злом по сравнению с конкурирующими сетями. Потенциальная уязвимость детища Фэннинга — наличие центрального сервера — позволяла организовать достаточно эффективную фильтрацию контента. Это обстоятельство, а так же огромная аудитория пиринговой сети (к концу 2000 года данным сервисом пользовались почти 40 млн человек) привлекли внимание немецкой медиакомпании Bertelsmann AG, и в конце октября было объявлено о достижении соглашения, в соответствии с которым на базе Napster планировалось создать платную службу музыкальной дистрибуции. Впрочем, сепаратный мир с Bertelsmann не избавил Napster от исков других звукозаписывающих гигантов, и агония p2p-сети продолжалась в течение всего 2001 года.

Могильщиками Napster стали не только поборники авторских прав, со многими из которых (в том числе и с Metallica) к лету 2001 года были достигнуты полюбовные соглашения, но также доброхоты, создававшие программы для обмана установленных пиринговой сетью фильтров (одна из таких программ была размещена, например, на сайте "напстероподобной" сети Aimster). Использовавшийся алгоритм идентификации MP3-файлов был весьма незамысловат и основывался на анализе их имен. Простая перестановка букв в именах файлов (типа MusicName =>usicNameM), не сильно затрудняющая визуальное опознание музыкальной композиции, оказалась не по зубам автоматическим фильтрам. И 11 июля 2001 года по формальному поводу (в связи с тем, что эффективность фильтрации защищенного авторским правом контента составляла не 100, а "всего" 99%) бесплатный файлообменный сервис Napster был закрыт окончательно.

Король умер, да здравствует король!

Для большинства поклонников бесплатной музыки этот день, видимо, не стал траурным. К моменту клинической смерти Napster количество доступных для скачивания через эту сеть композиций уменьшилось на 80%, тогда как конкурирующие проекты (американские Music City, Limewire, Bearshare и Audiogalaxy, голландская KaZaa, индийский Grokster, израильский iMesh и многие другие) активно расширяли базу пользователей. Впрочем, чувство безнаказанности, основанное в одних случаях на неподсудности европейских или, например, австралийских компаний американским судам, а в других — на неуязвимости децентрализованных сетей, подвело многих энтузиастов пирингового обмена.

Нерадостная тенденция упадка еще совсем недавно крупнейших файлообменных сетей рождает закономерный вопрос: а есть ли у технологий пирингового обмена будущее? Очевидно, что время, упущенное противниками свободного распространения информации в период рождения "Напстера", теперь играет им на руку. Конечно, полностью искоренить или даже значительно ограничить пиринговый обмен с помощью судебных запретов нереально (в силу уже упомянутых технических причин). Однако отсутствие легального статуса мешает владельцам p2p-сетей получать значительные инвестиции и не позволяет рассчитывать на крупные рекламные доходы. Одновременно с этим рекламный бизнес подрывают многочисленные неофициальные клоны клиентов пиринговых сетей, избавляющие пользователей от "назойливых баннеров". В результате компании банкротятся, и в лучшем случае на их раскрученных сайтах открываются платные музыкальные сервисы, а в худшем — домены могут достаться порнодельцам (по крайней мере, такое предложение было сделано в сентябре этого года почившему в бозе Napster).

Обмен под контролем

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

Вместе с тем, идея условно-бесплатного и одновременно легального распространения вполне коммерческого контента, как мне кажется, также имеет право на существование. Едва ли не основным аргументом защитников пирингового обмена является то обстоятельство, что достоверной связи между количественным ростом файлообмена и снижением официальных доходов от продажи контента (музыки на компакт-дисках, видео на DVD и т.д.) не наблюдается. Данные RIAA о падении доходов индустрии с этой точки зрения объясняются неблагоприятной общеэкономической конъюнктурой и медлительностью медиагигантов в отношении вывода на рынок новых продуктов. Более того, львиная доля тех, кто слушает скачанную в Интернете MP3-музыку, впоследствии покупает понравившиеся альбомы на CD ради их лучшего качества. И все же могут ли музыканты и их продюсеры заработать непосредственно на сетевом контенте, то есть согласится ли кто-нибудь платить за полученные в ходе пирингового обмена композиции?


Заключение

Возникновение пиринговых сетей связано с тремя факторами.

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

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

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

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

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

Исследования в области пиринговых сетей начались в связи с успешным функционированием таких систем как Napster, Gnutella и Freenet.

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

Преимущество поиска в ширину состоит в том, что просматривая значительную часть сети, он увеличивает вероятность удовлетворения запроса. Недостатком является перегрузка сети лишними сообщениями.

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


Список используемых источников:

1)         Карп Д., О’Рейлли Т., Мотт Т. WindowsXP. Справочник. / Д. Карп, Т. О’Рейлли, Т. Мотт. -2-е изд. – СПб.: Питер, 2006. – 784 с.

2)         Тихонов В.А., Райх В.В. Информационная безопасность: концептуальные, правовые, организационные и технические аспекты: учеб. пособие / В.А. Тихонов, В.В. Райх. – М.: Гелиос АРВ, 2006. – 528 с

3)         Касьянов В.Н., Евстигнеев В.А. Графы в программировании: обработка, визуализация и применение. СПб.: БХВ-Петербург, 2003, 1104 С.

4)         Касьянова Е.В. Язык программирования Zonnon для платформы .NET // Программные средства и математические основы информатики. - Новосибирск: ИСИ СО РАН, 2004, С.189-205.

5)         Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ, М.: МЦНМО, 1999.

6)         Лавров С.С. Программирование. Математические основы, средства, теория. - СПб: БХВ-Петербург, 2001.

7)         Просиз Дж. Программирование для .NET. – М.: Русская Редакция, 2003.

8)         Уоткинз Д., Хаммонд М., Эйбрамз Б. Программирование на платформе .NET. – М.: Вильямс, 2003.

9)         Gutknecht J., Zueff E. Zonnon Language Report. Zurich, Institute of Computer Systems ETH Zentrum, 2004.

10)      Торокин, А.А. Инженерно-техническая защита информации: учеб пособие для студентов, обучающихся по специальностям в обл. информ. безопасности / А.А. Торокин. – М.: Гелиос АРВ, 2005. – 960 с

11)      Акулов, О.А. Информатика: базовый курс: учеб. для студентов вузов, бакалавров, магистров, обучающихся по направлениям 552800, 654000 «Информатика и вычислительная техника» / О.А. Акулов, Н.В. Медведев. – 4-е изд., стер. – М.: Омега-Л, 2007. – 560 с.

12)      Советов Б.Я. Моделирование систем. Практикум: учеб. пособие для вузов / Б.Я. Советов, С.А. Яковлев. – 3-е изд., стер. – М.: Высш. шк., 2005. – 295 с.:

13)      Галицкий А.В., Рябко С.Д., Шаньгин В.Ф. Защита информации в сети –анализ технологий и синтез решений / А.В. Галицкий, С.Д. Рябко, В.Ф. Шаньгин. – М. : ДМК Пресс, 2004. – 616 с.

14)      Прохода А.Н. Обеспечение интернет-безопасности. Практикум: учеб. пособие для вузов/ А.Н. Прохода. – М.: Горячая линия-Телеком, 2007. – 180 с.

15)      ru.wikipedia.org

16)      www.allp2p.net.ru

17)      www.compulenta.ru

18)      p2pinfo.ru

19)      www.computery.ru

20)      www.compress.ru

21)      www.overclockers.ru

22)      www.krs-ix.ru

23)      experiment.ru


Информация о работе «Пиринговые сети. Понятие и виды»
Раздел: Информатика, программирование
Количество знаков с пробелами: 68441
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
36608
0
2

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

Скачать
14227
0
0

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

Скачать
93121
0
0

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

Скачать
141532
0
0

... , отсутствием теоретических разработок в его изучении, во-вторых, актуализацией данного жанра в рамках современной лингвокультурной ситуации. Глава II. IRC как жанр виртуального дискурса 2.1 Анализ IRC в категориях дискурса   2.1.1 Взаимодействие категорий дискурса в жанре IRC IRC (англ. Internet Relay Chat — ретранслируемый интернет-чат) – один из первых жанров, появившихся в начале ...

0 комментариев


Наверх