蓝牙协议栈架构概述

来源:鉴源实验室
2025-12-16
2226

01

引 言

蓝牙协议自1999年诞生以来,经过多个版本的演进,功能不断完善,已经成为全球范围内最重要的短距离无线通信标准之一,其广泛应用于消费电子、物联网、汽车电子及医疗设备等领域,例如手机、音响、车载娱乐系统等。

1.png

蓝牙协议栈由蓝牙技术联盟(SIG)制定,通过精心设计的层次化结构,系统性地定义了从物理层射频信号处理到应用层数据交互的完整通信流程。本文主要基于蓝牙协议5.2版本对蓝牙协议栈的架构进行分析介绍,蓝牙核心系统采用“主机+控制器”的灵活架构,分为主机子系统(Host)和控制器子系统(Controller),二者之间一般通过标准化的主机控制器接口协议(HCI)进行通信。

02

蓝牙架构与设计

蓝牙协议4.0 版本之后,为更好地匹配物联网、音频设备等多样化场景对功耗与传输速率的不同要求,蓝牙技术逐渐演进为两大分支:经典蓝牙(BR/EDR)和低功耗蓝牙(BLE),经典蓝牙(BR/EDR)支持较高数据速率,适合音频传输等大流量场景;低功耗蓝牙(LE)则专注于极低功耗与低成本,适用于物联网、穿戴设备等对电量敏感的应用。在这一背景下,蓝牙的硬件架构也逐步形成了单模与双模两种形态。单模设备仅支持低功耗蓝牙(BLE)或经典蓝牙(BR/EDR)中的一种,而双模设备则可同时集成两类控制器,兼顾高速与低功耗,真正实现“一机多用”,灵活适配复杂应用场景。

2.png

蓝牙协议栈如下图所示,涵盖了经典蓝牙和低功耗蓝牙,其划分为了三大模块,控制器子系统(Controller),主机控制器接口(HCI),主机子系统(Host)。

控制器子系统是蓝牙协议栈的硬件底层核心,直接负责射频信号的收发与最基础的链路控制,包括了射频信号的调制解调、跳频、链路管理以及数据包的空中收发,其设计直接决定了设备的无线通信性能、功耗及抗干扰能力。

主机控制器接口则是对控制器子系统和主机子系统之间的交互信息和格式进行标准化。

主机子系统是蓝牙协议栈的智慧中枢,运行于设备的主处理器上,承载着协议栈中大多数的逻辑处理与决策功能。它通过HCI向下控制射频硬件,并为上层应用提供丰富的接口。

3.png

2.1 控制器子系统

控制器子系统作为蓝牙功能的硬件核心,位于协议栈底层,直接管理无线射频链路及基础连接控制。控制器子系统包含了物理层(PHY),链路层(LL),链路层链路管理协议(LMP),链路层控制协议(LLCP),物理层(PHY)收发无线电波,完成数模转换,链路层(LL)构建链路、管理调频与数据流,链路管理协议(LMP)和链路层控制协议(LLCP)分别基于经典和低功耗模式,精细化控制链路安全、功耗与行为。

1)物理层(PHY)

物理层是蓝牙通信的硬件基础,直接控制射频芯片与天线,实现数字信号与无线电波之间的转换,其主要功能包括:

调制解调:采用高斯频移键控(GFSK)等调制方式,将数字比特流转换为射频信号发射,并解调接收到的信号还原为数据。

频道与信道管理:工作在2.4 GHz ISM频段(2402–2480 MHz)。经典蓝牙使用79个物理信道,低功耗蓝牙(BLE)使用40个信道,通过自适应跳频(AFH)实时检测并避开干扰信道,提升抗干扰能力。

多模式调制支持(BLE)

· LE 1M PHY:默认模式,1 Mb/s速率,兼容性强。

· LE 2M PHY:速率提升至2 Mb/s,降低传输时长与功耗。

· LE Coded PHY:通过前向纠错编码提升接收灵敏度,支持远距离通信(4倍距离),速率降至125/500 Kb/s。

功耗与信号控制:动态调整发射功率,优化能耗,检测接收信号强度。

2)链路层(LL)

链路层是连接物理层与上层协议的枢纽,负责管理设备间的逻辑通信链路,其主要功能包括:

帧构建与校验:将上层数据封装为帧结构,添加地址、类型、校验码(CRC),确保数据完整性。

设备发现与连接控制

· 广播与扫描(低功耗蓝牙):管理广播信道,处理广播报文(设备发现)与扫描请求。

· 寻呼与查询(经典蓝牙):执行设备发现与连接初始化。

连接管理与优化

· 跳频同步:主导设备间按序列同步切换信道,规避干扰。

· 时序管理:控制连接间隔、监督超时等参数,平衡实时性与功耗。

· 应答与重传:通过确认机制保证帧可靠传输,失败时自动重发。

低功耗策略:设计休眠/唤醒时序,使设备在空闲时深度休眠,实现低功耗蓝牙的超低功耗特性。

3)链路层链路管理协议(LMP)

链路层链路管理协议是经典蓝牙独有的控制协议,负责管理已建立连接的链路,其主要功能包括:

链路建立与安全:负责配对、身份验证和加密的整个过程。

链路配置与管理:协商连接参数,如主从设备角色切换、调整发射功率以节省电量等。

链路维护与控制:管理连接的保持、休眠、呼吸模式,保证服务质量。

逻辑传输管理:管理用于同步面向连接(SCO/eSCO,主要用于音频)和异步连接(ACL,主要用于数据)的不同逻辑通道。

4)链路层控制协议(LLCP)

链路层控制协议是低功耗蓝牙的控制协议。它的设计理念与链路层链路管理协议完全不同,更加轻量、高效和快速,以满足物联网设备极低功耗的需求,其主要功能包括:

连接控制:管理连接的建立、更新(如连接间隔更新)和终止。

链路特性管理:处理加密启动、频道映射更新等功能。

连接参数更新请求:从设备可以主动向主设备请求更改连接参数(如间隔、延迟等),以优化功耗或吞吐量。

信道选择算法:控制使用哪个射频信道进行通信。

2.2 主机控制器接口(HCI)

HCI并非一个具体的硬件层,而是一个至关重要的标准接口协议。它为主机与控制器之间提供了一条双向的命令与数据通道,是实现主机-控制器分离架构的关键。HCI严格定义以下几种类型的数据包[2]:

· HCI命令包: 由主机发送至控制器,用于查询或控制控制器状态(如发起连接命令)。

·HCI事件包: 由控制器发送至主机,用于报告状态或确认命令执行结果(如连接完成事件)。

· HCI ACL数据包: 负责在主机和控制器之间双向传输上层的应用数据。

· HCI SCO数据包:用于双向传输实时语音数据的“高速专车”,主要用于经典蓝牙的语音传输,它为同步语音流保留固定带宽,以保障通话的低延迟,但通常不进行错误重传,而是优先保证流畅性。主要用于经典蓝牙的耳机通话。

· HCI ISO数据包:这是为新一代LE Audio核心功能设计的“定时精准的列车”。它支持多设备同步接收音频流,是实现蓝牙音频共享、多声道音频等高附加值功能的基础,提供了比SCO更强大、更灵活的同步数据传输能力。

这些数据包可以通过多种物理传输方式进行传输,最常见的包括UART(串口,成本低)、USB(高速、即插即用)和SDIO(常用于嵌入式设备),其在设计时需通过相应的传输层驱动进行适配[3]。

2.3 主机子系统

主机子系统包括了逻辑链路控制与适配协议(L2CAP),安全管理协议(SMP),属性协议(ATT),通用属性配置文件(GATT),通用访问配置文件(GAP),协议与配置文件间相互协作,构筑了蓝牙设备实现互联互通、服务发现与安全通信的高级能力,支撑起从音频传输到物联网感知的广泛应用生态。

1)核心基础协议与配置文件

· 逻辑链路控制与适配协议(L2CAP)

L2CAP层位于主机子系统的底层,充当承上启下的"交通枢纽"角色。其核心功能包括三个方面:一是协议复用,通过不同的信道标识符(CID)来区分上层多个协议或应用的数据流;二是数据包分段与重组,将大的上层数据包分割成适合链路层传输的片段并在接收端重新组装;三是数据信道管理,管理面向连接的信道(基于CID寻址)和无连接信道(使用协议/服务复用器PSM注册寻址)。

· 通用访问配置文件(GAP)

GAP是蓝牙设备对外交互的"总章程",定义了设备角色(Broadcaster、Observer、Peripheral和Central)、发现流程(可发现模式)、连接流程(可连接模式)以及广播数据格式(包含设备名称、服务UUID等关键信息)。

2)低功耗蓝牙(BLE)

· 安全管理协议(SMP)

安全管理协议是低功耗蓝牙通信的安全基石,管理着配对、绑定和加密的全过程。其安全流程包括配对建立共享密钥、绑定持久化存储密钥、使用LTK进行加密从而建立安全通信。在安全算法方面,支持LE Secure Connections(基于ECDH算法)和多种关联模型(Numeric Comparison、Passkey Entry、Just Works、OOB)以适应不同应用场景。

· 属性协议(ATT)与通用属性配置文件(GATT)

ATT采用客户端-服务器(C/S)模型,将数据抽象为属性(Attribute)单元,每个属性包含句柄(Handle)、类型(Type)、值(Value)和权限(Permissions)。它定义了一套精简的操作协议,如查找信息、读请求、写请求、通知和指示。

GATT构建在ATT之上,规定了属性数据的组织方式与结构,采用层次化的数据模型:服务(Service)是完成特定功能的数据集合,由主服务声明开启;特征(Characteristic)是服务中的单个数据值及其关联信息,是实际交互的基本单元;描述符(Descriptor)提供特征值的附加定义、配置或信息。这种清晰的层级结构使得不同设备间的数据交互具备了极强的语义一致性和互操作性。

3) 经典蓝牙(BR/EDR)

· 服务发现协议(SDP)

作为经典蓝牙中服务发现的核心机制,SDP用于查询对端设备提供的服务及其特性,包括服务类别、协议栈信息、服务属性等。它采用客户端-服务器架构,客户端通过SDP查询可发现服务器端提供的服务记录及其属性。

4.png

· 应用配置文件架构

经典蓝牙主要依赖配置文件(Profile)来定义应用层功能,一个Profile本质上是一份详细的合作协议,它精确定义了为了完成某种特定任务,设备之间应如何调用底层协议栈的各项能力。

常见的经典蓝牙配置文件(Profile)举例:

5.png

03

总 结

蓝牙协议栈凭借其高度结构化、模块化的分层设计,成功构建了一个适应性强且可扩展的通信框架,完美适配了从高速数据传感到低功耗物联网的广泛场景。其通过LE AudioMesh网络等技术的持续演进,不仅展现了强大的向后兼容性,更体现了该标准不断融入前沿技术创新以满足未来多样化应用需求的核心能力,巩固了其在短距离无线通信领域的基石地位。随着蓝牙技术应用范围的不断扩大,其协议栈的安全性也显得尤为关键。

上海控安针对工业控制系统通信网络中普遍存在的网络安全风险与潜在漏洞,自主研发了SmartRocket TestSec自动化智能模糊渗透测试平台。该产品基于黑盒测试技术,面向工控软件生态实现全栈覆盖能力,可对协议栈、业务应用、数据库及操作系统内核等关键层级实施深度安全检测。

在功能架构上,TestSec创新性地融合了动态模糊测试(Fuzzing)与渗透攻击模拟双引擎。TestSec搭载智能变异引擎,支持对蓝牙HCI、L2CAP、SDP、SMP、PBAP等多个协议进行模糊测试,以SDP协议为例:

(1)协议结构解构:针对SDP协议多种报文格式进行字段级变异模糊测试。

(2)深度监控体系:集成流量监控、内存状态追踪和异常行为感知模块,构建侵入式/非侵入式监控套件监测网络。

(3)智能反馈机制:实时采集被测对象的响应数据,动态分析系统状态并评估测试效果,据此智能优化模糊报文生成策略。

6.png

此外工具也支持对蓝牙进行渗透攻击,包括重放攻击、篡改攻击、低功耗蓝牙中间人攻击等常见蓝牙网络攻击,用户也可根据自身需求,结合工具的基础接口开发自定义用例。

7.png

通过构建从软件行为层到协议逻辑层的立体化测试矩阵,SmartRocket TestSec自动化智能模糊渗透测试平台可对目标网络进行全生命周期的安全测试,保障运行环境的稳定性,有效提高系统抗攻击能力。

文中术语表

8.png

参考文献:

1. 赵义玲.基于低功耗蓝牙的工业物联网移动开发研究与设计[D].齐鲁工业大学,2025.DOI:10.27278/d.cnki.gsdqc.2025.000291.

2. 李想.蓝牙协议栈的设计与实现[D].西安电子科技大学,2007.

3. 梁军学,郁滨.Linux蓝牙协议栈的USB设备驱动[J].计算机工程,2008,(09):273-275.





阅读原文

收藏
点赞
2000