Что такое Одноранговая сеть (P2P) и зачем она нужна? Что такое р2р видеонаблюдение Peer to сервис.

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

Как правило, большинство технологий, которые для этого используются, требуют присвоения камере или видеорегистратору дорогостоящего белого IP адреса, сложной процедуры настройки с использованием сервисов UPnPct и DDNS. Альтернативой этому является применение технологии Р2Р.

Р2Р (peer-to-peer) – пиринговый протокол связи, отличается более эффективным использованием полосы пропускания канала передачи сигнала и высокими показателями отказоустойчивости.

Впервые термин peer-to-peer (Advanced Peer to Peer Networking) – расширенные одноранговые сети, был использован корпорацией IBM в сетях с классической одноуровневой архитектурой и равноправными рабочими станциями. Он применялся в процессе динамической маршрутизации без использования сервера, когда каждый ПК выполнял функцию и клиента, и сервера. Сейчас более свободная версия перевода аббревиатуры звучит как «равный к равному».

Основная область применения – это удаленное видеонаблюдение за различными объектами, например:

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

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

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

ПРЕИМУЩЕСТВА Р2Р ВИДЕОНАБЛЮДЕНИЯ

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

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

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

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

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

Доступная стоимость. Цена на камеры видеонаблюдения использующие технологию Р2Р не слишком отличается от стоимости обычных IP камер с сопоставимыми техническими и эксплуатационными параметрами.

Р2Р КАМЕРЫ ВИДЕОНАБЛЮДЕНИЯ

Ниже рассмотрены основные производители Р2Р камер и некоторые их модели.

Falcon Eye – компания производитель оборудования для систем видеонаблюдения и безопасности. Специализируется на беспроводных системах охранных GSM сигнализаций. Имеет официальное представительство в России с 2005 года. вся продукция производителя, которая реализуется в нашей стране, сертифицирована и адаптированы для работы в сложных погодных условиях. Соответствуют международном у стандарту ISO – 90001.

Модельный ряд камер видеонаблюдения Р2Р включает:

  • Falcon Eye FE-MTR 1300;
  • Falcon Eye FE-MTR 300 P2P;
  • Falcon Eye FE-ITR 1300.

Все видеокамеры дают изображение в высоком разрешении 1280х720, могут работать при освещении 0,1 Люкс и имеют интерфейс передачи сигнала Lan и Wi-Fi (Falcon Eye FE-ITR 1300 только Lan). Кроме того они оснащены детектором движения и могут активировать процесс видеозаписи по тревоге.

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

Foscam – компания была основана в 2002 году. Специализируется на выпуске устройств и IP камер для GSM видеонаблюдения. Продукция прошла сертификацию по международному стандарту ISO 9001 и отечественным ГОСТам. Устройства оснащены детектором движения, слотами для карт памяти и интерфейсом RJ 45 (кабельное сетевое подключение витая пара).

Наиболее популярные модели:

  • Foscam FI9821P;
  • Foscam FI9853EP;
  • Foscam FI9803EP.

Zodiac – компания предлагает устройства для бытовых и профессиональных систем видеонаблюдения. Все Р2Р камеры оборудованы системой инфракрасной подсветки, что позволяет производить видеосъемку в темное время суток.

Модели, распространенные на рынке:

  • Zodiac 909W;
  • Zodiac 911;
  • Zodiac 808 выполнена в уличном варианте в корпусе со степенью защиты IP65.

НАСТРОЙКА Р2Р ВИДЕОНАБЛЮДЕНИЯ

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

1. С сайта выбранного облачного сервиса скачивается и устанавливается программное обеспечение, совместимое с операционной системой устройства для просмотра.

2. Устанавливается камера, к ней подводится электропитание.

3. Камера подключается к сети интернет посредством локальной проводной сети или через беспроводные средства передачи информации – WiFi, GSM и т. п.

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

5. Для доступа к камере набирается стандартный пароль, который потом нужно обязательно сменить. У каждого производителя или модели он свой, указан на коробке или в паспорте устройства.

Установку системы Р2Р видеонаблюдения можно осуществлять и без использования камер с интегрированной технологией Р2Р. Достаточно в обычной систем видеонаблюдения использовать видеорегистратор с этой функцией. Тогда во время настройки необходимо указывать ID видеорегистратора, и через его интерфейс получить доступ к камерам.

Алгоритм настройки видеорегистратора ничем не отличается от настройки камеры. Примером такого устройства может служить гибридный видеорегистратор SPYMAX RL-2508H Light.

ОБЛАЧНЫЕ СЕРВИСЫ, ПОДДЕРЖИВАЮЩИЕ Р2Р ТЕХНОЛОГИЮ

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

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

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

Универсальный облачный Р2Р сервис – Easy4ip совместим с большинством популярных камер.

Для работы с Р2Р камерами необходимо ПО, устанавливаемое на устройстве просмотра:

  • PSS для операционной системы Windows и iOS;
  • iDMSS для мобильных устройств Apple;
  • gDMSS для устройств под управлением ОС Android.

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

© 2010-2019 г.г.. Все права защищены.
Материалы, представленные на сайте, имеют ознакомительно-информационный характер и не могут использоваться в качестве руководящих документов

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

К ак это часто бывает, все начиналось с попытки обойти Закон. У некоторых людей появилось желание обмениваться через Интернет представленными в электронной форме и защищенными авторскими правами произведениями.
Логика таких действий вполне понятна. Допустим, Айван купил в магазине книгу. Авторские права не нарушены. Айван прочитал книгу и дал ее почитать Питеру. Питер книгу не покупал, автору не досталась его часть авторского вознаграждения. Питер прочитал книгу, воспринял информацию. Нарушил ли он Закон? Пожалуй, нет. Питер передал книгу Стивену, который, в свою очередь, передал другую, легально купленную книгу, Айвану. Три товарища, как говорят полицейские - три фигуранта, однако нарушений вроде бы нет.
Допустим, друзей не три, а тридцать. Нарушен ли Закон? Каждый автор недополучает двадцать девять вознаграждений. Формируется некая сетевая структура, где каждый связан с каждым, без выделенного центра. В технике такие сети назы-ваются децентрализованными, в отличие от централизованных. Аналог централизованной сети - публичная библиотека. Айван, Питер и Стивен пошли в публичную библиотеку и прочитали выбранные книги, восприняли информацию. Нарушает ли библиотека авторское право? Вопрос не риторический, а очень даже актуальный, широко обсуждаемый общественностью. Что бы ни говорил Закон, какие бы поправки не вносились, история человеческой цивилизации говорит о том, что библиотеки - это благо.
А теперь допустим, что собрались не три и не тридцать, а три миллиона друзей и обмениваются книгами. Где грань, скольким друзьям можно ими обмениваться законно, а скольким нельзя? И почему только книгами, как-никак 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

Пиринговые сети

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

Впервые фраза «peer-to-peer» была использована в году Парбауэллом Йохнухуйтсманом (Parbawell Yohnuhuitsman) при разработке архитектуры Advanced Peer to Peer Networking фирмы

Устройство одноранговой сети

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

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

Частично децентрализованные (гибридные) сети

Помимо чистых P2P-сетей, существуют так называемые гибридные сети, в которых существуют сервера , используемые для координации работы, поиска или предоставления информации о существующих машинах сети и их статусе (on-line, off-line и т. д.). Гибридные сети сочетают скорость централизованных сетей и надёжность децентрализованных благодаря гибридным схемам с независимыми индексационными серверами, синхронизирующими информацию между собой. При выходе из строя одного или нескольких серверов, сеть продолжает функционировать. К частично децентрализованным файлообменным сетям относятся например EDonkey ,

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

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

Известные децентрализованные и гибридные сети

Пиринговые сети для новичков описаны в статье: Файлообменные программы

  • ED2K она-же eDonkey2000 - сеть централизованного типа, крупнейшая из ныне существующих файлообменных сетей. Поиск выполняют специализированные серверы, связанные между собой. Клиенты самостоятельно обмениваются по протоколу MFTP . Компания MetaMachine разработчики исходной концепции и первого клиента основанного на веб-интерфейсе (Edonkey 2000 v1.4.5)в 2005 году прекратили поддержку этого проекта, однако сеть продолжает функционировать за счет более совершенного и более мощного клиента eMule , который использует механизмы - представляет из себя слабо связанные между собой выделенные сервера для поиска (хабы). Хабы Direct Connect очень удобны для организации файлового обмена в локальных сетях.
  • Advanced Direct Connect - эволюционное развитие сетей Direct Connect с устранение основных недостатков.
  • FastTrack , iMesh - первоначально была реализована в KaZaA …
  • giFT (mlDonkey.
  • Shareaza , BearShare , Phex .
  • Shareaza .
  • Ares - файлообменная сеть для любых файлов.
  • проприетарный протокол. Весь поиск происходит через центральный сервер, на котором есть бесплатная регистрация и платная подписка (официальный сайт). Клиенты: mlDonkey, SolarSeek .
  • Entropy - анонимные и устойчивые к цензуре файлообменные сети.
  • Blubster, Piolet , RockItNet.
  • NEOnet - частично-децентрализованая коммерческая сеть на условно-платной основе. Является специфической вспомогательной модификацией протокола DHT при работе в отделенном коммерческом сегменте сети Gnutella1 , поддерживаемом с помощью клиента Morpheus . Свойства криптографической защиты и сетевой анонимности в сети NeoNet не поддерживаются.
  • Tesla - Возможно, содержит MalWare.
  • Filetopia - потенциально безопасная сеть для обмена самым разным контентом.
  • MUTE - Клиенты: MFC Mute , Napshare .
  • Peer2Mail - принципиально это даже не пиринговая сеть, а разновидность ПО позволяющего передавать файлы между двумя хостами (peer-to-peer), используя почтовые сервисы в качестве роутера. Технология передачи файлов основана на инкапсуляции в SMTP-протокол.
  • Ants p2p - открытая P2P-сеть 3-го поколения повышенной безопасности. клиент.
  • Anthill - система(сеть) академического исследования сложных адаптивных систем, основанных на Rodi - поддерживает поиск по содержанию файлов. AppleJuice - частично децентрализованная сеть (как eDonkey).
  • BeOS.
  • - глобальный виртуальный диск для обмена файлами с авторизацией и шифрованием.
  • ProxyShare - новая высокоскоростная сеть с больши́ми возможностями.
  • Acquisition - сеть и клиент для Mac.
  • RShare - анонимная открытая P2P -сеть.
  • Marabunta - альтернативная пиринговая система ориентированная исключительно на предоставление услуг обмена мгновенными сообщениями на общей доске объявлений (P2P-chat) . Программа в основном рассчитана на применение в локальных сетях, и потому не содержит возможностей автообновления нод-листа (его приходится пополнять вручную) . При наличии постоянных IP-адресов реципиентов, может работать и в интернете, однако встроенная функция bootstrap с серверов разработчиков не работоспособна из-за того, что с 2006 года проект практически перестал развиваться.
  • SKad или OpenKAD - модификация протокола Winny . Дальнейше развитие этой сети в сторону сетевой анонимности привело к появлению программы Share . И на сегодняшний день существует и третья версия под управлением программы Perfect Dark . К сожалению все три версии сети SKad развивались паралельно и хотя они имеют много общего, но из-за видоизменения процедуры кодирования нод-листа в сторону более жесткого шифрования, они не совместимы между собой. Таким образом все три программы образовали три идентичные сети с разными степенями защищенности.
  • - Собственническое ПО от Microsoft.
  • P-Grid - самоорганизующаяся децентрализованная сеть.
  • P2PTV - сеть телевизионных каналов.
  • KoffeePhoto - сеть для обмена фотографиями.
  • Poisoned – программа для работы с файлообменными сетями Gnutella, OpenFT, FastTrack в среде операционной системы Mac OS X . Представляет собой графический интерфейс для фонового приложения giFT.

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

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


Wikimedia Foundation . 2010 .

Смотреть что такое "Пиринговые сети" в других словарях:

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

    Опорная сеть Интернета (англ. Internet backbone) главные магистрали передачи данных между огромными, стратегически взаимосвязанными сетями и основными маршрутизаторами в Интернете. Эти магистрали передачи данных контролируются… … Википедия

    Запрос «P2P» перенаправляется сюда; см. также другие значения. Одноранговая, децентрализованная или пиринговая (от англ. peer to peer, P2P равный к равному) сеть это оверлейная компьютерная сеть, основанная на равноправии участников. В такой … Википедия

Peer-to-peer , P2P (с англ. - равный к равному) - вариант архитектуры системы, в основе которой стоит сеть равноправных узлов.

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

Фраза «peer-to-peer» была впервые использована в 1984 году Парбауелом Йохнухуйтсманом (Parbawell Yohnuhuitsman) при разработке архитектуры Advanced Peer to Peer Networking фирмы IBM.

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

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

Современные P2P-сети получили развитие благодаря идеям, связанными с обменом информацией, которые формировались в русле того, каждый узел может предоставлять и получать ресурсы предоставляемых любыми другими участниками. В случае сети Napster, это был обмен музыкой, в других случаях это может быть предоставление процессорного времени для поиска инопланетных цивилизаций (SETI @ home) или лекарства от рака (Folding @ home).

История

P2P не является новым. Этот термин, конечно, новое изобретение, но сама технология существует со времен появления USENET и FidoNet - двух очень успешных, вполне децентрализованных сетей. Распределенные вычисления появились даже раньше, но этих двух примеров достаточно, чтобы продемонстрировать возраст P2P.

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

Другим выдающимся успехом P2P был FidoNet. FidoNet, как и USENET, - это децентрализованная, распределенная сеть для обмена сообщениями. FidoNet был создан в 1984 году Томом Дженнингсом как средство для обмена сообщениями между пользователями различных BBS. Он был нужен, поэтому он быстро вырос и, как и USENET, существует по сей день.

Первое поколение P2P сетей

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

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

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

Вскоре после появления Napster была создана сеть EDonkey2000. Ключевое преимущество eDonkey над Napster заключалась в том, что сеть позволяла проводить скачивания различных частей одного файла, одновременно с разных участников сети, которые его предоставляют. Другим преимуществом eDonkey было то, что впоследствии, серверное обеспечение получило функциональности мижсерверного связи, что позволило выполнять поиск информации на участниках сети которые были подключены к разным серверам. Несмотря на названные преимущества, через использование серверов, эта сеть не была чистой peer-to-peer сетью.

Второе поколение P2P сетей

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

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

Лучшими примерами являются Gnutella, Kazaa или Emule с Kademlia, среди которых лишь Kazaa еще имеет центральный сервер для регистрации. eDonkey2000/Overnet, Gnutella, FastTrack и Ares Galaxy имеют примерно 10.3 миллионов пользователей (на апрель 2006 года, согласно slyck.com).

Третье поколение P2P сетей

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

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

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

Анонимные peer-to-peer сети

Примеры анонимных сетей - Freenet, I2P, ANts P2P, RShare, GNUnet и Entropy. Также примером децентрализованной сети является система анонимной цифровой денежной единицы Bitcoin.

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

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

Преимущества P2P

Распределение / уменьшения стоимости. Централизованные системы, которые обслуживают многие клиенты, обычно составляют большинство стоимости системы. Когда эта стоимость становится слишком большим, архитектура P2P может помочь распределить стоимость среди пользователей. Например, среди систем файлообмена Napster позволил распределить стоимость хранения файлов и мог поддерживать индекс, необходимый для совместного использования. Экономия средств, осуществляется посредством использования и объединения ресурсов, которые в противном случае не используются (например SETI @ home). Поскольку узлы обычно являются автономными, важно распределять расходы справедливо.

Объединение ресурсов. Децентрализованный подход ведет к объединению ресурсов. Каждый узел в системе P2P приносит определенные ресурсы например вычислительная мощность или память. В программах, которые требуют огромное количество этих ресурсов, например intensive моделирования или распределены файловые системы, естественно использовать P2P, чтобы привлечь эти ресурсы. Распределенные вычислительные системы, например SETI @ Home, distributed.net, и Endeavours - очевидные примеры этого подхода. Объединяя ресурсы тысяч узлов, они могут выполнять тяжелые с точки зрения количества вычислений функции. Файлобминни системы, например Napster, Gnutella, и т.д., также объединяют ресурсы. В этих случаях, это дисковое пространство, чтобы хранить данные, и пропускная способность, чтобы их передавать.

Усовершенствованная масштабируемость / надежность. С отсутствием сильной центральной власти по отношению к автономных узлов, важной целью является улучшение масштабируемости и надежности. Масштабируемость и надежность определяются в традиционном для распределенных систем смысле, как например использование пропускной способности - сколько узлов могут быть достигнуты от одного узла, сколько узлов может поддерживаться, сколько пользователей может поддерживаться. Распределенная природа peer-to-peer сетей также увеличивает помилкостийкисть в случае неудач, путем дублирования данных из многих узлов, и - в чистых системах P2P - предоставляя возможность узлу найти данные вне зависимости от единого централизованного индексного сервера. В последнем случае, нет никакой единой критической точки в системе.

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

Анонимность / конфиденциальность. Связанным с автономией является понятие анонимности и конфиденциальности. Пользователь, возможно, не хочет, чтобы кого-нибудь или любой поставщик услуг знал о нем или о его роли в системе. С центральным сервером, гарантировать анонимность трудно, так как сервер обычно сможет идентифицировать клиента, как минимум через его адрес в Интернет. Используя структуру P2P, в котором действия выполняются локально, пользователи могут избегать необходимости передавать любую информацию о себе в кого-нибудь другого. FreeNet - яркий пример того, как анонимность может встроиться в приложение P2P. Он пересылает сообщения через другие узлы, чтобы обеспечить невозможность выслеживание начального автора. Это увеличивает анонимность, используя вероятностные алгоритмы таким образом, чтобы происхождение невозможно было легко отследить анализируя трафик в сети.

Динамичность. Системы P2P предполагают, что окружение чрезвычайно динамична. То есть, ресурсы, например узлы, появляются и исчезают из системы непрерывно. В случаях коммуникации, например сети для обмена сообщениями, используются так называемый «список контактов», чтобы информировать пользователей, когда их друзья становятся доступными. Без этого, нужно было бы, чтобы пользователи «опрашивали» партнеров, посылая периодические сообщения. В случае распределенных вычислений, например distributed.net и SETI @ home, система должна приспособиться к заменах. Поэтому они должны повторно выдавать задания для вычисления другим участникам, чтобы гарантировать, что работа не потеряна, если предыдущие участники отпадают от сети, пока они выполняли шаг вычисления.

Классификация P2P систем

По функциям:

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

Файлообмен. Хранение и обмен данными ¬ - это одна из областей, где технология P2P была успешной. Мультимедийные данные, например, требуют больших файлов. Napster и Gnutella использовались пользователями, чтобы обойти ограничения пропускной способности, которые делают передачу больших файлов неприемлемыми.

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

По степени централизации:

Чистые peer-to-peer системы. Узлы равны, сочетая роли сервера и клиента. Не существует центрального сервера, управляющего сетью. Примерами таких систем являются Gnutella и Freenet

Гибридные peer-to-peer системы. Имеют центральный сервер, который хранит информацию об узлах и отвечает на запросы относительно этой информации. Узлы занимаются обеспечением ресурсами (потому что центральный сервер их не имеет), сообщением сервера о наличии этих ресурсов предоставления ресурсов другим узлам хотят ими воспользоваться.

В зависимости от того, как узлы соединяются друг с другом можно разделить сети на структурированные и неструктурированные:

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

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

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

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

Согласно более широкому определению, P2P есть класс приложений, которые используют ресурсы, - жесткие диски, циклы процессора, контент, - доступные на краю облака Интернета. В то же время оно подходит и для систем, применяющих для своего функционирования централизованные серверы (таких как SETI@home, системы мгновенных сообщений или даже печально известная сеть Napster), а также различных приложений из области grid-вычислений (решетчатых вычислений).

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

В то же время многие сходятся во мнении, что главные для архитектуры P2P следующие характеристики:

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

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

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

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

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

Классификация P2P-приложений

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

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

Распределенные вычисления. Целью этих систем является объединение вычислительных возможностей равноправных узлов для решения задач с интенсивными вычислениями. Для этого задача разбивается на ряд небольших подзадач, которые распределяются по разным узлам. Результат их работы возвращается затем хосту. Примеры таких систем - проекты SETI@home, genome@ home и ряд других.

Системы баз данных. Значительные усилия были затрачены на разработку распределенных баз данных, основанных на P2P-инфраструктуре. В частности, была предложена локальная реляционная модель (Local Relational Model), предполагающая, что набор всех данных, хранимых в P2P-сети, состоит из несовместимых локальных реляционных баз данных (т. е. не удовлетворяющих заданным ограничениям целостности), взаимосвязанных с помощью «посредников», которые определяют трансляционные правила и семантические зависимости между ними.

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

Распределение контента в сетях P2P

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

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

  • системы обмена файлами , предназначенные для простого одноразового обмена между компьютерами. В таких системах создается сеть равноправных узлов и обеспечиваются средства для поиска и передачи файлов между ними. В типичном случае это «легковесные» приложения с качеством обслуживания «по мере возможности» (best effort), не заботящиеся о безопасности, доступности и живучести;
  • системы для публикации и хранения контента . Такие системы предоставляют среду распределенного хранения, в которой пользователи могут публиковать, сохранять и распределять контент, при этом поддерживаются безопасность и надежность. Доступ к такому контенту контролируется, и узлы должны обладать соответствующими привилегиями для его получения. Основными задачами таких систем являются обеспечение безопасности данных и живучести сети, и зачастую их главная цель заключается в создании средств для идентифицируемости, анонимности, а также управления контентом (обновление, удаление, контроль версий).
  • определение адреса и маршрутизация. Любая P2P-система распределения контента опирается на сеть равноправных узлов, внутри которой узлы и контент должны эффективно локализоваться, а запросы и ответы - маршрутизироваться, и при этом обеспечиваться отказоустойчивость. Для выполнения этих требований были разработаны различные инфраструктуры и алгоритмы;
  • обеспечение анонимности. P2P-базированные инфраструктурные системы должны разрабатываться с целью обеспечения анонимности пользователя;
  • репутационный менеджмент. В сетях P2P отсутствует центральный орган для управления репутационной информацией о пользователях и их поведении. Поэтому она располагается на множестве разных узлов. Для того чтобы гарантировать ее безопасность, актуальность и доступность во всей сети, необходимо иметь сложную инфраструктуру управления репутациями.

Локализация и маршрутизация распределенных объектов в сетях P2P

Функционирование любой P2P-системы распределения контента опирается на узлы и соединения между ними. Эта сеть образуется поверх и независимо от базовой (в типичном случае IP) и поэтому часто называется оверлейной. Топология, структура, степень централизации оверлейной сети, механизмы локализации и маршрутизации, которые в ней используются для передачи сообщений и контента, являются решающими для работы системы, поскольку они воздействуют на ее отказоустойчивость, производительность, масштабируемость и безопасность. Оверлейные сети различаются по степени централизации и структуре.

Централизация. Хотя самое строгое определение предполагает, что оверлейные сети полностью децентрализованы, на практике этого не всегда придерживаются, и встречаются системы с той или иной степенью централизации. В частности, выделяют три их категории:

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

Очевидно, в этих архитектурах имеется единая точка отказа - центральный сервер.

Сетевая структура характеризует, создается ли оверлейная сеть недетерминировано (ad hoc), по мере того как добавляются узлы и контент, или базируется на специальных правилах. С точки зрения структуры сети P2P делятся на две категории:

  • неструктурированные. Размещение контента (файлов) в них никак не связано с топологией оверлейной сети, в типичных случаях его нужно локализовать. Механизмы поиска варьируются от методов грубой силы, таких как лавинное распространение запросов способами «сначала вширь» (breadth-first) или «сначала вглубь» (depth-first) - до тех пор пока желаемый контент не будет найден, до более софистических стратегий, предполагающих использование метода случайного блуждания и индексацию маршрутов. Механизмы поиска, применяемые в неструктурированных сетях, имеют очевидное влияние на доступность, масштабируемость и надежность.

Неструктурированные системы более подходят для сетей с непостоянным числом узлов. Примерами являются Napster, Gnutella, Kazaa, Edutella и ряд других;

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

Структурированные системы (к ним относятся Chord, CAN (Content Addressable Network), Tapestry и ряд других) предоставляют масштабируемые решения для поиска по точному совпадению, т. е. для запросов, в которых известен точный идентификатор нужных данных. Их недостатком является сложность управления структурой, требуемая для эффективной маршрутизации сообщений в среде с переменным числом узлов.

Сети, занимающие промежуточное положение между структурированными и неструктурированными, имеют название слабоструктурированных. Хотя данные о локализации контента в них указываются не полностью, они, тем не менее, способствуют поиску маршрута (типичный пример такой сети - Freenet).

Теперь обсудим более подробно оверлейные сети с точки зрения их структуры и степени централизации.

Неструктурированные архитектуры

Начнем с полностью децентрализованных архитектур (см. приведенное выше определение). Самым интересным представителем таких сетей является Gnutella. Подобно большинству P2P-систем, она строит виртуальную оверлейную сеть с собственным механизмом маршрутизации, позволяя своим пользователям разделять файлы. В сети отсутствует какая-либо централизованная координация операций, и узлы соединяются друг с другом непосредственно с помощью ПО, которое функционирует и как клиент, и как сервер (его пользователей называют servents - от SERVers + cliENTS).

В качестве базового сетевого протокола Gnutella применяет IP, тогда как коммуникации между узлами определяются протоколом прикладного уровня, поддерживающим четыре типа сообщений:

  • Ping - запрос к определенному хосту с целью объявить о себе;
  • Pong - ответ на сообщение Ping, содержащий IP-адрес, порт запрошенного хоста, а также количество и размеры разделяемых файлов;
  • Query - поисковый запрос. В него входят строка поиска и минимальные скоростные требования к отвечающему хосту;
  • Query Hits - ответ на запрос Query , включает IP-адрес, порт и скорость передачи отвечающего хоста, количество найденных файлов и набор их индексов.

После присоединения к сети Gnutella (посредством связи с узлами, обнаруженными в базах данных, таких как gnutellahosts.com) узел посылает сообщение Ping каким-нибудь связанным с ним хостам. Те отвечают сообщением Pong , идентифицируя себя, и рассылают сообщение Ping свом соседям.

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

Первоначально в архитектуре Gnutella использовался лавинный (или широковещательный) механизм для распределения запросов Ping и Query : каждый узел направлял полученные сообщения всем своим соседям, а ответы шли по обратному пути. Чтобы ограничить потоки сообщений в сети, все они содержали в заголовке поле Time-to-Live (TTL). На транзитных узлах значение этого поля уменьшалось, и когда оно достигало значения 0, сообщение удалялось.

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

Рис. 1. Пример механизма поиска в неструктурированной системе

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

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

Суперузлы индексируют файлы, разделяемые подсоединенными к ним узлами, и в качестве proxy-серверов выполняют поиск от их имени. Поэтому все запросы первоначально направляются к суперузлам.

Частично централизованные системы обладают двумя преимуществами:

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

Частично централизованной системой является сеть Kazaa.

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

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

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

Структурированные архитектуры

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

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

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

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

Каждый узел сети Freenet управляет своим собственным локальным хранилищем данных, делая его доступным для чтения и записи остальными, так же как и динамическую таблицу маршрутизации, содержащую адреса других узлов и хранимых ими файлов. Чтобы найти файл, пользователь посылает запрос, содержащий ключ и косвенное значение времени жизни, выраженное посредством максимально допустимого количества пройденных транзитных узлов (hops-to-live).

Freenet использует следующие типы сообщений, каждое из которых включает идентификатор узла (для обнаружения петель), значение hops-to-live и идентификаторы источника и получателя:

  • Data insert - узел, помещающий новые данные в сеть (в сообщении находятся ключ и данные (файл));
  • Data request - запрос определенного файла (в него входит ключ);
  • Data reply - ответ, когда файл найден (в сообщение включается файл);
  • Data failed - ошибка в поиске файла (указываются узел и причина ошибки).

Для присоединения к Freenet компьютеры прежде всего определяют адрес одного или более существующих узлов, а затем отправляют сообщения Data insert .

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

Это продолжается до тех пор, пока не исчерпается лимит hops-to-live . Таким образом, распространяемый файл разместится более чем на одном узле. Во то же время все узлы, вовлеченные в процесс, обновят свои маршрутные таблицы - таков механизм, посредством которого новые узлы анонсируют свое присутствие в сети. Если предел hops-to-live достигнут без коллизии значений ключей, сообщение «все корректно» будет доставлено обратно к источнику, информируя его, что файл помещен в сеть успешно. Если же ключ уже используется, узел возвращает существующий файл, как будто именно он был запрошен. Таким образом, попытка подмены файлов приведет к распространению их дальше.

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

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

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

Потенциальные возможности сетей P2P оказались столь велики, что Hewlett-Packard, IBM и Intel инициировали создание рабочей группы с целью стандартизировать технологию для применения в коммерческих целях. В новой версии ОС Microsoft Windows Vista будут встроены средства для коллективной работы, позволяющие ноутбукам разделять данные с ближайшими соседями.

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

Intel начала использовать технологию P2P в 1990 г., стремясь снизить расходы на разработку чипов. Компания создала собственную систему, названную NetBatch, которая объединяет более 10 тыс. компьютеров, предоставляя инженерам доступ к глобально распределенным вычислительным ресурсам.

Boeing применяет распределенные вычисления для выполнения ресурсоемких тестовых испытаний. Компания использует Napster-подобную модель сети, в которой серверы направляют трафик к назначенным узлам. «Нет такого одного компьютера, который отвечал бы нашим требованиям», - говорит Кен Невес (Ken Neves), директор исследовательского подразделения.

Потенциал технологий P2P привлек внимание и венчурного капитала. Так, Softbank Venture Capital инвестировал 13 млн долл. в компанию United Device, разрабатывающую технологии для трех рынков: вычисления для биотехнологической индустрии, качество обслуживания (QoS) и нагрузочные тесты для Web-сайтов, а также индексирование контента на базе метода «червячного» поиска, используемого рядом машин в Интернете.

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

Похожие статьи