Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5ballov-106448.rtf
Скачиваний:
2
Добавлен:
06.08.2019
Размер:
1.92 Mб
Скачать

3. Основные пиринговые сети.

3.1. Первые сети – Napster и Gnutella.

« Однажды, в конце 1998 г., студенту по кличке «Napster», которого звали Шон Фаннинг, пришла в голову мысль, как можно обойти сложившиеся в Интернете ограничения и создать на его основе систему, которая бы представляла собой всемирную базу данных файлов, предназначенных для обмена — что-то вроде глобальной «файловой биржи». Фаннинг бросил учебу в начале 1999 г., и уже в мае того же года служба была введена в эксплуатацию — она требовала наличия у пользователей специальной программы подназванием Napster, позволявшей бесплатно скачивать через интернет данные, предоставляемые другими пользователями. Сам Фаннинг обеспечивал функционирование центральной базы данных (на www.napster.com).»[1],стр14Далее популярность Napster разрастается семимильными шагами. В течение нескольких месяцев с момента начала работы она достигает колоссальных размеров: число активных пользователей увеличивается до миллиона, ежедневно через Napster проходят сотни тысяч файлов. Обмен большей их части осуществляется нелегально. Владельцы авторских прав (издательские фирмы, звукозаписывающие и другие компании) должным образом реагируют на сложившуюся ситуацию: через тринадцать месяцев с начала действия Napster было вынесено судебное постановление о запрете ее эксплуатации (июнь 2000 г.). На тот момент Napster имела уже почти 40 миллионов пользователей!

Причина, по которой к Napster все-таки смогли быть предъявлены обвинения, заключалась в ее технологических особенностях. Файлообменная сеть Napster требовала наличия центрального сервера, который контролировал и обеспечивал функционирование всей системы (см. рис. 1.1). А по авторскому законодательству, провайдеры и сетевые службы, даже если сами не занимаются нелицензионным распространением материалов, но контролируют и обеспечивают функционирование подобной деятельности, все равно подлежат привлечению к ответственности.

Gnutella.

Gnutella — была создана в 2000 г программистами фирмы Nullsoft как преемница Napster. Она функционирует до сих пор, хотя из-за серьезных недостатков алгоритма пользователи в настоящее время предпочитают сеть Gnutella2. Эта сеть работает без сервера (полная децентрализация).

При подключении клиент получает от узла, с которым ему удалось соединиться, список из пяти активных узлов; им отсылается запрос на поиск ресурса по ключевому слову. Узлы ищут у себя соответствующие запросу ресурсы и, если не находят их, пересылают запрос активным узлам вверх по “дереву” (топология сети имеет структуру графа типа “дерево”), пока не найдется ресурс или не будет превышено максимальное число шагов. Такой поиск называется размножением запросов (query flooding).

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

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

Недостатки протокола Gnutella инициировали разработку принципиально новых алгоритмов поиска маршрутов и ресурсов и привели к созданию группы протоколов DHT (Distributed Hash Tables) — в частности, протокола Kademlia, который сейчас широко используется в наиболее крупных сетях.

Запросы в сети Gnutella пересылаются по TCP или UDP, копирование файлов осуществляется через протокол HTTP. В последнее время появились расширения для клиентских программ, позволяющие копировать файлы по UDP, делать XML-запросы метаинформации о файлах.

В 2003 г. был создан принципиально новый протокол Gnutella2 и первые поддерживающие его клиенты, которые были обратносовместимы с клиентами Gnutella. В соответствии с ним некоторые узлы становятся концентраторами, остальные же являются обычными узлами (leaves). Каждый обычный узел имеет соединение с одним-двумя концентраторами. А концентратор связан с сотнями обычных узлов и десятками других концентраторов. Каждый узел периодически пересылает концентратору список идентификаторов ключевых слов, по которым можно найти публикуемые данным узлом ресурсы. Идентификаторы сохраняются в общей таблице на концентраторе. Когда узел “хочет” найти ресурс, он посылает запрос по ключевому слову своему концентратору, последний либо находит ресурс в своей таблице и возвращает ID узла, обладающего ресурсом, либо возвращает список других концентраторов, которые узел вновь запрашивает по очереди случайным образом. Такой поиск называется поиском с помощью метода блужданий (random walk).

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]