Bluetooth® Low Energy (BLE) data communications are implemented in the Generic Attribute Profile (GATT) layer using the Attribute Protocol (ATT), a simple client/server stateless protocol.
The following GATT role pair is defined:
- Contains the resources (Data) to be monitored
- Organized as an Attribute Database
- Receives requests from a client and sends responses back
- Typically associated with the Link Layer Slave and GAP Peripheral device roles
- Inquires about the presence and nature of the attributes on a server
- Performs Service Discovery
- Sends requests to a server and receives responses
- Typically associated with the Link Layer Master and GAP Central device roles
If a client request is still pending, no further requests can be sent until the response is received and processed.
The following depicts a GATT Server having two services (one Public, one Private), with a GATT Client executing several GATT operations to read/write the data (characteristics) in those services.