Использованием протоколов peer to peer. Что такое P2P? Почему одноранговые сети полезны

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

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

«Этическая» сторона вопроса

Вообще, в последние годы активно «демонизируется» пиринговая сеть. Что это «опасно» с точки зрения получения вирусов и нелицензионного контента, говорят практически во всех СМИ.

Вот только журналисты отчего-то стыдливо умалчивают, что не менее 70% трафика от протокола Р2Р приходятся на абсолютно законопослушных пользователей и даже целые компании, которые просто разгружают свои серверы, вовлекая в обмен данными рядовые компьютеры. Простой пример: уже давно «Метелица», она же компания Blizzard, использует эти сети для обновления клиентов того же «Варкрафта» и прочих своих игр. Не стоит и упоминать, какое от игроков со всего мира там генерируется!

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

Наиболее распространенные программы

Наверняка каждый пользователь хотя бы слышал о некоторых утилитах, посредством которых и осуществляется файловый обмен. У всех на слуху µTorrent и eMule, Shareaza, KaZaA и и другие, которые постоянно упоминаются в связи с передачей той или иной информации в сети интернет. Впрочем, постараемся рассказать о них более упорядочено. Итак, что такое пиринговая сеть? Какова научная расшифровка этого понятия?

Определение

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

Именно для устранения такой «дискриминации» и была придумана пиринговая сеть, каждый компьютер в которой может не только принимать, но и передавать информацию, работая одновременно в качестве сервера и клиента. Чаще встречается аббревиатура P2P (peer-to-peer), что с английского можно перевести как «от равного к равному». Такие сети еще называют децентрализованными.

Основные принципы работы

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

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

Отличия от стандартной сети

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

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

Преимущества пиринговой модели передачи данных

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

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

Некоторые недостатки пиринговой модели

Мы неоднократно подчеркивали, что основной сферой использования такого рода сетей является обмен данными. Как ни странно, но в мире практически не встречается описанная нами выше пиринговая сеть. Что это означает? Дело в том, что классическая модель имеет не только многие достоинства, но и некоторые критические недостатки.

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

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

Наиболее крупные и популярные сети для обмена файлами

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

Наиболее крупными, известными во всем мире, являются следующие Р2Р сети:

    ED2K. Передача данных осуществляется по протоколу MFTP. Клиент — известная программа eMule. Уже с 2005 года проект находится в состоянии «хронической смерти», но пока что сеть продолжает стабильно функционировать, пусть даже и скорость передачи данных быстрой никак не назвать.

    BitTorrent. Пожалуй, наиболее популярный сегмент пиринговой системы, отличающийся громадным количеством пользователей и высокой скоростью. Имеет огромное количество клиентов, к числу которых относится «эпический» uTorrent, BitComet, а также десятки иных.

    Direct Connect. Более специфический вариант, когда хабы, образованные некими группами людей, используются ограниченным (сравнительно) кругом пользователей. Чрезвычайно популярна эта модель в качестве локальной сети провайдера. Основной клиент - DC++.

    Gnutella. Вот это самая настоящая, чистая пиринговая система. Используется особый протокол передачи данных, который был создан компанией Nullsoft, разработчиком общеизвестного (хотя и умершего) «Винампа». Какие в этом случае используются клиенты пиринговых сетей? Известна программа Shareaza, LimeWire и прочие.

    FastTrack. Также характеризуется «чистой» моделью P2P, но в обмене файлами могут участвовать только те компьютеры, которые имеют их полную версию. Программы - KaZaA, mlDonkey.

Каковы основные преимущества всех этих сервисов? Все просто — никакая настройка пиринговой сети совершенно не требуется. Ставите программу, переходите по «магнитной» ссылке и... вуаля, файл начал качаться!

Основные правила обмена файлами

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

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

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

Что желательно делать при обмене?

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

    Ни в коем случае не удаляйте файл, только-только завершив его скачивание. Если есть такая возможность, как можно дольше сохраняйте его на своем жестком диске.

    Нельзя также перемещать или переименовывать полученные файлы, так как в этом случае другие пользователи также не смогут получить к ним доступ.

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

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

Правообладателям: мы вовсе не советуем распространять пиратский софт или что-то подобное. Всегда можно только поприветствовать, если пользователь участвует в обмене дистрибутивами того же «Линукса», так как это значительно разгружает серверы компаний, которые и без того зачастую живут на одни пожертвования и работают исключительно на добровольческой основе!

О защите авторских прав

Мы уже отмечали, что пиринговые сети в последние годы ассоциируются исключительно с пиратством. И чаще всего такое отношение довольно-таки оправдано, так как пользователи массово скачивают не то... Вот только в большинстве случаев пиратскому контенту есть вполне адекватная и бесплатная замена. Всегда помните об этом!

Сеть P2P

Технология организации одноранговых сетей (peer-to-peer networking) , часто называемая технологией P2P, является одной из самых полезных и при этом часто неправильно понимаемых среди средств, появившихся в последние несколько лет. Когда люди думают о P2P, им на ум, как правило, приходит лишь одна вещь: возможность обмена музыкальными или видео файлами, зачастую незаконным образом. Это связано с тем, что приложения для обмена файлами наподобие BitTorrent стали очень популярными, а в них для работы используется именно технология P2P.

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

В Microsoft тоже не обошли стороной появление технологии P2P и стали разрабатывать собственные инструменты и средства для ее применения. Так появилась платформа Microsoft Windows Peer-to-Peer Networking , исполняющая роль своего рода каркаса для коммуникаций в приложениях P2P. В состав этой платформы входят такие важные компоненты, как PNRP (Peer Name Resolution Protocol - протокол преобразования имен членов) и PNM (People Near Me - соседние пользователи) .

Кроме того, в версию.NET Framework 3.5 было включено новое пространство имен System.Net.PeerToPeer и несколько новых типов и средств, позволяющих создавать приложения P2P с минимальными усилиями.

Обзор технологии P2P

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

Архитектура типа "клиент-сервер"

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

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

На рисунке ниже показан простой вариант архитектуры типа "клиент-сервер":

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

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

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

Архитектура типа P2P

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

Давайте для примера представим, что веб-сайтом, с которым взаимодействуют клиенты, является www.williamspublishing.com, а издательство Williams объявило о выходе новой книги на этом сайте и предоставлении его для бесплатной загрузки всем желающим, но лишь на протяжении одного дня. Не трудно догадаться, что при таком положении дел накануне появления книги веб-сайт начнет просматривать масса людей, которые будут постоянно обновлять его содержимое в своих браузерах и ожидать появления файла. Как только файл станет доступным, все они одновременно начнут пытаться загрузить его и, скорее всего, веб-сервер, который обслуживает веб-сайт, не выдержит такого натиска и выйдет из строя.

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

Особенности архитектуры P2P

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

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

    обнаруживать других клиентов;

    подключаться к другим клиентам;

    взаимодействовать с другими клиентами.

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

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

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

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

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

Обеспечение клиентов возможностью обнаруживать, подключаться и взаимодействовать друг с другом играет центральную роль в любой реализации P2P.

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

В предыдущих разделах уже было представлено понятие равноправного участника (peer) - именно так называют клиентов в сети P2P. Слово "клиент" в сети P2P не имеет никакого смысла, потому что здесь нет обязательного сервера, клиентом которого нужно быть.

Группы равноправных участников, которые соединяются друг с другом, называются ячейками (meshes) , облаками (clouds) или графами (graphs) . Каждая отдельная группа считается хорошо соединенной, если соблюдено хотя бы какое-то одно из следующих условий:

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

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

    Удаление одного равноправного участника из группы не лишает остальных равноправных участников возможности взаимодействия друг с другом.

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

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

Также допускается создавать и структурированные сети P2P с четко определенными путями, по которым должно происходить распространение запросов и данных среди равноправных участников.

Решения P2P

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

    приложения, предназначенные для распространения содержимого, в том числе упоминавшиеся ранее приложения обмена файлами;

    приложения, предназначенные для совместной работы, такие как приложения, позволяющие открывать общий доступ к рабочему столу и "белой доске" (whiteboard);

    приложения, предназначенные для обеспечения многопользовательской связи и позволяющие пользователям общаться и обмениваться данными напрямую, а не через сервер;

    приложения, предназначенные для распределения обработки, как альтернатива приложениям для суперкомпьютеров, которые обрабатывают огромные объемы данных;

    приложения Web 2.0, объединяющие в себе некоторые или все перечисленные выше приложения и превращающие их в динамические веб-приложения следующего поколения.

И пока мы тут сидим и думаем, куда бы разместить свою рекламу, в Пало-Альто происходит что-то странное. Там сотрудники маленького магазина Hassett Ace Hardware, продающего хозяйственное оборудование, показывают, как может стать жизнью древняя мудрость о том, что «люди созданы не для накопительства, а для обмена».

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

Все делятся знаниями, советами и хорошим настроением. Продажи идут в гору (для ремонта же часто нужны детальки, которые надо купить в магазине). За апрель силами округи было отремонтировано около 130 «единиц техники», в том числе гигантский садовый лавовый фонтан и 200-летняя швейная машинка. Каждый, кто отремонтировался на площадке Hassett Ace Hardware, получает флажок для велосипеда с логотипом компании. И его с удовольствием берут, потому что классное обслуживание – вещь чертовски приятная и незабываемая.

Такая экономика взаимовыгоды получила в маркетинговых кулуарах имя peer-to-peer или «равный равному». Она строится не только на деньгах, но и на высокой степени эмоционального удовлетворения, а в случае маленьких магазинов вроде Hassett Ace Hardware еще и на выстраивании почти интимных отношений с клиентами. Ходят слухи, что эту технологию уже «обнюхивают» такие гиганты, как Pepsi, Chevrolet и Unilever.

«Мы узнали интересную вещь: молодые покупатели, прежде чем прийти в салон за авто, выискивают в социальных сетях странички наших продавцов, чтобы изучить их интересы и найти человека, близкого по духу. Они его находят и советуются с ним, потому что знают – помощь будет больше дружеской, чем менеджерской» — говорит Кристи Лэнди, менеджер по маркетингу в General Motors. Даже экспертное мнение может быть предметом взаимовыгодного обмена.

Дмитрий ЛАНДЭ

К ак это часто бывает, все начиналось с попытки обойти Закон. У некоторых людей появилось желание обмениваться через Интернет представленными в электронной форме и защищенными авторскими правами произведениями.
Логика таких действий вполне понятна. Допустим, Айван купил в магазине книгу. Авторские права не нарушены. Айван прочитал книгу и дал ее почитать Питеру. Питер книгу не покупал, автору не досталась его часть авторского вознаграждения. Питер прочитал книгу, воспринял информацию. Нарушил ли он Закон? Пожалуй, нет. Питер передал книгу Стивену, который, в свою очередь, передал другую, легально купленную книгу, Айвану. Три товарища, как говорят полицейские - три фигуранта, однако нарушений вроде бы нет.
Допустим, друзей не три, а тридцать. Нарушен ли Закон? Каждый автор недополучает двадцать девять вознаграждений. Формируется некая сетевая структура, где каждый связан с каждым, без выделенного центра. В технике такие сети назы-ваются децентрализованными, в отличие от централизованных. Аналог централизованной сети - публичная библиотека. Айван, Питер и Стивен пошли в публичную библиотеку и прочитали выбранные книги, восприняли информацию. Нарушает ли библиотека авторское право? Вопрос не риторический, а очень даже актуальный, широко обсуждаемый общественностью. Что бы ни говорил Закон, какие бы поправки не вносились, история человеческой цивилизации говорит о том, что библиотеки - это благо.
А теперь допустим, что собрались не три и не тридцать, а три миллиона друзей и обмениваются книгами. Где грань, скольким друзьям можно ими обмениваться законно, а скольким нельзя? И почему только книгами, как-никак XXI век на дворе... Книги переводятся в электронный вид (и этот процесс, по-видимому, необратим), появляются аудиокниги, фильмы в современных компактных форматах, мультимедийные энциклопедии, да и прочие программы, включая дистрибутивы операционных систем.
Во многих странах сегодня пришли к заключению - публичные централизованные электронные библиотеки (читайте: «серверы») произведений, защищенных авторским правом, - вне Закона. Сервер имеет владельца, его можно легко выявить, а сервер закрыть.
Многие помнят историю сетевой службы Napster, глобальной файловой биржи конца двадцатого века. В июне 2000 года было вынесено судебное постановление о ее закрытии, к этому времени Napster пользовались 40 млн. пользователей. Служба Napster была централизованной - она требовала наличия центрального сервера, который обеспечивал функционирование всей системы в целом. При этом революционность системы как раз и заключалась в элементах децентрализации, ее пользователи могли общаться друг с другом напрямую, предоставляя для скачивания свои файлы.
Для обхода Закона, учитывая грустную историю службы Napster, стали разрабатывать файлообменные сети с высокой степенью децентрализации. Конечно, за такую возможность пришлось платить функциональностью.
Именно о таких системах будет идти речь ниже, однако не столько о тех аспектах, которые до сих пор представляются нелегальными, а о возможностях, которые оказались вполне законными и широко востребованными. Наряду с некоторыми недостатками децентрализованного подхода к организации информационных сетей обнаружились такие преимущества, которые обусловили их широкое применение в обороне, государственном управлении, науке и бизнесе.
Итак, речь пойдет о децентрализованных или пиринговых сетях (от англ. peer-to-peer, P2P - один на один) - компьютерных сетях, основанных на равноправии участников. В таких сетях отсутствуют выделенные серверы, а каждый узел (peer) является как клиентом, так и сервером. На практике пиринговые сети состоят из узлов, каждый из которых взаимодействует лишь с некоторым подмножеством других узлов (из-за ограниченности ресурсов). В отличие от архитектуры «клиент–сервер» такая организация позволяет сохранять работоспособность сети при любом количестве и любом сочетании доступных узлов.
Сегодня пиринговые сети настолько развились, что WWW уже не является самой крупной информационной сетью по ресурсам и порождаемому интернет-трафику. Известно, что трафик, объем информационных ресурсов (в байтах), количество узлов пиринговых сетей, если их рассматривать в совокупности, ничем не уступают сети WWW. Более того, трафик пиринговых сетей составляет 70% всего интернет-трафика (рис. 1)! При этом можно отметить два очень важных аспекта: во-первых, о пиринговых сетях очень мало пишут в научной литературе, а во-вторых, проблемы поиска и уязвимости пиринговых сетей, как крупнейшего «белого пятна» современных коммуникаций, пока остаются открытыми.

«Клиент-сервер» и P2P

Централизованная архитектура «клиент-сервер» подразумевает, что сеть зависит от центральных узлов (серверов), обеспечивающих подключенные к сети терминалы (т.е. клиентов) необходимыми сервисами. В этой архитектуре ключевая роль отводится серверам, которые определяют сеть независимо от наличия клиентов. Очевидно, что рост количества клиентов сети типа «клиент–сервер» приводит к росту нагрузок на серверную часть. Таким образом, на определенном уровне развития сети она может оказаться перегруженной.
Архитектура P2P, как и «клиент– сервер», также является распределенной. Отличительная черта P2P заключается в том, что это децентрализованная архитектура, где не существует понятий «клиент» и «сервер». Каждый объект в сети (равноправный узел) имеет одинаковый статус, который позволяет выполнять как функции клиента, так и сервера. Несмотря на то, что все узлы имеют одинаковый статус, реальные возможности их могут существенно различаться. Достаточно часто пиринговые сети дополняются выделенными серверами, несущими организационные функции, например авторизацию.
Децентрализованная пиринговая сеть, в отличие от централизованной, становится более производительной при увеличении количества узлов, подключенных к ней. Действительно, каждый узел добавляет в сеть P2P свои ресурсы (дисковое пространство и вычислительные возможности), в результате суммарные ресурсы сети увеличиваются.

Области применения

Существует несколько областей применения пиринговых сетей, объясняющих их растущую популярность. Назовем некоторые из них.

    Обмен файлами. P2P выступают альтернативой FTP-архивам, которые утрачивают перспективу ввиду значительных информационных перегрузок.

    Распределенные вычисления. Например, такой P2P-проект, как SETI@HOME (распределенный поиск внеземных цивилизаций) продемонстрировал огромный вычислительный потенциал для распараллеливаемых задач. В настоящий момент в нем принимают участие свыше трех миллионов пользователей на бесплатной основе.

    Обмен сообщениями. Как известно, ICQ – это P2P-проект.

    Интернет-телефония.

    Групповая работа. Сегодня реализованы такие сети групповой работы, как Groove Network (защищенное пространство для коммуникаций) и OpenCola (поиск информации и обмен ссылками).

Существует много областей, где успешно применяется P2P-технология, например, параллельное программирование, кэширование данных, резервное копирование данных.
Общеизвестно, что система доменных имен (DNS) в сети Интернет также фактически является сетью обмена данными, построенной по принципу Р2Р.
Самой популярной службой интернет-телефонии является Skype (www.skype.com), созданная в 2003 году шведом Никласом Зеннстромом и датчанином Янусом Фриисом, авторами известной пиринговой сети KaZaA. Построенная в архитектуре P2P служба Skype сегодня охватывает свыше 10 млн. пользователей. В настоящее время Skype принадлежит интернет-аукциону eBay, который приобрел ее за 2,5 млрд. долларов.

Рис. 1. Распределение трафика Интернет по протоколам (а) и между P2P-сетями (б) (данные по Германии, 2007 г.)

Реализацией технологии Р2Р является также популярная в настоящее время система распределенных вычислений GRID. Еще одним примером распределенных вычислений может служить проект distributed.net, участники которого занимаются легальным взломом криптографических шифров, чтобы проверить их надежность.

Стандартизация в области P2P

P2P - это не только сети, но еще и сетевой протокол, обеспечивающий возможность создания и функционирования сети равноправных узлов, их взаимодействия. Множество узлов, объединенных в единую систему и взаимодействующих в соответствии с протоколом P2P, образуют пиринговую сеть. Для реализации протокола P2P используются клиентские программы, обеспечивающие функциональность как отдельных узлов, так и всей пиринговой сети.
P2P относятся к прикладному уровню сетевых протоколов и являются наложенной сетью, использующей существующие транспортные протоколы стека TCP/IP - TCP или UDP. Протоколу P2P посвящено несколько основополагающих документов сети Интернет - RFC (в частности, последний датируется 2008 годом - RFC 5128 State of Peer-to-Peer (P2P) Communication across Network Address Translators).
В настоящее время при реализации пиринговых сетей используются самые различные методологии и подходы. В частности, компания Microsoft разработала протоколы для P2P-сетей Scribe и Pastry. Поддержка протокола PNRP (Peer Name Resolution Protocol), также относящегося к P2P-системам, была включена в состав Windows Vista.
Одну из удачных попыток стандартизации протоколов P2P предприняла компания Sun Microsystems в рамках проекта JXTA. Этот проект реализуется с целью унифицированного создания P2P-сетей для различных платформ. Цель проекта JXTA - разработка типовых инфраструктурных решений и способов их использования при создании P2P-приложений для работы в неоднородных средах.
В рамках проекта JXTA определено шесть протоколов, на основе которых могут создаваться прикладные системы:

    Peer Discovery Protocol (PDP). Узлы используют этот протокол для поиска всех открытых JXTA-ресурсов. Низкоуровневый протокол PDP обеспечивает базовые механизмы поиска. Прикладные системы могут включать собственные высокоуровневые механизмы поиска, которые реализованы поверх PDP.

    Peer Resolver Protocol (PRP). Этот протокол стандартизирует формат запросов на доступ к ресурсам и сервисам. При реализации этого протокола с узла может быть послан запрос и получен на него ответ.

    Peer Information Protocol (PIP). PIP используется для определения состояния узла в сети JXTA. Узел, получающий PIP-сообщение, может в полной или сокращенной форме переслать ответ о своем состоянии либо проигнорировать это сообщение.

    Peer Membership Protocol (PMP). Узлы используют этот протокол для подключения и выхода из группы.

    Pipe Binding Protocol (PBP). В JXTA узел получает доступ к сервису через канал (pipe). С помощью PBP узел может создать новый канал для доступа к сервису или работать через уже существующий.

    Endpoint Routing Protocol (ERP). Используя этот протокол, узел может пересылать запросы к маршрутизаторам других узлов для определения маршрутов при отправке сообщений.

Алгоритмы поиска в пиринговых сетях

Поскольку сегодня в перенасыщенном информацией мире задача полноты поиска отводится на второй план, то главная задача поиска в пиринговых сетях сводится к быстрому и эффективному нахождению наиболее релевантных откликов назапрос, передаваемый от узла всей сети. В частности, актуальна задача - уменьшение сетевого трафика, порождаемого запросом (например, пересылки запроса по многочисленным узлам), и в то же время получение наилучших характеристик выдаваемых документов, т.е. наиболее качественного результата.
Следует отметить, что, в отличие от централизованных систем, организация эффективного поиска в пиринговых сетях - открытая исследовательская проблема.
В большинстве пиринговых сетей, ориентированных на обмен файлами, используется два вида сущностей, которым приписываются соответствующие идентификаторы (ID): узлы (peer) и ресурсы, характеризующиеся ключами (key), т.е. сеть может быть представлена двумерной матрицей размерности MN, где M - количество узлов, N - количество ресурсов. В данном случае задача поиска сводится к нахождению ID узла, на котором хранится ключ ресурса. На рис. 2. представлен процесс поиска ресурса с ключом 14, запускаемый с узла ID0.
В данном случае с узла ID0 запускается поиск ресурса с ключом 14. Запрос проходит определенный маршрут и достигает узла, на котором находится ключ 14. Далее узел ID14 пересылает на ID0 адреса всех узлов, обладающих ресурсом, соответствующим ключу 14.


Рис. 2. Модель поиска ресурса по ключу

Рассмотрим некоторые алгоритмы поиска в пиринговых сетях, ограничившись основными методами поиска по ключевым словам.

Метод широкого первичного поиска

Рис. 3. Некоторые модели поиска в пиринговых сетях

Метод широкого первичного поиска (Breadth First Search, BFS) широко используется в реальных файлообменных сетях P2P, таких как, например, Gnutella. Метод BFS (рис. 3a ) в сети P2P размерности N реализуется следующим образом. Узел q генерирует запрос, который адресуется ко всем соседям (ближайшим, по некоторым критериям, узлам). Когда узел p получает запрос, выполняется поиск в ее ло-кальном индексе. Если некоторый узел r принимает запрос (Query) и отрабатыват его, то он генерирует сообщение QueryHit, чтобы возвратить результат. Сообщение QueryHit включает информацию о релевантных документах, которая доставляется по сети запрашивающему узлу.
Когда узел q получает QueryHits от более чем одного узла, он может загрузить файл с наиболее доступного ресурса. Сообщения QueryHit возвращаются тем же путем, что и первичный запрос.
В BFS каждый запрос вызывает чрезмерную нагрузку сети, так как он передается по всем связям (в том числе и узлам с высоким временем ожидания). Поэтому узел с низкой пропускной способностью может стать узким местом. Однако есть метод, позволяющий избежать перегрузки всей сети сообщениями. Он заключается в приписывании каждому запросу параметра времени жизни (time-to-level, TTL). Параметр TTL определяет максимальное число переходов, по которому можно пересылать запрос.
При типичном поиске начальное значение для TTL составляет обычно 5–7, которое уменьшается каждый раз, когда запрос пересылается на очередной узел. Когда TTL становится равным 0, сообщение больше не передается. BFS гарантирует высокий уровень качества совпадений за счет большого числа сообщений.

Метод случайного широкого первичного поиска

Метод случайного широкого первичного поиска (Random Breadth First Search, RBFS) был предложен как улучшение «наивного» подхода BFS. В методе RBFS (рис. 3b ) узел q пересылает поисковое предписание только части узлов сети, выбранных в случайном порядке. Какая именно часть узлов - это параметр метода RBFS. Преимущество RBFS заключается в том, что не требуется глобальной информации о состоянии контента сети; узел может получать локальные решения так быстро, как это потребуется. С другой стороны, этот метод вероятностный. Поэто-му некоторые большие сегменты сети могут оказаться недостижимыми (unreachable).

Интеллектуальный поисковый механизм

Интеллектуальный поисковый механизм (Intelligent Search Mecha-nism, ISM) - новый метод поиска в сетях P2P (рис. 3c ). С его помощью достигается улучшение скорости и эффективности поиска информации за счет минимизации затрат на связи, то есть на число сообщений, передающихся между узлами, и минимизации количества узлов, которые опрашиваются для каждого поискового запроса. Чтобы достичь этого, для каждого запроса выбираются лишь те узлы, которые наиболее соответствуют данному запросу.
Механизм интеллектуального поиска состоит из двух компонентов:
Профайла, который узел q строит для каждого из соседних узлов. Профайл содержит последние ответы каждого узла.
Механизма ранжирования профайлов узлов (ранга релевантности). Ранг релевантности используется, чтобы выбрать соседей, которые будут давать наиболее релевантные документы на запрос.
Механизм профайлов служит для того, чтобы сохранять последние запросы, а также количественные характеристике результатов поиска. При реализации модели ISM используется единый стек запросов, в котором сохраняется по T запросов для q соседних узлов. Как только стек заполняется, узел прибегает к правилу замены «последнего наименее используемого» для сохранения последних запросов.
Метод ISM эффективно работает в сетях, где узлы содержат некоторые специализированные сведения. В частности, исследование сети Gnutella показывает, что качество поиска очень зависит от «окружения» узла, c которого поступает запрос. Еще одна проблема в методе ISM состоит в том, что поисковые сообщения могут зацикливаться, не в состоянии достичь некоторых частей сети. Чтобы разрешить эту проблему, обычно выбирается небольшое случайное подмножество узлов, которое добавляется к набору релевантных узлов для каждого запроса. В результате механизм ISM стал охватывать большую часть сети.

Метод «большинства результатов по прошлой эвристике»

В методе «большинства результатов по прошлой эвристике» (>RES) каждый узел пересылает запрос подмножеству своих узлов, образованному на основании некоторой обобщенной статистики (рис. 3d ).
Запрос в методе >RES является удовлетворительным, если выдается Z или больше результатов (Z - некоторая постоянная). В методе >RES узел q пересылает запросы к k узлам, выдавшим наибольшие результаты для последних m запросов. В экспериментах k изменялось от 1 до 10, и таким путем метод >RES варьировался от BFS до подхода глубинного первичного поиска (Depth-first-search).
Метод >RES подобен методу ISM, который рассматривался ранее, но использует более простую информацию об узлах. Его главный недостаток по сравнению с ISM - отсутствие анализа параметров узлов, содержание которых связано с запросом. Поэтому метод >RES характеризуется скорее как количественный, а не качественный подход. Из опыта известно, что >RES хорош тем, что он маршрутизирует запросы в большие сегменты сети (которые, возможно, также содержат более релевантные ответы). Он также захватывает соседей, которые менее перегружены, начиная с тех, которые обычно возвращают больше результатов.

Метод случайных блужданий

Ключевая идея метода случайных блужданий (Random Walkers algorithm, RWA) заключается в том, что каждый узел случайным образом пересылает сообщение с запросом, именуемое «посылкой», одному из своих соседних узлов. Чтобы сократить время, необходимое для получения результатов, идея одной «посылки» расширена до «k посылок», где k - число независимых посылок, последовательно запущеных от исходного узла.
Ожидается, что «k посылок» после T шагов достигнет тех же результатов, что и одна посылка за kT шагов. Этот алгоритм напоминает метод RBFS, но в RBFS предполагается экспоненциальное увеличение пересылаемых сообщений, а в методе случайных блужданий - линейное. Оба метода - и RBFS, и RWA - не используют никаких явных правил, чтобы адресовать поисковый запрос к наиболее релевантному содержанию.
Еще одной методикой, подобной RWA, является адаптивный вероятностный поиск (Adaptive Probabilistic Search, APS). В APS каждый узел развертывает локальный индекс, содержащий значения условных вероятностей для каждого соседа, который может быть выбран для следующего перехода для будущего запроса. Главное отличие от RWA в данном случае - это то, что в APS узел использует обратную связь от преды-дущих поисков вместо полностью случайных переходов.

Примеры файлообменных пиринговых сетей

Отдельного рассмотрения заслуживают файлообменные P2P-сети, которые охватывают в настоящее время свыше 150 млн. узлов. Рассмотрим наиболее популярные в настоящее время пиринговые сети, такие как Bittorrent, Gnutella2 и eDonkey2000.

Сеть BitTorrent (битовый поток) была создана в 2001 году. В соответствии с протоколом BitTorrent файлы передаются не целиком, а частями, причем каждый клиент, закачивая эти части, в это же время отдает их другим клиентам, что снижает нагрузку и зависимость от каждого клиента-источника и обеспечивает избыточность данных. С целью инициализации узла в сети Bittorrent (www.bittorrent.com) клиентская программа обращается к выделенному серверу (tracker), предоставляющему информацию о файлах, доступных для копирования, а также статистическую и маршрутную информацию об узлах сети. Сервер и после инициализации «помогает» узлам взаимодействовать друг с другом, хотя последние версии клиентских программ требуют наличия сервера только на стадии инициализации, приближаясь к идеалу концепции peer-to-peer.
Если узел «хочет» опубликовать файл, то программа разделяет этот файл на части и создает файл метаданных (torrent file) с информацией о частях файла, их местонахождении и узле, который будет поддерживать распространение этого файла.
Существует множество совместимых программ-клиентов, написанных для различных компьютерных платформ. Наиболее распространенные клиентские программы - Azureus, BitTorrent_client, μTorrent, BitSpirit, BitComet, BitTornado, MLDonkey.

В 2000 году была создана одна из первых пиринговых сетей Gnutella (www.gnutella.com), алгоритм которой в настоящее время усовершенствован. Сегодня популярность завоевала более поздняя ветвь этой сети - Gnutella2 (www.gnutella2.com), созданная три года спустя, в 2003-м, которая реализует открытый файлообменный P2P-протокол, используемый программой Shareaza.
В соответствии с протоколом Gnutella2 некоторые узлы становятся концентраторами, остальные же являются обычными узлами (leaves). Каждый обычный узел имеет соединение с одним-двумя концентраторами. Gnutella2 реализует информационный поиск с помощью метода блужданий. В соответствии с этим протоколом у концентратора есть связь с сотнями узлов и десятки соединений с другими концентраторами. Каждый узел пересылает концентратору список идентификаторов ключевых слов, по которым могут быть найдены публикуемые ресурсы. Для улучшения качества поиска используются также метаданные файлов - информация о содержании, рейтинги. Допускается возможность «размножения» информации о файле в сети без копирования самого файла.
Для передаваемых пакетов в сети разработан собственный формат, реализующий возможность наращивания функциональности сети путем добавления дополнительной служебной информации. Запросы и списки ID ключевых слов в Gnutella2 пересылаются на концентраторы по UDP.
Наиболее распространенные программы для Gnutella2 - это Shareaza, Kiwi, Alpha, Morpheus, Gnucleus, Adagio Pocket G2, FileScope, iMesh, MLDonkey.

Сеть EDonkey2000 была создана также в 2000 году. Информация о наличии файлов в ней публикуется клиентом на многочисленных серверах в виде ed2k-ссылок, использующих уникальный ID ресурса. Поиск узлов и информации в EDonkey2000 обеспечивают выделенные серверы. В настоящее время в сети существует около 200 серверов и порядка миллиарда файлов. Число пользователей EDonkey2000 составляет 10 млн. человек.
При работе каждый клиент EDon-key2000 связан с одним из серверов. Клиент сообщает серверу, какие файлы он предоставляет в общий доступ. Каждый сервер поддерживает список всех общих файлов клиентов, подключенных к нему. Когда клиент что-то ищет, он посылает поисковый запрос своему основному серверу. В ответ сервер проверяет все файлы, которые ему известны, и возвращает клиенту список файлов, удовлетворяющих его запросу. Возможен поиск по нескольким серверам сразу. Такие запросы и их результаты передаются через протокол UDP, чтобы уменьшить загрузку канала и количество подключений к серверам. Эта функция особенно полезна, если поиск на сервере, к которому клиент подключен в настоящее время, дает низкий результат.
Когда клиент сети EDonkey2000 копирует желаемый ресурс, он делает это одновременно из нескольких источников с помощью протокола MFTP (Multisource File Transfer Protocol).
С 2004 года в состав сети EDonkey2000 интегрирована сеть Overnet (www.overnet.com) - полностью децентрализованная система, позволяющая осуществлять взаимодействие между узлами без «привязки» к серверам, для чего используется DHT-протокол Kademlia.Такая интеграция разных сетей и дополнительная верификация способствовали большему развитию сети EDonkey2000.
Самой популярной для сети EDon-key2000 клиентской программой с закрытым кодом является программа eDonkey, однако существует и клиент с открытым программным кодом - eMule, который, помимо сети EDon-key2000, может задействовать еще одну сеть P2P - Kad Network.

Уязвимости пиринговых сетей

Следует признать, что помимо названных выше преимуществ пиринговых сетей им присущ также ряд недостатков.
Первая группа недостатков связана со сложностью управления такими сетями, по сравнению с клиент-серверными системами, если их использовать в автоматизированных системах управления. В случае применения сети типа P2P приходится направлять значительные усилия на поддержку стабильного уровня ее производительности, резервное копирование данных, антивирусную защиту, защиту от информационного шума и других злонамеренных действий пользователей.
Следует отметить, что пиринговые сети время от времени подвергаются вирусным атакам, начало которым в 2002 году положил сетевой червь Worm.Kazaa.Benjamin, распространяющийся по пиринговой сети KaZaA.
Еще одна проблема P2P-сетей связана с качестом и достоверностью предоставляемого контента. Серьезной проблемой является фальсификация файлов и распространение фальшивых ресурсов.
Кроме того, защита распределенной сети от хакерских атак, вирусов и троянских коней является очень сложной задачей. Зачастую информация с данными об участниках P2P-сетей хранится в открытом виде, доступном для перехвата. Серьезной проблемой также является возможность фальсификации ID узлов.
Автор рассмотрел модель гибридной пиринговой сети с выделенными узлами (рис. 4 ), связывающими отдельные узлы и обеспечивающими ведение поисковых каталогов.


Рис. 4. Гибридная пиринговая сеть с выделенными серверами

В модели предполагалось, что существует N узлов, каждый из которых логически связан в среднем с n (n << N) количеством узлов. Для обеспечения поиска существует M поисковых узлов, каждый из которых, в свою очередь, соединен с некоторым количеством узлов; этим узлам он доступен как поисковый каталог. Объемы каталогов распределены в соответствии с экспоненциальным законом, т.е. i-й поисковый каталог соединен с k exp{ai} узлами, где k и a - некоторые константы. Такая закономерность распределения поисковых узлов, действительно, часто наблюдается на практике.
Задача анализа уязвимости заключалась в том, каким образом нарушится информационная связность пиринговой сети при выводе из строя некоторого количества ведущих поисковых каталогов.
Полученные расчеты подтвердили высокую информационную устойчивость пиринговой сети, построенной в соответствии с данными критериями, к удалению случайных поисковых узлов. Вместе с тем, очень высока зависимость от удаления наибольших узлов, что приводит к экспоненциальному снижению таких показателей, как минимальная длина пути между узлами и коэффициент кластерности.

Заключение

По сравнению с клиент-серверной архитектурой P2P обладает такими преимуществами, как самоорганизованность, отказоустойчивость к потере связи с узлами сети (высокая живучесть), возможность разделения ресурсов без привязки к конкретным адресам, увеличение скорости копирования информации за счет использования сразу нескольких источников, широкая полоса пропускания, гибкая балансировка нагрузки.
Благодаря таким характеристикам, как живучесть, отказоустойчивость, способность к саморазвитию, пиринговые сети находят все большее применение в системах управления предприятиями и организациями (например, Р2Р-технология сегодня применяется в Государственном департаменте США).
Существует много областей, где P2P-технология успешно работает, например, параллельное программирование, кэширование данных, резервное копирование данных.
Отдельно следует отметить недостатки, присущие файлообменным сетям общего доступа. Самая большая проблема - легитимность контента, передаваемого в таких P2P-сетях. Неудовлетворительное решение этой проблемы привело уже к скандальному закрытию многих подобных сетей. Следует заметить, что, несмотря на многочисленные иски, направленные против пиринговых сетей, в апреле этого года Европейский парламент отказался «криминализировать» P2P.
Есть и другие проблемы, имеющие социальную природу. Так, в системе Gnutella, например, 70% пользователей не добавляют вообще никаких файлов в сеть. Более половины ресурсов с этой сети предоставляется одним процентом пользователей, т.е. сеть эволюционирует в направлении клиент-серверной архитектуры.

Дмитрий ЛАНДЭ , СиБ
д.т.н., зам. директора ИЦ ElVisti

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

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

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

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

Современные гибридные P2P сети используют сервер не для хранения информации, а для распределения работы сети и объединения клиентов. Большую известность получили такие пиринговые протоколы BitTorrent, eDonkey и Direct Connect.

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

Наиболее популярными BitTorrent клиентами выступают: Deluge, uTorrent, Vuze, Transmission, BitComet, Shareaza и ряд других. Для сетей Direct Connect предназначены клиенты: StrongDC++, FlylinkDC++, ApexDC++.


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