Content deleted Content added
Misleading acronym lead to incorrect interpretation of 'ACL', fixed following the official Bluetooth documentation's definitions |
|||
(250 intermediate revisions by more than 100 users not shown) | |||
Line 1:
{{Short description|none}}
'''[[Bluetooth]]''' uses a variety of '''[[protocol (computing)|protocol]]s'''. Core protocols are defined by the trade organization [[Bluetooth SIG]]. Additional protocols have been adopted from other standards bodies. This article gives an overview of the core protocols and those adopted protocols that are widely used.▼
{{More citations needed|date=March 2012}}
[[File:BluetoothLogo.svg|thumb|right]]
▲
The
== Controller stack ==
=== [[Asynchronous
The normal type of radio link used for general data packets using a polling [[Time division multiple access|TDMA]] scheme to
* length (1, 3, or 5 time slots depending on required payload size)
*
* modulation (
A connection must be explicitly set up and accepted between two devices before packets can be transferred.
ACL packets are retransmitted automatically if unacknowledged, allowing for correction of a radio link that is subject to interference. For [[isochronous]] data, the number of retransmissions can be limited by a flush timeout; but without using
ACL links are disconnected if there is nothing received for the supervision timeout period; the default timeout is 20 seconds, but this may be modified by the master.
=== Synchronous
The type of radio link used for voice data.
=== Link
Used for control of the radio link between two devices, mobile dmv, querying device abilities and power control. Implemented on the controller.
=== Host
There are several HCI transport layer standards, each using a different hardware interface to transfer the same command, event and data packets.
In Bluetooth devices with simple functionality (e.g., headsets), the host stack and controller can be implemented on the same microprocessor. In this case the HCI is optional, although often implemented as an internal software interface.
=== Low Energy Link Layer (LE LL){{anchor|LELL}} ===
This is the LMP equivalent for [[Bluetooth Low Energy]] (LE), but is simpler. It is implemented on the controller and manages advertisement, scanning, connection and security from a low-level, close to the hardware point of view from '''Bluetooth perspective.'''
== Host stack ==
=== Logical link control and adaptation protocol (L2CAP){{anchor|L2CAP}} === '''L2CAP''' is used within the Bluetooth protocol stack. It passes packets to either the Host Controller Interface (HCI) or, on a hostless system, directly to the Link Manager/ACL link.
L2CAP's functions include:
Line 45 ⟶ 51:
L2CAP is used to communicate over the host ACL link. Its connection is established after the ACL link has been set up.
In basic mode, L2CAP provides packets with a payload configurable up to 64 kB, with 672 bytes as the default MTU, and 48 bytes as the minimum mandatory supported MTU. In retransmission and flow control modes, L2CAP can be configured for reliable or
The EL2CAP specification adds an additional ''enhanced retransmission mode'' (ERTM) to the core specification, which is an improved version of retransmission and flow control modes. ERTM is required when using an AMP (Alternate MAC/PHY), such as 802.11abgn.
=== Bluetooth network encapsulation protocol (BNEP){{anchor|BNEP}} ===
'''BNEP'''<ref>https://www.bluetooth.com/specifications/specs/bluetooth-network-encapsulation-protocol-1-0/ {{Bare URL PDF|date=March 2022}}</ref> is used for delivering network packets on top of L2CAP. This protocol is used by the ''personal area networking (PAN)'' profile. BNEP performs a similar function to [[Subnetwork Access Protocol]] (SNAP) in Wireless LAN.
In the protocol stack, BNEP is bound to L2CAP.
=== Radio frequency communication (
The Bluetooth protocol
Many Bluetooth applications use
In the protocol stack,
=== Service discovery protocol (SDP){{anchor|SDP}} ===
Used to allow devices to discover what services each other support, and what parameters to use to connect to them. For example, when connecting a mobile phone to a Bluetooth headset, SDP will be used to determine which [[Bluetooth profile]]s are supported by the headset (''[[
▲Used to allow devices to discover what services each other support, and what parameters to use to connect to them. For example, when connecting a mobile phone to a Bluetooth headset, SDP will be used to determine which [[Bluetooth profile]]s are supported by the headset (''[[Bluetooth_profile#Headset_Profile_.28HSP.29|headset profile]]'', ''[[Bluetooth_profile#Hands-Free_Profile_.28HFP.29|hands free profile]]'', ''[[Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29|advanced audio distribution profile]]'', etc.) and the protocol multiplexor settings needed to connect to each of them. Each service is identified by a [[Universally Unique Identifier]] (UUID), with official services (Bluetooth profiles) assigned a short form UUID (16 bits rather than the full 128)
In the protocol stack, SDP is bound to L2CAP.
=== Telephony control protocol (
Also referred to as ''telephony control protocol specification binary'' (TCS binary)
Used to
In the protocol stack, TCP is bound to L2CAP.▼
Used by the remote control profile to transfer [[AV/C]] commands over an L2CAP channel. The music control buttons on a stereo headset use this protocol to control the music player.▼
▲Used by the remote control profile to transfer [[AV/C]] commands over an L2CAP channel. The music control buttons on a stereo headset use this protocol to control the music player
=== Audio/video data transport protocol (AVDTP){{anchor|AVDTP}} ===
In the protocol stack, AVCTP is bound to L2CAP▼
▲=== Audio/visual data transport protocol (AVDTP) ===
Used by the advanced audio distribution profile to stream music to stereo headsets over an L2CAP channel. Intended to be used by video distribution profile.
In the protocol stack, AVDTP is bound to L2CAP.
=== Object exchange (OBEX){{anchor|OBEX}} ===
{{
''Object exchange'' (OBEX; also termed ''IrOBEX'') is a communications protocol that facilitates the exchange of binary objects between devices. It is maintained by the [[Infrared Data Association]] but has also been adopted by the [[Bluetooth Special Interest Group]] and the [[SyncML]] wing of the [[Open Mobile Alliance]] (OMA).
In Bluetooth, OBEX is used for many profiles that require simple data exchange (e.g., object push, file transfer, basic imaging, basic printing, phonebook access, etc.).
=== Low Energy Attribute Protocol (ATT){{anchor|ATT}} ===
Similar in scope to SDP but specially adapted and simplified for Low Energy Bluetooth. It allows a client to read and/or write certain attributes exposed by the server in a non-complex, low-power friendly manner.
=== Low Energy Security Manager Protocol (SMP){{anchor|SMP}} ===
This is used by Bluetooth Low Energy implementations for pairing and transport specific key distribution.
== References ==
{{Reflist}}
== External links ==
*[https://web.archive.org/web/20100225214851/http://www.bluetooth.com/Bluetooth/Technology/Works/Data_Transport_Architecture.htm Bluetooth.com - Data Transport Architecture]
*
*[https://www.bluetooth.com/specifications/specs/ Bluetooth Specifications directory]
▲*[http://developers.sun.com/mobility/midp/articles/bluetooth1/ Bluetooth protocol stack overview with diagram (halfway the page)]
[[Category:Bluetooth]]
[[Category:Lists of network protocols|Bluetooth]]
|