Content deleted Content added
m Task 16: replaced (5×) / removed (35×) deprecated |dead-url= and |deadurl= with |url-status=; |
Citation bot (talk | contribs) Removed URL that duplicated identifier. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 301/1032 |
||
(44 intermediate revisions by 34 users not shown) | |||
Line 1:
{{Short description|Computer mesh networking standard}}
| name = Bluetooth mesh networking
| image = Bluetooth
| standard =
| developer = [[Bluetooth Special Interest Group|Bluetooth SIG]]
| introdate = {{Start date|2017|07|13}}
| industry
| connector =
| hardware =
| range
}}
'''Bluetooth Mesh''' is a computer [[mesh networking]] [[Technical standard|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<ref name=":0">{{Cite web|url=https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=429633|title=Mesh Profile Bluetooth® Specification|date=2017-07-13|website=Bluetooth Technology Website|format=PDF download|access-date=2017-07-18}}</ref> and Mesh Model<ref name=":1">{{Cite web|url=https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=429634|title=Mesh Model Bluetooth® Specification|date=2017-07-13|website=Bluetooth Technology Website|format=PDF download|access-date=2017-07-18}}</ref> specifications by the [[Bluetooth Special Interest Group]] (Bluetooth SIG). Bluetooth Mesh was conceived in 2014<ref>{{Cite web|url=http://blog.bluetooth.com/range-limitation-what-range-limitation-introducing-mesh-networks/|title=Range Limitation? What Range Limitation? Introducing Mesh Networks {{!}} Bluetooth Technology Website
== Overview ==
Bluetooth Mesh is a [[mesh networking]] standard that operates on a [[Flooding (computer networking)|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 * is not in message cache * has a TTL ≥ 2 can be retransmitted with TTL = TTL 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).
Line 21 ⟶ 27:
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.
Line 27 ⟶ 33:
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.
== Architecture==
Bluetooth Mesh has a layered architecture, with multiple layers as below.
{| class="wikitable"
!Layer
Line 49 ⟶ 57:
|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.
|}
== Types of nodes ==
Nodes that support the various features can be formed into a particular mesh network topology.
{| class="wikitable"
!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.
|}
Line 105 ⟶ 137:
* Generic Location Client
* Generic Property Client
=== Sensors ===
* Sensor Server & Sensor Setup Server, representing a [[sensor]] 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.
Line 126 ⟶ 159:
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.
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 provisioning can be performed using a Bluetooth GATT connection or advertising using the specific bearer.<ref name=":0" />
Line 311 ⟶ 344:
|-
|Tonly SIG Mesh Stack<ref>{{Cite web|url=https://launchstudio.bluetooth.com/ListingDetails/RedirectFromQdid/130160|title=QD ID 130160 {{!}} Launch Studio - Listing Details|website=launchstudio.bluetooth.com|access-date=2019-05-06}}</ref>
|[[Tonli|Shenzhen Tonli Science and Technology Development Co., Ltd]]
|{{Dts|2019-05-05}}
|130160
Line 347 ⟶ 380:
|-
|ClarinoxBlue<ref>{{Cite web|url=https://launchstudio.bluetooth.com/ListingDetails/RedirectFromQdid/134454|title=QD ID 134454 {{!}} Launch Studio - Listing Details|website=launchstudio.bluetooth.com|access-date=2019-08-27}}</ref>
|
|{{Dts|2019-08-02}}
|134454
Line 356 ⟶ 389:
|{{Dts|2019-08-20}}
|137436
|Profile Subsystem
|-
|Zephyr OS Mesh<ref>{{Cite web|url=https://launchstudio.bluetooth.com/ListingDetails/RedirectFromQdid/139259|title=QD ID 139259{{!}} Launch Studio - Listing Details|website=launchstudio.bluetooth.com|access-date=2020-03-12}}</ref>
|[[The Linux Foundation]]
|{{Dts|2019-09-20}}
|139259
|Profile Subsystem
|-
|WCH Bluetooth Mesh<ref>{{Cite web|url=https://launchstudio.bluetooth.com/ListingDetails/RedirectFromQdid/144808|title=QD ID 144808{{!}} Launch Studio - Listing Details|website=launchstudio.bluetooth.com|access-date=2020-06-01}}</ref>
|Nanjing Qinheng Microelectronics Co., Ltd.
|{{Dts|2020-06-01}}
|144808
|Profile Subsystem
|}
Line 361 ⟶ 406:
=== Free and open-source software implementations ===
[[Free software]] and [[The Open Source Definition|open source software]] implementations include the following:
* The official (included in [[Linux kernel]] by [[
* [[Bluetooth stack#Apache Mynewt NimBLE|Apache Mynewt NimBLE]], free-licensed under the [[Apache License#Compatibility|Apache License 2.0]],<ref name="mynewt_apache2p0" /> supports Bluetooth Mesh from release version 1.2.0.<ref>{{Cite web|url=https://cwiki.apache.org/confluence/display/MYNEWT/RN-1.2.0|title=RN-1.2.0 - Apache Mynewt - Apache Software Foundation|website=cwiki.apache.org|access-date=2018-07-02}}</ref> It was qualified on {{Start date|2019|07|15}} with QDID 131934.<ref name=":2" />
* [[Bluetooth stack#Zephyr OS Mesh|Zephyr OS Mesh]], free-licensed under the [[Apache License#Compatibility|Apache License 2.0]],<ref name="zephyr_apache2p0" /> supports Bluetooth Mesh from release version 1.9.0.<ref>{{Cite web|url=https://docs.zephyrproject.org/latest/releases/release-notes-1.9.html#zephyr-kernel-1-9-0|title=Release Notes Zephyr Kernel 1.9.0|website=docs.zephyrproject.org|access-date=2020-03-21}}</ref> Zephyr OS Mesh 1.14.x was qualified on {{Start date|2019|09|20}} with QDID 139259.<ref name=":2" />
== See also ==
* [[Cabir (computer worm)]]
* [[BlackArch]]
* [[Bluejacking]]
* [[Bluebugging]]
* [[Bluesnarfing]]
* [[AirDrop]]
== References ==
{{Reflist|refs=
<ref name="bluez_SIGqualified">{{cite web | title = Qualified Product Detail | website= [[Bluetooth Special Interest Group|Bluetooth SIG]] | url = https://www.bluetooth.org/qualweb/ProductDetails.cfm?ProductID=2379 |
<ref name="mynewt_apache2p0">{{cite web | title = apache/mynewt-core/LICENSE | website= [[GitHub]] |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}}</ref>
<ref name="
<ref name="bluez_GPL">{{cite web | title =index : bluez.git – Bluetooth protocol stack for Linux – Marcel Holtmann | website= [[kernel.org]] |year = 1991 | url = https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/COPYING |
<ref name="bluez_LGPL">{{cite web | title = index : bluez.git – Bluetooth protocol stack for Linux – Marcel Holtmann | website= [[kernel.org]] | year = 1999 | url = https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/COPYING.LIB |
}}
Line 379 ⟶ 435:
[[Category:Bluetooth]]
[[Category:Open standards]]
[[Category:Mesh networking]]
|