Currently, the BLE central stack supports up to three simultaneous connections.
In a typical Bluetooth Low Energy system, the peripheral device advertises with specific data letting any central device know that it is a connectable device. This advertisement contains the device address, and can contain some additional data as well, such as the device name.
The peripheral device can request the central device to change the
connection settings by sending a “Connection Parameter Update Request”. This request is handled by the L2CAP layer of the protocol stack.
This request contains four parameters: minimum connection interval, maximum connection interval, slave latency, and timeout.
BLE has a security feature that allows two devices, when pairing,
to give each other a long-term set of security keys. This feature, called bonding, allows the two devices to quickly re-establish encryption and authentication after re-connecting without going
through the full pairing process every time that they connect, as long as they store the long-term key information.
Mandatory GAP Service – This service contains device and access information, such as the device name and vendor and product identification, and is a part of the BLE protocol stack. It
is required for every BLE device as per the BLE specification.
Mandatory GATT Service – This service contains information about the GATT server and is a part of the BLE protocol stack. It is required for every GATT server device as per the BLE specification.
Each characteristic has at least two attributes: the main attribute (0x2803) and a value attribute that actually contains the value.