В проведенном недавно голосовании среди патронов, 83% решили что mesh-мессенджеры это актуально. Что ж, придется кратенько рассказать, тем более что тема это достаточно интересная и многообещающая. Но как и многие подобные темы пока не реализуемая/нереализованная на данном этапе развития техники (а может и Джобса на нее не было). В общем, про ad hoc, mesh и мессенджеры "для геологов". Начнем издалека.
Ad hoc, что в переводе с вечной латыни "для особого случая"
Наверное кто-то из читателей хотя бы раз встречал в настройках своего wifi адаптера это словосочетание на латыни - ad hoc. А кто-то даже возможно поинтересовался что оно значит. Не буду дублировать название :) Особый случай нужен когда важна самоорганизация и надежность.
Беспроводная ad-hoc-сеть (беспроводная самоорганизующаяся сеть, или специальная беспроводная сеть) — децентрализованная беспроводная сеть, не имеющая постоянной структуры (c переменной топологией). Клиентские устройства соединяются «на лету», образуя собой сеть. Каждый узел сети пытается переслать данные, предназначенные другим узлам. При этом определение того, какому узлу пересылать данные, производится динамически. Это является отличием от проводных сетей и управляемых беспроводных сетей, в которых задачу управления потоками данных выполняют маршрутизаторы (в проводных сетях) или точки доступа (в управляемых беспроводных сетях)<...>Такие сети не требуют настройки и администрирования, топология формируется самими устройствами "на лету" <...> Первыми беспроводными самоорганизующимися сетями были сети «packet radio» начиная с 1970-х годов, финансируемые DARPA после проекта ALOHAnet.
Основные признаки самоорганизующейся ad-hoc сети:
1. Отсутствие проводов. Используются различные протоколы, стандарты и технологии беспроводной связи: IEEE 802.11 Wi-Fi (для локальных и городских сетей), IEEE 802.15.1 Bluetooth (для бытовых устройств), IEEE 802.15.4 Zigbee (для датчиков) и т.д.
2. Динамичность. Настройка сети происходит автономно, в автоматичеком режиме и не требует участия администратора. Во время работы должен происходить обмен управляющей и статистической информацией между узлами - для выравнивания нагрузки и реагирования на изменение топологии
3. Децентрализованность. Отсутствие единого управляющего центра. Каждый узел (абонентское устройство) равноправен и активно участвует в организации приема и передачи данных внутри сети. В некоторых случаях абонент может находится только в одном из состояний: простой клиент (station), точка доступа (access point), прямое соединение (peer-to-peer).
4. Мобильность. Элементы составляющие сеть могут активно перемещаться в пространстве. В процессе функционирования происходит активный "круговорот устройств в природе" - одни узлы выпадают из сети, другие добавляются и начинают участвовать в построении топологии, автоматически настраиваясь на установленные на данный момент правила (которые динамично изменяются в соответствии с текущей ситуацией - количеством узлов, связностью между ними и т.д.)
Одной из разновидностей самоорганизующихся беспроводных сетей являются т.н. mesh-сети (англ. mesh - сеть, т.е. ячеистые сети). Это одноранговые распределённые сети, в которых каждый абонент соединяется со своими ближайшими соседями и может принимать на себя функцию маршрутизатора. Как правило, узлы соединяются по принципу «каждый с каждым». Mesh-сети не имеют фиксированной архитектуры, возможности соединения зависят от поведения устройств, типа мобильности, расстояние друг от друга и т.д. и т.п. По-сути, mesh - это подвид ad hoc с акцентом на результирующую топологию. Данная организация сети является достаточно сложной в настройке, однако это дает высокую отказоустойчивость. Большое количество связей обеспечивает широкий выбор маршрута трафика внутри сети — следовательно, обрыв одного соединения не нарушит функционирования сети в целом.
Mesh-сети могут интегрировать в себе различные сетевые и радиотехнологии. За последнее время размер устройств, стоимость, а также их энергопотребление снизились, и стало возможным добавление нескольких радиомодулей на один узел. Вследствие чего каждая ячейка получила возможность одновременно выполнять несколько полезных функций, таких как клиентский доступ и сканирование, требуемое для высокоскоростных передач в мобильных приложениях. Нельзя не вспомнить и огромное количество различных устройств, способных работать автономно долгое время, имеющих особенность многократной смены режима (online-нахождения в сети и offline-выхода из сети) и нуждающихся в обмене информацией со своим окружением (и/или с управляющим или информационным центром) - это "семейка IoT" — устройства Internet of Things, Интернета вещей.
Самый распространённый на сегодняшний день стандарт беспроводного соединения устройств — Wi-Fi. Поэтому и сами mesh-сети строятся в основном на этой технологии. Самым известным (в узких кругах) протоколом на сегодняшний день является Cjdns (в т.ч. благодаря поддержке в рамках OpenWrt). Вторым по известности можно считать протокол OLSR (RFC 3626) — протокол маршрутизации для сетей MANET (Mobile Ad hoc Network, RFC 2501) —полностью децентрализованных самоорганизующихся сетей со случайным соединением узлов. Помимо двух упомянутых проколов можно еще вспомнить B.A.T.M.A.N adv и «официальный» — IEEE 802.11s . Здесь стоить отметить, что несмотря на всплеск пользовательского интереса лет пять назад, сегодня эта тема заглохла и интересует только некоторых энтузиастов. Почему - попытаюсь предположить ниже.
А какой в этом всем смысл?
Как я уже упоминал, главные достоинств ячеистых сетей - высокая отказоустойчивость и надежность. Если один узел откажется принимать информацию, ее примет другой узел. Отключение одного или даже нескольких узлов не причинит сети ни малейшего вреда (сравните с обычной сотовой сетью, где отключение единственной базовой станции может оставить без связи тысячи абонентов).
Первое, что приходит в голову, когда поднимается вопрос "связь в отсутствие интернета" - это какие-то протестные движения, митинги и т.п. мероприятия, на которых имеет место активное принудительное глушение сигнала сотовой связи. Что на это сказать, только старое доброе "нет пошлых слов - есть пошлые уши". Возможно, я живу в тепличных идеалистических условиях, потому что когда слышу "связь в отсутствие интернета" - сразу думаю про какие-то поселки за полярным кругом, концерты или спортивные мероприятия, на которых из-за нагрузки "ложится" сотовая сеть или чрезвычайные ситуации (природного или техногенного характера), когда радиолюбители КВ-ки с их трансиверами становятся единственным работающим источником связи.
Используя mesh-сети, можно всегда оставаться на связи в местах, где отсутствует сетевая инфраструктура. Это может оказаться весьма полезно в районах повышенного риска, в местах дикой или неосвоенной природы (где проводят исследования учёные, археологи, геологи, туристы) и удалённых населённых пунктах, где абсолютно каждое абонентское устройство (например, смартфон местного жителя или станция, установленная в транспортном средстве участкового) может принимать участие в процессе передачи важной информации до адресата.
Можно вспомнить сюда же и то, что есть страны, в которых интернет для массового пользователя - непозволительная роскошь из-за стоимости услуг провайдеров или зоны вооруженных конфликтов. В общем, может быть множество возможных сценариев событий при которых возможность устанавливать связь между людьми в отсутствие GSM-покрытия нужна и важна. Многие эксперты в сфере коммуникация сходятся в том, что за подобными технологиями будущее. Я с ними согласен и даже более того, считаю что на уровне местных МЧС, в школах и т.п. необходимо проводить уроки информирования, посвященные тому, что и как делать в случае, если интернет/cотовая связь исчезла, стационарного телефона никогда не было, а людям необходимо как-то самоорганизоваться. Раньше для этой цели можно было использовать т.н. радиоточки. Сейчас они повсеместно демонтированы, а замены им достойной в плане автономности как бы и нет.
Еще одно важное преимущество mesh-сетей — независимость. Можно создать свою мобильную сеть передачи данных, которую никто не контролирует, и всё время оставаться на связи. Чем больше абонентов — тем плотнее и надёжнее сеть. Хотя для государства, Mesh сети это двоякое явление, с одной стороны такой тип сетей позволяет за меньшие деньги подключить к сети удаленные регионы с минимальным количеством вложений, с другой стороны — трафик в таких сетях не может быть перехвачен и проанализирован. Это, в свою очередь, может противоречить государственным законам конкретной страны или региона. В то же время, государственные структуры и военные ведомства по этим же самым причинам заинтересованы в освоении и организации подобных сетей.
На Западе также часто принято задачи вроде упомянутых выше называть "интернет-доступ последней мили". Как говорит разработчик Станислав Шалунов (о нем ниже):
Если очень грубо, интернет-соединение во всем мире состоит из трех кусков. Есть так называемый backbone — магистральные линии, большие 40-гигабитные соединения между провайдерами, условно говоря, это связь между городами. Есть metro area — такая же быстрая связь, та же технология, то же оптоволокно, только внутри городов. А есть, так сказать, край сети, та самая «последняя миля» — доступ собственно к пользователям со стороны провайдера. Это и беспроводная связь, как в случае с мобильной сетью, и металлический кабель. Backbone в эксплуатации сравнительно недорогой. Гораздо дороже обеспечить людей связью на крайнем участке, и, по моим оценкам, на его функционирование приходится 97% стоимости, которую пользователи платят за подключение. Так вот, в мире 5 миллиардов человек, которые пока не являются пользователями интернета просто потому, что они не могут себе позволить платить за какую-либо коммуникацию.
Практическая реализация. ПК
Как я писал ранее, в 2020 году кажется что пользовательский интерес к mesh-сетям иссяк. Или что все это совершенно не развивается. Хотя развиваться могло бы. К примеру, сегодня практически в каждой квартире установлен маршрутизатор (благодаря которому "в дом приходит интернет"). Все маршрутизаторы в доме могли бы быть связаны в mesh-сеть. Плюсы такой организации в том, что если вдруг у кого-то пропадает интернет - доступ идет через маршрутизаторы соседей. Если сеть простаивает - то большой объем данных можно загружать срезу через несколько каналов. Теоретически, реализовать такую возможность можно силами энтузиастов (как ранее "домашние локальные сети"), если соседи дружны между собой, либо же через какую-то компанию посредника (вроде монополиста Белтелекома в Беларуси). Но вот почему-то у нас действовать никто не спешит, ни в первом случае, ни во втором. Возможно, как в той пословице "либо нечему гореть, либо нечем поджечь". Развернуть mesh-сеть силами неискушенных в администрировании сетей пользователями практические нереально. На сегодняшний день нет полной и точной информации о том, как на основе имеющихся свободных программных и аппаратных средств создать и развернуть свою ячеистую сеть, готовую предоставить полноценные сервисы самоорганизующейся частной сети своим пользователям.
Хотя теоретически, и даже, в некоторых случаях, практически, вопрос о соответствующей настройке коммуникационного оборудования и протоколов в той или иной степени раскрыт. Можно без труда объединить в ячеистую топологию Wi-Fi маршрутизаторы и даже подключить к ним абонентов. Проблема состоит в том, что для обычных пользователей, которым нужен готовый, надёжный функционал и набор сервисов, вся эта информация практически ни о чём не говорит. Более того, современный пользователь не хочет покупать специализированное оборудование или тратить деньги на его аренду. Необходимо задействовать то, что у него уже есть.
Можно найти довольно много советов о том, как подключиться к «сети будущего», где нет цензуры и вся информация пользователя доступна только тем, кому он её предоставляет. Но это будет всего лишь предполагаемая замена или альтернатива сети Интернет, некий суррогат, который можно использовать только в случае крайней нужды. Пока нужды нет - и подвижек нет. Хотя есть места, где пользователей жизнь потрепала и им пришлось искать выход из бедственного положения. Часто именно mesh-сеть становилась дверью в Интернет. Приведу несколько живых в свое время сетей, использующих данную технологию (не уточнял, правда, как там обстоят дела на 2020):
1. Guifi. Каталония, Валенсия. Сеть создана в ответ на отсутствие «доступного» (по цене и качеству) интернет-провайдера. Есть специальные удалённые серверы доступа в Интернет, есть mesh-сети, ряд абонентов которых имеют доступ к этим серверам, а через них, в свою очередь, до Интернета могут добраться и другие участники сети.
2. AWMN (Athens Wireless Metropolitan Network). Греция, Афины. Для маршрутизации используются протоколы BGP (Border Gateway Protocol) и OLSR (Optimized Link-State Routing).
3. WasabiNet . США, Сент-Луис. Один из ярких примеров городских сетей, покрывающих отдельные улицы и предлагающих доступ в Интернет как бесплатно, так и за деньги, с определёнными услугами и более высокой скоростью доступа. Для маршрутизации также используется OLSR.
4. OLPC (One Laptop Per Child). Страны третьего мира. Цель —возможность организовать классную/аудиторную mesh-сеть, не используя специальное коммутационное оборудование, а только ноутбуки детей/школьников, выдаваемые им в рамках проекта.
5. Hyperboria (прошлое название — Project Meshnet). В рамках проекта реализован протокол Cjdns. С его помощью можно построить свою инфраструктуру обмена информацией. Протокол решает проблему оптимального перераспределения трафика и перенаправления нагрузки. В отличие от OLSR и других протоколов (например, B.A.T.M.A.N.) позволяет объединять отдельные сети и шифровать трафик. .
Можно еще вспомнить и аргентинский проект AlterMundi, в рамках которого аргентинские сетевики-энтузиасты разворачивали в удаленных горных поселках mesh-сети, которые подсоединялись к магистральному радиоканалу (автономные вышки с питанием от солнечных батарей) и так снабжали жителей горных деревень интернет-доступом. Примерно так как на картинке (на ней, кстати, показана сеть с использованием маршрутизаторов, то, что мог бы сделать и беларусский Белтелеком):
Нет комментариев