From HandWiki - Reading time: 10 min
| Developed by | Bluetooth SIG |
|---|---|
| Introduced | Script error: No such module "Date time". |
| Industry | Lighting, IoT |
| Physical range | 100-1000 meters (depending on mesh relaying configuration) |
Bluetooth Mesh is a computer mesh networking standard based on Bluetooth Low Energy that allows for many-to-many communication over Bluetooth radio. The Bluetooth Mesh specifications were defined in the Mesh Profile[1] and Mesh Model[2] specifications by the Bluetooth Special Interest Group (Bluetooth SIG). Bluetooth Mesh was conceived in 2014[3] and adopted on Script error: No such module "Date time"..[4]
Bluetooth Mesh is a mesh networking 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 (TTL). Each time message is received and retransmitted, TTL is decremented which limits the number of "hops", eliminating endless loops.
Bluetooth Mesh has a layered architecture, with multiple layers as below.
| Layer | Functionality |
|---|---|
| Model Layer | It defines a standard way to exchange application specific messages. For example, a Light Lightness Model defines an interoperable way to control lightness. There are mandatory models, called Foundation Models, defining states and messages needed to manage a mesh network. |
| Access Layer | It defines mechanism to ensure that data is transmitted and received in the right context of a model and its associated application keys. |
| Upper Transport Layer | It defines authenticated encryption of access layer packets using an application (or device specific key). It also defines some control messages to manage Friendship or to notify the behavior of node using Heartbeat messages. |
| Lower Transport Layer | This layer defines a reliable (through a Block Acknowledgement) Segmented transmission upper layer packets, when a complete upper layer packet can't be carried in a single network layer packet. It also defines a mechanism to reassemble segments on the receiver. |
| Network Layer | This layer defines how transport packets are addressed over network to one or more nodes. It defines relay functionality for forwarding messages by a relay node to extended the range. It handles the network layer authenticated encryption using network key. |
| Bearer Layer | It defines how the network packets are exchanged between nodes. Mesh Profile Specification defines BLE advert bearer and BLE GATT bearer. Mesh Profile defines Proxy Protocol, through which mesh packets can be exchanged via other bearers like TCP/IP. |
Nodes that support the various features can be formed into a mesh network.
| Feature | Functionality |
|---|---|
| Relay | receive and retransmit mesh messages over the advertising bearer
to enable larger networks. |
| Proxy | receive and retransmit mesh messages between GATT and
advertising bearers. |
| Low Power | operate within a mesh network at significantly reduced receiver
duty cycles only in conjunction with a node supporting the Friend feature. |
| Friend | help a node supporting the Low Power feature to operate by storing
messages destined for those nodes. |
The practical limits of Bluetooth Mesh technology are unknown. Some limits that are built into the specification include:
| Limit for a network | Value | Remarks |
|---|---|---|
| Maximum number of nodes | 32 767 | The limit is 32768 addresses and while a node may occupy more than one address, the practical limit is most likely lower. |
| Maximum number of groups | 16 384
Number of virtual groups is 2128. |
|
| Maximum number of scenes | 65 535 | |
| Maximum number of subnets | 4 096 | |
| Maximum TTL | 127 |
As of version 1.0 of Bluetooth Mesh specification,[2] the following standard models and model groups have been defined:
Foundation models have been defined in the core specification. Two of them are mandatory for all mesh nodes.
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, 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.[5]
The provisioning can be performed using a Bluetooth GATT connection or advertising using the specific bearer.[1]
| Name | Submitter | Qualification date | QDID | Type |
|---|---|---|---|---|
| Bluetooth Stack for Embedded Systems - MESH profile[6] | Silvair, Inc. | 2017-07-18 | 98880 | Profile Subsystem |
| Qualcomm Bluetooth Mesh[7] | Qualcomm Technologies International, Ltd. | 2017-07-18 | 98856 | Profile Subsystem |
| Silvair Mesh Models[8] | Silvair, Inc. | 2017-07-26 | 99282 | Profile Subsystem |
| Wireless Gecko Mesh Profile[9] | Silicon Laboratories | 2017-09-21 | 101318 | Profile Subsystem |
| CYW-MESH 1.0[10] | Cypress Semiconductor Corporation | 2017-10-03 | 101726 | Component (Tested) |
| Qualcomm Bluetooth Mesh Model[11] | Qualcomm Technologies International, Ltd. | 2017-10-20 | 102243 | Profile Subsystem |
| EtherMind Bluetooth Protocol Stack, 5.0 (Single Mode) + Mesh[12] | Mindtree Limited | 2018-01-24 | 106544 | Component (Tested) |
| Telink SIG Mesh SDK[13] | Telink Semiconductor | 2018-02-01 | 106546 | Profile Subsystem |
| TOSHIBA Bluetooth_stack_mesh-1[14] | Toshiba Corporation | 2018-02-13 | 104143 | Component (Tested) |
| AMICCOM Mesh Profile[15] | AMICCOM Electronics Corporation | 2018-03-14 | 109370 | Profile Subsystem |
| Amiccom Bluetooth Mesh Model[16] | AMICCOM Electronics Corporation | 2018-03-30 | 110168 | Profile Subsystem |
| Airoha SIG mesh[17] | Airoha Technology Corp. | 2018-04-02 | 110202 | Profile Subsystem |
| Marvell Mesh stack v1.0[18] | Marvell Technology Group | 2018-04-27 | 110569 | Component (Tested) |
| nRF5 SDK for Mesh [19] | Nordic Semiconductor | May 2, 2018 | 111537 | Profile Subsystem |
| Realtek Bluetooth 5 Mesh Solution[20] | Realsil Microelectronics Inc | 2018-07-27 | 115668 | Profile Subsystem |
| STSW-BNRG-Mesh[21] | STMicroelectronics | 2018-08-02 | 116029 | Profile Subsystem |
| RDA BT Host 5.0[22] | RDA Microelectronics, Inc. | 2018-09-13 | 115860 | Profile Subsystem |
| JYMC-MESH-1[23] | Shanghai Frequen Microelectronics Co., Ltd. | 2018-10-10 | 119229 | End Product |
| RW-BLE-MESH[24] | CEVA, Inc. | 2018-10-31 | 119268 | Component (Tested) |
| ARM Ltd Cordio Mesh[25] | ARM Ltd | 2018-12-11 | 116593 | Profile Subsystem |
| Samsung SLSI Bluetooth Mesh[26] | Samsung Electronics Co., Ltd. | 2018-12-21 | 122442 | Profile Subsystem |
| Bluelet Host Stack V12[27] | Barrot Technology Limited | 2018-12-25 | 123056 | Component (Tested) |
| ESP BLE Mesh v0.6[28] | Espressif Systems (Shanghai) Pte. Ltd. | 2019-01-14 | 124137 | Profile Subsystem |
| BK3435 BLE Core Spec 5.0 with MESH[29] | Beken Corp | 2019-03-12 | 127926 | End Product |
| Actions Mesh Profile Subsystem[30] | Actions (Zhuhai) Technology Co., Limited | 2019-03-21 | 127646 | Profile Subsystem |
| AliOS Things BLE host and mesh profile v2.1.0[31] | Alibaba (China) Co., Ltd. | 2019-04-19 | 129750 | Host Subsystem |
| Tonly SIG Mesh Stack[32] | Shenzhen Tonli Science and Technology Development Co., Ltd | 2019-05-05 | 130160 | Profile Subsystem |
| Sino Wealth IBLE SIG Mesh Profile[33] | Sino Wealth Electronic Ltd. | 2019-06-18 | 133403 | Profile Subsystem |
| Qualcomm Bluetooth Mesh and Mesh Model v4.0[34] | Qualcomm Technologies International, Ltd. | 2019-06-19 | 128410 | Profile Subsystem |
| PAN1020 Mesh Profile subsystem[35] | Shanghai Panchip Microelectronics Co., Ltd | 2019-07-01 | 129291 | Profile Subsystem |
| Apache NimBLE BLE Host including BLE Mesh[36] | JUUL Labs, Inc. | 2019-07-15 | 131934 | Component (Tested) |
| Tmall mesh Stack[37] | Alibaba (China) Co., Ltd. | 2019-07-20 | 128246 | Profile Subsystem |
| ClarinoxBlue[38] | Clarinox Technologies Pty Ltd | 2019-08-02 | 134454 | Host Subsystem |
| BlueX Mesh[39] | BlueX Microelectronics Corp Ltd. | 2019-08-20 | 137436 | Profile Subsystem |
| Zephyr OS Mesh[40] | The Linux Foundation | 2019-09-20 | 139259 | Profile Subsystem |
| WCH Bluetooth Mesh[41] | Nanjing Qinheng Microelectronics Co., Ltd. | 2020-06-01 | 144808 | Profile Subsystem |
Free software and open source software implementations include the following: