И немного об устройстве сетей

May 08, 2019
Blog

Bluetooth – беспроводная технология передачи данных, ставшая неотъемлемой частью наших любимых девайсов. Кстати, вы знаете, что её назвали в честь короля викингов Харальда Синезубого, жившего в Дании в Х веке? Он объединил датские племена в единое королевство, а технология Bluetooth, в свою очередь, объединяет протоколы связи в один универсальный стандарт. С момента своего выхода в 90-х годах, с каждым поколением Bluetooth добавляет в скорости и расстоянии действия, для чего неустанно расширяет и дополняет свой функционал. Давайте разберёмся, как же работает эта чудесная технология! Ну, и как не работает тоже. 🙂

Для начала, напомню о ключевых изменениях версий.
v1.2 – Адаптивная перестройка частоты с расширенным спектром (AFH), которая повышает стойкость к радиопомехам. Повторная передача повреждённых пакетов.
v2.0 – Дополнительные полосы пропускания данных.
v3.0 – Выбор радиосистемы для передачи данных зависит от размера передаваемого файла.
v4.0 – включает в себя протоколы:
— Классический Bluetooth,
— Высокоскоростной Bluetooth
— Bluetooth с низким энергопотреблением (BLE).
v5.0 – значительное увеличение радиуса действия.

Появившись с версии Bluetooth 4.0, протокол BLE (Bluetooth Low Energy) призван в разы сократить потребление энергии устройством за счет режима включения девайса только на время работы с данным и его последующим выключением.

Стоит отметить, что для маленьких девайсов от IoT и их аналогов это решение оказалось «в точку». Так на одной батарее такой девайс может работать гораздо дольше, а срок бесперебойной работы измеряется годами.

Менялись и взрослели потребности рынка, а технология Bluetooth развивалась и соответствовала. Начиналось всё со схемы «один-к-одному», подразумевающей сопряжение двух устройств. Дальше – «один-ко-многим», то есть передача информации от одного на многие устройства или наоборот. И, наконец, сетевая передача данных, «многие-ко-многим». О последней поговорим отдельно.

Bluetooth с версии 4.0 открывает пользователям возможность создавать распределенные сети (BLE Mesh). BLE Mesh представляет собой сетевую топологию компьютерной сети, построенную на принципе ячеек, в которой ячейки сети соединяются друг с другом и способны принимать на себя роль коммутатора для остальных ячеек. Интернет вещей (IoT) — одна из ярких отраслей в которых BLE Mesh находит своё применение.

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

Подключенные в такой распределенной сети устройства называются узлами. Используя метод управляемого потока для передачи сообщений, узел публикует/отправляет сообщение тем узлам, которые находятся в пределах его «видимости» и подписаны на прием таких сообщений. Принимающие узлы могут ретранслировать или перенаправлять это сообщение другим узлам в своих пределах и т.д.

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

Узел в режиме «proxy» — это устройство, которое использует устаревшее соединение Bluetooth для взаимодействия с другими устройствами в сетке BLE; в свою очередь, он может пересылать сообщения на другие узлы через другие соединения или рекламу, если функция ретрансляции также включена.

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

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

Ко всему, каждый узел сети просыпается с установленной регулярностью и рекламирует/оповещает свое окружение о своем присутствии. Такая реклама позволяет рассчитать расстояние, силу сигнала необходимую для передачи ему сообщения и главное – время жизни сообщения (TTL), что дает возможность также рассчитывать количество узлов ретрансляции. От узла к узлу ретрансляции это значение уменьшается.

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

Каждое сообщение состоит из кода операции и наполнения. Код операции позволяет принимающей стороне определить что делать далее с наполнением. При этом обеспечивается шифрование сообщений ключом сети и приложения.

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

Масштабируемость таких сетей — ещё один из важных и приятных факторов. Сетки могут быть разделены на «подсети», которые разбивают поток сообщений на отдельные области, тем самым экономя энергию, добавляя в топологию лишь минимальную размерную сложность. Таким образом, топология не только устойчива, но и модульна.

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

Справедливости ради, нужно отметить, что технология Bluetooth и BLE в частности не является «таблеткой от всех болезней». Каждый, кто решит использовать технологию, должен четко понимать, будет ли использование данной технологии оптимальным именно для его нужд и решения поставленных задач. Учитывать разнообразие производителей Bluetooth модулей, которые станут узлами сети. Однозначно, однотипные девайсы дают долю стабильности и надежности всей сети.

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

Те, кому случается разрабатывать решение в практически «стерильном» окружении, позже могут очень огорчиться из-за нестабильной работы того же решения в условиях жесткой конкуренции за каналы передач данных между девайсами, разнообразия девайсов и Bluetooth-модулей которые в них применены.

Мир стремительно меняются, ставя перед нами новые задачи. И кто знает, к чему придёт развитие Bluetooth и в каких областях технология ещё найдёт применение…

Previous articleNext article