Предлагаю рассмотреть прототип развертывания мобильного мессенджера (облако в кармане), позволяющий организовать общение в местности, не имеющей инфраструктуру традиционных сетей передачи данных, а так же приватную сеть, доступ к которой имеет только сами пользователи и передача данных должна осуществляться по защищенным каналам связи. При этом под мобильностью подразумевается ноутбук для общения с установленным клиентом мессенджера. Использование мобильного телефона возможна при дальнейшей реализации концепта.
В современном технообществе общение по мессенджеру, как правило сводится к передаче данных на единый сервер данных (топология звезда), тем самым накладывая следующие ограничения свободы общения:
- Обязательно наличие сервера. В традиционном понимании — это либо сервер крупного он-лайн мессенджера (WhatsApp, telegram, sms, ICQ). Либо это сервер небольшой подсети ПК, использующий небольшие приложения и стандартный протокол обмена (ICQ, jabber и т.д.). При этом сервер обеспечивает не только ретрансляцию пакета от отправителя к адресату, но и полезные фишки как: хранение сообщения до выхода клиента в сеть, логирование, массовая рассылка, единый список контактов сети и прочее.
- Наличие компьютерных сетей, читай роутеров, маршрутизаторов, точек доступа, вышек сотового оператора, организующих или дающих доступ в единую локальную/глобальную сеть. Данная инфраструктура во первых стоит относительно немалых денег, а во вторых она стационарна, то есть ее развертывание делается раз и на долго, и как правило, за большие деньги. А в третьих требует опыта и навыков ее администрирования.
Приведу некоторые примеры:
- Команда из 10 человек выехала на отдаленную от цивилизации местность выполнять какие то работы. Это может быть как команда геологов, шахтеры, группа студентов на стажировке или мобильный офис сотрудников организации. На местности требуется оперативно развернуть сеть для общения между членами команды, при этом учтем, что они могу уходить на задания, к примеру, до 10 км.
- Вы поехали отдыхать на туристическую базу со своими друзьями в отдельные домики или даже палатки. Вам требуется развернуть мобильную сеть для общения и передачи каких-то данных.
Таким образом, учитывая вышеизложенное, перечислю следующие критерии, которым должна отвечать подобная мобильная локальная сеть:
- Малая скорость передачи данных. Подразумевается именно передача текстовых сообщений без медиа файлов.
- Компактность. Устройства должны иметь малый вес и габариты.
- Автономность. Устройства должны потреблять малое количество электроэнергии, позволяя запитываться от USB или портативных аккумуляторов.
- Беспроводность. Передача данных должна осуществляться по беспроводным каналам передачи данных.
- Защищенность. Каналы передачи данных должны быть защищены от несанкционированного доступа
- Цена. Весь комплект оборудования должен стоить не дороже оборудования для организации IP сети.
- Простота использования. Развертывание сети должно ограничиваться нажатием пары кнопок и ввода логина и пароля.
- Дальность передаваемого сигнала. Дальность передачи по беспроводным каналам должна обеспечиваться не только за счет мощности выходного сигнала и ширины канала, но и возможностью построения mesh-сети передачи данных, позволяющей ретранслировать сообщения между абонентами, тем самым создавая фактически неограниченную по дальности зону охвата. Тот же WI-FI ориентирован на работу в помещении до 30 метров, а Bluetooth итого предназначен для аксессуаров.
- Выход в глобальную сеть. Возможность выхода в единую глобальную сеть интернет, при наличии таковой.
В качестве подобного мессенджера предлагаю следующий концепт системы:
- Сервер сообщений. Хоть он и является недостатком классического решения, но он дает очевидные плюсы. Поэтому, предлагается от него не избавляться путем перехода к p2p, а в качестве сервера использовать мини ПК типа Rasbery или Beaglebone. Основные требования: наличие внешних кнопок, ОС linux, наличие индикаторов, а также возможность подключить радио интерфейс для передачи данных. В качестве сервера сообщений можно использовать Jabber. Мини ПК желательно со встроенным акумулятором.
- RF-USB стик с функцией построения mesh сети, предлагается использовать 6LoWPAN. Данная технология позволяет из mesh сети получить ipv6 сеть в виде сетевого интерфейса ПК клиентов. Огромный плюс ее в том, что она позволяет кастомизировать некоторые ее части, тем самым адаптировать под решаемую задачу. В качестве клиента предлагается использовать свободно распространяемую программу spark. Радио целесообразно использовать с частотой 433 МГц.
- На будущее. WI-FI точка доступа/ретранслятор RF433 c автономным питанием для подключения портативной техники не по USB, а по wifi.
Предлагаю следующий сценарий использования:
- Вы подключитесь к мини серверу по Ethernet, заходите в его админку и с помощью веб морды устанавливаете один раз нужные параметры сервера обмена сообщениями и mesh сети.
- Для подключения клиента в mesh сеть предлагается его USB брелок воткнуть в сервер и нажать кнопку «подключить», после чего в брелок запишутся параметры сети для дальнейшей работы в ней.
- Включаете в USB ноутбука/ПК брелки с радио и подключитесь к jabber серверу, предварительно указав параметры сервера в клиенте.
- Обновляете список контактов на клиенте и начинаете обмен сообщениями.
Все. Данную сеть теперь всегда можно носить с собой и включить в независимости от текущего расположения в пространстве клиентов. Сеть автоматически построит правильную топологию и клиенты подключаться к серверу.
Пока это всего лишь концепция, продиктованная личной потребностью в такой системе. Предлагаю сообществу обсудить плюсы и минусы, и ответить на вопрос: «А оно нам надо?».
Комментарии (11)
alexhott
26.03.2018 19:38APRS — это апогей любительской радиосвязи
в России крайне мало распространен
отсюда — фиг найдешь оборудование
По мне дак логику можно позаимствовать и приучить к вайфаюlv333
26.03.2018 20:14Вы не правы, можно вполне обойтись дешевыми баофенгами и смартфоном плюс самопальный кабель который можно собрать с штатной гарнитуры, резистора и джека 3.5 мм 4-х контактного. Все это доступно. Это решение позволит конечно работать на куда большие площади чем то что я предложил ниже, но оно конечно же сложнее в настройке и не так удобно.
nad_oby
27.03.2018 00:46Добро пожаловать в serval mesh.
Самоорганизуется на рутованных (минимум один) андроидах.
Shamrel
27.03.2018 07:10lv333, TerAnYu, nad_oby, но ведь предложенные решения работают по верх стандартного Wi-Fi, а это малый радиус покрытия! Здесь же автор предлагает использовать другой радиоканала (433МГц), дальность будет гораздо выше. Правда вопрос с пропускной способностью остается открытым: имхо, только текстовый трафик.
lv333
27.03.2018 08:47Поэтому ему и предложили APRS. В мобильном варианте APRSdroid. В принципе не только текст, но для привыкшего к современным скоростям Интернета человеку — тяжко придется.
Но если в качестве передатчика использовать обычную рацию, к примеру тот же baofeng uv-5r, то голос вполне можно передать и по старинке, без этих ваши цифр вообще :)
Впрочем Wi-Fi с направленными антеннами тоже вариант для дальнего линка, но он разумеется будет иметь больше ограничений для передачи сигнала, так как вменяемо работать сможет только в условиях прямой видимости.
Mobile1
27.03.2018 15:38+1Есть же такой проект — Sonnet из Канады.
Они собирают (собирали) деньги на него на кикстартере:
www.kickstarter.com/projects/sonnet/sonnet-decentralized-mobile-communication
В прошлом году статья была про них на русскоязычном ресурсе:
vc.ru/25270-sonnet
tm3
28.03.2018 09:35Поделюсь своим опытом тестирования похожей (ограниченной) системы. На смартфоне Meizu Pro 5 Ubuntu Edition в chroot установил и запустил БД PostgreSQL + Synapse server (Matrix) + web сервер с Matrix клиентом. Загрузил дамп в PostgreSQL базу смартфона с Production Synapse сервера (там содержатся логины и пароли пользователей). Перевел смартфон в режим точки доступа (отключил все остальные сети), теперь по WiFi подключаются клиенты (ноутбуки, другие смартфоны и т.д.), запускают клиента (через браузер вводят ip точки доступа) и общаются между собой.
Javian
Существующий Automatic Packet Reporting System (APRS) не пойдет?