如何找出蓝牙低功耗(BLE)中MTU与最大特征尺寸之间的关系?BLE:MTU与最大特征尺寸之间的关系?
我有一个运行'echo'程序的BLE开发板 - 所以无论它收到了什么,它都会立即回复。
在我的Android设备上,如果我请求一个247字节(成功)的MTU,然后写入247字节的特征,它将作为两个数据包发送:一个包含242个字节,另一个包含5个字节。任何尝试写入超过244个字节的特征都会产生2个数据包 - 第一个包含242个字节,第二个包含其余字节。不知道为什么第一个数据包是242个字节长而不是244个,但它在那里。
如果我要求一个100字节的MTU,则会发生同样的事情,但当特征长度超过97个字节时,数据包会被拆分,而第一个数据包总是95个字节长。
所以看起来很清楚,在这个特定的Android设备上,最大数据包长度比MTU值短3个字节。我已经看到网页在iOS上谈论MTU,其中数据包长度比MTU值短3个字节。
我保证在所有移动设备和所有BLE实现中,MTU和最大特征长度之间的差异将是3个字节?
奈斯利把周华健,只需添加上:架空的有效载荷是写特性(3字节)和读特性(1字节)不同。 –