【问题标题】:Does RFCOMM use threeway handshake?RFCOMM 是否使用三向握手?
【发布时间】:2017-01-16 11:46:28
【问题描述】:

我现在有一个任务来评估 android 上蓝牙通信的 RTT,但是由于 L2CAP is no longer supported on android 我必须使用 RFCOMM 计算 RTT,据我了解,这基本上是一个可靠的实现,很像蓝牙的 TCP。

我的问题是 RFCOMM 是否使用与 TCP (SYN/SYN-ACK/ACK) 相同的三次握手?

如果是这样,从蓝牙客户端到蓝牙服务器的 RTT大概是建立连接所花费的时间乘以 2/3(因为 RTT 只是 SYN/SYN-ACK 所花费的时间,而连接所花费的时间是 SYN/SYN-ACK/ACK )?

【问题讨论】:

    标签: android bluetooth rfcomm


    【解决方案1】:

    RFCOMM 连接建立没有三次握手。 RFCOMM 基于 ETSI 标准GSM 07.10 并在 HDLC 异步平衡模式下工作。 RFCOMM 规范可见here

    通信大致可以分为控制通道连接(即通道0)、端口配置和数据通道连接(可选包括Authentication),然后是数据交换。

    连接拒绝方案更清楚地显示了 SABM 框架的使用。 注意连接建立中的 SABM-UA 和连接拒绝中的 SABM-DM。

    连接本身是由SABM(set Asynchronous Balanced Mode)帧和UA(用户确认)建立的。端口协商通过 PN 帧完成。UIH 帧用于在已建立的通道上交换数据。

    【讨论】:

    • 哇,详细的回复,涵盖了我所希望的一切。
    【解决方案2】:

    我的问题是 RFCOMM 是否使用与 TCP 相同的三次握手 (SYN/SYN-ACK/ACK)?

    没有。

    蓝牙上的RFCOMM是在L2CAP之上的,也就是说我们可以看到L2CAP通道是一个可靠的通道(如果没有flush配置)并且RFCOMM只占用一个L2CAP通道,基于这个通道,我们划分了一个信号通道和一些数据通道(可能还有30多个?我记不太清楚了)。要打开一个 RFCOMM 数据通道,只需在信号通道上处理一些请求,然后上层(例如 SPP、HFP)就可以通过分配的数据通道进行通信。 没有 ACK/SYN-ACK/ACK 则建立 RFCOMM,但它们有信用可用于通道建立后的流量控制。

    【讨论】:

      猜你喜欢
      • 2017-07-08
      • 2014-04-06
      • 1970-01-01
      • 2012-04-04
      • 2015-06-03
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      相关资源
      最近更新 更多