Content deleted Content added
Bangbang.S (talk | contribs) add topology and architecture table |
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 |
||
(24 intermediate revisions by 20 users not shown) | |||
Line 1:
{{Short description|Computer mesh networking standard}}
{{Infobox protocol
| 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|website=blog.bluetooth.com|url-status=dead|archive-url=https://web.archive.org/web/20160409092727/http://blog.bluetooth.com/range-limitation-what-range-limitation-introducing-mesh-networks/|archive-date=2016-04-09|access-date=2017-07-06}}</ref> and adopted on {{Start date|2017|07|13}}.<ref>{{Cite web|url=https://www.bluetooth.com/what-is-bluetooth-technology/how-it-works/le-mesh|title=Low Energy: Mesh {{!}} Bluetooth Technology Website|website=www.bluetooth.com|url-status=dead|archive-url=https://web.archive.org/web/20170901202951/https://www.bluetooth.com/what-is-bluetooth-technology/how-it-works/le-mesh|archive-date=2017-09-01|access-date=2017-07-18}}</ref>
== 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 29 ⟶ 36:
Bluetooth Mesh has a layered architecture, with multiple layers as below.
{| class="wikitable"
!Layer
Line 53 ⟶ 59:
|}
==
Nodes that support the various features can be formed into a particular mesh network topology.
{| class="wikitable"
!Feature
!Functionality
|-
Line 67 ⟶ 71:
|-
|Proxy
|help a node supporting the Low Power feature to operate by storing▼
messages destined for those nodes.▼
|-▼
|Low Power▼
|receive and retransmit mesh messages between GATT and
advertising bearers.
|-
▲|Low Power
|Friend▼
|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.
|}
== Theoretical limits ==
Line 156 ⟶ 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 341 ⟶ 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 377 ⟶ 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 403 ⟶ 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 [[Linus Torvalds]] in 2001<ref>{{Cite web|url=http://www.bluez.org/about/history/|title=BlueZ History|date=2019-09-07|website=BlueZ}}</ref>) Linux Bluetooth protocol stack [[BlueZ]], dual free-licensed under the [[GNU General Public License|GPL]]<ref name="bluez_GPL" /> and the [[GNU Lesser General Public License|LGPL]],<ref name="bluez_LGPL" /> supports Mesh Profile, from release version 5.47,<ref>{{Cite web|url=http://www.bluez.org/release-of-bluez-5-47/|title=BlueZ » Blog Archive » Release of BlueZ 5.47|website=www.bluez.org|access-date=2017-10-27}}</ref> by providing meshctl tool (deprecated) to configure mesh devices. Release version 5.53 introduced mesh-cfgclient tool for configuring mesh networks. BlueZ was approved as a "qualified" software package by Bluetooth SIG in 2005.<ref name="bluez_SIGqualified" /> BlueZ is not considered to be a qualified Bluetooth Mesh stack as Bluetooth Mesh is not listed
* [[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 ==
Line 414 ⟶ 425:
<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="zephyr_apache2p0">{{cite web | title = zephyrproject-rtos/zephyr/blob/master/LICENSE | website= [[GitHub]] |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=
<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 | 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}}</ref>
Line 424 ⟶ 435:
[[Category:Bluetooth]]
[[Category:Open standards]]
[[Category:Mesh networking]]
|