Р2р протокол что это
Р2р протокол что это
Что такое Одноранговая сеть (P2P) и зачем она нужна?
Если вы регулярно пользуетесь Интернетом, скорее всего вы слышали о терминах одноранговая сеть, децентрализованная сеть, или пиринговая сеть, peer-to-peer или ее аббревиатура — P2P сеть. Все эти термины обозначают одно и то же. Если вы хотите знать, что такое peer-to-peer, и для чего он используется, вы должны прочитать эту статью.
Что такое P2P или одноранговая сеть?
Кроме того, каждый ресурс, доступный в пиринговой сети, является общим для всех узлов без участия центрального сервера. Общими ресурсами в сети P2P могут быть:
Что делают сети P2P (peer-to-peer)?
Основная цель одноранговых сетей заключается в совместном использовании ресурсов и совместной работе компьютеров и устройств, предоставлении конкретной услуги или выполнении конкретной задачи. Как упоминалось ранее, децентрализованная сеть используется для совместного использования всех видов вычислительных ресурсов, таких как вычислительная мощность, пропускная способность сети или дисковое пространство. Однако наиболее распространенным вариантом использования пиринговых сетей является обмен файлами в Интернете. Одноранговые сети идеально подходят для обмена файлами, поскольку они позволяют подключенным к ним компьютерам получать и отправлять файлы одновременно.
Если вы загружаете один и тот же файл через одноранговую сеть, используя сайт BitTorrent в качестве отправной точки, загрузка выполняется по-разному. Файл загружается на ваш компьютер по частям, которые поступают со многих других компьютеров, у которых уже есть этот файл, в P2P сеть. В то же время файл также отправляется (загружается) с вашего компьютера другим лицам, которые его запрашивают. Эта ситуация похожа на двухстороннюю дорогу: файл похож на несколько небольших автомобилей, которые приходят на ваш компьютер, но также отправляются к другим пользователям, когда они его запрашивают.
Почему одноранговые сети полезны?
Сети P2P имеют несколько особенностей, которые делают их полезными:
Зачем нужны пиринговые сети? Легальное использование P2P сетей
Одноранговые сети нужны для подключения компьютеров и устройств в единую сеть без необходимости настройки сервера. При создании сервера его осень дорого и сложно обслуживать, и люди используют более дешевые альтернативы, такие как P2P. Вот несколько распространенных примеров использования сетей P2P:
История сетей P2P
Предшественником одноранговых сетей является USENET, который был разработан в 1979 году. Это была система, которая позволяла пользователям читать и публиковать сообщения / новости. Это была сеть, подобная современным онлайн-форумам, но с той разницей, что USENET не полагался на центральный сервер или администратора. USENET копировал одно и то же сообщение / новость на все серверы, найденные в сети. Аналогично, децентрализованные сети распространяют и используют все доступные им ресурсы.
Следующей большой вехой в истории одноранговых сетей был 1999 год, когда появился Napster. Napster был файлообменным программным обеспечением, которое люди использовали для распространения и загрузки музыки. Музыка, распространяемая с помощью Napster, обычно защищалась авторским правом и, таким образом, ее распространение было незаконным. Однако это не помешало людям использовать его.
Хотя Napster был тем, кто вывел P2P в мейнстрим, проект в конечном итоге потерпел неудачу и был закрыт властями по причине незаконного распространения контента.
Можно также с уверенностью сказать, что новой ступенью в развитии пиринговых сетей стало становление блокчейн индустрии в 2008 году вместе с появлением Биткоина. Использование одноранговых децентрализованных сетей — одно из трех основных составляющих технологии блокчейн, наряду с общим реестром записей и механизмом консенсуса.
В настоящее время P2P остается одной из самых популярных технологий для обмена файлами через Интернет, использующаяся как законно, так и незаконно.
Незаконное использование одноранговых сетей
Поэтому, при использовании пиринговой сети убедитесь, что вы не занимаетесь пиратством или другими вариантами использования, которые наказываются по закону.
ЧТО ТАКОЕ Р2Р ВИДЕОНАБЛЮДЕНИЕ
Работа с отдельными камерами и целыми системами видеонаблюдения через интернет приобрела широкую популярность благодаря ряду аналитических функций и оперативному доступу к устройствам.
Как правило, большинство технологий, которые для этого используются, требуют присвоения камере или видеорегистратору дорогостоящего белого IP адреса, сложной процедуры настройки с использованием сервисов UPnPct и DDNS. Альтернативой этому является применение технологии Р2Р.
Р2Р (peer-to-peer) – пиринговый протокол связи, отличается более эффективным использованием полосы пропускания канала передачи сигнала и высокими показателями отказоустойчивости.
Впервые термин peer-to-peer (Advanced Peer to Peer Networking) – расширенные одноранговые сети, был использован корпорацией IBM в сетях с классической одноуровневой архитектурой и равноправными рабочими станциями. Он применялся в процессе динамической маршрутизации без использования сервера, когда каждый ПК выполнял функцию и клиента, и сервера. Сейчас более свободная версия перевода аббревиатуры звучит как «равный к равному».
Камеры видеонаблюдения с Р2Р технологией передачи изображения используются преимущественно в бытовых небольших и средних частных системах видеонаблюдения, выполняя некоторые функции систем безопасности и тревожной сигнализации.
ПРЕИМУЩЕСТВА Р2Р ВИДЕОНАБЛЮДЕНИЯ
Нет привязки к статическому IP адресу. Получение и содержание статического IP адреса может оказаться проблемой для рядового пользователя. Большинство провайдеров предоставляют услуги подключения к сети интернет на основании динамически изменяющихся IP адресов из определенного массива.
При каждом входе в сеть этот адрес для пользователя может изменяться, что потребует систематической настройки камер системы видеонаблюдения. Белый статический IP адрес провайдер предоставляет на платной основе и стоит эта услуга недешево.
Отсутствует зависимость от расстояния. Передача видеосигнала может осуществляться в любую точку планеты, где есть сеть интернет. Качество изображения зависит только от ширины канала и стабильной работы связи.
Возможность использования различных устройств для просмотра видео. Для осуществления мониторинга системы видеонаблюдения может использоваться как стационарный ПК или ноутбук, так и мобильные устройства: планшеты, смартфоны.
Доступная стоимость. Цена на камеры видеонаблюдения использующие технологию Р2Р не слишком отличается от стоимости обычных IP камер с сопоставимыми техническими и эксплуатационными параметрами.
Р2Р КАМЕРЫ ВИДЕОНАБЛЮДЕНИЯ
Ниже рассмотрены основные производители Р2Р камер и некоторые их модели.
Falcon Eye – компания производитель оборудования для систем видеонаблюдения и безопасности. Специализируется на беспроводных системах охранных GSM сигнализаций. Имеет официальное представительство в России с 2005 года. вся продукция производителя, которая реализуется в нашей стране, сертифицирована и адаптированы для работы в сложных погодных условиях. Соответствуют международном у стандарту ISO – 90001.
Все видеокамеры дают изображение в высоком разрешении 1280х720, могут работать при освещении 0,1 Люкс и имеют интерфейс передачи сигнала Lan и Wi-Fi (Falcon Eye FE-ITR 1300 только Lan). Кроме того они оснащены детектором движения и могут активировать процесс видеозаписи по тревоге.
Запись может осуществляться на видеорегистраторы, в облачный сервис или на карту памяти. Наличие микрофона и динамика превращает камеру в интерактивное устройство для двухсторонних переговоров.
Foscam – компания была основана в 2002 году. Специализируется на выпуске устройств и IP камер для GSM видеонаблюдения. Продукция прошла сертификацию по международному стандарту ISO 9001 и отечественным ГОСТам. Устройства оснащены детектором движения, слотами для карт памяти и интерфейсом RJ 45 (кабельное сетевое подключение витая пара).
Zodiac – компания предлагает устройства для бытовых и профессиональных систем видеонаблюдения. Все Р2Р камеры оборудованы системой инфракрасной подсветки, что позволяет производить видеосъемку в темное время суток.
НАСТРОЙКА Р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Р технологией дает возможность быстрой установки и настройки эффективной системы видеонаблюдения без привлечения дорогостоящих специалистов. Различные облачные сервисы предоставляют пользователю широкие функциональные возможности, аналогичные тем которые используются в сложных стационарных системах видеонаблюдения.
© 2010-2021 г.г.. Все права защищены.
Материалы, представленные на сайте, имеют ознакомительно-информационный характер и не могут использоваться в качестве руководящих документов
P2P — Следующий этап развития информационных систем
Давайте отвлечемся от запретов в различных странах, давайте не будем думать, что P2P — механизм обхода блокировок.
Предлагаю вам альтернативное мнение на P2P — какие проблемы будущего и настоящего сможет решить данная архитектура информационных сетей.
Давайте введем понятие — настоящий P2P.
Настоящий P2P — это одноранговая сеть, в которой абсолютно все узлы сети выполняют одинаковые функции или автоматически могут изменять набор своих функций в зависимости от окружающих условий.
Изменение функций — это ничто иное как предоставление тех функций которые не могут работать у некоторых узлов одноранговой сети из-за ограничений:
1) За NAT’ом
2) Мобильные устройства
Оба класса устройств либо не могут иметь прямой доступ к сети (NAT) или могут, но строго не рекомендовано — (Мобильные устройства) из-за повышенного энергопотребления при огромном количестве подключений.
Для устранения данной проблемы используются такие технологии как TCP Relay (тк большинство P2P систем используют UDP, с огромным количеством одновременных подключений можно выбрать себе узел который будет выполнять функции получения запросов из сети по UDP и пересылки их на конечное устройство по TCP через одно и тоже соединение) Хочу напомнить, что подобный механизм уже был очень давно реализован в Skype, до его покупки компанией MS эти функции работали, позднее — понятие «супер ноды» в Skype ушло и их заменяют сервера MS.
Очень важно не путать P2P и Mesh сети. P2P — это одноранговое взаимодействие на уровне 3 и выше по модели OSI, Mesh — на 3 и ниже соответственно.
Какие проблемы решает P2P сети и какие технологии уйдут при повсеместном внедрении P2P?
Кэширование
В нынешнее время, некоторые провайдеры, а практически все операторы сотовой связи кэшируют трафик. Таким образом достигается экономия ресурсов и аплинков, что бы не гонять одинаковый трафик через магистрали.
Но зачем нужно кэширование, если контент попавший в сеть оператора при повторном запросе скорее всего будет запрошен из сети оператора?
При этом не надо строить никакой новой инфраструктуры вообще.
Система доставки контента используется в основном для доставки «тяжелого» контента, музыки, видео, игровых образом (steam), что бы снизить нагрузку на основной сервер и снизить время отклика — в разные страны и/или регионы ставиться CDN сервера, которые выполняют функцию балансировки нагрузки.
Данные сервера нужно обслуживать, затрачивая человека-часы их надо настраивать и они не смогут динамически увеличить свою пропускную способность или допустим:
В Нижнем Новгороде всегда был популярен сервис Giwi.get который позволяет в он-лайне смотреть легальный контент, CDN сервер в регионе может одновременно предоставить возможность просмотра фильмов и сериалов только 100 000 пользователей. Но внезапно на сервисе появляется новый контент (сериал) по прогнозам которые были сделаны на основе исследований, данный сериал не должен был заинтересовать людей из данного региона.
Но почему, то он заинтересовал, и все решили его посмотреть — естественно CDN не справиться, в лучшем случае контент сможет обработать соседний CDN, но не факт что CDN соседний готов к такой нагрузке.
Нехватка каналов связи
Провайдеры последней мили готовы предоставить каналы в 1 Гигабит/с, и даже сеть внутри города сможет прокачать такую нагрузку, но вот незадача, от города идет магистральный канал, который не рассчитан на такую нагрузку, а расширение канала — это миллионы (подставьте валюту на выбор).
Естественно, данную проблемы опять же решают P2P сервисы, достаточно что бы в городе был хотя бы 1 источник контента (предварительно скачанный через магистраль) — все будут иметь доступ к контенту на максимальной скорости локальной сети (внутригородской)
Укрепление распределенности интернета
В нынешнем мире Аплинки — это всё, точки обмена трафика есть в городах, но провайдер скорее купит себе еще пару гигабит на магистрали, чем расширит каналы до точки обмена трафика или подключиться к соседним провайдерам.
Уменьшение нагрузки на аплинки
При использовании P2P — вполне логично, что провайдеру будет важнее иметь более широкие внутренние каналы, чем внешние, да и зачем платить за дорогостоящий аплинк, если с большой долей вероятности требуемый контент может быть найден в сети соседнего провайдера.
Провайдеры кстати тоже будут рады, даже сейчас провайдер предоставляет такие тарифы, что его аплинк не ровняется суммарному количеству всех пользователей.
Другими словами — если все пользователи начнут использовать на 100% свой тариф — аплинк у провайдера закончиться очень быстро.
Очевидно, что P2P решения дают возможность провайдеру сказать, что он предоставляет вам доступ к сети на скорости хоть 1 TB\c тк контент в сети очень редко бывает уникален, провайдер (который имеет пирсинг с соседями провайдерами из города) сможет с большой долей вероятности предоставить доступ к контенту на тарифной скорости.
Никаких лишних серверов в сети
Сейчас в сети провайдера обычно стоят такие сервера как: Google CDN (/Youtube), Yandex CDN/пиринг, DPI, + другие специфические сервера CDN/Кэширования которые используются в данном регионе.
Очевидно, что можно ликвидировать все CDN сервера и лишний пиринг (с сервисами, а не с провайдерами), DPI в такой ситуации тоже будет не нужен, тк в часы ЧНН не будет таких резких скачков нагрузку. Почему?
ЧНН — Забудьте эту аббревиатуру
ЧНН — Час наибольшей нагрузки, традиционно это утренние часы и вечерние часы, причем всегда заметны несколько пиков ЧНН в зависимости от рода занятости людей:
Пики вечернего ЧНН:
1) Возвращение школьников из школы
2) Возвращение студентов из вузов
3) Возвращение работников которые работают по графику 5/2
Данные пики вы сможете увидеть на любом оборудовании которое анализируют сетевую нагрузку на канал.
P2P Решает и эту проблему, тк велика вероятность, что контент который интересен школьникам может быть интересен как студентам так и работникам — соответственно он уже есть внутри сети провайдера — соответственно ЧНН на магистрали не будет.
Далёкое будущее
Мы отправляем свои аппараты на луну и на марс, уже давно есть интернет на МКС.
Очевидно, что в дальнейшем развитие технологий позволит осуществлять полёты в далёкий космос и длительное нахождение человека на других планетах.
Они тоже должны быть связаны в общую сеть, если мы рассматриваем классическую систему Клиент-Сервер, и сервера расположены на земле, а клиенты скажем на Марсе — Пинг убьет любе взаимодействие.
А если мы предполагаем, что на другой планете будет наша колония которая будет расти — то как и на земле они будут пользоваться интернетом, понятное что им нужны будут те же инструменты, что и нам:
1) Мессенджер
2) Соц-сети
И это минимально-необходимое количество сервисов которые позволяют обмениваться информацией.
Логично, что контент который будет генерироваться на Марсе будет интересен и популярен на марсе, а не на земле, как быть соц.-сетям?
Устанавливать свои сервера которые будут автономно работать и через некоторое время синхронизироваться с землёй?
P2P сети решать и эту проблему — на марсе у источника контента свои подписчики, на земле — свои, но соц.-сеть одна и та же, но если у Марсианского жителя будет подписчик с земли — нет проблем, при наличии канала контент прилетит и на другую планету.
Что важно отметить — не будет рассинхронизации, которая может случиться в традиционных сетях, не надо устанавливать никаких лишних серверов там и даже что-то настраивать. P2P система позаботиться сама о поддержке актуальности контента.
Разрыв каналов
Вернемся к нашему мысленному эксперименту — на марсе живут люди, на земле живут люди — все они обмениваются контентом, но в один прекрасный момент происходит катастрофа и связь между планетами пропадает.
При традиционных клиент-серверных системах мы можем получит полностью неработающую соц.-сеть или другую службу.
Помните, что у каждого сервиса есть центр авторизации. Кто будет заниматься авторизацией, когда канал нарушен?
А марсианские тинэйджеры тоже хотят постить фотографии своей марсианской еды в MarsaGram.
P2P Сети при разрыве канала с легкостью переходят в автономный режим — в котором она будет существовать полностью автономно и без какого-либо взаимодействия.
А как только связь появиться — все службы автоматически синхронизируется.
Но марс — это далеко, даже на земле могут быть проблемы с разрывом канала связи.
Вспомните последние громкие проекты Google/Facebook с покрытием новых территорий интернетом.
Некоторые уголки нашей планеты всё еще не подключены к сети. Подключение может быть слишком дорогим или экономически не оправданным.
Если же в таких регионах стоить свою сеть (интранет) с последующим подключением её к глобальной по средствам очень узкого канала — спутника, то P2P решения позволяет на начальном этапе пользоваться всеми функциями как и при глобальной связанности сетей. А в последствии — как мы уже говорили выше — позволяет прокачать весь нужный контент через узкий канал.
Выживаемость сети
Если мы полагаемся на централизованную инфраструктуру у нас вполне конкретное количество точек отказа, да, есть еще и резервные копии и резервные дата-центры, но надо понимать, что если основной ДЦ будет поврежден из-за стихии, доступ к контенту будет замедлен в разы, если вообще не прекратиться.
Вспоминаем ситуацию с марсом, все устройства поступают на марс с земли, и в один прекрасный день сервер компании Uandex или LCQ ломается — перегорел контроллер RAID, или другая неисправность — и все марсиане опять же без MarsiGram или того хуже — не смогу обмениваться простыми сообщениями друг с другом. Новый сервер или его компоненты приедут с земли ох как не скоро.
При P2P решении — выход из строя одного участника сети никак не сказывается на работе сети.
Я — не могу представить будущее в котором наши системы останутся клиент-серверными, это сгенерирует огромное количество ненужных костылей в инфраструктуре, усложнит поддержку, добавит точки отказа, не позволит произвести масштабирование когда оно понадобиться, потребуются огромные усилия, если мы захотим что бы наши клиент-серверные решения работали не только на нашей планете.
Так, что будущее — это определенно P2P, как изменил мир P2P можно наблюдать уже сейчас:
Skype — небольшая компания не тратила деньги на сервера смогла вырасти до огромного гиганта
Bittorrent — OpenSource проекты могут передавать файлы не нагружая свои сервера
Это только два ярких представителя информационной революции. На подходе множество других программ которые изменят мир.
4.1.1.5 Алгоритмы и применения сетей P2P
Семенов Ю.А. (ИТЭФ-МФТИ)
Yu. Semenov (ITEP-MIPT)
Использование компьютерных технологий начиналось со времени, когда ЭВМ занимала целое здание и можно сказать, что пользователь входил в машину в буквальном смысле. Не исключено, что через какое-то время чипы ЭВМ будут встраиваться в организм человека. Но на протяжении достаточно длительного времени доступ к ресурсам машины осуществлялся через удаленное терминальное устройство. Именно эта схема породила алгоритм взаимодействия клиент-сервер. Позднее, когда терминальным устройством стала персональная ЭВМ, клиент и сервер стали временами меняться местами, но суть взаимодействия сохранялась прежней. Алгоритм клиент-сервер предполагает взаимодействие по схеме точка-точка.
Первые локальные сети (Ethernet), несмотря на однородность топологии, логически функционировали согласно алгоритму клиент-сервер. По мере развития сетевых технологий число серверов в сети росло, появилась функциональная дифференциация (DB, DNS, mail и т.д.), но и на этом уровне взаимодействие в любой момент времени строилось по схеме клиент-сервер.
Интернет открыл возможность равноправного взаимодействия для миллионов пользователей сети, но даже это в первые годы алгоритмически мало что поменяло. Это может показаться парадоксальным, Интернет, который построен по неиерархической схеме, до недавнего времени на прикладном уровне использовал иерархическую схему обмена.
В начале 90-х годов начали широко использоваться технологии мультикастинга, в частности MBONE. Техника мультикастинга в сочетании с соответствующими протоколами маршрутизации (например, PIM) и средствами обеспечения качества обслуживания (RSVP-TE и MPLS-TE) идеально подходит для транспортировки мультимедиа и в частности для цифрового телевидения через Интернет.
В начале 90-х стали заключаться пиринговые (peer-peer) соглашения между сервис-провайдерами, но и это было лишь новым подходом в политике маршрутизации. Сети ICQ, например, по-прежнему строятся по схеме клиент-сервер, хотя в некоторых режимах реализуется схема взаимодействия точка-мультиточка.
Впервые термин «peer-to-peer» была использована в 1984 году компанией IBM в разработке сетевой архитектуры для построения динамической маршрутизации через компьютерные сети с произвольной топологией – «Advanced Peer to Peer Networking» [1].
Рис. 1. P2P сеть состоит из равноправных узлов. Каждый узел может взаимодействовать с каждым.
В основе технологии лежит принцип децентрализации, то есть все узлы в сети P2P – равноправны (рис 2). Этот принцип, обеспечил такие преимущества технологии P2P перед клиент-серверным подходом, как отказоустойчивость к потере связи с узлами сети, увеличение скорости копирования за счет копирования сразу из нескольких источников (рис. 10.11), возможность разделения ресурсов без привязки к конкретным IP-адресам, огромная мощность сети в целом и др.
Отказоустойчивость, свойственная алгоритмам Р2Р, может стать причиной внедрения этой технологии для управления технологически опасными производствами, например, атомными электростанциями. Здесь важно, чтобы узлы Р2Р не располагались в одном и том же помещении и не были подключены к общим каналам питания. Выход из строя части управляющих машин может уменьшить функциональность, но не управляемость системы.
Р2Р может предложить и достаточно высокий уровень катастрофоустойчивости, когда нужно гарантировать сохранность определенных данных в случае пожара или каких-то иных природных или рукотворных инцидентов. Для таких приложений географическая удаленность узлов является важным преимуществом.
Для поддержания надежности обмена могут использоваться самые разные технологии, в частности, протокол FEC (Forward Error Correction) или MDC (Multi Description Coding [12]) в случае транспортировки мультимедийных данных, когда повторная передача пакетов невозможна или крайне нежелательна.
Незаменимыми могут оказаться системы Р2Р в банковском бизнесе, где важна сохранность данных и высокая надежность расчетов. Методики дублирования в банковских приложениях используются уже достаточно давно.
Широко используемые сейчас распределенные вычислительные системы типа GRID являются частным случаем реализации технологии Р2Р.
Так, по некоторым данным [6], в настоящее время в сети Internet более половины всего трафика приходится на трафик файлообменных P2P сетей, а размеры самых крупных из них перевалили отметку в миллион одновременно работающих узлов, разделяющих петабайты (10 15 байт) информации. Общее количество зарегистрированных участников файлообменных сетей P2P во всем мире составляет порядка ста миллионов.
Хотя в первую очередь P2P-сети используются сейчас для разделения файлов, существует еще много других областей, [3] где данная технология также успешно применяется. Это телевидение и аудио трансляции, параллельное программирование, распределенное кэширование ресурсов для разгрузки серверов, рассылка уведомлений и статей, поддержка системы доменных имен, индексирование распределенных ресурсов и их поиск, резервное копирование и создание устойчивых распределенных хранилищ данных, обмен сообщениями, создание систем-серверов устойчивых к атакам типа «отказ в обслуживании», распространение программных модулей. Имеется огромное количество клиентских программ для работы с P2P-сетями, как коммерческих, так и с открытым кодом. Постоянно идет работа по усовершенствованию протоколов и увеличению функциональности систем, и, судя по всему, недалек тот момент, когда клиентское программное обеспечение для P2P будет интегрировано с операционными системами. Так, уже сейчас крупные компании проявляют интерес, или вплотную занимаются Р2Р, например, компания Sun разрабатывает протокол, поддерживающий доступ к основным P2P-сетям для карманных компьютеров и смартфонов, компания Microsoft создала реализацию протоколов P2P Scribe и Pastry.
Рис. 2. Скорость копирования увеличивается за счет копирования из нескольких источников одновременно.
При этом скорость копирования равна сумме скоростей, обеспечиваемых виртуальными соединениями, и ограничена сверху пропускной способностью канала, с помощью которого клиент подсоединен к сети Интернет.
Определения:
P2P-технология – технология построения сети распределенных равноправных узлов по принципу децентрализации.
В существующих сегодня реализациях P2P файлообменных сетей, изначально был использован смешанный подход, с присутствием выделенных узлов (и/или серверов), однако в последние несколько лет все самые крупные сети включили поддержку протоколов, обеспечивающих полностью автономное функционирование сети без серверов – чистый P2P-подход.
P2P сеть – множество узлов (компьютеров, смартфонов и пр.), объединенных в единую систему и взаимодействующих посредством P2P протокола.
Протоколом, или набором протоколов, определяется логическая топология сети, механизм подключения и отключения узлов от сети, а также алгоритм взаимодействия узлов. Решение таких задач, как коррекция ошибок, форматы сообщений и служебных запросов и откликов, протоколы маршрутизации в условиях постоянного подключения и отключения узлов – также определяется протоколом P2P.
В модели стека сетевых протоколов TCP/IP протоколы P2P относятся к прикладному уровню, таким образом, P2P сеть является наложенной сетью (overlay), функционирующей поверх сети Интернет и использующей существующие транспортные протоколы TCP или UDP.
Клиентская программа P2P, или просто «клиент» – программа, которая реализует функциональность узла, сама является реализацией заложенного в основу сети P2P протокола. Клиент может запрашивать сервер или выделенные узлы, получать ответ с информацией о запрошенных файлах, узлах на которых они находятся, и далее уже работать напрямую с указанными узлами. В последних реализациях клиентов, заложена также возможность обмена служебной информацией, построения запросов и поиска ресурсов клиентом во всей сети без участия серверов.
ID узла – уникальный идентификатор узла, вычисляется с помощью хеш-функции [6] из IP – адреса и дополнительной информации (имени компьютера, MAC-адреса сетевой карты и пр.). Присваивается при регистрации в сети P2P и используется для идентификации узла.
Р2Р файлообменные сети
Протоколами обеспечивается равномерное распределение ключей ресурсов вместе с идентификаторами узлов, опубликовавшими данный ресурс, по всем узлам (или по некоторым выделенным узлам и/или серверам), зарегистрированным в сети. Задача поиска ресурса сводится к нахождению ID узла, на котором хранится ключ ресурса [4].
Рис. 3. Распределение ключей ресурсов по узлам сети. Поиск ресурса.
На рис. 3 приведен пример чистой P2P сети, созданной по протоколу DHT Kademlia [15]. На рисунке к сети, способной поддерживать максимум 16 узлов и 16 ресурсов, подсоединились 7 узлов (черные кружки), разделяющих 12 ресурсов (номера в белых прямоугольниках). Узлам присвоены соответствующие ID, ресурсам присвоены ключи. Ключи вместе с адресами опубликовавших их узлов (адреса на рисунке не показаны) равномерно распределены между узлами сети. На рисунке изображено, какие ключи хранятся и на каких узлах.
Узел с ID 0 хочет найти ресурс, соответствующий ключу 14, для этого посылает запрос на поиск. Запрос проходит определенный маршрут (подробнее о маршрутизации см. [3]) и достигает узла, на котором находится ключ 14. Далее узел ID 14 пересылает узлу ID 0, адреса всех узлов, обладающих ресурсом, соответствующим ключу 14.
Причинами большого роста популярности сетей P2P являются привлекательные идеи данной технологии: децентрализация, распределенность и самоорганизуемость сети. Эти принципы обеспечивают такие преимущества сети, как простота и дешевизна внедрения и поддержки, отказоустойчивость, масштабируемость, увеличение скорости копирования, колоссальная мощность сети в целом.
На данный момент лидируют по количеству узлов среди файлообменных сетей такие сети как Bittorrent [16], eDonkey2000 [14], Gnutella2+Gnutella. В России более популярен Bittorrent, впервые реализованный Брэмом Коэном в 2001 году.
Многие администраторы стараются заблокировать или отфильтровать информационные потоки файлообменных сетей, например, BitTorrent. Это достаточно легко сделать. Первым байтом в поле данных ТСР-сегмента является код 19 (=0х13), за которым следует 19 байтов данных BitTorrent. Используя эту сигнатуру, можно блокировать такой поток данных или присвоить ему нужный приоритет.
Для инициализации узла, например, в [13] клиентская программа обращается к серверу, предоставляющему информацию о файлах доступных для копирования, а также статистическую и маршрутную информацию об узлах сети. Сервер и после инициализации помогает узлам взаимодействовать друг с другом.
Если узел хочет опубликовать файл, то программа разделяет файл на части и создает файл метаданных с информацией о частях файла, местонахождении, и, опционально, местонахождении сервера, который будет поддерживать распространение этого файла. Первый узел, опубликовавший файл, называется распространителем. Узел, желающий скопировать файл, сам становится распространителем, по принципу «сколько копирую я, столько разрешаю скопировать у меня». Узлы, скопировавшие весь файл становятся распространителями для этого файла, и, вместе с не полностью скопировавшими узлами дают возможность другим узлам получать части файла из нескольких источников, что ускоряет копирование (см. рис. 10.11).
Существуют модификации протоколов, которые позволяют работать с файлами метаданных, не привязанными к серверам.
Одной из первых пиринговых сетей, Gnutella, была создана в 2000 году [17]. Сеть функционирует до сих пор, хотя из-за серьезных недостатков алгоритма пользователи сейчас предпочитают сеть Gnutella2 (G2, [18]).
Подключившийся клиент получает от узла, с которым ему удалось соединиться, список из 5 активных узлов, отсылает им запрос на поиск ресурса по ключевому слову. Узлы ищут у себя соответствующие запросу ресурсы и, если не находят, пересылают запрос своим активным узлам вверх по дереву, пока не найдется ресурс или не будет превышено максимальное число шагов. Такой поиск называется размножением запросов. С помощью протокола также отслеживается, чтобы топология создаваемой сети узлов имела древовидную структуру графа.
Понятно, что подобный алгоритм ведет к экспоненциальному росту числа запросов и, соответственно, на верхних уровнях может привести к отказу в обслуживании, что и наблюдалось на практике неоднократно. Разработчиками были проведены работы по улучшению алгоритма, введены правила, в соответствии с которыми запросы могут пересылать вверх по дереву только определенные узлы – так называемые выделенные узлы, остальные узлы могут лишь посылать им запросы.
Недостатки протокола Gnutella инициировали разработки принципиально новых алгоритмов поиска маршрутов и ресурсов, и привели к созданию группы протоколов DHT (Distributed Hash Tables) [7], в частности протокола Kademlia [4], который сейчас широко используется в наиболее крупных сетях.
Запросы в сети Gnutella пересылаются по tcp или udp, копирование файлов происходит посредством протокола http.
В последнее время появились расширения для клиентских программ, позволяющие копировать файлы по udp, делать xml-запросы метаинформации о файлах.
В 2003 году появился принципиально новый протокол Gnutella2. В соответствии с данным протоколом, некоторые узлы становятся концентраторами, остальные являются обычными узлами. Каждый обычный узел имеет соединение с одним-двумя концентраторами. У концентратора есть связь с сотнями обычных узлов и десятки соединений с другими концентраторами. Каждый узел периодически пересылает концентратору список идентификаторов ключевых слов, по которым могут быть найдены публикуемые данным узлом ресурсы. Идентификаторы сохраняются в общей таблице на концентраторе. Когда узел хочет найти ресурс, он посылает запрос по ключевому слову своему концентратору, который либо находит ресурс в своей таблице и возвращает ID-узла, обладающего ресурсом, либо возвращает список других концентраторов, которые узел вновь запрашивает по очереди, случайным образом. Такой поиск называется поиском с помощью метода блужданий.
Для передаваемых пакетов в Gnutella2 разработан собственный формат, похожий на xml, гибко реализующий возможность наращивания функциональности сети, путем добавления дополнительной служебной информации. Запросы и списки ID ключевых слов пересылаются по udp.
Сеть EDonkey2000 [14] появилась в 2000 году. Информация о наличии файлов публикуется клиентом на многочисленных серверах в виде ed2k ссылок, использующих уникальный ID ресурса. Серверное ПО доступно для установки любым пользователем. Сервер обеспечивает поиск узлов и информации. Сейчас в сети имеется от 100 до 200 серверов, обслуживающих одновременно около миллиона пользователей, использующих порядка миллиарда различных файлов. Общее количество зарегистрированных пользователей составляет порядка 10 миллионов.
Когда клиент копирует желаемый ресурс, он копирует его одновременно из нескольких источников при помощи MFTP (Multisource File Transfer Protocol).
Клиент EDonkey имеет очень интересное расширение, позволяющее копировать метафайлы, которые пользуются большим доверием пользователей, а также использовать верификационную информацию из метафайлов для работы с файлами собственной сети.
Такая интеграция возможностей разных сетей и дополнительная верификация способствовали развитию EDonkey2000, в которую начали переходить пользователи других сетей, например, сети FastTreсk, базирующейся на протоколе FastTreсk, а наиболее популярным клиентом является Kazaa [17].
Провайдеры сетевых услуг, например, провайдеры московских домашних сетей, а также администраторы компаний, до недавнего времени старались блокировать на своих файерволах порты, через которые общаются клиенты сетей Bittorrent, eDonkey2000, Gnutella, Fasttreck.
Поэтому пользователям осталась только возможность использовать локальные пиринговые сети. Наиболее удобной для этого оказалась сеть Direct Connect (DC) [16].
Клиенты подключаются к одному или нескольким серверам для поиска файлов. Серверы не связаны между собой. Информация о файлах, доступ к которым узел хочет открыть, отсылается на сервер. Копирование файлов происходит напрямую между узлами, как и в классической P2P сети.
В клиенте встроены возможности для общения участников сети, список файлов каждого пользователя можно получать в виде древовидной структуры папок, есть простой механизм поиска информации, существует возможность копирования целых каталогов. Перечисленные возможности сделали сеть DC идеальным решением для локальной файлообменной сети P2P.
P2P телевидение
В настоящее время телевидение находится на перепутье – происходит смена поколений телевизионных технологий (аналог-цифра, ТВ с традиционным и высоким разрешением (HDTV), ТВ по запросу, спутниковое и кабельное и пр.). Как всегда возникают трудности унификации стандартов. Традиционное ТВ базировалось на иерархических схемах доставки (от ТВ-центра по кабелю или эфиру к клиентам).
Современному клиенту предлагаются десятки телевизионных каналов. Что же может предложить клиентам компании, продвигающие на рынок Р2Р ТВ-услуги?
Прежде всего, это бесплатный доступ к каналам, во всяком случае, первое время, возможности ТВ по запросу и т.д. Издержки провайдера услуг минимизируются тем, что он практически не тратит средств на развитие и поддержку инфраструктуры (кабели, передатчики, специализированное оборудование, студии, сервис и т.д.), он предлагает клиентам, как правило, продукты вторичного рынка (фильмы, музыкальные и развлекательные программы и пр.). Доход он получает в основном от размещения рекламы. Не имея доступа к сети доставки телевизионного сигнала, такие провайдеры используют Интернет и специализированное программное обеспечение, ориентированное на Р2Р-технологию. Это программное обеспечение загружается в машины всех клиентов, подключаемых к сети. Загрузка программ через Интернет создает дополнительную уязвимость, которая может быть парирована использованием надежной системы аутентификации. Сеть рассылки ТВ-данных образуется из машин клиентов, которые могут подключаться и отключаться от сети, когда этого захотят сами клиенты.
Рис. 4. Топология с четырьмя деревьями.
На рис. 4 представлена схема с MDC и разделением потока на четыре субпотока (4 дерева). Буквами G1, G2 и G3 обозначены поколения узлов-партнеров (peer), которые участвуют в доставке видео данных другим узлам.
Рис. 5. Топология решетки GBS (Gossip Based Streaming [21]).
При сеточной топологии [10, 11] поток данных делится на небольшие модули, например, соответствующие одной секунде фильма. Соответствующие модули клиент получает от узлов сетки случайным образом или согласно некоторой закономерности.
На рис. 5 показана схема работы алгоритма Gossip Based Streaming. Узлом источником первичного видео потока здесь является узел А. Эволюция графа доставки видео фрагментов зависит оттого, какие узлы направят запросы первыми. Размер сегментов обычно постоянен. Предположим, что узел А может обслужить не более трех узлов (ограничение выходной полосы). При развитии дерева доставки учитывается выходная полоса узлов, которая предполагается больше, чем требуется для одного видео потока, и случайный характер выбора партнера источника данных. Узлы информируют партнеров (не только соседей) об имеющихся у них видео сегментах. Любой из узлов может стать отправителем, если у него имеется нужный сегмент, и ему поступил запрос на этот сегмент. Для любого из видео сегментов можно отследить его путь от А до узла редистрибьютера. Для такой схемы характерна большая задержка воспроизведения. Это связано с тем, что при М шагах маршрута доставки сегмента задержка t = М×(Tпередачи + Tдиалога), где Tпередачи – время передачи сегмента между смежными узлами (
1 сек), Tдиалога – время оповещения о наличии сегмента и обслуживания запроса.
При анализе эволюции графа доставки следует учитывать доступную выходную полосу узлов. Обозначим скорость передачи видео как ВW [кбит/с]. Пусть базовый узел А может обслуживать на постоянной основе только два узла (B и D на рис. 5b), а вторичные узлы B, C, D… имеют выходную полосу пропускания ТB. На рисунке каждый из вторичных узлов обслуживает одновременно три узла.
Если для обеспечения требующегося разрешения необходим входной поток
400кбит/c, то выходная полоса пропускания должна быть больше этой величины. Если численность узлов с числом шагов доставки К составляет MK, то численность узлов с числом шагов доставки К+1 будет равно MK+1 =МК×ТВ/BW. По этой причине ТВ/BW желательно иметь как можно больше (всегда должно быть ТВ/BW>1), что не всегда возможно. В качестве транспорта в таких сетях часто используют протокол TFRC (TCP Fair Rate Control), c возможностями повторной пересылки. Это позволяет сделать К достаточно большим (вероятность накопления ошибок невелика), но это еще более увеличивает задержку воспроизведения (до нескольких минут). Двунаправленные стрелки на рис. 10.14 означают возможность обмена в обоих направлениях, хотя трудно представить, что видео данные будут поступать из узла G в узел D, ведь в узел D они поступают из первичного узла А. Но следует учитывать, что в отличие от алгоритма, использующего деревья, здесь нет однозначного направления передачи данных между узлами. Источником очередного сегмента для узла i может стать любой узел, у которого в буфере такой сегмент имеется (ведь выбор отправителя производится случайным образом). Но такой подход может вынудить, например, узел D послать по запросу “старый” сегмент, лежащий у него в буфере, вместо того чтобы послать “новый” сегмент узлу Н. Эта особенность может приводить к накоплению задержки доставки видео материала по мере трансляции фильма. Именно по этой причине в программе-клиенте используется изощренная двухуровневая буферизация. Замечу, что число шагов доставки данных (K) в алгоритме GBS величина статистическая, а не постоянная, и его значение лежит в интервале от 2 до некоторого максимума, определяемого суммарным числом узлов в сети S. Статистическое распределение K строго говоря не идентично для узлов сетки (например, узлы первого поколения (B и D), явно выделены).
Но при любой реализуемой схеме выходной поток данных узла должен превосходить входной, чтобы можно было реализовать сеть достаточно большого размера при ограниченном числе пересылок исходных данных (например, не более 5).
Проблемы безопасности
Реализация и использование распределенных систем имеет не только плюсы, но и минусы, связанные с особенностями обеспечения безопасности.
Получить контроль над столь разветвленной и крупной структурой, какой является сеть Р2Р, или использовать пробелы в реализации протоколов для собственных нужд – является желанной целью любого хакера. С другой стороны, защитить распределенную структуру сложнее, чем централизованный сервер [9].
Столь огромное количество ресурсов тяжело шифровать/дешифровать, поэтому большая часть информации о IP-адресах и ресурсах участников, хранится и пересылается в незашифрованном виде, что делает ее доступной для перехвата. Только в последнее время клиенты большинства крупных сетей обеспечивают решение этой проблемы путем шифрования заголовков пакетов и идентификационной информации, реализации клиентов с использованием SSL, построения полностью анонимных сетей и пр.
Серьезной проблемой является рассылка червей и подделка ID ресурсов для их фальсификации и распространения фальшивых ресурсов в сети.
Так, например, в клиенте Kazaa, используется хеш-функция UUHash которая позволяет быстро находить ID для больших файлов даже на слабых компьютерах, но и, при этом, оставляет возможность для подделки файлов и записи испорченного файла, имеющего тот же ID. Эта возможность была использована Американской Ассоциацией Звукозаписывающих Компаний (RIAA), которая наводнила сеть поддельными и испорченными файлами.
Для решения проблемы клиентам нужно пользоваться надежными хешами (деревьями хешей, если файл копируется по частям) такими как SHA-1, Whirlpool, Tiger и только для малоответственных задач, контрольными суммами CRC. Для уменьшения объемов пересылаемых данных и облегчения их шифрования можно использовать компрессию. Для защиты от вирусов нужно иметь возможность хранить идентифицирующую метаинформацию о червях, как это, например, сделано в Gnutella2.
Другой проблемой является возможность подделки ID серверов и узлов. При отсутствии механизма проверки подлинности, пересылаемых служебных сообщений, например, с помощью сертификатов, существует возможность фальсификации сервера, или узла. Так как узлы обмениваются информацией, подделка некоторых узлов или серверов приведет к компрометации всей или части сети. Закрытое программное обеспечение клиентов и серверов, не является решением проблемы, так как есть возможность для реинжиниринга протоколов и программ.
В настоящее время выделенные узлы, серверы и обычные узлы периодически обмениваются между собой верифицирующей информацией, и при необходимости добавляют поддельные серверы/узлы в черный список блокировки доступа.
Часть клиентов только копируют чужие файлы, но не предлагают ничего для копирования другим.
Например, в московских домашних сетях на нескольких активистов, делающих доступными более 100 GB приходится около сотни выкладывающих менее 1 GB. Для борьбы с этим фактором используются разные методы. В eMule применен метод кредитов. Скопировал файл, кредит уменьшился, позволил скопировать свой файл, кредит увеличился, xMule – кредитная система с поощрением распространения редких файлов, eDonkey используется стимулирование размножения источников, в Bittorrent реализована схема “сколько блоков файла получил, столько отдал” и т.д..
В последнее время техника P2P используется для синхронизации файлов в облаках, которое особенно привлекательно при работе с iPad, где нет поддержки прямого файлового обмена.
При создании информационных сетей, ориентированных на пересылку мультимедиа, следует учитывать возможность использования через эту сеть нелегальных сообщений в то числе террористами. Ведь выявить наличие скрытых сообщений внутри изображения крайне трудно, практически невозможно.