Что значит peer to peer. Что такое Одноранговая сеть (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. Это разделение файлов, разделение приложений, обеспечение целостности систем, распределенные вычисления и взаимодействие устройств. Нет сомнений, что в скором времени их станет еще больше.

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

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

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

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

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

Сеть 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, объединяющие в себе некоторые или все перечисленные выше приложения и превращающие их в динамические веб-приложения следующего поколения.

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

Как правило, большинство технологий, которые для этого используются, требуют присвоения камере или видеорегистратору дорогостоящего белого 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 г.г.. Все права защищены.
Материалы, представленные на сайте, имеют ознакомительно-информационный характер и не могут использоваться в качестве руководящих документов

Peer-to-peer (P2P) технологии, несомненно, являются одной из наиболее популярных тем на сегодняшний день. Популярность, достигнутая с помощью таких систем как Napster,Gnutella,Edonkey,Emule,Kazaa и список таких программ можно продолжать и продолжать,подтверждает потенциал peer-to- peer систем. В этом обзоре мы раскажем о технологии Р2Р в целом, о системах (или правильней говоря) программах обретших популярность посредством этой технологии. Ведь если хорошенько ко всему этому присмотреться,можно понять что технология Р2Р может послужить введением для всех новых сторонников, разработчиков, и просто любителей, желающих заняться разработкой P2P приложений.

Что такое P2P ?

На сегодняшний день, наиболее распространенной моделью является Client/Server.

В Client/Server архитектуре, клиенты опрашивают сервер, и сервер возвращает необходимые данные и производит нужные операции над ними. На сегодняшний день существуют разные сервера в Inet: Web сервера, Mail сервера, FTP и т.д. Архитектура Client/Server - это пример централизованной архитектуры, где вся сеть зависит от центральных узлов, называемых серверами, предназначенных для обеспечения необходимых сервисов. Без серверов такая архитектура не имеет никакого смысла. Независимо от наличия в сети клиентов, сеть будет существовать исключительно при условии существования серверов.
Подобно архитектуре Client/Server, P2P также распределенная модель, но существует очень важная отличительная черта. В архитектуре P2P не существует понятия клиента или сервера. Каждый объект в сети, назовем его peer (англ. равный, такой же), имеет тот же статус, это означает, что этот объект может выполнять как функции клиента (отсылать запросы) так и сервера (получать ответы).

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

Обе сетевые модели имеют свои преимущества и недостатки. Визуально вы можете видеть, что рост Client/Server системы (которая тем больше чем клиентов в нее добавлено) приводит к росту нагрузок на сервер. C каждым новым клиентом центральный узел слабеет. Таким образом, сеть может становиться перегруженной.

P2P сеть работает по другому сценарию. Каждый объект в сети (peer), является активным в сети, peer предоставляет некоторые ресурсы в сети, такие как пространство для хранения данных и дополнительные такты CPU. Чем больше peer в сети, тем больше производительность самой сети. Следовательно, по мере того как растет сеть, она становится мощнее.

Дополнительные отличия

Также P2P отличается от Client/Server модели тем, что P2P система считается рабочей, если в ней есть хотя бы один активный peer. Система будет считаться неактивной, если ни один peer не активен.

Недостатки технологии P2P

Однако существуют и недостатки у P2P систем. Во-первых, управление такой сетью намного сложнее, чем управление Client/Server системами, где администрирования требует только центральный узел - Server. Таким образом, нужно затратить намного больше усилий на поддержку security, backup, и т.п.

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

Например:

Как правило, сеть состоит из равноправных узлов, причем каждый из них взаимодействует лишь с некоторым подмножеством узлов сети, так как установление связи "каждый с каждым" невозможно из-за ограниченности ресурсов (как вычислительных, так и пропускных). При этом передача информации между узлами, не связанными в данный момент непосредственно, может осуществляется как по своеобразной эстафете - от узла к узлу, так и путем установления временной прямой связи. Все вопросы маршрутизации и авторизации сообщений, передаваемых по эстафете, лежат не на едином сервере, а на всех этих отдельных узлах. Такое определение также известно под названием Pure P2P. Надеюсь все накопившиееся вопросы о том, что такое технология Peer-to-peer (P2P) исчерпаны. Теперь мы представялем вашему вниманию 5 лучших программ используемых пресловутую технологию Peer-to-peer (P2P).

Немного истории

Многие пользователи сети Интернет помнят феномен Napster"а, первой всемирной сети обмена файлами между пользователями (кстати, использовашие технолигию P2P). Napster пережил пару пинков судьбы, несколько шумных судебных процессов,в результате чего стал мягким и пушистым. Но "джин халявы" уже вылетел из бутылки…

Говоря о "первой сети обмена", я, конечно, не имел в виду, что до этого люди не обменивались файлами по сети. Любой мог послать и получить файл по почте или выложить его на ftp. Но, тем не менее, никогда ранее Сеть не потрясала такая "волна" обмена данными между пользователями - эта волна поставила под сомнение сами основы современного шоу-бизнеса.

Что же было прорывом в новой технологии?

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

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

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

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

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

Что осталось от Napster"а?

Первое, что бросается в глаза, когда заходишь на www.napster.com,- это сама инсталляция нового Napster"a, которая напоминает теперь инсталляцию порно-консоли или другого трояна. Я, как бы, понимаю, что загрузка exe ничем не лучше - но все равно как-то странно все это выглядит. Следующий за инсталляцией смешной момент - сообщение о том, что Napster работает только в США. А для американов - просьба зарегистрироваться и ввести имя и пароль (как видно, в Америке идет перепись медиа-"пиратов"). Короче - не ходите туда, делать там нечего.

Эпидемия Kazaa

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

Итак, самые лучшие на сегодня программы - это те, что работают в сети e-Donkey2000 и Overnet. К их числу относится собственно сам e-Donkey и его детеныш - Overnet (хотя как от ослика может произойти такая медуза?), а также масса клонов. а теперь, наша лучшая пятерка.

1.- Первую позицию поделили Overnet"ом и e-Donkey

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

Недостатки

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

2.- На второй позиции eMule и другие "ослоподобные"

В числе популярных ED-"присосок" - eMule и OneMX. Они похожи настолько, что создается даже странное ощущение, будто это вообще одна и та же программа. Что, в общем-то, так и есть: первая - Open Source, вторая - "типа бесплатная". Единственное отличие - в списке серверов по умолчанию. И если eMule, в конце концов, нашел "путь к счастью" , то OneMX вообще не смог выбраться наружу - поэтому мои познания о его работе весьма скромны. Далее речь пойдет, в основном, о eMule, получить который можно (и нужно) на www.emule-project.net . eMule поддерживает два типа сети - автоматический ED2K и Kademlia Bootstrap. Не пугайтесь, это не ругательство, а система распределенного хеша - DHT, Distributed Hash Table. Система работает так: все пользователи получают идентификаторы, и файлы получают идентификаторы, и части файлов получают идентификаторы. Сначала вы подключаетесь к паре-тройке "друзей" и как бы ненароком спрашиваете, "а как пройти в библиотеку". Поскольку ваши "кореша" уже в курсе и библиотеки и других заведений, они сбрасывают вам адреса новых серверов, где могут располагаться искомые файлы - и так далее, до победного конца. Сам процесс "раскрутки" называется Bootstrap, а система идентификации и поиска всего на свете по хеш-значениям - Kademlia.В чем тут фишка - так это в том, что eMule предлагает вам самостоятельно ввести адрес первого хоста с установленным eMule или другим Kademila-сервером, так что вы сможете от него уже передвигаться к следующим хостам - и постепенно подобраться к требующимся файлам. Можно сказать, что eMule работает и как eDonkey, запрашивая данные у серверов, и как Overnet, через Kademila,- то есть применяет оба способа поиска. Другой вопрос - откуда вы возьмете этот адрес? Вот именно. Другой "напряг" этой технологии - это то, что для "поднятия" Kademila нужно указать сервер с настоящим IP-адресом, а это не слишком распространенный сейчас метод подключения, и за NAT-фаерволом это работать не будет. Но, тем не менее,- спасибо за возможность. Приятная фича eMule - он хранит недокачанные файлы отдельно, так что вы не видите "мусора" в точке назначения (как, например, у WinMX). Поэтому точкой назначения можно указать вполне приличное место, например "Мои документы". Другая приятность - это возможность посмотреть комментарии к фалу. К сожалению, часто они бестолковы, но иногда содержат и важную информацию, например "это фильм на китайском языке" :-). Кроме прочего, eMule содержат встроенный клиент IRC для живого общения с удаленными "товарищами по несчастью" - короче, полный фарш с прикладом.

Недостатки

Чрезмерно грузит систему, и не очнь высокая скорость скачивания.

3.- На третьей позиции WinMX

Ставший весьма популярным в последнее время инструмент. Его главное отличие - полное отсутствие даже намека на рекламу и прочую "ерунду". Скачать эту примочку можно на www.winmx-download-winmx.com (сама закачка происходит с сайта Morpheus-Download, что наводит на размышления; однако другой информации на тему WinMX и Morpheus я не нашел - наверное, люди предпочитают шифроваться).

WinMX - сокращение от "Windows Media eXchange". Существует порт на Mac, для других систем портов не обнаружено.

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

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

Несколько непонятных сокращений вы встретите на закладке Transfers, а именно - AFS и AEQ. Это очень хорошие параметры. Первый значит Auto Find Sources и показывает период (в минутах), с каким будет выполняться попытка найти новые источники для ваших файлов. Таким образом, можно "загнать" поисковик, а можно, напротив, "попустить". Постоянно проверять новые источники нет смысла, они появляются не слишком часто - главное, никогда не устанавливайте этот параметр в Never.

Второй параметр расшифровывается как Auto EnQueue - то есть, когда вы находите файл и при этом вам предлагают стать в очередь, то в каком случае соглашаться? Для редких файлов этот параметр можно поставить в максимальное значение - 100.

AFS и AEQ по умолчанию можно настроить на закладке Configuration… почему-то Search, но не суть важно. В других клиентах таких настроек нет (или это я не нашел?).

Есть небольшой "загон" в настройках по умолчанию - вы настроены выбрасывать "inactive DL sources" каждые 10 минут. Это приводит к тому, что в один момент вы можете выбросить все источники - и закачка улетит из списка. Файл останется на месте, и вы, конечно, всегда можете "вернуть" закачку, нажав Load Incomplete - но сделать это сможете только руками… утром в понедельник, тогда как вы могли качать все выходные.

Недостатки

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

4.- На четвертой позиции Shareaza или G2.

Shareaza (или, по-народному, Ш (З) араза) - это клиент, созданный авторами и фанатами сети Gnutella для собственных нужд:-). Shareaza поддерживает собственный протокол Gnutella2 (Mike"s Protocol, MP), протокол старой сети Gnutella 1, ED2K и BitTorrent. Поскольку MP и BitTorrent пока не получили особого распространения (хотя, все может измениться). Еще один клиент точно поддерживает G2 - mlDonkey, других обнаружить не удалось.Что хорошо - G2 имеет формальное описание, четкую систему требований и даже собственный стандарт, что может сделать эту сеть достаточно устойчивой для конкуренции с Overnet. Побочный эффект Shareaza - поскольку этот клиент обслуживает запросы сразу многих сетей, то исходящий (даже когда вы ничего и не закачиваете) трафик легко может "стартовать" до 25 Кб/с! Следите за этим, если вы выкачиваете под контролем. Ограничить скачивание можно в Config-Internet-Uploads (по умолчанию: 7 Кб/с для Core, 12 Кб/с для Partially Downloaded и по 2 Кб для каждого размера файлов, большого, среднего и малого - итого разрешенный исходящий трафик - 25 Кб/с).

5.- И наконец на пятой позиции Gnutella и BitTorrent

Самая распространенная и популярная сеть обмена (если не учитывать ED2k) называется Gnutella. Кстати, после появления Gnutella2 ее часто называют Gnutella 1 или "старая (legacy) Gnutella". В основе G1 лежит несколько другой механизм распространения запросов - но в принципе все без особых изменений. Основное отличие Gnutella - она не использует механизмы Kademlia, то есть поиск в этой сети осуществляется "вслепую", по случайным маршрутам. Лучшая критика G1 дана на сайте разработчиков Gnutella 2. - Там, например, упоминается, что в худшем случае один пользователь может "поставить на уши" 80% всей G1-сети.

Официальные программы для этой сети - BearShare (также поддерживает ED2K?), Gnucleus, Morpheus (версия: первоначально был на движке KaaZaa - FastTrack, но после "сессий" с судом Лос-Анджелеса перешел под знамена Gnutell"ы), Xolox Ultra, LimeWare, Phex. Некоторые из них написаны на Java, а некоторые даже под.NET. Каждый из этих клиентов превозносит себя как "самого": BearShare - "самый лучший", Gnucleus - "самый честный", ну и так далее.

Типичный современный клиент для сети Gnutella - LimeWire. Весь сайт LimeWare увешан надписями "быстрее, чем KaaZaa!" - хм, ну было бы чем гордиться. Главная отличительная особенность этого клиента - программа на Java. Со всеми вытекающими из этого последствиями: красиво и медленно.

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

Помимо того, в сети Gnutella я не нашел нужных мне файлов, так что знакомство с ней завершилось, так и не начавшись. Единственное, что порадовало, так это сайт www.gnutella.com (на движке Zope+Plone?) - хотя и там все закачки происходят через рекламный блок.

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

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

Руководство к действию

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

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

Другие клиенты, например WinMX, тоже способны на многое (ставить не страшно, рекламных консолей там нет).

Если у вас реально нет проблем с трафиком, можете активно пользовать Overnet - но будьте готовы к тому, что вся сеть станет публиковать на вашем узле соответствующие вашему ID фрагменты. А это, скажу я вам, не шутка - по крайней мере, обязательно ставьте ограничители трафика!

А вот уж чего делать не советую - так это ставить "бесплатные" гнутелльные софтины (если, конечно, не хотите потом всю жизнь удалять с винта тараканов). Сама-то сетка Gnutella не виновата, а вот софт-пакеры удивляют своей наглостью и желанием получать прибыль от открытого кода. Ну во и все наверное, пишите,стучите, и верьте, что на наших сайтах у меня на "ПромоNews" , и "SuperQ" Вы всегда получите ответы на столь необходимые и важные вопросы. Наш девиз звучит примерно так: "Найди себя среди друзей!" Удачи:)