The Generic Attribute Profile (GATT) establishes how data will be organized and exchanged over a Bluetooth® Low Energy (BLE) connection.
Certain use-case-specific profiles (GATT-Based Profiles) are standardized by the Bluetooth Special Interest Group (SIG):
- Heart Rate Profile
- Proximity Profile
- etc.
GATT uses the Attribute Protocol (ATT) as a transport mechanism, as well as a means of organizing your data into easily transmitted bits or attributes.
GATT defines these and other fundamental operations in a standard, universally understood manner. It's important to understand GATT, since most BLE implementations provide GATT APIs for applications wishing to use this functionality.
Key aspects of GATT include:
GATT Example
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.