Беспроводные протоколы в 2023
В прошлых статьях, я рассмотрел возможность ухода из экосистем Apple/Google (Побег из экосистем в 2023), провел небольшой обзор ОС подходящих для перехода (Альтернативная ОС вместо Apple в 2023), рассмотрел возможность написания своего софта (Мультиплатформенность приложений в 2023).
В этом обзоре я хотел бы рассказать о «потерянном звене», которого действительно не хватает для создания своей собственной полноценной экосистемы, не зависящей ни от облачных сервисов, ни от интернета, при этом позволяющих надежно хранить данные и синхронизировать между устройствами.
Что мы знаем о беспроводных протоколах?
Bluetooth и Wi‑Fi — это дуэт беспроводных технологий, на которых базируется мир современных устройств. Погрузимся в увлекательный мир этих технологий, рассмотрев их преимущества и особенности.
Bluetooth: Это не просто название, а целая серия протоколов для беспроводной связи между устройствами. Главная миссия Bluetooth — экономичность. Представьте микроскопические устройства вроде наручных часов, ключницы или беспроводных наушников — для них каждый миллиампер‑час батареи на счету. Вот здесь и выходит на сцену Bluetooth, передавая данные таким образом, чтобы минимально расходовать заряд аккумулятора. Впрочем, из‑за своей ориентированности на экономичность, он ограничен в типах и скорости передачи данных, особенно по сравнению с Wi‑Fi.
Wi‑Fi: Погружаясь в мир беспроводных соединений, мы сталкиваемся с Wi‑Fi — мощным и универсальным инструментом в сфере беспроводной связи. Wi‑Fi это не просто слово, это целая серия протоколов, предназначенных для быстрого и эффективного соединения устройств. Причём его миссия заключается в универсальности: будь то смартфон, планшет, ноутбук или даже холодильник, Wi‑Fi готов обеспечить высокоскоростное соединение. Хотя экономия энергии всё же имеет значение, для Wi‑Fi первостепенными являются быстродействие, короткий пинг и объем передаваемых данных.
LTE (мобильный интернет): Представьте мир, где вы всегда на связи. Вот здесь на помощь приходит LTE. Основываясь на целом ряде протоколов, его основной миссией является обеспечение покрытия. Даже в условиях плотной городской застройки, LTE заботится о том, чтобы каждое устройство оставалось на связи. Ведь когда речь идёт о мобильной связи, стабильность и доступность сигнала — это всё!
Всё отлично, но…
Все три технологии — Bluetooth, Wi‑Fi и LTE — действуют на основе принципа взаимодействия «хост‑клиент». Этот принцип предполагает наличие центрального устройства (хоста), к которому могут подключаться другие устройства (клиенты).
Способ подключения устройств через принцип «хост‑клиент» порой может создавать препятствия для некоторых продуктов и Sony DSC‑QX100 — это яркий пример. Давайте разберемся в деталях на этом примере.
Sony DSC‑QX100: Мало кто вообще видел это устройство, это объектив‑фотоаппарат. У него нет экрана, есть только кнопка включения, отличная матрица, процессор на борту и подключение к смартфону по воздуху через Wi‑Fi. Сони выпустила несколько таких объективов в качестве эксперимента (который провалился), по завышенной цене, но не в цене было дело.
Объектив крепился на смартфон посредством специального зажима и превращал смартфон в настоящий фотоаппарат. Сейчас когда у айфона спинка стала магнитной, крепить этот объектив можно вообще одним движением без каких либо приспособлений, сразу на магниты без креплений.
Однако, процесс подключения к смартфону по Wi‑Fi, отбивал всё желание фотографировать:
Достать объектив и телефон.
Запустить специализированное приложение Sony вручную (хотя NFC мог бы упростить этот процесс).
Создать Wi‑Fi точку и подключиться объективом к ней.
Согласитесь, для моментального снимка такой процесс выглядит чересчур сложным. Но дело совсем не в этом, сам процесс подключения с Wi‑Fi, был медленный и немного глючный. Если бы объектив коннектился к телефону одним нажатием кнопки включения, или постоянно был бы на связи со смартфоном это был бы чудесный тандем.
Автомобильные видеорегистраторы: ещё один пример технологии, с которой иногда приходится возиться. Вероятно, по приезду домой вы захотите быстро передать важное видео на свой телефон. Однако, вместо этого, вам нужно решать: использовать медленное и сложное подключение через Wi‑Fi или же вынимать SD‑карту и вставлять её в компьютер, и так далее. Каким бы образом ни проходил процесс, он оказывается неудобным и затруднительным.
Опять же, идеально если бы наши устройства «понимали» наши потребности сразу и мгновенно подключались друг к другу или даже были бы уже связаны. И я сейчас говорю про простой способ связанности устройств, что то типа беспроводной локальной сети которая всегда существует между ними.
При чём тут локальные сети?
Раньше, при использовании проводного интернета, все устройства объединялись в одну локальную сеть. Сейчас их место занял Wi‑Fi, но он предоставляет довольно «убогий» эквивалент.
Хотелось бы что бы все мои устройства просто всегда были в одной локальной сети, а если вдруг сеть разделилась — например телефон, часы и ноутбук я взял с собой в поездку, то создалась бы отдельная локальная сеть связывающая именно эти устройства.
Сформулируем точнее, как действительно мне было бы удобно
Чтобы мои устройства всегда были объединены в одну локальную сеть.
Чтобы разные локальные сети могли объединяться в одну глобальную сеть.
Чтобы локальные сети могли самоорганизовываться.
Чтобы устройство, подключённое к интернету, могло раздавать интернет всем остальным устройствам в этой локальной сети.
Можно, конечно, это реализовывать используя мобильные роутеры. Но, во первых надо следить что бы они были заряжены, во вторых это отдельные сим карты для каждого мобильного роутера. В общем и целом, это такой же не удобный способ решения проблемы, как и в примерах выше.
Ну не спроста же так сделано, да и смыл переделывать, все уже привыкли
Ну вот именно поэтому мы имеем такую схему подключения девайсов к девайсам, которую имеем. Надо каждый раз коннектить разные устройства друг с другом через wifi. Раздавать через него интернет для своего ноутбука и т. д.
Вообще конечно существуют способы соединения девайсов напрямую друг с другом без какого то основного хоста, да еще и в автоматическом режиме. Эта концепция самоорганизующихся сетей называется mesh‑сетью, которая представляет собой способ соединения устройств в локальные сети.
Ой, опять этот mesh, ну что за бред
Я бы хотел сразу добавить, что у Bluetooth уже есть одна из реализаций mesh, но это не сможет решить те задачи которые озвучены выше. Эта технология оптимизирована для умных домашних устройств, и её пропускная способность не позволяет передавать данные в необходимых объемах.
WiFi также предоставляет возможность создания mesh‑сетей. Однако это, по сути, «хак» стандартного протокола WiFi, имеющий значительные ограничения по скорости передачи данных.
Сейчас в айфоне 15 появилась поддержка Thread протокола, это протокол созданный Apple, Google, Samsung и др. компаниями для объединения всех умных устройств под одним протоколом. Он сделан очень классно, в нем сразу есть IP слой, как радиопротокол он довольно дальнобойный и очень энергоэкономичный, но увы никак не подходит на роль того самого «потерянного звена», опять же из за ограничений по скорости передачи данных.
Ну вот и все, значит кушай что дали
Но как всегда в поисках решения я вспомнил про UWB (Ultra‑Wideband), это ещё один радиопротокол который так же есть в некоторых смартфонах, он имеет очень интересные свойства.
Изначально основная задача UWB — навигация внутри помещений. Чип с UWB отправляет данные миллион раз в секунду, позволяя определить местоположение с точностью до миллиметра. К тому же, этот протокол способен передавать данные на большие расстояния, быстро и эффективно, при этом экономно расходуя заряд батареи.
В отличие от технологий Bluetooth и Wi‑Fi, которые работают в определённых диапазонах частот, UWB оперирует в широком спектре частот. Это значительно увеличивает количество данных, передаваемых за один такт излучения.
По сути это как раз то самое недостающее звено среди протоколов, которое просто обязано заменить BT и WiFi вместе взятые.
Ну если он такой крутой, то где он?
Да это интересный вопрос, сейчас в айфонах например UWB чип используется для многих вещей, но не для создания соединения устройств в локальные сети. UWB пока не применяется в этой области, так как эта технология относительно новая.
Я нашел несколько отладочных плат содержащих чип для UWB, но с софтовой частью для работы с UWB все значительно хуже. Я например не нашел реализации mesh и тем более эмуляции локальной сети на базе UWB.
Есть классный но медленный Thread, есть UWB быстрый, но не имеющий реализаций. Было бы классно перенести реализации из Thread прямо на UWB, но по понятным причинам сделать это так просто не выйдет.
Если скрестить Thread и UWB мы бы могли получить все те пункты о которых я писал выше, это было бы тем самым удобным способом для подключения всех ваших устройств, экономично, быстро, надежно и секъюрно.
Достал объектив Sony DSC‑QX100, прикрепил на телефон, нажал кнопку включения на объективе и автоматически открылось приложение камеры.
Снял что то на видеорегистратор, а на телефоне уже есть доступ ко всем видео.
Вышел из дома взяв ноутбук и телефон, и интернет на ноутбуке уже есть доступный с телефона.
Ну ок, UWB с mesh был бы хорош, а при чем тут экосистемы?
Как я уже писал в одной из прошлых статей, для создания собственной экосистемы требуется хороший способ синхронизации данных между всеми своими девайсами. Я остановился на syncthing в качестве такого решения.
Концепция такова, что каждое устройство имеет свою структуру необходимых ему папок.
Например ноутбук имеет папки «проекты», «фото», «документы», фотокамера только папку «фото», телефон «фото», «документы» и домашнее файловое хранилище так же «проекты», «фото», «документы».
Таким образом получается self‑hosted система в которой:
Данные дублированы на нескольких устройствах для защиты от потери.
Безопасно синхронизируются между собой в реальном времени и без сторонних серверов.
И главное данные всегда доступны без интернета.
Дополнительно можно делать бэкап данных в любое облако через Duplicity.
Если все устройства будут видеть друг друга всегда, распределяя роли и используя только UWB, мы получим самое настоящее будущее, удобное, простое и надежное.
Кстати если вы умеете или знаете как сделать например модуль для RPI с UWB и с прошивкой q‑mesh, с эмуляцией ethernet или usb, пишите, мне интересно будет обсудить и возможно, даже, запустить реализацию такого модуля/платы.