Traditional Bluetooth network was limited in its application with its one-on- one connection. With introduction of a mesh network support from Bluetooth 5.0 resolves this limitation. In this article, we try to introduce about mesh network and how it works.
MESH vs Peer-to- Peer
Any Bluetooth device communicates using Peer-to- peer manner and create own cluster called Pico Net. In this mode, a device can communicate only with node connected to it and not with the other nodes.
Mesh network has many to many topologies. Each device in mesh network can communicate with any device in the mesh network. Thus, the end to end communication is extended beyond the radio range of each individual node.
The devices inside mesh network are called Nodes. And any devices that are outside the mesh are called ‘unprovisioned nodes’. The process of transforming an ‘Unprovisioned node’ to ‘Node’ by adding to the mesh is called ‘Provisioning’.
Figure 1: Unprovisioned Nodes
The communication between the Nodes is controlled through Messages. The nodes can transmit and receive messages of several types with different op-codes. ‘Ackowledged’ messages require response from receiver. ‘Unacknowledged’ messages require no response from receiver.
3 Types of messages:
- GET messages request the value of a given state from one or more nodes.
- STATUS messages is sent in response to GET message, with the state value.
- SET message change the value of a given state.
The Nodes send and receive messages from an address. ‘Virtual’ address is assigned to one or more elements spanning across one or more nodes. They are pre-configured at manufacture. They can be SIG defined or dynamically assigned.
- ‘Unicast’ address uniquely identifies a single element. It is assigned during provisioning.
- ‘Group’ address is a multicast address which represents one or more elements.
Sending messages is called ‘publishing’. Nodes are configured to select messages sent to particular addresses to process. This is called subscribing.
States and Properties
Each element contain a value which defines its state. For example, an element Light takes values of type On Off. On value makes the Light switch-on, Off value makes it switch-off.
A property is also a value associated with the element which provides a context for interpreting a value. ‘Manufacturer’ properties are read only. ‘Admin’ properties allows read-write access. Changes from one state to another is called ‘State Transition’. It can be instantaneous or executed over a period of time called transition time. Change in a state that triggers change in other state is called Bound states.
Models define some or all of the functionality of an element as it relates to the mesh network.
There are four types of models:
- Server model – Defines states, state transitions, state bindings and messages which the element may send or receive.
- Client model – Defines messages to send or receive in order to GET, SET or acquire the STATUS of the states defined in the corresponding server model.
- Control – Contains both client and server models.
- Root model – Model which cannot be extended.
Semantically equivalent states differ devices are categorized as Generics. Example: GenericOnOff, GenericLevel
Scenes are stored collection of states which are recalled and made current by receipt of a special type of message or at a specified time. They allow a series of nodes to be set to complimentary in one coordinated fashion.
Process of a device joining mesh network and becoming a node is called provisioning. A device used to drive provisioning is a Provisioner. Ex: mobile app
Provisioning Process Involves 5 steps –
- Beaconing – Device advertises its availability using a special advertise message
- Invitation – Provisioner sends an invitation to the device
- Public keys exchange – Device and provisioner exchange public keys directly or OOB method
- Authentication – Device and provisioner authenticate each other
- Provisioned data distribution – Mesh security parameter IV index and a unicast address allocated by provisoner
All nodes can transmit and receive messages.
There are 4 types of nodes –
- Relay Nodes – They retransmit received messages.
- Low power nodes – They conserve energy by send messages only on need basis and open to receive messages only periodically.
- Friend nodes – They store messages intended for low power nodes when the latter is not in receiving mode.
- Proxy nodes - Erstwhile device with no MESH support use GATT protocol to interact with nodes in MESH network.
Software OSI Layer Architecture
Security is mandatory in MESH, unlike BLE. The following are the security fundamentals in Bluetooth mesh
Encryption and Authentication – All mesh messages are encrypted and authenticated. It uses AES-CCM to authenticate and encrypt access payload in upper transport layer and network parameter like destination address and transport PDU.
Separation of concerns – The network security, application security and device security are all addressed independently. Access payload is encrypted using Application Key or Device Key and network parameters are encrypted using Network Key.
Key Refresh – Security keys can be changed during the life of the mesh network via a Key Refresh procedure.
Message Obfuscation – Message obfuscation makes it difficult to track messages sent within the network providing a privacy mechanism to make it difficult to track nodes.
Replay Attack Protection – Mesh security protects the network against replay attacks. This is achieved by using two network PDU values SEQ (sequence number) and IV Index respectively. Elements increment SEQ value every time they publish a message. Elements within the same node may or may not share the sequence number space with each other. A node discards the message received from an element whose SEQ value is less than or equal to the last valid message from that element. IV Index values within messages from an element must always be greater than or equal to the last valid message from that element. All nodes in a mesh network share the same value of the IV Index and use it for all subnets they belong to.
Secure Device Provisioning – The process by which devices are added to the mesh network to become nodes, is itself a secure process.
Trashcan Attack Protection – Nodes can be removed from the network securely, in a way which prevents trashcan attacks.
MESH vs WiFi
|Network Communication||Via multiple nodes Messages are broadcasted to all nodes. Thus message arrives at a destination through multiple paths.||Central device (router) If router is unavailable, network becomes unavailable.|
|Battery Life (days)||100-1000+||0.5-5|
|Data transmission rate (KB/S)||20-250||11,000+|
|Application||Monitoring and Control||Web, video, entertainment etc.|
|USP||Reliability, power, cost||Speed, flexibility|
Applications of Bluetooth Mesh
- Energy Management
- Smart City Applications
- Facilities Management