news 2026/7/13 14:47:25

【蓝牙精品系列文档】【02_gatt进阶】01_ATT协议详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【蓝牙精品系列文档】【02_gatt进阶】01_ATT协议详解

ATT 协议详解

核心概念

ATT(Attribute Protocol)是 BLE 数据访问的基础协议,采用 Client-Server 模型。Server 暴露属性(Attribute),Client 通过 ATT PDU 读写这些属性。

Attribute(属性)

每个属性由 4 个要素组成:

┌──────────────┬──────────────┬──────────────┬──────────────┐ │ Handle: 2B │ Type: 2/16B │ Value: ≤512B │ Permissions │ │ 属性句柄 │ 属性类型(UUID)│ 属性值 │ 权限 │ └──────────────┴──────────────┴──────────────┴──────────────┘ Handle: 0x0001 ~ 0xFFFF,Server 中按递增顺序排列 Type: 16-bit 或 128-bit UUID,标识属性含义 Value: 0 ~ 512 字节 Permissions: Read / Write / Notify / Indicate + 认证/加密要求 在 ATT 层属性表中:Permissions = 1 字节(8 bits)标准 ATT/GATT 里,权限是一个 uint8(1 字节) 的位域: 每一位代表一种权限(读、写、加密、认证等) 常见位定义(不同芯片 SDK 会一致): bit0:Read bit1:Write bit2:Read Auth bit3:Write Auth bit4:Read Encrypt bit5:Write Encrypt ……

一、整体前置认知

这是BLE GATT 层的基础单元:Attribute(属性),整个蓝牙设备的服务、特征值、描述符,本质全是一个个 Attribute。

每一条属性固定由句柄、类型、值、权限4 部分构成,是 BLE 数据交互的最小载体。


二、逐个要素详解

1. Handle(属性句柄)—— 2 字节(2B)

核心作用

属性的唯一编号 / 地址,主机(手机 / APP)靠这个编号定位要操作哪一条属性。

  • 长度:固定 2 字节,取值范围0x0001 ~ 0xFFFF(总共 65535 个可用句柄)
  • 规则:设备端(Server 从机)内部严格按从小到大递增排列,不会乱序、不会重复。
  • 举例:
    0x0001 = 第一条属性、0x0002 = 第二条…… 主机读写数据时,直接发「句柄 + 指令」,设备就能精准找到对应属性。

类比:一栋楼里的房间门牌号,找房间就看门牌号。

2. Type(属性类型)—— 2 字节 或 16 字节(2B / 16B UUID)

核心作用

定义这个属性 “是干什么的”,用 UUID 区分属性身份、功能、类别。

分两种格式:

  1. 16-bit UUID(2 字节)
    蓝牙协议预定义的标准通用属性,全网统一、大家都认识。
    例:
  • 0x2800:主服务
  • 0x2803:特征值声明
  • 0x2A00:设备名称
  • 0x2A19:电池电量
  1. 128-bit UUID(16 字节)
    厂商自定义私有属性,标准蓝牙没有定义,用于厂商私有功能、自定义数据通道。
    长度更长,保证全球不重复。

类比:门牌号对应房间用途标签(卧室 / 厨房 / 储物间),标签决定房间能干什么。

3. Value(属性值)—— 最长 512 字节

核心作用

属性真正存储的业务数据,也是蓝牙收发的有效载荷。

  • 长度范围:0 ~ 512 字节(BLE 单条属性值上限)
  • 内容:可以是字符串、传感器数据、指令、状态、二进制数据流等。
  • 特点:主机就是取这个值,就是修改这个值。

类比:房间里存放的东西,是最终要读写的内容。

4. Permissions(权限)—— 访问控制规则

核心作用

规定谁能对这个属性做什么操作、需不需要加密 / 认证,是安全 + 访问限制规则。

分为两大块:操作权限+安全权限


(1)基础操作权限(4 种标准动作)

  1. Read 读
    允许主机读取当前属性的 Value 值。
  2. Write 写
    允许主机向属性写入新的 Value 值。
  3. Notify 通知
    从机(Server)主动上报数据给主机,无需主机主动读,数据变化就推送。
  • 特点:无应答,速度快,常用在传感器实时上报。
  1. Indicate 指示
    和 Notify 类似,也是从机主动推数据,但主机必须回复应答,可靠性更高。

简单区分:

Notify = 发消息不用对方回执;

Indicate = 发消息必须等对方确认收到。

(2)安全附加要求(认证 / 加密)

搭配上面 4 种操作使用,做安全加固:

  • 加密(Encrypted):读写 / 推送该属性时,连接必须开启蓝牙加密,明文不传输。
  • 认证(Authenticated):除加密外,还需要设备配对、身份鉴权(绑定设备),安全等级更高。

权限组合举例

  • 仅 Read:只能读,不能写、不能推送
  • Read + Write:可读写,普通数据通道
  • Notify + 加密:仅允许加密连接下主动推送数据
  • Indicate + 认证:高安全级别的主动上报(如密码、
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 14:45:35

跨平台QQ数据库解密:逆向分析工具完整教程

跨平台QQ数据库解密:逆向分析工具完整教程 【免费下载链接】qq-win-db-key 全平台 QQ 聊天数据库解密 项目地址: https://gitcode.com/gh_mirrors/qq/qq-win-db-key 在数字时代,聊天记录承载着珍贵的回忆与重要信息。QQ作为国内主流即时通讯工具&…

作者头像 李华
网站建设 2026/7/13 14:43:24

DevSecOps 安全左移:把安全嵌入每一个决策点的工程实践

DevSecOps 安全左移:把安全嵌入每一个决策点的工程实践 引言 “安全不是功能,安全是质量属性。将安全检查推迟到上线前,就像在汽车下线时才检查刹车一样危险。”——NIST SP 800-218 在现代软件工程中,安全漏洞的代价正在以指数级…

作者头像 李华
网站建设 2026/7/13 14:42:24

LongCat-2.0革命性突破:美团1.6万亿参数MoE大模型完全指南

LongCat-2.0革命性突破:美团1.6万亿参数MoE大模型完全指南 在人工智能领域,大模型技术正在以前所未有的速度发展。今天,我们要深入探讨美团推出的LongCat-2.0——这款拥有1.6万亿参数的MoE(Mixture of Experts)大模型…

作者头像 李华
网站建设 2026/7/13 14:41:35

ConfigOrchestrator与YUI集成教程:构建现代化系统管理界面

ConfigOrchestrator与YUI集成教程:构建现代化系统管理界面 【免费下载链接】ConfigOrchestrator Multi-view system config framework 项目地址: https://gitcode.com/openeuler/ConfigOrchestrator 前往项目官网免费下载:https://ar.openeuler.o…

作者头像 李华