点击上方[物联网思考],点击关注,第一时间查看物联网精彩分享!
1、链路层数据包格式

可以看出PDU(协议数据单元)字段长度在2-257字节之间。
2、数据通道PDU

可以看出,数据通道PUD包含三部分,其中:
Header:包头,2字节;
Payload:数据,变长;
MIC:数据一致性校验,4字节。
3、L2CAP层数据包格式

可以看出,L2CAP层数据包包含三个部分,其中:
Length:长度,2字节;
Channel ID:信道ID,2字节;
Information payload:变长。
4、Attribute Protocol PDU格式

可以看出,Attribute Protocol PDU包含三个部分,如下:
Opcode:操作码,1字节;
Attribute Parameters:ATT参数,变长;
Authentication Signature:身份验证签名,如果有,则是12字节。
5、ATT层完整数据包

所以ATT_MTU最大长度为257-2(Header)-4(MIC)-2(Length)-2(Channel ID)=247。
6、ATT层操作符Handle Value Notification(0x1B)

结合5可以看出,当ATT层操作符为Handle Value Notification(0x1B)时,Attribute Value的最大长度为247-3=244,即每次可以传输的最大字节为244。
7、ATT层操作符Signed Write Command(0xD2)

结合5可以看出,当ATT层操作符为Signed Write Command(0xD2)时,Attribute Value的最大长度为247-12=235,即每次可以传输的最大字节为235。
8、总结
1、ATT_MTU最大长度为257-2(Header)-4(MIC)-2(Length)-2(Channel ID)=247;
2、ATT层不同的操作符,可以传输的用户字节不同。
——————END——————


