我现在有一项任务是评估安卓系统上蓝牙通信的RTT,但是由于安卓不再支持L2CAP。,我不得不使用RFCOMM计算RTT,据我所知,这基本上是一个可靠的实现,就像用于蓝牙的TCP。
我的问题是,RFCOMM是否使用与TCP (SYN/SYN/ACK)相同的三种握手方式?
如果是的话,从蓝牙客户端到蓝牙服务器的RTT会不会是--大约是建立连接所需的时间乘以2/3 (因为RTT只是SYN/SYN的时间,连接所需的时间是SYN/SYN/ACK )?
发布于 2016-09-09 06:56:28
RFCOMM连接建立没有三路握手。RFCOMM基于GSM 07.10标准,工作于HDLC异步平衡模式。RFCOMM规范可以找到这里
通信大致可分为控制信道连接(即通道0)、端口配置和数据通道连接(可选地包括身份验证),然后是数据交换。
连接拒绝方案更清楚地显示了SABM帧的使用。注意连接建立中的SABM-UA和连接拒绝中的SABM-DM .
连接本身由SABM(set异步平衡模式)帧和UA (用户确认)建立。采用PN进行端口协商,frame.UIH帧用于在已建立的信道上交换数据。
发布于 2016-09-09 03:05:42
我的问题是,RFCOMM是否使用与TCP (SYN/SYN/ACK)相同的三种握手方式?
不是的。
蓝牙上的RFCOMM是通过L2CAP的,即可以看到L2CAP信道是一个可靠的信道(如果没有同花顺配置的话),而RFCOMM只采用一个L2CAP信道,基于这个信道,我们可以划分一个信号信道和一些数据信道(可能还会多30个?)我记得不清楚)。若要打开一个RFCOMM数据通道,只需在信号信道上处理一些请求,则上层(如SPP、HFP)可以通过分配的数据信道进行通信。没有ACK/SYN/ACK然后建立一个RFCOMM,但它们在通道建立后用于流量控制。
https://stackoverflow.com/questions/39392702
复制相似问题