1612460802073.png

В проведенном недавно
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
среди патронов, 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) —полностью децентрализованных самоорганизующихся сетей со случайным соединением узлов. Помимо двух упомянутых проколов можно еще вспомнить
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
и «официальный» —
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
. Здесь стоить отметить, что несмотря на всплеск пользовательского интереса лет пять назад, сегодня эта тема заглохла и интересует только некоторых энтузиастов. Почему - попытаюсь предположить ниже.

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

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

Используя 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.) позволяет объединять отдельные сети и шифровать трафик. .

Можно еще вспомнить и аргентинский проект
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
, в рамках которого аргентинские сетевики-энтузиасты разворачивали в удаленных горных поселках mesh-сети, которые подсоединялись к магистральному радиоканалу (автономные вышки с питанием от солнечных батарей) и так снабжали жителей горных деревень интернет-доступом. Примерно так как на картинке (на ней, кстати, показана сеть с использованием маршрутизаторов, то, что мог бы сделать и беларусский Белтелеком):

1612460862839.png

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

1612460871991.png

Ставь туда нужную сборку OpenWRT с тем сjdns да работай себе на здоровье. Так нет же :/

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

А еще, еще существует реализация mesh-сети для устройств на базе Raspberry PI - называется этот проект Meshberry (ожидаемо, на cjdns).

Практическая реализация. Mobile
Логично, что по всем параметрам именно мобильным узлам - смартфонам, сам бог велел объединяться в ячеистые сети. Тем более, что реализация таких возможностей стала доступна с выходом iOS седьмой версии, в которой Apple реализовала платформу
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
, позволяющую автоматически создавать mesh-сети при помощи Wi-Fi или Bluetooth. В случае Android аналогичная по функционалу платфорама называлась
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
P2P Framework и появилась впервые в Jellybean 4.2.

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

Первое, что приходит в голову, это проект Open Garden и приложение FireChat.

FireChat (диагноз - "не живой")
demo2.png

Приложение для обмена текстами и картинками, продукт компании Open Garden, основанной в 2011 году. Основатели этой компании все имели какое-то отношение к децентрализации. Один из них, выходец из России Станислав Шалунов, известен как создатель протокола LEDBAT, который используют Apple и BitTorrent. Greg Hazel - был ведущим разработчиком μTorrent, распространённого клиента BitTorrent. Бизнесмен Micha Benoliel долгое время сотрудничал со Skype, когда этот сервис был почти полностью децентрализованным, а системный архитектор Taylor Ongaro успешно зарекомендовал себя в стенах IBM. В общем ребят сделали приложение которое позволяло людям общаться в условиях отсутствия интернета. Возможно оно бы так и осталось неизвестным, если бы этот мессенджер внезапно не прославился на протестных акциях и митингах, где власти глушили GSM. Впервые массовый интерес к FireChat у пользователей возник во время «революции подсолнухов» на Тайване. Потом был пик популярности во время протестов в Гонконге: стоило властям пригрозить отключением интернета, как в FireChat пришло полмиллиона новых пользователей.

А потом пошли иски от телекоммуникационных компаний, удаление из GooglePlay и...И теперь на сайте OpenGarden рекламируются eSIM. На мой взгляд, оно и к лучшему, потому что программа очень сильно идеализирована в глазах рядовых пользователей. Приведу для начала привычную уже "оценку безопасности по шкале EFF":
  • Закрытый исходный код
  • Криптографический протокол : Open Garden?
  • Шифрование сообщений : ?
  • Использование номера телефона : НЕТ
  • Использование электронной почты : ДА
  • Шифрование по-умолчанию : НЕТ
  • Хранение сообщений на сервере: НИКОГДА
  • Самоудаляющиеся сообщения : НЕТ
  • "лужа-тест" : Данные не подлежат восстановлению. Сообщения сохраняются только на устройстве
  • "кувалда-тест" : Данные не восстанавливаются, если сообщения удаляются на передающем и принимающем устройствах.
  • Валидация собеседника : НЕТ
С точки зрения безопасности, приложение очень сомнительное. FireChat это не скрытая, не закрытая и не зашифрованная сеть. Внутри закрытого кода куча различной отслеживающей аналитики. Приложение постоянно требует сервисов GooglePlay, лезет в интернет через GSM/GPRS и норовит все время отключить WiFi.

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

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

Bridgefy (диагноз - "живой, но очень вялый")
demo2.png

Чаще всего FireChat вспоминают вместе с приложением Bridgefy. По сути эта штучка - некое подобие мессенджера. Скажу даже так, это прототип
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
мессенджера. Прототип, потому что компания-разработчик на своем сайте продает отнюдь не приложение, а SDK с помощью которого движок BT mesh можно куда-нибудь внедрить. А приложение, приложение так, в виде demo. Какие уж здесь претензии. Что касается того, что можно найти в магазинах приложений (кстати, bridgefy единственное из всех озвученных в моей заметке приложений, которое работает на двух платформах -
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
/
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
) - то в качестве идентификатора используется номер мобильного телефона. При запуске приложения оно сканирует список контактов и и ищет людей с установленным Bridgefy. В общем, демо и демо, ничего особенного. Запускается далеко не на всех устройствах (Android 4х - точно не работает, какой ему нужен 5...7...10 - уточнить негде). UX очень слабый, хотя, действительно, что я требую от демо-версии...

Serval Mesh (диагноз - "хорош, но не ясно жив, или мертв")
demo1.png

Открытый проект, который скорее мертв чем жив на сегодняшний день. Присутствует в репозиториях F-Droid, но не обновлялся более 3-х лет. Не запустился ни на одном из моих устройств. Хотя штука неплохая, должна по заверениям разработчика позволять реализовывать защищенную голосовую связь, чаты, передачу файлов с использованием WiFi Direct. Для хранения данных внутри пользовательской сети используется собственная база данных Rhizome. Существует только для Android, по поводу портирования на iOS только разговоры, разговоры, разговоры. В общем, если бы доработать - вполне возможно что получился бы настоящий "лидер мнений", вместо топорноватого и мертвого FireChat.

Vojer (диагноз - "живой, но очень вялый")
demo2.png

Приложение для голосовых звонков без интернета. Фактически, это приложение-рация с возможностью отправки SMS. По заверениям разработчиков все сообщения шифруются, но кем, чем - не известно. Исходный код закрыт, приложение существует только для iOS. Стоит отметить, что телефон-рация это не новость, для Android подобные попытки предпринимались тоже, см. например,
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
, работали кстати стабильно отвратительно.

Signal Offline Messenger (диагноз - "живой, но очень вялый")
demo2.png

Мессенджер, который работает через WiFi Direct. Есть групповые сообщения. Можно отправлять текст, аудио, фотографии и видео. При первом запуске приложении сканирует пространство на предмет наличия контактов. Заявленная дальнобойность до 100 м. Данные шифруются. При наличии достаточного количества пользователей возможна скорость до 250 Мбит/с. Разработчик говорит, что есть возможность использовать для стриминга видео. Cуществует только для Android. Интерфейс сделан на скорую руку, настроек нет практически никаких. Единственное что мне понравилось - это стрелка-ползунок, которой нужно "потянуть-щелкнуть" как в игре Пинбол, чтобы запустить сканирование эфира. Программа ищет устройства с установленным мессенджером. Один раз соединиться удалось и даже получилось отправить картинку, текст, аудио-сообщение. Никакими видео-стримами там и не пахнет. Ну и второй раз, сколько не бился, устройства соединяться не захотели.

Оставь ложную надежду, всяк это читающий!
Я без надежды убит, тоской навылет прострелен,
Потому что я надеялся, а не был уверен.
Дельфин — Надежда
Перед тем, как приступить к заключительной части своего повествования, позволю себе небольшое лирическое отступление. Недавно на любимом своем
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
довелось мне наблюдать интересную ситуацию. Один из редакторов новостей опубликовал такую вот новость:

1612461152057.png

Но не учел, что опубликовал ее на хабре, где 99% пропустит все остальное "между ушей" и первым делом будет искать эти самые видео (которых нет). Статья схватила минусов, ибо автор не рассчитал:

1612461160416.png

Так же происходит и в случае советов "используйте mesh-сети или мессенджеры A, B, C если у вас нет доступа к интернет". Не подразумевается, что вы броситесь там что-то сразу настраивать, у вас должна сформироваться мысль, что на случай X есть план Б. А никакого плана нет. Нужно просто чтобы люди не думали про худший вариант событий, "наркомовские 100 грамм" - вот что такое эти советы.

Далеко ходить за примером не нужно, перед выборами в Беларуси, т.н. независимые демократические СМИ и такие же телеграм-каналы активно распространяют такие вот примерно листовки:

1612461164778.png

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

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

В общем можно смело говорить, что в плане работы с ячеистыми сетями для мобильных устройств - беда. Нет нормальной передачи видео, стриминга и т.п. вещей привычных в 2020 году. Пока единственное приложение, которое с оговорками может решать поставленные задачии это
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
.


Briar
demo2.png

Briar - это свободный мессенджер, притом свободен он как в плане открытого исходного кода, так и в плане привязки к сервисам GooglePlay (F-Droid совместим). Там где интернет есть - приложение обеспечивает зашифрованную связь через Tor, а там где интернета нет - может использовать Bluetooth или WiFi для передачи сообщений между телефонами. Оценка по "шкале EFF":
  • Открытый исходный код
  • Криптографический протокол : Bramble, SpongyCastle
  • Шифрование сообщений : AES-256
  • Использование номера телефона : НЕТ
  • Использование электронной почты : НЕТ
  • Шифрование по-умолчанию : ДА
  • Хранение сообщений на сервере : НИКОГДА
  • Самоудаляющиеся сообщения НЕТ
  • "лужа-тест" : Данные не подлежат восстановлению. Сообщения сохраняются только на устройстве
  • "кувалда-тест" : Данные не восстанавливаются, если сообщения удаляются на передающем и принимающем устройствах.
  • Валидация собеседника : ДА
Для регистрации и инициализации не требуется доступ в интернет.

1612461214510.png

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

ВЫВОДЫ
Да, ad-hoc сети и один из их подвидов - сети mesh - это реально будущее. Притом будущее для всего-того, что мы видели в Черном Зеркале, или в Долгие-долгие годы. Это экосистемы, в которых будут жить беспилотные автомобили, датчики умных домов, smartdust в каких-нибудь пограничных системах контроля.

"mesh"-е мессенджеры - это важный элемент "тревожного чемоданчика" горожанина (вместе с FM-радио - см. мою статью
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
). И должен быть установлен на каждом мобильном устройстве (на случай пропадания интернета/мобильной связи и отсутствия доступа к AppStore и GooglePlay). Кроме того, лучше всего бонусом держать скачанный .apk для передачи другу. Если допустить, что с первым требованием мы разобрались, то вторым на очереди "у всех должно быть установлено одно приложение" (ну либо все сразу). Для того, чтобы приучить людей к какому-то одному сценарию действий на случай ЧС необходимо централизованное обучение и высокий уровень самоорганизации. Если с этим порядок - остается выбрать приложение. C моей точки зрения лучшим вариантом является Briar (единственным?) по ряду описанных ранее причин. Все остальные мессенджеры далеки от совершенства.

Небольшое отступление. Недавно встретит я в Facebook такую вот
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
:

1612461223488.png

Удивительно конечно, как люди любят надеяться вечно на всех кого только можно (кроме себя, родимого). Поэтому я даже решил отдельную заметку сделать и посвятить ее настройке программы Briar и испытанием ее работоспособности в условиях, приближенных к боевым. Так что добавляйтесь в патроны на Patreon-е, подписывайтесь на tg-канал
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
и ждите, когда станет доступной статья Инструкция по солидарности (meshnet 'solidarity' manual).

Ну а в целом, иногда вот закрадываются у меня мысли, что в случае катаклизма вернемся мы к проводной телефонной связи и dial-up модемам с BBS а то и вообще к изначальной
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
.

1612461227739.png

А тот, кто хочет чтобы было "с юзабилити, с красивой иконкой, не хочу читать эту скучную документацию" - будет сидеть, как в 90-х и слушать FM-радио, а не пользоваться компьютерной связью.

Хотя я могу и ошибаться. Возможно где-то в недрах DARPA именно сейчас разрабатывается некое универсальное промежуточное программное обеспечение для поддержания надёжной mesh-связи между абонентскими устройствами, которые подключаются друг к другу посредством доступных коммуникационных технологий (Wi-Fi, Bluetooth, ZigBee, IrDA), которое закрывает все озвученные в тексте моей заметки вопросы. Пока же советовать людям в условиях стихийного бедствия "используйте mesh сети и firechat" - это примерно то же что советовать в случае вспышки на солнце "соберите свой космолет и отлетите на пару недель к ближайшей стабильной звезде". Про "интернет во время протестов нам даст mesh" так вообще говорить грешно/смешно. Молитесь лучше, чтобы не заглушили. Потому что альтернативы для стримов в youtube/viber-чатиков и т.п. в общем-то и нет...

p.s. последний briar в apk - в прикрепленных файлах

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА
Cilfone, A., Davoli, L., Belli, L., & Ferrari, G. (2019). Wireless Mesh Networking: An IoT-Oriented Perspective Survey on Relevant Technologies. Future Internet, 11(4), 99.
Shi, Z., Beard, C., & Mitchell, K. (2011). Competition, cooperation, and optimization in Multi-Hop CSMA networks. Proceedings of the 8th ACM Symposium on Performance Evaluation of Wireless Ad Hoc, Sensor, and Ubiquitous Networks - PE-WASUN ’11.
Toh, C. K. (1997). Wireless ATM & Ad Hoc Networks, 1997, Kluwer Academic Press
C. Siva Ram Murthy and B. S. Manoj, Ad hoc Wireless Networks: Architectures and Protocols, Prentice Hall PTR, May 2004.
Chai Keong Toh (2002). Ad Hoc Mobile Wireless Networks: Protocols and Systems 1st Edition. Prentice Hall PTR.
Martinez, F. J., Chai-Keong Toh, Cano, J.-C., Calafate, C. T., & Manzoni, P. (2010). Emergency Services in Future Intelligent Transportation Systems Based on Vehicular Communication Networks. IEEE Intelligent Transportation Systems Magazine, 2(2), 6–20.
Toh; Lee; Ramos (2002). "Next Generation Tactical Ad Hoc Mobile Wireless Networks". TRW Systems Technology Journal.
Antonio Guillen-Perez; Ramon Sanchez-Iborra; Maria-Dolores Cano; Juan Carlos Sanchez-Aarnoutse; Joan Garcia-Haro (2016). WiFi networks on drones. ITU Kaleidoscope: ICTs for a Sustainable World (ITU WT).
Helen, D; Arivazhagan, D (2014). "Applications, advantages and challenges of ad hoc networks". JAIR. 2 (8): 453–457.