CSMA是一种在共享介质(如早期的总线型以太网、Wi-Fi)上实现多节点通信的关键技术,它的核心思想非常朴素:“先听再说,边说边听”。

为了更清晰地理解其特点,我们将其分解为核心思想、主要变体、优点和缺点四个部分。
核心思想与基本原理
CSMA的本质是一种“先听后说”的冲突避免策略。
-
载波侦听:
- 含义:在发送数据之前,每个节点(工作站)都必须先“侦听”一下共享介质上是否有其他节点正在发送数据。
- 如何侦听:通过检测信道上是否存在载波信号(电压变化、无线电波等),如果检测到信号,说明信道忙;反之,则信道空闲。
-
多路访问:
(图片来源网络,侵删)- 含义:指多个节点共享同一个通信信道,任何一个节点都可以尝试发送数据。
基本流程:
- 侦听:节点A想发送数据,它先侦听信道。
- 判断:
- 如果信道空闲,节点A立即开始发送数据。
- 如果信道忙,节点A则等待,直到信道变为空闲。
- 发送与冲突检测:
- 在发送数据的同时,节点A会继续侦听信道,以确保没有其他节点也在同时发送。
- 如果在发送过程中检测到信号发生了变化(即发生了冲突),它会立即停止发送,并发出一个短暂的拥塞信号,以通知所有节点发生了冲突。
- 退避重试:
发生冲突后,节点A不会立即重试,而是会等待一个随机的时间,然后再回到第一步重新侦听,这个随机等待时间是为了避免多个冲突节点同时重试而导致再次冲突。
主要变体及其特点
根据对“信道忙”时的处理方式和对“冲突”的检测能力,CSMA主要分为以下三种变体,它们的特点各不相同:
CSMA / CD (Carrier Sense Multiple Access with Collision Detection)
- 中文:载波侦听多路访问/冲突检测
- 核心特点:边说边听,冲突即停。
- 工作原理:
- 先听后说(与基本CSMA相同)。
- 在发送数据的同时,持续监听信道。
- 一旦检测到冲突,立即停止发送,并发出拥塞信号,然后执行退避算法,等待一个随机时间后重试。
- 典型应用:传统的以太网(使用集线器Hub的网络)。
- 关键要求:为了保证在信号传播到最远端之前能检测到冲突,CSMA/CD对网络的最大长度有严格要求,这也是为什么现代交换式以太网(使用交换机Switch)不再需要CSMA/CD技术,因为交换机为每个端口创建了独立的冲突域。
CSMA / CA (Carrier Sense Multiple Access with Collision Avoidance)
- 中文:载波侦听多路访问/冲突避免
- 核心特点:提前预约,主动避让,它不试图检测冲突,而是通过一系列机制来主动避免冲突的发生。
- 工作原理:
- 先听后说:如果信道忙,就等待。
- 如果信道空闲,也不立即发送,它会先等待一个很短的帧间间隔,以确保信道在持续空闲。
- RTS/CTS机制:在发送数据前,先发送一个短小的请求发送帧,如果接收方准备就绪,会回复一个清除发送帧,只有当发送方成功收到CTS后,才开始发送数据,这个机制相当于“预约”了信道,其他听到RTS或CTS的节点会保持沉默,从而避免冲突。
- 随机退避:在发送数据前,会再进行一次随机退避,进一步降低与其他节点同时开始发送的概率。
- 典型应用:Wi-Fi(IEEE 802.11系列无线网络)。
- 为什么用CA不用CD? 在无线环境中,隐藏终端问题和暴露终端问题使得冲突检测变得非常困难,节点A和节点C都在与节点B通信,但A和C彼此听不见对方,如果A和B在通信,C不知道,也向B发送数据,就会在B处发生冲突,但C无法检测到,无线网络必须采用“冲突避免”策略。
CSMA / BA (Carrier Sense Multiple Access with Bitwise Arbitration)
- 中文:载波侦听多路访问/按位仲裁
- 核心特点:非破坏性 bitwise 冲突检测。
- 工作原理:
- 所有想发送数据的节点同时开始发送。
- 在总线上,信号的电平是所有发送节点信号的“线与”(Wired-AND)结果,一个节点发送“1”(高电平),另一个发送“0”(低电平),总线上的结果就是“0”。
- 每个节点在发送的同时,会将自己发送的位与总线上的实际位进行比较。
- 如果发现不一致(即发生了冲突),说明有其他节点也在发送,该节点就立即停止发送,并认为仲裁失败,而那个持续发送的位与其他节点不冲突的节点,则赢得了仲裁,继续完成数据发送。
- 典型应用:CAN总线(Controller Area Network,常用于汽车和工业控制)。
- 优点:没有数据浪费,冲突发生后,没有数据被真正传输出去,只是浪费了几个位的仲裁时间,效率极高。
CSMA技术的共同优点
- 原理简单,实现相对容易:核心的“先听后说”逻辑不复杂,硬件成本较低。
- 在轻负载下效率较高:当网络中的节点不多,数据量不大时,发生冲突的概率很低,信道利用率高,响应速度快。
- 分布式控制:不需要中心控制器,网络中的节点地位平等,单点故障风险低。
CSMA技术的共同缺点
- 冲突问题:这是CSMA技术最核心的缺陷,在重负载下,多个节点同时侦听到信道空闲并开始发送的概率大大增加,导致频繁的冲突。
- 在重负载下性能急剧下降:冲突会浪费大量带宽(冲突数据、拥塞信号、重试等待等),导致网络吞吐量下降,延迟急剧增加,网络可能变得不可用。
- 不确定的延迟:由于冲突和随机退避机制,一个数据包从发送到成功接收的延迟是不确定的,这对于需要确定性的实时应用(如工业控制、语音通信)是一个致命的缺点。
- 对网络拓扑有要求:特别是CSMA/CD,对网络的最大长度有物理限制,不适合构建大规模网络。
| 特性 | CSMA / CD (以太网) | CSMA / CA (Wi-Fi) | CSMA / BA (CAN总线) |
|---|---|---|---|
| 核心思想 | 冲突检测,冲突后停止 | 冲突避免,主动预约信道 | 按位仲裁,非破坏性冲突 |
| 冲突处理 | 发生冲突后停止发送,并重试 | 通过RTS/CTS等机制避免冲突 | 持续发送,位不一致则停止 |
| 延迟特性 | 不确定,有冲突和退避延迟 | 不确定,有随机退避延迟 | 确定性,仲裁时间可预测 |
| 典型应用 | 传统总线型以太网 | 无线局域网 | 汽车电子、工业现场总线 |
| 主要优势 | 简单,轻负载高效 | 解决无线隐藏终端问题 | 高效,无数据浪费 |
| 主要劣势 | 重负载性能差,有长度限制 | 重负载性能差,延迟不确定 | 仲裁时间随节点数增加 |
CSMA技术是一种在共享介质上进行有效通信的经典方法,它通过“先听后说”的原则大大提高了信道的利用率,但其固有的冲突问题使其在重负载下表现不佳,并催生了更先进的网络技术,如交换式以太网(通过将冲突域隔离彻底解决冲突问题)和各种无线MAC协议(在CSMA/CA基础上不断优化)。

