Bluetooth Mesh is a computer
mesh networking
A mesh network is a local area network topology in which the infrastructure nodes (i.e. bridges, switches, and other infrastructure devices) connect directly, dynamically and non-hierarchically to as many other nodes as possible and cooperate wit ...
standard Standard may refer to:
Symbols
* Colours, standards and guidons, kinds of military signs
* Standard (emblem), a type of a large symbol or emblem used for identification
Norms, conventions or requirements
* Standard (metrology), an object th ...
based on
Bluetooth Low Energy
Bluetooth Low Energy (Bluetooth LE, colloquially BLE, formerly marketed as Bluetooth Smart) is a wireless personal area network technology designed and marketed by the Bluetooth Special Interest Group (Bluetooth SIG) aimed at novel applications in ...
that allows for many-to-many communication over Bluetooth radio. The Bluetooth Mesh specifications were defined in the Mesh Profile
and Mesh Model
specifications by the
Bluetooth Special Interest Group
The Bluetooth Special Interest Group (Bluetooth SIG) is the standards organization that oversees the development of Bluetooth standards and the licensing of the Bluetooth technologies and trademarks to manufacturers. The SIG is a not-for-profit ...
(Bluetooth SIG). Bluetooth Mesh was conceived in 2014 and adopted on .
Overview
Bluetooth Mesh is a
mesh networking
A mesh network is a local area network topology in which the infrastructure nodes (i.e. bridges, switches, and other infrastructure devices) connect directly, dynamically and non-hierarchically to as many other nodes as possible and cooperate wit ...
standard that operates on a
flood network principle. It's based on the nodes relaying the messages: every relay node that receives a network packet that authenticates against a known network key that is not in message cache, that has a TTL ≥ 2 can be retransmitted with TTL = TTL - 1. Message caching is used to prevent relaying messages recently seen.
Communication is carried in the messages that may be up to 384 bytes long, when using Segmentation and Reassembly (SAR) mechanism, but most of the messages fit in one segment, that is 11 bytes. Each message starts with an opcode, which may be a single byte (for special messages), 2 bytes (for standard messages), or 3 bytes (for vendor-specific messages).
Every message has a source and a destination address, determining which devices process messages. Devices publish messages to destinations which can be single things / groups of things / everything.
Each message has a sequence number that protects the network against replay attacks.
Each message is encrypted and authenticated. Two keys are used to secure messages: (1) network keys – allocated to a single mesh network, (2) application keys – specific for a given application functionality, e.g. turning the light on vs reconfiguring the light.
Messages have a
time to live
Time to live (TTL) or hop limit is a mechanism which limits the lifespan or lifetime of data in a computer or network. TTL may be implemented as a counter or timestamp attached to or embedded in the data. Once the prescribed event count or timesp ...
(TTL). Each time message is received and retransmitted, TTL is decremented which limits the number of "hops", eliminating endless loops.
Architecture
Bluetooth Mesh has a layered architecture, with multiple layers as below.
Topology
Nodes that support the various features can be formed into a mesh network.
Theoretical limits
The practical limits of Bluetooth Mesh technology are unknown. Some limits that are built into the specification include:
Mesh models
As of version 1.0 of Bluetooth Mesh specification,
the following standard models and model groups have been defined:
Foundation models
Foundation models have been defined in the core specification. Two of them are mandatory for all mesh nodes.
* Configuration Server (mandatory)
* Configuration Client
* Health Server (mandatory)
* Health Client
Generic models
* Generic OnOff Server, used to represent devices that do not fit any of the model descriptions defined but support the generic properties of On/Off
* Generic Level Server, keeping the state of an element in a 16-bit signed integer
* Generic Default Transition Time Server, used to represent a default transition time for a variety of devices
* Generic Power OnOff Server & Generic Power OnOff Setup Server, used to represent devices that do not fit any of the model descriptions but support the generic properties of On/Off
* Generic Power Level Server & Generic Power Level Setup Server, including a Generic Power Actual state, a Generic Power Last state, a Generic Power Default state and a Generic Power Range state
* Generic Battery Server, representing a set of four values representing the state of a battery
* Generic Location Server & Generic Location Setup Server, representing location information of an element, either global (Lat/Lon) or local
* Generic User/Admin/Manufacturer/Client Property Server, representing any value to be stored by an element
* Generic OnOff Client & Generic Level Client
* Generic Default Transition Time Client
* Generic Power OnOff Client & Generic Power Level Client
* Generic Battery Client
* Generic Location Client
* Generic Property Client
Sensors
* Sensor Server & Sensor Setup Server, representing a
sensor
A sensor is a device that produces an output signal for the purpose of sensing a physical phenomenon.
In the broadest definition, a sensor is a device, module, machine, or subsystem that detects events or changes in its environment and sends ...
device. Sensor device may be configured to return a measured value periodically or on request; measurement period (cadence) may be configured to be fixed or to change, so that more important value range is being reported faster.
* Sensor Client
Time and scenes
* Time Server & Time Setup Server, allowing for time synchronization in mesh network
* Scene Server & Scene Setup Server, allowing for up to 65535 scenes to be configured and recalled when needed.
* Scheduler Server & Scheduler Setup Server
* Time Client, Scene Client & Scheduler Client
Lighting
* Light Lightness Server & Light Lightness Setup Server, representing a dimmable light source
* Light CTL Server, Light CTL Temperature Server & Light CTL Setup Server, representing a
CCT CCT may refer to:
Computation
* Computational complexity theory
* Computer-Controlled Teletext, an electronic circuit, see Teletext
* Internet Computer Chess Tournament
Economics
* Compulsory Competitive Tendering, see Best value
* Conditional ca ...
or "tunable white" light source
* Light HSL Server, Light HSL Hue Server, Light HSL Saturation Server & Light HSL Setup Server, representing a light source based on
Hue, Saturation, Lightness color representation
* Light xyL Server & Light xyL Setup Server, representing a light source based on modified
CIE xyY
The CIE 1931 color spaces are the first defined quantitative links between distributions of wavelengths in the electromagnetic visible spectrum, and physiologically perceived colors in human color vision. The mathematical relationships that defin ...
color space.
* Light LC (Lightness Control) Server & Light LC Setup Server, representing a light control device, able to control Light Lightness model using an
occupancy sensor
An occupancy sensor is an indoor motion detecting device used to detect the presence of a person to automatically control lights or temperature or ventilation systems. The sensors use infrared, ultrasonic, microwave, or other technology. The ter ...
and
ambient light sensor
An ambient light sensor is a component in smartphones, notebooks, other mobile devices, automotive displays and LCD TVs. It is a photodetector that is used to sense the amount of ambient light present, and appropriately dim the device's screen to ...
. It may be used for light control scenarios like Auto-On, Auto-Off and/or
Daylight Harvesting
Daylight harvesting systems use daylight to offset the amount of electric lighting needed to properly light a space, in order to reduce energy consumption. This is accomplished using lighting control systems that are able to dim or switch electri ...
.
* Light Lightness Client, Light CTL Client, Light HSL Client, Light xyL Client & Light LC Client
Provisioning
Provisioning is a process of installing the device into a network. It is a mandatory step to build a Bluetooth Mesh network.
In the provisioning process, a provisioner securely distributes a network key and a unique address space for a device. The provisioning protocol uses P256 Elliptic Curve
Diffie-Hellman Key Exchange to create a temporary key to encrypt network key and other information. This provides security from a passive eavesdropper.
It also provides various authentication mechanisms to protect network information, from an active eavesdropper who uses
man-in-the-middle attack
In cryptography and computer security, a man-in-the-middle, monster-in-the-middle, machine-in-the-middle, monkey-in-the-middle, meddler-in-the-middle, manipulator-in-the-middle (MITM), person-in-the-middle (PITM) or adversary-in-the-middle (AiTM) ...
, during provisioning process.
A key unique to a device known as "Device Key" is derived from elliptic curve shared secret on provisioner and device during the provisioning process. This device key is used by the provisioner to encrypt messages for that specific device.
The security of the provisioning process has been analyzed in a paper presented during the
IEEE CNS 2018 conference.
The provisioning can be performed using a Bluetooth GATT connection or advertising using the specific bearer.
Terminology used in the Bluetooth Mesh Model and Mesh Profile specifications
* Destination: The address to which a message is sent.
* Element: An addressable entity within a device.
* Model: Standardized operation of typical user scenarios.
* Node: A provisioned device.
* Provisioner: A node that can add a device to a mesh network.
* Relay: A node able to retransmit messages.
* Source: The address from which a message is sent.
Implementations
Approved ("qualified") by Bluetooth SIG
Free and open-source software implementations
Free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
and
open source software
Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open ...
implementations include the following:
* The official (included in
Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ope ...
by
Linus Torvalds
Linus Benedict Torvalds ( , ; born 28 December 1969) is a Finnish software engineer who is the creator and, historically, the lead developer of the Linux kernel, used by Linux distributions and other operating systems such as Android. He also c ...
in 2001) Linux Bluetooth protocol stack
BlueZ
A Bluetooth stack is software that is an implementation of the Bluetooth protocol stack.
Bluetooth stacks can be roughly divided into two distinct categories:
# ''General-purpose'' implementations that are written with emphasis on feature-richn ...
, dual free-licensed under the
GPL
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general u ...
and the
LGPL
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
,
supports Mesh Profile, from release version 5.47, by providing meshctl tool to configure mesh devices. BlueZ was approved as a "qualified" software package by Bluetooth SIG in 2005.
BlueZ is not considered to be a qualified Bluetooth Mesh stack as Bluetooth Mesh is not listed in aforementioned qualification record as a supported profile.
*
Apache Mynewt NimBLE, free-licensed under the
Apache License 2.0,
supports Bluetooth Mesh from release version 1.2.0. It was qualified on with QDID 131934.
*
Zephyr OS Mesh, free-licensed under the
Apache License 2.0,
supports Bluetooth Mesh from release version 1.9.0.
Zephyr OS Mesh 1.14.x was qualified on with QDID 139259.
References
{{Reflist, refs=
[{{cite web , title = Qualified Product Detail , website= ]Bluetooth SIG
The Bluetooth Special Interest Group (Bluetooth SIG) is the standards organization that oversees the development of Bluetooth standards and the licensing of the Bluetooth technologies and trademarks to manufacturers. The SIG is a not-for-profit ...
, url = https://www.bluetooth.org/qualweb/ProductDetails.cfm?ProductID=2379 , access-date = 2019-09-05 , archive-url= https://web.archive.org/web/20190905203425/https://www.bluetooth.org/qualweb/ProductDetails.cfm?ProductID=2379 , archive-date= 2019-09-05 , url-status=live
[{{cite web , title = apache/mynewt-core/LICENSE , website= ]GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...
, date = 2018-06-04 , url = https://github.com/apache/mynewt-core/blob/master/LICENSE , access-date = 2019-09-05 , archive-url= https://web.archive.org/web/20190905203215/https://github.com/apache/mynewt-core/blob/master/LICENSE , archive-date= 2019-09-05 , url-status=live
[{{cite web , title = zephyrproject-rtos/zephyr/blob/master/LICENSE , website= ]GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...
, date = 2020-03-21 , url = https://github.com/apache/mynewt-core/blob/master/LICENSE , access-date = 2020-03-21 , archive-url= https://web.archive.org/web/20190905203215/https://github.com/zephyrproject-rtos/zephyr/blob/master/LICENSE , archive-date= 2020-03-21 , url-status=live
[{{cite web , title =index : bluez.git – Bluetooth protocol stack for Linux – Marcel Holtmann , website= ]kernel.org
kernel.org is the main distribution point of source code for the Linux kernel, which is the base of the Linux operating system.
Website
The website and related infrastructure, which are operated by the Linux Kernel Organization, host the reposi ...
, year = 1991 , url = https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/COPYING , access-date = 2019-09-05 , archive-url= https://web.archive.org/web/20190905201757/https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/COPYING , archive-date= 2019-09-05 , url-status=live
[{{cite web , title = index : bluez.git – Bluetooth protocol stack for Linux – Marcel Holtmann , website= ]kernel.org
kernel.org is the main distribution point of source code for the Linux kernel, which is the base of the Linux operating system.
Website
The website and related infrastructure, which are operated by the Linux Kernel Organization, host the reposi ...
, year = 1999 , url = https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/COPYING.LIB , access-date = 2019-09-05 , archive-url= https://web.archive.org/web/20190905201816/https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/COPYING.LIB , archive-date= 2019-09-05 , url-status=live
Bluetooth
Open standards
Mesh networking