Skip to content
阅读进度

BLE 为什么要分包 MTU 是不是固定 20 字节? ​

返回 网络与设备通信 目录

标准回答 ​

不是固定 20 字节。常见默认 ATT MTU 为 23,普通写入或通知的 ATT 开销常为 3 字节,因此常见有效载荷为 20;协商更大 MTU 后可增加,但仍受具体操作、属性长度和设备实现等限制。

机制解释 ​

以实际协商结果和协议上限决定分包大小,不要根据 requestMtu 的入参直接假定成功。Android 14 起首次 GATT 客户端请求 MTU 时有请求 517 及后续请求处理的行为变化,但不表示所有设备都实际协商到 517,也不表示任意 514 字节业务包都能发送。(BluetoothGatt API)

延伸追问 ​

应用层如何分包?可定义消息序号、分片编号、总长度与校验信息,接收端有界缓存并设组包超时。丢包、重传和去重要按可靠性需求实现;CRC 主要检测错误,不提供身份认证。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。