为什么 WLAN 使用冲突避免而不是冲突检测?

网络工程 无线的 协议理论
2021-07-21 14:52:00

我正在寻找这个答案已经有一段时间了。为什么LAN中有CSMA/CD而WLAN中有CSMA/CA?

我能找到的最好的解释是“由于发射和接收功率的极端比率,在同一信道上传输数据是非常不切实际的。因此使用了冲突避免”。没看懂意思。即使您使用两个单独的通道进行传输和接收,CSMA 也用于决定哪个节点将使用通道,因此用 CD 代替 CA 毫无意义。所以这个解释在某种程度上似乎不合适。

我能想到的唯一原因是,如果节点数少,因此碰撞的机会低,我们应该使用CD,如果碰撞的机会高,我们应该使用CA。但 LAN 和 WLAN 的用户数没有区别。
如果有人可以请解释一下。

4个回答

在有线 CSMA/CD 以太网环境中,可以检测到冲突,因为有单独的 TX 和 RX 对(以 10BaseT 为例)。如果半双工 10BaseT NIC 在 TX 对上发送一个帧,但看到该帧在 RX 对上损坏,则 NIC 检测到冲突。

然而,对于 802.11 无线设备,没有“导体”,只有不同时发送和接收的天线。当 802.11 设备正在传输时,它实际上无法侦听同时以相同频率传输的另一个信号。这样做的原因是射频信号强度在传输时下降得非常快。

即使我们构建了一个可以同时接收和发送的假想 WiFi 设备,如果另一个设备使用更高的输出功率(原始功率或通过某种被动/主动增益),它也只能听到下游碰撞. 通常它自己的 TX 信号会太强并“淹没”任何其他接收到的信号。

因此需要另一个过程,从而需要 CSMA/CA。

避免用于一个非常简单的事实,即每个无线电(“客户端”)不一定在彼此的范围内。因此,如果没有 AP 协调谁可以说话,远距离的无线电可能会相互干扰,因为他们无法知道对方正在传输。

编辑(基于瑞奇的更正):

下面是摘自 http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.mac.html

CSMA/CA 源自 CSMA/CD(碰撞检测),它是以太网的基础。主要区别在于避免冲突:在电线上,收发器能够在传输时进行侦听,从而检测冲突(使用电线,所有传输的强度大致相同)。但是,即使无线电节点可以在传输时监听信道,它自己的传输强度也会掩盖空中的所有其他信号。因此,该协议不能像以太网那样直接检测冲突,只能尝试避免它们。

下面的链接是关于 CSMA/CA 的好读物,还解释了 CSMA/CA 的工作原理:

http://www2.cs.uidaho.edu/~oman/SC&CI/CSMA-CA-collisions_Bonaventure.pdf

在有线总线上,信号损失相当小,因此很容易检测冲突。IIRC 同轴以太网通过查看线路上的直流电平来实现,但也可以通过将总线上的信号与您尝试传输的信号进行比较来实现。

那只是不适用于广播。发射器和接收器之间的信号损失是巨大的,至少有几十分贝。面对强大的传出信号,检测在相同频谱中运行并且非常弱的传入信号是不切实际的。这基本上排除了作为无线系统方法的碰撞检测。

PS 双绞线和光纤以太网对每个方向使用单独的数据通道,因此线路上不会发生冲突。只需同时检测两个通道上的活动,即可检测到“冲突”。