Bluetooth Mesh - The Packet

As the Bluetooth mesh networking specifications are now public, we can start dissecting and discussing various building blocks of this - I do not hesitate to say - revolutionary system.

There are many novel and unique concepts in mesh, but in my opinion the key asset and differentiator is the packet. It is extremely compact. This compactness contributes to the spectral efficiency (and throughput) of Bluetooth mesh networks.

Radio is a shared medium and collisions are one of the key problem to combat (or avoid). The math is simple: a shorter packet means less collisions. But how short can it be? The answer is: up to 29 bytes, as described in the section 3.4.4 of the Mesh Profile specification.

Of course you start such design with the basics: compressed binary payload instead of a text representation. Covering a really broad set of use cases (building automation, sensors), 11 bytes for the application payload seems appropriate. 1-2 bytes for an opcode and up to 10 bytes for parameters, such as a value measured by a sensor, or a multidimensional light (lightness, hue, saturation) with a transition time.

On top of that there are two items, which may be considered an overhead (but it is a necessary overhead): addressing / propagation control (SRC, DST, CTL+TTL: 5 bytes in total) and security (IVI+NID, SEQ, AppMIC and NetMIC). The IVI+NID is 1 byte. This byte helps identifying a network (is this a network I know and have keys to interact with or not?). SEQ is 3 bytes and together with the unique concept of a slowly propagated IV Index, forms a 7-byte long sequence number. Each packet ever sent on a mesh network has a unique sequence number, per given SRC address. The smart part here is we're including only 3 bytes in the air interface packet. The remaining 4 bytes are slow changing and are "known" to the network. Sequence is essential in two areas: detecting replayed packets (very trivial security attack) and also being the key ingredient of both network and application nonces - see Section 3.8.5 of the aforementioned spec.

MICs, or Message Integrity Checks, define the level of security of the system. Bluetooth Mesh has a dual layer security - the network layer and the application layer. Messages may be secured with two independent keys. This is useful for relay nodes to authenticate a message on a network layer and still not being able to tamper with the application payload. A light bulb that relays a message to a door lock cannot change the payload from "open" to "close", but checks if the packet belongs to its own network. The network layer MIC can be either 8 or 4 bytes long. In its shorter form it is combined with the application layer MIC that can again be 8 or 4 bytes long.

The end result is an application payload that is sufficient for almost all building automation, lighting control and sensor applications, with strong security, flexible addressing in an extremely, extremely compact form factor. Combined with the modulation scheme offered by Bluetooth Low Energy, it is also feather light. Including all necessary radio interface fields like a preamble, an access address, and a CRC, it totals 47 octets. The result of that is a single transmission on a single frequency lasts less than 400μs. This is 10x less than a comparable message using other existing wireless systems. And when using the new 2M PHY introduced by Bluetooth 5, this advantage can potentially be doubled.

The success of any wireless system fundamentally relies on the spectral efficiency. It is like the success of an airliner fundamentally relies on its fuel efficiency. In the low power, ultra short message category, Bluetooth mesh delivers an order of magnitude more. This is why it will ultimately become the most successful low power wireless standard.

Comments