Введение.
Впервые выражение «peer-to-peer» было использовано в 1984 году Парбауэллом Йохнугуйтсманом при разработке архитектуры Advanced Peer To Peer Networking фирмы IBM.
В настоящее время область применения пиринговых сетей является очень обширной. Среди областей применения нужно отметить следующие:
• файловый обмен;
• обмен сообщениями;
• организация телефонных и видеоконференций;
• распределённые вычисления.
Пиринговые сети работают базируясь на существующих сетях общего пользования, поверх 7-го уровня семиуровневой модели ISO OSI. Также к пиринговым сетям можно отнести и протоколы работающие на 2-м уровне (например Ethernet), но исторически сформировалось, что термин P2P сети применяется только к сетям поверх существующей сетевой логической инфраструктуры.
Основные цели организации P2P сетей:
• Обход ограничений связанных с конечной пропускной способностью
каналов (для файлообменных сетей);
• Надёжный и простой способ организации обмена данными;
• Повышение надёжности сети, сеть будет работать даже в случае
отключения отдельных участников;
• Анонимизация участников сети;
• Аггрегирование ресурсов участников сети;
В рамках данной курсовой работы будет освещена история создания и
развития файлообменных сетей, как наиболее характерного и социально значимого аспекта P2P сетей, программы-клиенты P2P, правовые проблемы использования, а также проблемы и возможности.
Изначальной причиной появления файлообменных сетей принято считать необходимость создания такого метода файлового обмена, который бы обеспечил надёжное получение файла, а также максимально упростил бы механизм раздачи контента. В последствии, акцент смещается сначала на обеспечение максимальной скорости файлообмена, а затем и на увеличение анонимизации участников. Последнее требование является особенно актуальным в свете ужесточения законодательства в сфере защиты авторских прав, давления правообладателей на крупные пиринговые сети и их участников, а также попыток тоталитарных режимов ограничить распространение тех или иных материалов через сеть Интернет.
Технологии которые существуют на сегодняшний день и создаваемые технологии файлового обмена позволяют не только анонимизировать участников обмена, но и скрывать для провайдеров сам факт файлового обмена, путём шифрования трафика и выбора необычных TCP/UDP портов.
ОПРЕДЕЛЕНИЯ Р2Р СИСТЕМЫ.
Система P2P — это распределенная система, содержащай взаимосвязанные узлы, способные к самоорганизации в сетевую топологию с целью разделения ресурсов, таких как контент, циклы процессора, устройства хранения и полоса пропускания, адаптирующейся к отказам и переменному числу узлов, поддерживая при этом приемлемый уровень связности и производительности без необходимости в посредниках или поддержке глобального центрального сервера.
Система P2P – это сценарий использования приемов создания одноранговых программных систем для локальной обработки данных, полученных в процессе RFID.
Система P2P — это технология построения распределенной сети, где каждый узел может одновременно выступать как в роли клиента (получателя информации), так и в роли сервера (поставщика информации).
Система P2P — это класс приложений, совместно использующих распределенные ресурсы (дисковое пространство и файлы, вычислительные ресурсы, пропускную способность и т.д.).
ОБЩИЕ СВЕДЕНИЯ И ПОНЯТИЕ О Р2Р СЕТЯХ
Возникновение P2P сетей
• Поколение 1. Сети с большой централизацией
Napster — файлообменная сеть, созданная Шоном Фаннингом и действовавшая в период с июня 1999 по июль 2001, когда он посещал Northeastern University в Бостоне. Сервис назван в честь псевдонима Шона. Napster — первый широко используемым p2p файлообменным сервисом и оказал большое влияние на людей, пользующихся Интернетом. Сервис позволял легко обмениваться музыкальными файлами с другими людьми, что привело к обвинениям в нарушении авторских прав со стороны музыкальной индустрии. Несмотря на то, что сервис был остановлен по решению суда, он привел к появлению децентрализованных peer-to-peer сетей, контролировать которые гораздо сложнее.
Основными причинами возникновения сети стали:
1. Новый аудиокодек, разработанный рабочей группой института Фраунгофера (нем. Fraunhofer-Institut fьr Integrierte Schaltungen) формата MPEG-1 Audio Layer 3. Этот формат позволяет хранить музыкальные произведения в высоком качестве не занимая большого места.
2. Желание обойти ограничения на скачивания файлов, неизбежно возникающие при выкладывании файлов на FTP/HTTP сервера, а такжетограничения искусственно накладываемые владельцами серверов с целью показа рекламы.
В результате длительной, почти полугодовой работы над протоколом файлообменной сети Napster, в мае 1999 года проект был успешно реализован в виде клиентского приложения с одноименным названием Napster, необходимым для осуществления файлообмена, а также серверного ПО служащего для синхронизации файлового обмена.
Приложение Napster, после установки на компьютер пользователя, превращало его в узел файлообменой сети, позволяя закачивать файлы расшаренные другими пользователями, а также самостоятельно выкладывать файлы в общий доступ. Информация о наличии в сети тех или иных файлов, о том, на каких узлах сети она находится, а также мета-данные файлов (например ID теги, хеши), хранилась централизованно серверным ПО, расположенном физически на сервере napster.com.
Таким образом, механизм работы сети Napster выглядел следующим образом:
1. Изначально пользователь отправлял запрос на поиск необходимых файлов на центральный сервер.
2. Центральный сервер, в случае наличия информации о файлах в базе данных, сообщал клиенту адреса других участников сети, которые обладают данными файлами.
3. Клиент самостоятельно соединялся с необходимыми участниками для получения нужных данных.
Таким образом, мы видим частичную децентрализацию сети. Несмотря на одноранговость всех пользователей сети, которые занимаются файловым обменом, сеть зависит от одного центрального сервера, через который проходит вся информация о файловом обмене.
Очевидно, что подобная централизация является недостатком сети — в случае остановки центрального сервера делается неосуществимым поиск файлов внутри сети, сеть распадается на одиночные узлы и прекращает существовать как единое целое. Именно это и стало причиной выхода из строя сети Napster после закрытия центрального сервера по решению суда.
За месяц после официального открытия сети Napster, приложение Napster было скачано не менее 15000 раз. В последующие 2 года количество узлов сети достигло нескольких миллионов. Основным контентом, которым обменивались пользователи сети были MP3 файлы. Причина закрытия Napster — это появление демо-версии песни «I Disappear» группы Metallica за несколько дней до её официального выхода. В результате был составлен иск против компании.
С 2000-го по 2001-й годы американская звукозаписывающая ассоциация RIAA подала ещё несколько исков против разработчиков файлообменной сети.
12 февраля 2001 года по решению суда сервер napster.com был закрыт. Был выписан штраф в размере 2,43 миллиона долларов США. Бренд и логотипы продали на аукционе компании Roxio, которая использовала их для преобразования сервиса в платный сервис Napster 2.0.
В сентябре 2008 года музыкальный сервис Napster был выкуплен Best Buy за $127 млн.
• Поколение 2. Децентрализованные сети
Gnutella первая файлообменная сеть полностью децентрализованная в рамках Интернета, потомок Napster, различающаяся принципиальным отсутствием центрального сервера. Формирование сети происходит, когда один пользователь Gnutella соединяется с другим пользователем, затем они могут обмениваться доступной информацией.
Сеть была создана компанией America Online. Для этого были собраны лучшие сетевые программисты из подразделения Nullsoft.
Первая версия программы вышла в свет 14 марта 2000 года. Она давала возможность пользователю искать и обмениваться файлами с другими владельцами Gnutella без участия серверов.
Поиск в Gnutella построен на децентрализованной технологии gPulp. Вся информация об имеющихся в сети файлах хранится распределено на ее узлах. Запросы на поиск в такой сети выполняются с использованием собственной схемы маршрутизации GBFS (с ограничением на количество возвращаемых результатов и глубину поиска).
Связность сети достигается путём обмена непосредственно соединённых участников информацией о других узлах сети. Списки участников объединяются в так называемые Nodelist (от англ. Node —узел, list — список), которые перечисляют пары вида IP-адрес:Порт, с помощью которых можно соединиться с другим узлами сети.
Сеть Gnutella, не смотря на свой бурный рост в начале 2000-х годов, сегодня переживает не лучшие времена. Количество участников в ней не превышает миллион. Причиной тому — возникающая в сети проблема отсутствия контроля корректности предоставляемых узлами данных другим участникам сети и, в частности, соответствия содержимого файлов их метаданным, таким как описания, названия и комментарии. Эта уязвимость и была использована такими организациями как RIAA, MPAA и MediaDefender, которые стали массово осуществлять подделку защищённых авторским правом популярных файлов, выложенных в общий доступ в этой сети, снижая для пользователей ее привлекательность за счет значительного снижения скорости скачивания нужных им файлов и поиска таковых (поскольку защита от подделки результатов поиска отдельными узлами так же не предусмотрена).
Сегодня в сети Gnutella огромное количество файлов являются поддельными, и многие поисковые запросы проходят через поддельные узлы, что приводит к сомнительной приемлемости результатов поиска.
Для решения этой проблемы сети Gnutella примерно через год после ее появления (выяснить точную дату не представляется возможным) OpenSource разработчиками был создан новый протокол Gnutella2, который хоть и улучшил поиск файлов и маркировку файлов- подделок, но не решил проблему компрометации находящегося в сети контента представителями правообладателей.
• Поколение 3. Частично централизованные сети
Через несколько месяцев работы централизованных и полностью децентралиованных сетей, таких как Napster и Gnutella стало понятно, что два противоположных с точки зрения отношения к централизации подхода имеют множество недостатков – в одном случае это высокая зависимость от одного центрального индексирующего сервера, во втором – неточность результатов поиска и более низкая связность и соответственно скорость скачивания файлов в сети. Кроме того, в обеих сетях стали появляться клиенты, которые только скачивали информацию, не отдавая ничего взамен, что приводило к общему снижению скорости скачивания и количества контента в сетях. В феврале 2000 года компания MetaMachine представляет клиент принципиально новой файлообменной сети, которая была призвана решить эти проблемы – Edonkey2000.
Edonkey2000, разработанная на основе сетевого протокола прикладного уровня MFTP, обладала следующими особенностями:
1. наличие узлов 2х типов: обычных клиентских, непосредственно участвующих в файлообмене, и серверных, предназначенных для индексирования и поиска файлов;
2. реализация в клиентских программах принципа честного файлообмена – скорость скачивания файлов поставлена в зависимость от скорости их отдачи другим участникам сети;
3. идентификация файлов по хешу от их содержимого для предотвращения подделки популярных файлов по названию и размеру, как это было происходило в Gnutella.
Таким образом, архитектура Edonkey2000 является своего рода компромиссом между полностью централизованными и децентрализованными сетями, что даёт возможность производить более эффективный поиск файлов, улучшить связность сети и упростить подключение к ней новых клиентов. Наличие нескольких десятков серверов, в отличие от napster модели с одним сервером, увеличивает устойчивость сети к отключению отдельных ее серверов, в частности за счет обмена данными между самими серверами с целью предоставления клиентам актуального на данный момент списка активных серверов и динамического перераспределения нагрузки на них.
Для подключения к сети Edonkey2000 необходимо знать небольшой список адресов серверов. Как правило достаточно постоянного списка адресов серверов, поддерживаемых разработчиками.
По сравнению с предыдущими версиями файлообменных сетей, в клиентских программах Edonkey2000 реализованы механизмы, которые не позволяют клиенту качать данные с большой скоростью если он ничего не отдаёт в сеть (в том числе только что скаченные файлы). Однако, со временем, появились альтернативные клиенты, в которых этот механизм был модифицирован или отключён.
Следует также заметить, что в Edonkey2000 лучше работают механизмы поиска, в том числе за счёт обмена информацией между серверами.
Перечисленные улучшения, в том числе в архитектуре сети, помогли просуществовать ей весьма длительное время, а после закрытия основных узлов по решению суда в сентябре 2006 года, на базе клиентских узлов Edonkey2000 уже сосуществовала сеть 5-го поколения, на которую закрытие не оказало влияния.
Однако, не смотря на то, что были закрыты лишь несколько из серверов сети — шесть, поддерживаемых разработчиками ПО — выяснилось, что большая часть пользователей сети была подключена именно к ним, что привело с одной стороны к существенному возрастанию нагрузки на уцелевшие сервера и сегментации сети с другой.