【问题标题】:Why wait SIFS time before sending ACK?为什么在发送 ACK 之前等待 SIFS 时间?
【发布时间】:2010-01-08 20:44:43
【问题描述】:

关于 802.11 Wifi 的 MAC 协议的问题。

我们了解到,当一个站点接收到数据时,它会等待 SIFS 时间。然后它发送数据包。在线搜索时,总是提到的原因是给 ACK 数据包更高的优先级。这是可以理解的,因为一个站要发送正常数据时首先必须等待 DIFS 时间(并且 DIFS 大于 SIFS)。

但是为什么要等待呢?为什么不立即发送 ACK?站知道数据已经到了,CRC是正确的,还等什么呢?

【问题讨论】:

    标签: macos network-protocols wifi protocols


    【解决方案1】:

    理论上有可能在从线路接收到的数据的确切末端知道 CRC 是正确的,但在实践中,您需要累积最后一个块中的所有样本才能运行 IFFT、反卷积、 FEC,然后,最后,最后,最后从波形中取出输入数据后,你知道CRC是正确的吗?此外,有时您需要打开发送电路来发送 ACK,这会影响接收性能。如果处理链中的每个步骤都是瞬时的,并且如果发送电路肯定不会干扰接收电路,并且如果没有必要的前置时间来构建 ACK 波形,则可以发送收到波形的最后一位后立即确认。但是,虽然这个链中的每个元素都需要一些确定的时间,但它不是瞬时的。 SIFS 让接收器有时间从 PHY 获取数据、验证数据并发送响应。

    免责声明:我对 Homeplug 比 802.11 更熟悉。

    【讨论】:

    • 我发现的一个链接似乎证实了这一点:protocols.netlab.uky.edu/~calvert/classes/571/lectureslides/… 声明“SIFS = 站感知帧结束并开始传输所需的时间”。
    • SIFS 是为了给硬件设计者一个他们可以花多长时间解码和检查帧的限制。这是必要的,因为 802.11 最初是严格按顺序交付的,因此发送方在收到当前数据包的 ACK 或放弃之前无法继续下一个数据包。为了获得合理的性能,接收器必须在 ACK 上有一个最大的周转时间。
    【解决方案2】:

    之所以如此,是因为分布式协调功能(DCF)和点协调功能(PCF)模式可以共存在一个小区内。也就是说,基站可以使用轮询,同时小区可以使用 CSMA/CA 进行分布式协调。

    所以在 SIFS 期间,可能会发送控制帧或下一个片段。在 PIFS 期间,可以发送 PCF 帧,在 DIFS 期间可以发送 DCF 帧。在 SIFS 和 PIFS 期间,PCF 可以发挥它的魔力。

    即使并非所有基站都支持 PCF,但所有基站都必须等待,因为有些可能支持它。

    更新:

    我现在理解的方式是,在 SIFS 期间,站点可能会发送 RTS、CTS 或 ACK,并且在发送方开始传输之前有足够的时间切换回接收模式。如果正确,它将在 SIFS 期间发送 ACK。然后它将更改为接收模式并等待 SIFS 过去。当 SIFS 过去后,发送器将开始发送。

    此外,PCF 由 PIFS 控制,PIFS 位于 SIFS 之后和 DIFS 之前,因此与本次讨论无关(我的错误)。也就是说,SIFS

    来源:This PDF (page 8)Computer Networks by Andrew S. Tanenbaum

    【讨论】:

    • 在两种模式(DCF 和 PCF)中,在 SIFS 期间没有发送任何内容。每个协议在发送片段之前总是等待 SIFS 时间。所以这并不能解释为什么它(阅读:DCF 和 PCF)在收到数据后不会立即发送 ACK。
    • @Omega:问题是,基站必须支持 DCF,但可以选择支持 PCF。其他站必须支持 DCF,并且可能支持 PCF。如果他们不支持 PCF,他们仍然需要等待,因为其他人可能会支持它。
    【解决方案3】:

    SIFS = RTT(基于 PHY 传输速率)+ 接收器的帧处理延迟(PHY 处理延迟 + MAC 处理延迟)+ 帧处理延迟(用于组合响应 CTS/ACK)+ RF 调谐器延迟(从 RX 更改为 TX )

    在发送器端,在(例如 RTS 的)最后一个 PHY 符号之后,更改为 RX 模式所需的时间(在 RF 处)。因此,我会将 SIFS 视为 RX 端计算而不是 TX 端。

    【讨论】:

      【解决方案4】:

      我不能肯定,但这听起来像是一种类似于 IP 的优化策略。如果您不需要对每个数据包的 ACK,则推迟一点是有意义的,这样,如果有更多数据包到达,您可以使用单个 ACK​​ 确认它们。 p>

      示例:客户端真的快速向服务器发送 400 个数据包。与服务器发回 400 个 ACK​​ 不同,它可以简单地等到客户端稍作休息后再发回单个 ACK​​。结合客户端 即使在重负载下(它必须在其未确认的数据包缓冲区填满时)稍作休息的可能性,这将是可行的。

      这在ACK(n) 表示“我已收到包括数据包#n 在内的所有内容的系统中是可能的。

      通过使用这样的策略,您将获得更好的性能和更少的流量。只要接收方的 wait-before-sending-ack 时间小于发送方的 retransmit-if-no-ack-before 时间(考虑传输延迟),应该没有问题。

      【讨论】:

      • 我的印象是噪音是一个主要问题,而且帧更经常被分割成更小的片段,这些片段被突发发送。对于每个分片,接收方将发送 ACK 进行确认,以便只重传坏分片。
      • 这就是 802.11 块 ACK 的工作原理,但原始规范确实有 SIFS 并且没有块 ACK。此外,在添加 MPDU 之前,802.11 是严格按顺序交付的。
      【解决方案5】:

      802.11 速成课程:

      802.11 本质上是一个巨大的计时器系统。 802.11 最常见的实现使用分布式协调功能 DCF。 DCF 允许节点进出用于 802.11 的无线电信道范围,并以分布式方式协调应该发送和接收数据的节点(在此讨论中忽略隐藏和暴露的节点问题)。在任何节点可以开始在通道上发送数据之前,它们都必须等待一段时间 DIFS,其中通道被确定为空闲,如果它在 DIFS 周期内空闲,则抢占通道的第一个节点开始传输。在标准 802.11 中,即非 802.11e 实现和非 802.11n 中,无论使用何种上层协议,传输的每个数据包都需要由物理层、PHY、确认包确认。在数据包被发送后,SIFS 时间段需要到期,在 SIFS 到期后,可以发送以“取得”信道控制权的节点为目的地的控制帧,在这种情况下,发送确认帧。 SIFS 允许发送数据包的节点从发送模式切换到接收模式。如果在 SIFS/ACK 超时发生后数据包确实丢失并且没有收到 ACK,则调用指数回退。指数回退,也称为争用窗口 (CW),从值 CWmin 开始,在某些 linux 实现中,这是 15 个时隙,其中时隙取决于正在使用的 802.11 协议。然后从 1 到为 CW 计算的任何上限选择 CW 值。如果当前数据包丢失,则 CW 从 15 增加到 30,然后在 1 和 30 之间选择一个随机值。每次连续丢失时,CW 加倍到 1023,此时它达到限制。成功接收数据包后,CW 将重置回 CWmin。

      关于 802.11n / 802.11e: 每个数据包仍然需要被确认,但是当使用 802.11e(在 802.11n 中实现)时,多个数据包可以以 A-MSDU 或 A-MPDU 两种不同的方式聚合在一起。 A-MSDU 是一个巨型帧,它对正在发送的整个聚合数据包具有一个校验和,其中包含许多子帧,其中包含需要发送的每个数据帧。如果A-MSDU帧有错误需要重传,那么每个子帧都需要重传。但是,当使用 A-MPDU 时,每个子帧都有一个小的标头和校验和,允许任何有错误的子帧在下一次发送节点获得信道时由它自己/在另一个聚合帧中重传.有了这些聚合的数据包发送方案,就有了 block-ack 的概念。块确认包含来自起始序列号的帧的位图,这些帧刚刚在聚合数据包中发送并正确或错误地接收。使用聚合帧发送极大地提高了吞吐量性能,因为发送节点可以在每个通道采集中发送更多数据,还允许无序数据包发送。然而,乱序数据包发送使 802.11 MAC 层变得非常复杂。

      【讨论】:

        【解决方案6】:

        SIFS=D+M+Rx/Tx

        在哪里,

        D=(接收器延迟(RF延迟)和物理层会聚过程(PLCP)前导/报头的解码)

        M=(MAC 处理延迟)

        Rx/Tx=(收发器周转时间)

        以上所有的延迟是无法避免的,所以它必须等待 SIFS 时间才能发送确认

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-02
          • 1970-01-01
          • 2014-10-04
          • 2014-12-03
          相关资源
          最近更新 更多