0%

最大包长的变化

版本 ATT MTU
4.0 - 4.1 23
4.2 - 5.0 247
5.1 - 5.2 248

为什么不一开始就定义更大的 ATT MTU 呢,因为数据包越长则射频电路发热越严重进而导致频偏,ATT MTU 是根据当时的芯片工艺和成本来制定的。

以 4.2 为例,其 Linker Layer packet 格式如下:

其中 PDU 格式如下:

其中 Payload 就是 L2CAP,格式如下:

其中 Information payload 就是 ATT MTU,最大为

1
257 (LL PDU) - 6 (Data Channel PDU Header + MIC) - 4 (L2CAP header) = 247

需要注意的是,虽然 4.0 的 Link Layer packet 中 PDU 最长为 39,按照上述计算应该是 39 - 6 - 4 = 29,但实际上是 23。

因为 Advertising Channel PDU 最长为 39,包含了 6 字节的 Advertising address,而 Data Channel PDU 最长为 39 - 6 = 33。

坚持原创技术分享,您的支持将鼓励我继续创作!