点击上方[物联网思考],点击关注,第一时间查看物联网精彩分享!
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——————