Наука и технологии

Ячеистые сети и технологии беспорядка

Некоторые технологии полезнее всего в ситуациях, в которые не хотелось бы попадать. Для их разработчиков это может оказаться проблемой: слова «ИГИЛ» и «слезоточивый газ» плохо сочетаются с понятиями «монетизация» и «инвестиции».

Инженеры, которые конструируют новые автомобили, самолёты или, скажем, диваны, всегда знают, что получат в итоге. Они могут не сомневаться, что на их автомобилях будут ездить, на самолётах летать, а на диванах — валяться. У создателей социальных сервисов такой уверенности нет. Их разработки почему-то никогда не используют так, как было задумано.

Основатели Twitter не понимали, что у них получится сервис, который будет сообщать новости быстрее любого традиционного СМИ. Марк Цукерберг целых три года был уверен, что Facebook — это нишевый сервис для американских студентов, и не видел в этом проблемы. Авторы Pinterest не планировали делать социальную сеть для женщин — это произошло помимо их воли.

Если задуматься, то это правило действует и для самого интернета. Его замышляли как резервный телекоммуникационный сервис на случай атомной войны, а используют для порно и фотографий с кошками.

Разработчики приложения Firechat, которое появилось в App Store в начале марта, надеялись, что у них выйдет легкомысленный сервис для общения с людьми, которые находятся поблизости — например, на том же концерте, спортивном матче или фестивале под открытым небом.

Блог Techcrunch и прочие вестники Кремниевой долины обозначают эту нишу термином «гиперлокальные социальные сети». Некоторые эксперты верят, что за гиперлокальными соцсетями будущее, но на практике ни одна из них не преуспела. И можно понять, почему: с теми, кто рядом, можно общаться и без соцсетей.

В обычной ситуации от таких приложений мало толка. Но Firechat повезло. Ситуация, которая привлекла к нему внимание, была совершенно необычной.

Выход приложения совпал по времени со студенческими волнениями в Тайване. Сотни тысяч человек вышли на улицы, чтобы помешать ослаблению ограничений на торговлю с Китаем, которое, по их мнению, способно повредить экономике острова и даст Пекину рычаги политического давления на Тайвань.

Антикитайские протесты в Тайване стали первым испытанием Firechat

Большие и, главное, неожиданные скопления людей всегда были проблемой для традиционных сетей мобильной связи. Базовые станции — «соты» — рассчитаны на обслуживание ограниченного количества абонентов. Когда на небольшой площади собирается слишком много людей, соты перестают справляться с нагрузкой, и связь пропадает.

Одна из функций Firechat даёт возможность использовать приложение для общения даже в тех случаях, когда мобильная связь (и, соответственно, интернет) недоступны. Сообщения продолжают распространяться на небольшом расстоянии, но уже не через интернет, а посредством Bluetooth или Wi-Fi.

Существуют и другие приложения с похожей функциональностью, но Firechat оказался в нужном месте в нужное время. Кто-то из тайваньских протестующих заметил его описание на местном ИТ-ресурсе и понял, что такой сервис поможет координировать действия в условиях, когда сотовая связь то и дело пропадает, а от властей можно ждать любого подвоха. Весть быстро облетела площадь. Демонстранты стали устанавливать Firechat на свои смартфоны и за считанные часы вывели его на первое место по количеству скачиваний в тайваньской версии App Store.

Такое применение не вполне соответствовало ожиданиям разработчиков — небольшого калифорнийского стартапа под названием Open Garden. Они догадывались, что Firechat особенно полезен, когда с традиционными средствами связи что-то не так, но не подумали, что причины этого «не так» редко бывают позитивными.

Firechat — не единственный и даже не главный проект Open Garden

В Open Garden рассчитывали на пользователей, которые мирно обсуждают концерты и спортивные матчи. В действительности первыми пользователями Firechat стали демонстранты, захватившие здание тайваньского парламента. Они говорили о слезоточивом газе, полиции и площади Тяньаньмэнь.

Жители Тайваня обсуждают использование Firechat

Следующая волна признания пришла из Ирака. Когда власти этой страны заблокировали Facebook и Twitter, иракцы стали перебираться в Firechat. Всего за пару дней его установили около сорока тысяч человек. Им было не до «фестивалей под открытым небом», про которые думали в Open Garden. У них была более животрепещущая тема: наступление боевиков Исламского Государства.

Заблокировать Firechat будет труднее, чем Facebook и Twitter. Даже если иракские власти перекроют доступ к серверам Firechat, это уже ничего не изменит. В некоторых районах Багдада плотность пользователей приложения достаточно велика, чтобы поддерживать локальное общение, не требующее интернета.

Следующий сегмент аудитории Firechat — это жители беднейших деревень Индии. Там связи нет не из-за демонстраций или войны, а из-за повсеместной нищеты.

Последний эпизод случился чуть больше месяца назад во время массовых демонстраций в Гонконге. В этот раз поводом стали опасения, что Китай перекроет онлайновые средства коммуникации протестующих. Для паранойи был повод: в конце сентября китайские власти заблокировали Instagram.

Китайская цензура была бессильна перед Firechat в Гонконге

В течение следующих двадцати четырёх часов Open Garden зафиксировал более ста тысяч скачиваний приложения в Гонконге. Это было лишь начало. Спустя несколько дней количество установок Firechat, связанных с гонконгскими протестами, в двадцать раз превзошло тайваньский уровень.

Протестующие использовали приложение, чтобы решать организационные вопросы: сколько нужно масок для защиты от слезоточивого газа, где не хватает питьевой воды, и так далее. Знаменитая китайская интернет-цензура оказалась бессильна перед децентрализованной натурой Firechat.

Как устроен Firechat

Установка приложения открывает доступ к паре общих чатов и набору тематических комнат. Чат Everyone предназначен для общения через интернет с пользователями, которые находятся в том же географическом регионе. Регион в понимании Firechat — понятие растяжимое. Приложение не отличает Канаду от США, Китай от Гонконга, а Россию от Украины. Последствия предсказуемы: глупейшие флеймы о политике не кончаются никогда.

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

Если сообщения в чате Everyone передаются только через интернет, то в чате Nearby они распространяются исключительно при помощи Bluetooth и локального Wi-Fi. Это и есть та возможность, которая привлекла к нему внимание. Именно наличие локального чата, не требующего доступа к интернету, отличает Firechat от множества аналогичных (и, как правило, куда более популярных) приложений для общения.

К появлению Firechat привела одна из новых возможностей iOS 7 — технология Multipeer Connectivity Framework. Обладателям айфонов и айпадов хорошо знакома функция AirDrop, с помощью которой можно пересылать файлы на соседние мобильные устройства или «маки», — это один из примеров использования фреймворка.

Multipeer Connectivity Framework позволяет устройствам на базе iOS, находящимся недалеко друг от друга, обмениваться информацией через Wi-Fi или Bluetooth, минуя интернет. Поскольку устройства соединяются напрямую, сервер не требуется.

Долгое время AirDrop оставался не только самым известным, но и единственным применением этой технологии. Firechat стал одним из первых приложений для iOS, использующим Multipeer Connectivity Framework.

Несмотря на «яблочные» корни, в Open Garden сумели перенести приложение на Android. Поначалу, впрочем, не обошлось без компромиссов. Первые версии Firechat для Android не могли подключаться к устройствам на iOS. Для межплатформенного общения требовался интернет. Но спустя несколько месяцев и эта проблема была решена.

Официальные объяснения принципа действия Firechat рассчитаны на публику, которая далека от технических подробностей. Однако, вооружившись программным обеспечением для перехвата и анализа беспроводного трафика, можно составить некоторое представление о том, как в действительности работает это приложение.

После запуска Firechat создаёт два канала Bluetooth и открывает два соединения Wi-Fi. Каналы Bluetooth используют протокол RFCOMM — грубо говоря, беспроводную имитацию последовательного порта RS-232 (сейчас такой порт — это почти экзотика, но до распространения USB именно к нему подключали компьютерные мыши или модемы).

Первое из соединений Wi-Fi использует адрес 239.192.0.0, имеющий особое значение. Это широковещательный адрес, позволяющий обмениваться данными сразу со всеми устройствами, которые подключены к той же беспроводной сети. Другое — это защищённое SSL-соединение с центральным сервером Firechat, находящимся в интернете.

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

Каждое сообщение передаётся по Bluetooth всем устройствам, с которыми приложению удалось установить связь, а по Wi-Fi — всем устройствам, подключенным к той же беспроводной сети, что и отправитель. Получатели, в свою очередь, делают то же самое.

Каждый узел ячеистой сети соединён с другими и служит коммутатором

Такое приложение можно сравнить с маленькой радиостанцией: её сообщение получат все, кого достигнет радиосигнал. Разумеется, радиус действия Bluetooth и Wi-Fi не очень велик. Создатели Firechat утверждают, что локальное соединение при помощи Firechat возможно на расстоянии до семидесяти метров.

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

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

Самоорганизующиеся сети такого рода принято называть ячеистыми (в английском языке им соответствует термин mesh network). Они лишены иерархии — их узлы (или ячейки) не делятся на серверы и потребителей. Они равноправны и сообща заботятся о доставке информации.

По прикидкам разработчиков Firechat, если приложение, работающее по такому принципу, установят хотя бы 7–8% жителей города, то почти всегда поблизости будет находиться хотя бы одно устройство, к которому можно подключиться. После этого наличие интернета или сотовой связи перестанет играть роль — в 93% случаев сообщения можно будет отправлять и без них.

Полное отсутствие централизации означает значительно большую стойкость к внешним воздействиям. Ячеистую сеть практически невозможно отключить, заблокировать или взять под полный контроль. Отключение одного или даже нескольких узлов, скорее всего, не причинит ей ни малейшего вреда (сравните с обычной сотовой сетью, где отключение единственной базовой станции может оставить без связи тысячи абонентов!).

В определённой степени ячеистые сети можно сравнить с распределёнными пиринговыми технологиями вроде BitTorrent. Все три основателя Open Garden в прошлом имели к ним самое непосредственное отношение. Один из них, выходец из России Станислав Шалунов, известен как создатель протокола LEDBAT, который используют Apple и BitTorrent. Другой много лет был ведущим разработчиком μTorrent, распространённого клиента BitTorrent. Третий сотрудничал со Skype — раньше этот сервис был почти полностью децентрализованным.

Неуязвимость и независимость имеют цену. Ячеистые сети нуждаются в существенной избыточности и, следовательно, менее экономичны, чем обычные. Кроме того, как и многие другие пиринговые технологии, они плохо работают, когда количество пользователей недостаточно. BitTorrent бесполезен, когда у нужного файла не хватает «сидов», а локальный Firechat — когда рядом слишком мало других пользователей.

Ещё один недостаток Firechat связан с тем, что сообщения распространяются в текстовом формате JSON и ничем не защищены. Любое устройство, которое находится в радиусе действия одного из узлов сети, может их перехватить. Разработчики утверждают, что одна из следующих версий приложения будет шифровать текст, но пока этого не происходит.

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

Ячейки печали

Ячеистые сети — это крайне интересная технология, но в большинстве случаев её полезность сомнительна. Людям, у которых есть мобильный телефон, открытый интернет и хотя бы относительно спокойная жизнь, они не нужны. У них и так всё в порядке.

Именно поэтому первыми пользователями Firechat стали люди, находящиеся в «горячих точках». Что бы ни планировали в Open Garden, у них получилось социальное приложение для тех, у кого не всё в порядке. Оно нужнее всего в тех обстоятельствах, которые мешают пользоваться обычными средствами связи.

Ирак может запретить пропаганду ИГИЛ в Facebook, но не в Firechat

Для стартапа это может оказаться проблемой. Иракские боевики, индийские крестьяне и китайские диссиденты — совсем не та аудитория, которая приносит деньги. Слова «ИГИЛ», «слезоточивый газ» и «нищета» плохо сочетаются с понятиями «монетизация», «реклама» или «инвестиции».

Есть ли у этой технологии более позитивные применения? В Open Garden надеются, что тот же принцип, который лежит в основе Firechat, подойдёт для автоматической коммуникации между различными устройствами — того самого «интернета вещей», о котором столько говорят в последнее время. В этом есть логика.

Open Garden — далеко не единственная компания, экспериментирующая в этой области. Qualcomm, одна из крупнейших микроэлектронных корпораций мира, в течение семи лет работала над LTE Direct — расширением стандарта LTE, которое позволит мобильным телефонам в некоторых случаях соединяться напрямую, минуя централизованную сотовую сеть.

Как и эппловский Multipeer Connectivity Framework, LTE Direct использует для связи Bluetooth и Wi-Fi, но обладает некоторыми ценными преимуществами — в частности, дальность связи существенно выше и достигает 500 метров.

Ожидается, что первые смартфоны с поддержкой LTE Direct появятся к концу 2015 года. Facebook, Yahoo и другие гиганты уже планируют приложения, которые будут эксплуатировать новые возможности. Тогда и увидим, что из этого выйдет.