Интернет уже давно перестал быть местом неограниченной свободы и безнаказанности. Сегодня Сеть жестко контролируют и пресекают любые попытки выйти за иллюзорную черту свободы самовыражения, которую толком не видят даже те, кто ее придумал. Китай блокирует VPN, Россия пытается прогнуть Дурова, а в Европе все помешались на авторском праве. Но что, если мы придумаем свой интернет? Нет, не наркоманский Tor, а в буквальном смысле новую сеть. Такую, которая напрямую соединит наши смартфоны во имя свободы распространения информации.
 

Пришествие mesh-сетей

В начале 1990-х Чарльз Перкинс из Sun Microsystems и Чай Кеон То из Кембриджского университета независимо друг от друга начали работу над новым типом компьютерных сетей, которые вместо привычной инфраструктуры интернета использовали бы прямое беспроводное соединение между участниками, а сами участники могли бы одновременно выполнять роль отправителя, адресата и маршрутизатора данных.

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

Такова была изначальная идея, позднее получившая имя «беспроводная ad hoc сеть» или «беспроводная mesh-сеть». Ее широкому распространению мешало множество факторов: недоработанность технологий, выполнявших динамический роутинг данных, ограниченность тогдашнего сетевого оборудования и компьютеров, которые не могли обеспечить достаточные скорости передачи данных в больших сетях, малая распространенность беспроводных технологий передачи данных. В конце концов, было непонятно, куда пристроить ограниченную новую технологию на фоне всеобщего интереса к интернету. Разве что военные хотели заполучить нечто подобное, чтобы иметь возможность быстро развернуть сеть прямо на поле боя.

Однако в 2004 году на свет появилась беспроводная mesh-сеть guifi.net, развернутая на территории Каталонии, входящей в состав Испании. Согласно легенде, люди задолбались ждать нормальный интернет в своем регионе и решили поднять свою собственную сеть, с Wi-Fi-роутерами, супернодами и выходом в тот самый интернет, о котором все слышали, но который никто не видел.

Сегодня guifi.net состоит из 33 тысяч узлов и покрывает территорию в 46 тысяч километров, а подключение к ней не стоит абсолютно ничего, за исключением цены Wi-Fi-роутера с модифицированной прошивкой DD-WRT. Роутеры объединяются в сеть и образуют так называемый остров, все узлы в котором обмениваются данными друг с другом по описанной выше схеме. Острова объединяются с помощью суперузлов (supernode), которые могут быть соединены между собой с помощью проводных и беспроводных технологий. Таким же образом организован выход в интернет.

Похожая сеть есть у афинян, и так же, как guifi.net, она нас не интересует. Гораздо больше нам интересны мобильные mesh-сети.

Карта guifi.net
Карта guifi.net
 

Мобильные mesh-сети

Идея mesh-сетей, которые бы не требовали специального оборудования для подключения друг к другу, появилась почти сразу после начала распространения оснащенных Wi-Fi ноутбуков. Однако, как и в случае с экспериментами начала девяностых, такие сети не вышли за границы исследовательских лабораторий и военных полигонов, а обычные пользователи начали обозначать термином ad hoc всего лишь прямое соединение двух ноутбуков, один из которых играл роль точки доступа и обеспечивал выход в интернет.

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

 

FireChat

В 2014 году в App Store и Google Play появилось приложение под названием FireChat. С виду это был вполне стандартный мессенджер в духе WhatsApp и Telegram, но работал он совсем по-другому. FireChat умел использовать технологии Wi-Fi Direct и Ad hoc Bluetooth для прямого соединения между ближайшими устройствами, а затем объединял их в общую mesh-сеть, которая позволяла донести сообщение до адресата через цепочку других смартфонов.

Если какой-то из смартфонов в цепочке имел доступ в интернет, сообщение также отправлялось на сервер, так что FireChat мог не только объединять локальные сети смартфонов, но и соединять одни сети с другими. Если же поблизости не было ни одного другого смартфона с FireChat, приложение использовало традиционный режим работы через сервер.

Карта одной из mesh-сетей FireChat
Карта одной из mesh-сетей FireChat

FireChat стал популярным у протестующих разных стран. Его использовали во время протестов в Ираке, Китае, Тайване и некоторых других странах. Также он стал популярен на фестивале Burning Man, а технический директор французского правительства призвал граждан устанавливать FireChat во время марша после нападения на Charlie Hebdo. Приложение удостоилось нескольких наград за инновационную технологию и получило «антинаграду» от AT&T. Компания потребовала удалить FireChat из магазина приложений за так называемую несанкционированную раздачу интернета.

Сегодня FireChat по-прежнему доступен в App Store и Play Store, однако не пользуется особой популярностью. Версия для Android стремительно тратит ресурс батарейки и постоянно сбрасывает коннект к Wi-Fi, пытаясь перевести его в режим Wi-Fi ad hoc. Но при желании приложение вполне можно использовать.

FireChat

FireChat

FireChat

 

Internet Sharing

Кроме FireChat, разработчики компании Open Garden также создали приложение для расшаривания интернета, способное превращать смартфон в точку доступа: он создает mesh-сеть, которая связывает множество различных устройств воедино и направляет их трафик тем смартфонам, что имеют выход в интернет.

 

Briar

Совсем недавно у FireChat появился серьезный конкурент, он называется Briar. Его разработчики пошли еще дальше и сделали приложение, которое не только способно работать в двух режимах (с интернетом и без), но и не использует сервер вообще.

В случае работы без интернета Briar пытается связаться с ближайшими узлами, используя Bluetooth и Wi-Fi. Далее он запрашивает у них информацию о других узлах сети и может начать обмениваться с ними сообщениями. Если же доступ в интернет есть, Briar находит нужные контакты с помощью распределенной хеш-таблицы и позволяет установить с ними связь, используя сеть Tor как транспорт. И в том и в другом случае Briar не полагается на сервер или централизованное хранилище данных, это полностью децентрализованное P2P-решение.

Архитектура Briar
Архитектура Briar

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

Разработкой Briar занимается команда из шести человек, в которую входят: ключевой разработчик I2P Джек Григ (Jack Grigg), один из разработчиков Freenet и LimeWire Майкл Роджерс (Michael Rogers), автор инициативы Free Your Android Торстен Грот (Torsten Grote). Код Briar публикуется по лицензии GPLv3 и уже прошел аудит безопасности в компании Cure53, которая также занималась аудитом SecureDrop, Cryptocat и Dovecot.

В данный момент Briar доступен только на Android в виде публичной бета-версии. Сама сеть работает в тестовом режиме — 21 октября все данные, включая список контактов и архив сообщений, будут очищены. Эта мера предосторожности нужна, чтобы обезопасить пользователей от возможных рисков, связанных с уязвимостями, которые могут быть найдены во время тестирования.

Briar

Briar

Briar
 

Serval Project

Широкие массы обратили внимание на мобильные mesh-сети только после появления приложения FireChat. Но еще до начала его разработки существовал проект Serval, спонсируемый фондом того самого Марка Шаттлворта, летавшего в космос создателя Ubuntu.

Serval представляет собой платформу для создания mesh-сетей. Ее основной компонент носит имя DNA и включает в себя реализацию протоколов Mesh Datagram Protocol (MDP), Voice over Mesh Protocol (VoMP), систему дистрибуции файлов Rhizome и систему обмена сообщениями MeshMS.

Serval DNA можно запустить на самых разных платформах, включая Linux, macOS, OpenWrt и, конечно же, Android. В последнем случае необходимо установить приложение Serval Mesh, которое реализует возможности, предоставляемые DNA: зашифрованные аудиозвонки, зашифрованные текстовые сообщения и обмен файлами. Также в приложении есть кнопка для запуска карт, но эта функциональность пока не реализована.

В отличие от FireChat и Briar, Serval Mesh реализует «чистую» mesh-сеть без возможности работы через интернет и таким образом не может связать несколько различных сетей воедино. Но у разработчиков есть другое решение — Extender. Это нечто вроде специального роутера с предустановленным Serval DNA, который позволяет существенно расширить область видимости сети. Проект успешно провалился на Indiegogo, но разработчики всегда готовы начать производство при наличии финансирования.

Serval Mesh

Serval Mesh

Serval Mesh
 

Не совсем mesh

Успех FireChat показал, что mesh-сети могут быть востребованными не только среди военных и исследователей. Многие разработчики решили взять модную технологию на вооружение. Но, как это обычно бывает, не осилили саму технологию и выпустили на свет нечто странное.

Wi-Fi Talkie — один из хороших примеров таких приложений. Это мессенджер, который работает напрямую через Wi-Fi, но при этом не умеет выстраивать полноценную mesh-сеть. Он просто создает точку доступа, к которой могут подключаться другие пользователи, чтобы общаться друг с другом голосом или текстовыми сообщениями. Весь трафик проходит через центральный смартфон, так что после его отключения пользователи теряют доступ друг к другу.

Signal Offline Messenger (не путать с Signal) — еще один мессенджер, основанный на том же принципе. Вместо софтверной точки доступа, к которой подключаются другие узлы, он использует технологию Wi-Fi Direct, позволяющую соединить два устройства напрямую без лишней мороки. Все юзеры соединяются друг с другом, но не образуют сеть, так что общаться можно только с теми, кто находится в зоне приема Wi-Fi.

Twimight for Twitter — более интересная разработка. Это твиттер-клиент с поддержкой режима «офлайн». Работает он так: если во время отправки твита клиент обнаруживает, что подключения к внешней сети нет, Twimight устанавливает Bluetooth-соединение с ближайшими смартфонами и передает им твит напрямую. Те, в свою очередь, передают твит дальше, и так до тех пор, пока все находящиеся поблизости смартфоны не получат сообщение. Естественно, на всех смартфонах должен быть установлен Twimight.

Wi-Fi Talkie и Signal Offline Messenger

Wi-Fi Talkie и Signal Offline Messenger

Wi-Fi Talkie и Signal Offline Messenger

 

Другие примеры беспроводных mesh-сетей

  • Ноутбуки OLPC (One Laptop Per Child, «Каждому ребенку по ноутбуку») используют mesh-сеть для коммуникации друг с другом, когда интернет недоступен.
  • Google Home, Google Wi-Fi, Google OnHub и Apple AirPort используют mesh-сеть для объединения множества устройств в сеть с общим выходом в интернет.
  • Спутники Iridium, отвечающие за передачу данных между спутниковыми телефонами, объединены в mesh-сеть.
  • Многие IoT-устройства (розетки, лампочки, умные жалюзи и прочее) умеют объединяться в mesh-сеть для доставки информации между устройствами.
  • Ведутся работы по объединению в mesh-сеть беспилотных автомобилей, чтобы они могли обмениваться друг с другом информацией об обстановке на дороге.
  • iOS поддерживает работу в mesh-сетях начиная с версии 7.0. Android поддерживает Wi-Fi Direct с версии 4.0, а совсем недавно в Play Services появился API Nearby Connections 2.0, который существенно упрощает задачу создания mesh-сетей.

 

Выводы

Беспроводные mesh-сети, возможно, одна из самых важных технологий XXI века. Хорошо это или плохо, но совсем скоро наш мир будет под завязку набит устройствами, способными передавать данные по воздуху. Это не только смартфоны и планшеты, это умные дома, автомобили, чайники, микроволновки, розетки и множество других вещей, наличие беспроводных модулей в которых еще вчера казалось немыслимым. Поэтому mesh-сети будут продолжать развиваться, и в будущем мы станем меньше зависеть от интернета.

7 комментариев

  1. Аватар

    Skybad

    15.08.2017 в 14:01

    Опечаточка «зависеть от интрнета.»
    А так Спасибо за статью.
    Главное чтобы заряда на телефоне хватало ))))) пусть сначала аккумуляторы улучшат раз в 10.

  2. Аватар

    baragoz

    16.08.2017 в 09:34

    Энтузиастов нет. Раньше были FTN, локалы поднимали под пивко и своими силами, но тогда не было «легкого интернета». Поэтому сейчас ИМХО меш-сети не выстрелят, пока интернет не подожмут совсем жестко. Да и то адекваты уйдут в ТОР, а 98% (с) останутся в Чебурашке.

  3. Аватар

    baragoz

    16.08.2017 в 09:34

    Хотя из старых смартфонов на постоянной зарядке каждый может сделать сеть с соседями по дому 😉

  4. Аватар

    z0s

    16.08.2017 в 13:31

  5. Аватар

    jackxb

    19.08.2017 в 22:56

    Очень радует конечно что есть альтернативные пути раздачи данных, но пока, люди неготовы к таким проектам. Эти проекты можно будет пробовать когда совсем «прижмут» свободу в интернете.

  6. Аватар

    Evanedi

    22.08.2017 в 09:43

    Ммм.. Как в сериале кремниевая долина 🙂

Оставить мнение