gpt4 book ai didi

android - BLE 4.0/4.1 支持Android 64字节数据传输

转载 作者:行者123 更新时间:2023-11-29 11:27:05 26 4
gpt4 key购买 nike

我们有一些具有 BT 栈 4.0 和 4.1 的安卓设备。按照理论上,4.0 和 4.1 仅支持 23 (20 +3) 字节的数据传输。而 BT 堆栈 4.2 和 5.0 支持高达 251 字节 MTU 的数据传输。

但在我们的应用程序中,我们要求 MTU 大小为 64 字节并且它工作正常。我们能够发送和接收这种大小的数据。我们能够连续发送 500-700 个 64 字节的数据包。

有没有人知道为什么它的工作方式不同?或者它只是一些以这种方式工作的安卓设备?

我们希望淘汰不支持我们应用程序的设备。

最佳答案

您对此处的术语感到困惑。根据规范,自蓝牙 4.0 以来的所有 BLE 版本的最大可能 MTU 为 64 KB,尽管 Android 将其限制为 517 以适用于 GATT。

BLE 4.2 中添加的新功能是“LE 数据包长度扩展”,它是链路层的增强功能,可将空中最大数据包长度从 27 字节增加到 251 字节,这不会影响主机以任何方式分层。如果主机发送的数据包大于链路层可以处理的数据包,它会被发送方堆栈自动分段并在接收方重新组装。

因此,无论链路层功能如何,您的 Android 应用程序都可以正常工作。您唯一应该关心的是远程应用程序是否支持您所需的 64 MTU。

更新

Bluetooth Core v4.0 规范第 6 卷 B 部分第 2.4 节:

LLID 字段有两个不同的值用于开始和继续 fragment 。

10b = LL Data PDU: Start of an L2CAP message or a complete L2CAP message with no fragmentation.
01b = LL Data PDU: Continuation fragment of an L2CAP message, or an Empty PDU.

当主机数据包大于链路层可以处理时(通常为 27 或 251 字节,使用 LE 数据长度扩展),继续较早数据包的功能很重要。这就是当无线数据包从不超过 27 字节时,您可以获得例如 517 的 MTU。

有关 L2CAP 分段和重组的更多信息,请参阅蓝牙核心规范第 3 卷第 A 部分第 7.2 节。

关于android - BLE 4.0/4.1 支持Android 64字节数据传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57692226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com