在蓝牙中,我将发送一个分为3个数据包(p1、p2、p3)的大文件。每个数据包都具有最大ATT有效负载。
我的问题是,在一个连接间隔内,会有一个主从请求,然后从会以每两个包(M -> S,IFPS,S->M(p1),IFPS,S->M(p2),IFPS,S->M(p3))之间的帧间间隔一个接一个地发送文件的所有数据包。
或者是(M -> S,IFPS,S -> M(p1),IFPS,M -> S,IFPS,S->M(p2),IFPS,M-> S,IFPS,S->M(p3),IFPS)?
发布于 2021-06-01 16:15:47
在蓝牙低能耗模式下,连接中的每个数据包都会得到确认。这在蓝牙规范v5.2第1卷A部分3.1.3.2节(LE可靠性)中提到:
像BR/EDR这样的
,在恶劣的射频环境中,LE系统应该被认为本质上是不可靠的。为了抵消这一点,系统在每一层提供了不同级别的保护。LL分组使用24位循环冗余错误校验(CRC)来覆盖分组有效载荷的内容。如果数据包有效负载上的CRC验证失败,则接收方不会确认该数据包,而发送方会重新传输该数据包。
因此,如果在您提供的两个示例中选择一个,则更准确的一个将是:-
(M -> S,IFPS,S -> M(p1),IFPS,M -> S,IFPS,S->M(p2),IFPS,M-> S,IFPS,S->M(p3),IFPS)
然而,它并不像这个那样清晰,因为大多数这种情况都发生在基带层的幕后,还有其他事情需要考虑(例如,每个连接间隔的数据包数量)。如果您还没有看过它们,请查看以下链接,以便更好地了解如何在BLE中测量吞吐量:
https://stackoverflow.com/questions/67778811
复制相似问题