写点什么

计算机网络:随机访问介质访问控制之 CSMA/CA 协议

作者:timerring
  • 2022-11-11
    山东
  • 本文字数:1903 字

    阅读完需:约 6 分钟

CSMA/CD 协议已成功应用于使用有线连接的局域网,但在无线局域网环境下,却不能简单地搬用 CSMA/CD 协议,特别是碰撞检测部分。主要有两个原因:


1)接收信号的强度往往会远小于发送信号的强度,且在无线介质上信号强度的动态变化范围很大,因此若要实现碰撞检测,则硬件上的花费就会过大。2)在无线通信中,并非所有的站点都能够听见对方,即存在“隐蔽站”问题。


为此,802.11 标准定义了广泛应用于无线局域网的 CSMA/CA 协议,它对 CSMA/CD 协议进行了修改,把碰撞检测改为碰撞避免(Collision Avoidance,CA)。“碰撞避免”并不是指协议可以完全避免碰撞,而是指协议的设计要尽量降低碰撞发生的概率。由于 802.11 无线局域网不使用碰撞检测,一旦站点开始发送一个帧,就会完全地发送该帧,但碰撞存在时仍然发送整个数据帧(尤其是长数据帧)会严重降低网络的效率,因此要采用碰撞避免技术降低碰撞的可能性。


由于无线信道的通信质量远不如有线信道,802.11 使用链路层确认/重传(ARQ)方案,即站点每通过无线局域网发送完一帧,就要在收到对方的确认帧后才能继续发送下一帧。


为了尽量避免碰撞,802.11 规定,所有的站完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间称为帧间间隔(InterFrame Space,IFS)。帧间间隔的长短取决于该站要发送的帧的类型。802.11 使用了 3 种 IFS:


  1. SIFS(短 IFS): 最短的 IFS,用来分隔属于一次对话的各帧,使用 SIFS 的帧类型有 ACK 帧、CTS 帧、分片后的数据帧,以及所有回答 AP 探询的帧等。

  2. PIFS(点协调 IFS):中等长度的 IFS,在 PCF 操作中使用。

  3. DIFS(分布式协调 IFS):最长的 IFS,用于异步帧竞争访问的时延。


CSMA/CA 的退避算法和 CSMA/CD 的稍有不同。信道从忙态变为空闲态时,任何一个站要发送数据帧,不仅都要等待一个时间间隔,而且要进入争用窗口,计算随机退避时间以便再次试图接入信道,因此降低了碰撞发生的概率。当且仅当检测到信道空闲且这个数据帧是要发送的第一个数据帧时,才不使用退避算法。其他所有情况都必须使用退避算法,具体为:①在发送第一个帧前检测到信道忙; ②每次重传; ③每次成功发送后要发送下一帧。


CSMA/CA 算法归纳:


  1. 若站点最初有数据要发送(而不是发送不成功再进行重传),且检测到信道空闲,在等待时间 DIFS 后,就发送整个数据帧。

  2. 否则,站点执行 CSMA/CA 退避算法,选取一个随机回退值。一旦检测到信道忙,退避计时器就保持不变。只要信道空闲,退避计时器就进行倒计时。

  3. 当退避计时器减到 0 时(这时信道只可能是空闲的),站点就发送整个帧并等待确认。

  4. 发送站若收到确认,就知道已发送的帧被目的站正确接收。这时如果要发送第二帧,就要从步骤 2)开始。

  5. 若发送站在规定时间内没有收到确认帧 ACK(由重传计时器控制),就必须重传该帧,再次使用 CSMA/CA 协议争用该信道,直到收到确认,或经过若干次重传失败后放弃发送。


处理隐蔽站问题:RTS 和 CTS


站 A 和 B 都在 AP 的覆盖范围内,但 A 和 B 相距较远,彼此都听不见对方。当 A 和 B 检测到信道空闲时,都向 AP 发送数据,导致碰撞的发生,这就是隐蔽站问题。



为了避免该问题,802.11 允许发送站对信道进行预约。源站要发送数据帧之前先广播一个很短的请求发送 RTS(Request To Send)控制帧,它包括源地址、目的地址和这次通信(含相应的确认帧)所持续的时间,该帧能被其范围内包括 AP 在内的所有站点听到。


若信道空闲,则 AP 广播一个允许发送 CTS (Clear To Send)控制帧,它包括这次通信所需的持续时间(从 RTS 帧复制), 该帧也能被其范围内包括 A 和 B 在内的所有站点听到。B 和其他站听到 CTS 后,在 CTS 帧中指明的时间内将抑制发送。CTS 帧有两个目的:①给源站明确的发送许可;②指示其他站点在预约期内不要发送。



使用 RTS 和 CTS 帧会使网络的通信效率有所下降,但这两种帧都很短,与数据帧相比开销不算大。相反,若不使用这种控制帧,一旦发生碰撞而导致数据帧重发,则浪费的时间更多。信道预约不是强制性规定,各站可以自己决定使用或不使用信道预约。只有当数据帧长度超过某一数值时,使用 RTS 和 CTS 帧才比较有利。


CSMA/CD 与 CSMA/CA 主要有如下区别:


1)CSMA/CD 可以检测冲突,但无法避免; CSMA/CA 发送数据的同时不能检测信道上有无冲突,本结点处没有冲突并不意味着在接收结点处就没有冲突,只能尽量避免。


2)传输介质不同。CSMA/CD 用于总线形以太网,CSMA/CA 用于无线局域网 802.11a/b/g/n 等。


3)检测方式不同。CSMA/CD 通过电缆中的电压变化来检测; 而 CSMA/CA 采用能量检测、载波检测和能量载波混合检测三种检测信道空闲的方式。


总结: CSMA/CA 协议的基本思想是在发送数据时先广播告知其他结点,让其他结点在某段时间内不要发送数据,以免出现碰撞。CSMA/CD 协议的基本思想是发送前侦听,边发送边侦听,一旦出现碰撞马上停止发送。

发布于: 刚刚阅读数: 4
用户头像

timerring

关注

还未添加个人签名 2022-07-14 加入

还未添加个人简介

评论

发布
暂无评论
计算机网络:随机访问介质访问控制之CSMA/CA协议_计算机网络_timerring_InfoQ写作社区