透彻理解蓝牙5.0 BLE ATT分析
BLE是传统蓝牙的简化版本,其特点就是低功耗。
在BLE中使用了ATT协议。ATT运行在GATT上,在接触GATT之前,先简单了解一下ATT的相关内容
ATT的主要作用是发现,并且在对端设备上读取属性, ATT主要是作为服务器去暴露一组属性和相关的数值。这些属性和数值可以被客户端发现,读取和写入
ATT中有2个角色,一个是服务器,一个是客户端。服务器暴露属性,客户端访问属性。
客户端可以发送ATT协议请求给服务端,服务器端会响应这个请求。一个设备既可以是服务器端,也可以是客户端。
属性由3部分组成,属性类型(UUID),句柄和一组权限。
属性协议数据单元 Attribute PDU 有6种类型
Commands, Requests, Responses, Notifications, Indications, Confirmations
服务器可以接受并且响应阆中请求, Find Information Request, Read Request.
ATT 使用了序列化的协议,也就是说客户端给服务器端发送一个请求之后,如果没有收到响应的消息,就不会发送下一条请求。
抓取到BLE的btsnoop文件以后,可以使用Front