Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Smart Bluetooth: GATT Vs. ATT - what are the differences between them?

Can anyone please define for me what are the differences between GATT and ATT? I didn't manage to understand.
I know that they are both generic protocol to handle BLE services. but didn't really understand it. Please explain.
Thanks!

like image 560
RRR Avatar asked Mar 01 '15 11:03

RRR


People also ask

What Does GATT Mean Bluetooth?

GATT is an acronym for the Generic ATTribute Profile, and it defines the way that two Bluetooth Low Energy devices transfer data back and forth using concepts called Services and Characteristics.

What is ATT in Bluetooth?

Attribute Protocol (ATT) is a protocol in the Bluetooth Low Energy (BLE) protocol stack. It defines how data is represented in a BLE server database and the methods by which that data can be read or written. For example, a fitness tracker gathers data about your steps and heart rate.

What is GATT device?

A GATT Server is a device which stores attribute data locally and provides data access methods to a remote GATT Client paired via BLE. A GATT Client is a device which accesses data on a remote GATT Server, paired via BLE, using read, write, notify, or indicate operations.

What is the difference between GATT and Gap?

It is important to differentiate between GAP and GATT. GAP defines the general topology of the BLE network stack. GATT describes in detail how attributes (data) are transferred once devices have a dedicated connection.


2 Answers

You can find the Bluetooth specifications here: Specification Adopted Documents

Check out Core Version 4.2, Specification Volume 3 - Core System Package [Host Volume]. ATT is defined in Part F, and GATT in Part G.

ATT (page 2160): "This specification defines the Attribute Protocol; a protocol for discovering, reading, and writing attributes on a peer device."

GATT (page 2207): "This specification defines the Generic Attribute Profile that describes a service framework using the Attribute Protocol for discovering services, and for reading and writing characteristic values on a peer device."

So yes, GATT uses ATT as its transport protocol to exchange data between devices, and the spec describes in detail how each of these protocols are defined. Most application developers are mostly concerned with GATT, which is also used to define the API for some BLE libraries.

like image 58
MikeV Avatar answered Sep 20 '22 15:09

MikeV


ATT is a much lower level mechanism that basically defines how to transfer a unit of data (an attribute). GATT is built on top of ATT and defines how higher level services are composed and the framework for operating on those services.

like image 43
kaylum Avatar answered Sep 19 '22 15:09

kaylum