Pull to refresh

P2P — Следующий этап развития информационных систем

Reading time6 min
Views108K


Давайте отвлечемся от запретов в различных странах, давайте не будем думать, что 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?



Кэширование

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

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

CDN

Система доставки контента используется в основном для доставки «тяжелого» контента, музыки, видео, игровых образом (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 проекты могут передавать файлы не нагружая свои сервера

Это только два ярких представителя информационной революции. На подходе множество других программ которые изменят мир.
Tags:
Hubs:
Total votes 25: ↑22 and ↓3+19
Comments26

Articles