在蓝牙4.0-4.2规范第3卷第F部分中,我可以找到以下文字:
由于收到但无法处理的命令和通知 缓冲区溢出或其他原因,应予以废弃。因此,那些PDU 必须被认为是不可靠的。
我想知道,谁收到了?对于写命令,它是从ATT客户端接收的ATT服务器,还是它也可能是发送方主机的ATT层,它接收从客户端应用程序发送写命令的请求,该命令丢弃了写命令,即它获得在被送到空中之前就掉了下来?
答案 0 :(得分:1)
空中接口通常受限于可以缓冲连接事件的数据包数量。同上通知与另一方向的指示(服务器到客户端)
答案 1 :(得分:1)
"收到的命令和通知......"
命令,例如,写入从客户端到服务器的请求,因此服务器是接收者。过程是客户端向服务器发送写入请求,并且当服务器收到写入请求(首先收到较低层)但发现此写入请求没有缓冲区(或其他原因),它将丢弃写入请求(更高层不会收到写请求)。
通知,而不是从服务器到客户端,因此客户端是接收者。当客户端收到通知但没有缓冲区(或其他原因)时,它将丢弃该通知。 这是关于通信协议的流量控制,而不仅仅是蓝牙。因此,如果您了解流量控制,您可能不会有这种混淆。
答案 2 :(得分:1)
我想知道,谁收到了?对于写命令,它是从ATT客户端接收的ATT服务器,
是的,它是ATT服务器。 ATT和GATT都不可靠。但链路层是可靠的。我假设更高层,例如申请应构成可靠性检查。
或者它也可能是收件人的发件人主机的ATT层 请求从客户端应用程序发送写入命令,删除 写命令,即在被发送之前它被丢弃 空气?
这不合规格,我认为蓝牙堆栈应该返回相应的错误,例如由于没有记忆,“failer”。