Стандарт компьютерной ячеистой сети
Bluetooth Mesh — это стандарт компьютерной ячеистой сети , основанный на Bluetooth Low Energy , который обеспечивает связь «многие ко многим» по радио Bluetooth. Спецификации Bluetooth Mesh были определены в спецификациях Mesh Profile [1] и Mesh Model [2] Специальной группой Bluetooth (Bluetooth SIG). Bluetooth Mesh был задуман в 2014 году [3] и принят 13 июля 2017 года . [4] ( 13 июля 2017 г. )
Обзор
Bluetooth Mesh — это стандарт ячеистой сети , работающий по принципу лавинной сети . Он основан на узлах, ретранслирующих сообщения: каждый узел ретрансляции, который получает сетевой пакет, который проходит аутентификацию по известному сетевому ключу, которого нет в кэше сообщений и имеет TTL ≥ 2, может быть повторно передан с TTL = TTL - 1. Кэширование сообщений используется для предотвращения ретрансляции недавно просмотренных сообщений.
Связь осуществляется в сообщениях, длина которых может достигать 384 байтов при использовании механизма сегментации и повторной сборки (SAR), но большая часть сообщений умещается в один сегмент, то есть 11 байт. Каждое сообщение начинается с кода операции, который может составлять один байт (для специальных сообщений), 2 байта (для стандартных сообщений) или 3 байта (для сообщений, зависящих от поставщика).
Каждое сообщение имеет адрес источника и адресата, определяющий, какие устройства обрабатывают сообщения. Устройства отправляют сообщения адресатам, которые могут быть отдельными объектами/группами объектов/всем.
Каждое сообщение имеет порядковый номер, который защищает сеть от атак повторного воспроизведения.
Каждое сообщение шифруется и аутентифицируется. Для защиты сообщений используются два ключа: (1) сетевые ключи – выделены для одной ячеистой сети, (2) ключи приложения – специфичны для конкретной функции приложения, например, включения света или изменения его конфигурации.
Сообщения имеют срок жизни (TTL). Каждый раз, когда сообщение принимается и передается повторно, значение TTL уменьшается, что ограничивает количество «прыжков» и устраняет бесконечные циклы.
Архитектура
Bluetooth Mesh имеет многоуровневую архитектуру с несколькими уровнями, как показано ниже.
Топология
Узлы, поддерживающие различные функции, могут быть объединены в ячеистую сеть.
Теоретические пределы
Практические ограничения технологии Bluetooth Mesh неизвестны. Некоторые ограничения, встроенные в спецификацию, включают:
Сетчатые модели
Начиная с версии 1.0 спецификации Bluetooth Mesh [2] были определены следующие стандартные модели и группы моделей:
Модели фундамента
Базовые модели определены в базовой спецификации. Два из них обязательны для всех узлов сетки.
- Сервер конфигурации (обязательно)
- Клиент конфигурации
- Сервер здоровья (обязательно)
- Клиент здоровья
Общие модели
- Общий сервер OnOff, используемый для представления устройств, которые не соответствуют ни одному из определенных описаний модели, но поддерживают общие свойства включения/выключения.
- Сервер общего уровня, сохраняющий состояние элемента в виде 16-битного целого числа со знаком.
- Общий сервер времени перехода по умолчанию, используемый для представления времени перехода по умолчанию для различных устройств.
- Универсальный сервер Power OnOff и универсальный сервер настройки Power OnOff, используемые для представления устройств, которые не соответствуют ни одному описанию модели, но поддерживают общие свойства включения/выключения.
- Сервер общего уровня мощности и сервер настройки общего уровня мощности, включая фактическое состояние общей мощности, последнее состояние общей мощности, состояние общей мощности по умолчанию и состояние общего диапазона мощности
- Общий сервер батареи, представляющий набор из четырех значений, представляющих состояние батареи.
- Общий сервер местоположения и универсальный сервер настройки местоположения, представляющие информацию о местоположении элемента, глобальную (широта/долгота) или локальную.
- Общий сервер свойств пользователя/администратора/производителя/клиента, представляющий любое значение, сохраняемое элементом.
- Общий клиент OnOff и клиент общего уровня
- Общий клиент времени перехода по умолчанию
- Универсальный клиент включения-выключения питания и универсальный клиент уровня мощности
- Общий клиент батареи
- Общий клиент местоположения
- Общий клиент недвижимости
Датчики
- Сервер датчиков и сервер настройки датчиков, представляющие сенсорное устройство. Сенсорное устройство может быть настроено на возврат измеренного значения периодически или по запросу; период измерения (каденция) можно настроить как фиксированный или изменяемый, чтобы более важный диапазон значений сообщался быстрее.
- Сенсорный клиент
Время и сцены
- Сервер времени и сервер настройки времени, позволяющие синхронизировать время в ячеистой сети.
- Сервер сцен и сервер настройки сцен, позволяющий настраивать и вызывать до 65535 сцен при необходимости.
- Сервер планировщика и сервер настройки планировщика
- Клиент времени, клиент сцены и клиент планировщика
Осветительные приборы
- Сервер Light Lightness и сервер настройки Light Lightness, представляющие источник света с регулируемой яркостью.
- Сервер Light CTL, сервер температуры Light CTL и сервер настройки Light CTL, представляющие CCT или источник «настраиваемого белого» света.
- Сервер Light HSL, Сервер Light HSL Hue, Сервер насыщенности Light HSL и Сервер настройки Light HSL, представляющие источник света на основе представления цвета оттенка, насыщенности и яркости.
- Сервер Light xyL и сервер настройки Light xyL, представляющие источник света на основе модифицированного цветового пространства CIE xyY .
- Сервер Light LC (Lightness Control) и Сервер настройки Light LC, представляющий собой устройство управления освещением, способное управлять моделью Light Lightness с помощью датчика присутствия и датчика внешней освещенности . Его можно использовать для таких сценариев управления освещением, как автоматическое включение, автоматическое выключение и/или сбор дневного света .
- Легкий клиент Lightness, Легкий клиент CTL, Легкий клиент HSL, Легкий клиент xyL и Легкий клиент LC
обеспечение
Инициализация — это процесс установки устройства в сеть. Это обязательный шаг для построения Mesh-сети Bluetooth.
В процессе подготовки поставщик безопасно распределяет сетевой ключ и уникальное адресное пространство для устройства. Протокол обеспечения использует обмен ключами Диффи-Хеллмана на основе эллиптической кривой P256 для создания временного ключа для шифрования сетевого ключа и другой информации. Это обеспечивает защиту от пассивного подслушивания. Он также предоставляет различные механизмы аутентификации для защиты сетевой информации от активного перехватчика, который использует атаку «человек посередине» во время процесса подготовки.
Ключ, уникальный для устройства, известный как «Ключ устройства», получается на основе общего секретного секрета эллиптической кривой поставщика услуг и устройства в процессе подготовки. Этот ключ устройства используется поставщиком услуг для шифрования сообщений для этого конкретного устройства.
Безопасность процесса предоставления была проанализирована в документе, представленном на конференции IEEE CNS 2018. [5]
Предоставление может быть выполнено с использованием соединения Bluetooth GATT или объявления с использованием конкретного носителя. [1]
Терминология, используемая в спецификациях модели Bluetooth Mesh и профиля Mesh.
- Назначение: адрес, на который отправляется сообщение.
- Элемент: адресуемый объект внутри устройства.
- Модель: Стандартизированная работа по типичным пользовательским сценариям.
- Узел: подготовленное устройство.
- Поставщик: узел, который может добавить устройство в ячеистую сеть.
- Реле: узел, способный ретранслировать сообщения.
- Источник: адрес, с которого отправлено сообщение.
Реализации
Утверждено («аттестовано») Bluetooth SIG
Реализации бесплатного программного обеспечения с открытым исходным кодом
Свободное программное обеспечение и реализации программного обеспечения с открытым исходным кодом включают следующее:
- Официальный (включенный в ядро Linux Линусом Торвальдсом в 2001 году [42] ) стек протоколов Linux Bluetooth BlueZ , имеющий двойную свободную лицензию под GPL [43] и LGPL , [44] поддерживает Mesh Profile, начиная с версии 5.47, [45] ] , предоставив инструмент meshctl (устаревший) для настройки ячеистых устройств. В версии 5.53 представлен инструмент mesh-cfgclient для настройки ячеистых сетей. BlueZ был одобрен Bluetooth SIG как «квалифицированный» пакет программного обеспечения в 2005 году. [46] BlueZ не считается сертифицированным стеком Bluetooth Mesh, поскольку Bluetooth Mesh не указан в вышеупомянутой квалификационной записи как поддерживаемый профиль.
- Apache Mynewt NimBLE , распространяемый по свободной лицензии Apache License 2.0 , [47] поддерживает Bluetooth Mesh начиная с версии 1.2.0. [48] Он был квалифицирован 15 июля 2019 г. с QDID 131934. [36] ( 15 июля 2019 г. )
- Zephyr OS Mesh , распространяемый по свободной лицензии Apache License 2.0 , [49] поддерживает Bluetooth Mesh начиная с версии 1.9.0. [50] Zephyr OS Mesh 1.14.x прошла квалификацию 20 сентября 2019 г. с QDID 139259. [36] ( 20 сентября 2019 г. )
Смотрите также
Рекомендации
- ^ ab «Спецификация Mesh Profile Bluetooth®» (загрузка в формате PDF) . Веб-сайт технологии Bluetooth . 13 июля 2017 г. Проверено 18 июля 2017 г.
- ^ ab «Спецификация Mesh-модели Bluetooth®» (загрузка в формате PDF) . Веб-сайт технологии Bluetooth . 13 июля 2017 г. Проверено 18 июля 2017 г.
- ^ «Ограничение диапазона? Какое ограничение диапазона? Представляем ячеистые сети | Веб-сайт технологии Bluetooth» . blog.bluetooth.com . Архивировано из оригинала 9 апреля 2016 г. Проверено 6 июля 2017 г.
- ^ «Низкое энергопотребление: сетка | Веб-сайт технологии Bluetooth» . www.bluetooth.com . Архивировано из оригинала 01 сентября 2017 г. Проверено 18 июля 2017 г.
- ^ Адомникай, А.; Фурнье, JJA; Массон, Л. (30 мая 2018 г.). «Угрозы безопасности оборудования в ячеистых сетях Bluetooth». Конференция IEEE 2018 по коммуникациям и сетевой безопасности (CNS) . стр. 1–9. дои : 10.1109/CNS.2018.8433184. ISBN 978-1-5386-4586-4. S2CID 52004479.
- ^ «QD ID 98880 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 15 ноября 2017 г.
- ^ «QD ID 98856 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 15 ноября 2017 г.
- ^ «QD ID 99282 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 15 ноября 2017 г.
- ^ «QD ID 101318 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 15 ноября 2017 г.
- ^ «QD ID 101726 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 15 ноября 2017 г.
- ^ «QD ID 102243 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 15 ноября 2017 г.
- ^ «QD ID 106544 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 5 марта 2018 г.
- ^ «QD ID 106546 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 5 марта 2018 г.
- ^ «QD ID 104143 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 5 марта 2018 г.
- ^ «QD ID 109370 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 5 апреля 2018 г.
- ^ «QD ID 110168 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 5 апреля 2018 г.
- ^ «QD ID 110202 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 5 апреля 2018 г.
- ^ «QD ID 110569 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 3 мая 2018 г.
- ^ Системы, eZ. «nRF5 SDK для Mesh / Bluetooth Low Energy / Продукты / Дом — Беспроводные решения со сверхнизким энергопотреблением от NORDIC SEMICONDUCTOR» . www.nordicsemi.com . Проверено 3 мая 2018 г.
- ^ «QD ID 115668 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 15 сентября 2018 г.
- ^ «QD ID 116029 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 15 сентября 2018 г.
- ^ «QD ID 115860 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 15 сентября 2018 г.
- ^ «QD ID 119229 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 7 ноября 2018 г.
- ^ «QD ID 119268 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 7 ноября 2018 г.
- ^ «QD ID 116593 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 21 декабря 2018 г.
- ^ «QD ID 122442 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 21 декабря 2018 г.
- ^ «QD ID 123056 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 21 декабря 2018 г.
- ^ «QD ID 124137 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 24 января 2019 г.
- ^ «QD ID 127926 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 14 апреля 2019 г.
- ^ «QD ID 127646 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 14 апреля 2019 г.
- ^ «QD ID 129750 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 6 мая 2019 г.
- ^ «QD ID 130160 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 6 мая 2019 г.
- ^ «QD ID 133403 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 19 июня 2019 г.
- ^ «QD ID 128410 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 19 июня 2019 г.
- ^ «QD ID 129291 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 27 августа 2019 г.
- ^ abc «QD ID 131934 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 27 августа 2019 г.
- ^ «QD ID 128246 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 27 августа 2019 г.
- ^ «QD ID 134454 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 27 августа 2019 г.
- ^ «QD ID 137436 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 27 августа 2019 г.
- ^ «QD ID 139259 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 12 марта 2020 г.
- ^ «QD ID 144808 | Launch Studio — Подробности листинга» . launchstudio.bluetooth.com . Проверено 1 июня 2020 г.
- ^ "История BlueZ" . БлюЗ . 07.09.2019.
- ^ "индекс: bluez.git - стек протоколов Bluetooth для Linux - Марсель Хольтманн" . ядро.орг . 1991. Архивировано из оригинала 05 сентября 2019 г. Проверено 5 сентября 2019 г.
- ^ "индекс: bluez.git - стек протоколов Bluetooth для Linux - Марсель Хольтманн" . ядро.орг . 1999. Архивировано из оригинала 05 сентября 2019 г. Проверено 5 сентября 2019 г.
- ^ «BlueZ» Архив блога » Выпуск BlueZ 5.47» . www.bluez.org . Проверено 27 октября 2017 г.
- ^ «Соответствующая информация о продукте» . Bluetooth-сигнал . Архивировано из оригинала 5 сентября 2019 г. Проверено 5 сентября 2019 г.
- ^ "apache/mynewt-core/ЛИЦЕНЗИЯ". Гитхаб . 04.06.2018. Архивировано из оригинала 5 сентября 2019 г. Проверено 5 сентября 2019 г.
- ^ «RN-1.2.0 - Apache Mynewt - Apache Software Foundation» . cwiki.apache.org . Проверено 2 июля 2018 г.
- ^ "zephyrproject-rtos/zephyr/blob/master/ЛИЦЕНЗИЯ". Гитхаб . 21 марта 2020 г. Архивировано из оригинала 5 сентября 2019 г. Проверено 21 марта 2020 г.
- ^ «Примечания к выпуску ядра Zephyr 1.9.0» . docs.zephyrproject.org . Проверено 21 марта 2020 г.