[Из песочницы] Автономный мобильный мессенджер

vqp8vdrzs_nwvzhlzhpdjmdc1ss.png

Предлагаю рассмотреть прототип развертывания мобильного мессенджера (облако в кармане), позволяющий организовать общение в местности, не имеющей инфраструктуру традиционных сетей передачи данных, а так же приватную сеть, доступ к которой имеет только сами пользователи и передача данных должна осуществляться по защищенным каналам связи. При этом под мобильностью подразумевается ноутбук для общения с установленным клиентом мессенджера. Использование мобильного телефона возможна при дальнейшей реализации концепта.
В современном технообществе общение по мессенджеру, как правило сводится к передаче данных на единый сервер данных (топология звезда), тем самым накладывая следующие ограничения свободы общения:
  1. Обязательно наличие сервера. В традиционном понимании — это либо сервер крупного он-лайн мессенджера (WhatsApp, telegram, sms, ICQ). Либо это сервер небольшой подсети ПК, использующий небольшие приложения и стандартный протокол обмена (ICQ, jabber и т.д.). При этом сервер обеспечивает не только ретрансляцию пакета от отправителя к адресату, но и полезные фишки как: хранение сообщения до выхода клиента в сеть, логирование, массовая рассылка, единый список контактов сети и прочее.
  2. Наличие компьютерных сетей, читай роутеров, маршрутизаторов, точек доступа, вышек сотового оператора, организующих или дающих доступ в единую локальную/глобальную сеть. Данная инфраструктура во первых стоит относительно немалых денег, а во вторых она стационарна, то есть ее развертывание делается раз и на долго, и как правило, за большие деньги. А в третьих требует опыта и навыков ее администрирования.

Приведу некоторые примеры:
  1. Команда из 10 человек выехала на отдаленную от цивилизации местность выполнять какие то работы. Это может быть как команда геологов, шахтеры, группа студентов на стажировке или мобильный офис сотрудников организации. На местности требуется оперативно развернуть сеть для общения между членами команды, при этом учтем, что они могу уходить на задания, к примеру, до 10 км.
  2. Вы поехали отдыхать на туристическую базу со своими друзьями в отдельные домики или даже палатки. Вам требуется развернуть мобильную сеть для общения и передачи каких-то данных.

Таким образом, учитывая вышеизложенное, перечислю следующие критерии, которым должна отвечать подобная мобильная локальная сеть:
  • Малая скорость передачи данных. Подразумевается именно передача текстовых сообщений без медиа файлов.
  • Компактность. Устройства должны иметь малый вес и габариты.
  • Автономность. Устройства должны потреблять малое количество электроэнергии, позволяя запитываться от USB или портативных аккумуляторов.
  • Беспроводность. Передача данных должна осуществляться по беспроводным каналам передачи данных.
  • Защищенность. Каналы передачи данных должны быть защищены от несанкционированного доступа
  • Цена. Весь комплект оборудования должен стоить не дороже оборудования для организации IP сети.
  • Простота использования. Развертывание сети должно ограничиваться нажатием пары кнопок и ввода логина и пароля.
  • Дальность передаваемого сигнала. Дальность передачи по беспроводным каналам должна обеспечиваться не только за счет мощности выходного сигнала и ширины канала, но и возможностью построения mesh-сети передачи данных, позволяющей ретранслировать сообщения между абонентами, тем самым создавая фактически неограниченную по дальности зону охвата. Тот же WI-FI ориентирован на работу в помещении до 30 метров, а Bluetooth итого предназначен для аксессуаров.
  • Выход в глобальную сеть. Возможность выхода в единую глобальную сеть интернет, при наличии таковой.

В качестве подобного мессенджера предлагаю следующий концепт системы:
  1. Сервер сообщений. Хоть он и является недостатком классического решения, но он дает очевидные плюсы. Поэтому, предлагается от него не избавляться путем перехода к p2p, а в качестве сервера использовать мини ПК типа Rasbery или Beaglebone. Основные требования: наличие внешних кнопок, ОС linux, наличие индикаторов, а также возможность подключить радио интерфейс для передачи данных. В качестве сервера сообщений можно использовать Jabber. Мини ПК желательно со встроенным акумулятором.
  2. RF-USB стик с функцией построения mesh сети, предлагается использовать 6LoWPAN. Данная технология позволяет из mesh сети получить ipv6 сеть в виде сетевого интерфейса ПК клиентов. Огромный плюс ее в том, что она позволяет кастомизировать некоторые ее части, тем самым адаптировать под решаемую задачу. В качестве клиента предлагается использовать свободно распространяемую программу spark. Радио целесообразно использовать с частотой 433 МГц.
  3. На будущее. WI-FI точка доступа/ретранслятор RF433 c автономным питанием для подключения портативной техники не по USB, а по wifi.

Предлагаю следующий сценарий использования:
  1. Вы подключитесь к мини серверу по Ethernet, заходите в его админку и с помощью веб морды устанавливаете один раз нужные параметры сервера обмена сообщениями и mesh сети.
  2. Для подключения клиента в mesh сеть предлагается его USB брелок воткнуть в сервер и нажать кнопку «подключить», после чего в брелок запишутся параметры сети для дальнейшей работы в ней.
  3. Включаете в USB ноутбука/ПК брелки с радио и подключитесь к jabber серверу, предварительно указав параметры сервера в клиенте.
  4. Обновляете список контактов на клиенте и начинаете обмен сообщениями.

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

Пока это всего лишь концепция, продиктованная личной потребностью в такой системе. Предлагаю сообществу обсудить плюсы и минусы, и ответить на вопрос: «А оно нам надо?».

© Geektimes