上一篇把 ACL 连接建立后的加密换钥、特性探测、时钟偏移一条龙捋完了。但链路建好、加密开好,故事才讲了一半——蓝牙世界里还有一批随时可能插入的操作:角色互换、密钥定时刷新、质量服务协商、为无线共存预留时隙,甚至两边同时开口说话的冲突处理。这些操作平时低调,出问题时却个个都是疑难杂症的主力:重连无声、切换掉线、协商被拒,十有八九能在这里找到病根。
目录
一、角色切换:链路上的权力交接
1.1 为什么要换角色
1.2 双向都能发起,但起手式不同
1.3 真正的交接瞬间:TDD 切换与微微网切换
1.4 加密链路上的角色切换:先熄火、再换道、再点火
1.5 实测log:一次 320 毫秒的无感换位
二、刷新加密密钥:防的不是黑客,是时间
2.1 为什么要刷新
2.2 传统 E0 路径
2.3 Secure Connections 的 AES-CCM 路径
2.4 与角色切换的关系
三、读远程版本:Controller 的缓存小聪明
3.1 规范怎么说
3.2 实测log:一次零空口开销的查询
四、QoS 设置:Host 只管提需求,拍板在空口
4.1 流程
4.2 实测:一次没有空口流量的 QoS 设置
五、时隙可用性掩码:给邻居留座位的艺术
5.1 背景:为什么要在时隙表上做标记
5.2 三步走:配置、同步、换图
六、事务冲突:两边同时开口怎么办
6.1 问题场景
6.2 化解规则
6.3 实测:sniff 的协商与一次被拒
七、全景图:这些操作在链路生命周期的位置
八、测验
这次继续沿着消息序列图往下走,把角色切换、加密密钥刷新、远程版本读取、QoS 设置、时隙可用性掩码、LMP 事务冲突这六组流程串成一个知识体系,并用两份真实抓包(一份主机侧 HCI 日志、一份空口日志)逐条分析——规范里画的是理想路径,日志里跑的是真实世界。
一、角色切换:链路上的权力交接
1.1 为什么要换角色
蓝牙经典的一对一连接里,Central 掌握着绝对的调度权:跳频序列由它的地址和时钟决定,发送时隙也归它先挑。谁当 Central,不是按设备能力分配,而是按谁发起寻呼决定的——手机主动连耳机,手机就是 Central;耳机主动回连手机,耳机反而成了 C