Wi-Fi 站点调查、分析、故障排除 运行在 MacBook (macOS 11+) 或任何带有标准 802.11be/ax/ac/n/g/a/b 无线网络适配器的笔记本电脑 (Windows 7/8/10/11) 上。相关 802.11be 支持的详细信息请点击 这里。
CSMA/CA在WiFi通信中的作用
在WiFi标准的世界中,高效的数据传输对于保持可靠的无线连接至关重要。实现这一目标的关键协议之一是载波侦听多路访问及冲突避免(CSMA/CA)让我们来了解一下它的工作原理。
什么是CSMA/CA?
想象一下,你走进了一家在早高峰时段非常忙碌的咖啡店。你试图下单,但另外三位顾客也在同时大声喊着他们的订单。柜台后面的可怜的咖啡师根本无法从混乱中分辨出一个完整的订单。如果没有一个系统来管理设备如何通信,无线网络中就会发生类似的情况。
解决方案是什么?一个叫做CSMA/CA的协议,其全称为:
- 载波监听(CS) 设备必须“监听”信道,以确定无线信道当前是否被其他设备占用。
- 多路访问(MA) 这意味着许多设备共享同一个无线信道,就像多辆汽车共享同一条道路一样。
- 避免碰撞(CA) 该协议在碰撞发生前主动防止数据碰撞,就像红绿灯系统确保汽车在路口不会相撞一样。
CSMA/CA的核心工作方式是:每个设备在发送数据之前,都必须检查无线信道是否空闲,通过一套协调的请求与许可系统,防止多个设备同时发送。当某个设备想要发送数据时,它必须先监听信道,等待轮到自己,然后获得接入点的明确许可后才能进行。
这种谨慎的协调能够防止无线干扰以及其带来的严重负面影响,例如必须完全重传的损坏数据包,网络吞吐量大幅下降,对视频通话和游戏等对时延敏感应用的延迟增加,移动设备因重复尝试传输而造成的电量过度消耗,以及随着碰撞率增加,所有连接设备的性能下降。
CSMA变体
CSMA 家族包括几种适用于不同网络环境的变体,但最重要的是 CSMA/CA 和 CSMA/CD:
方面 | CSMA/CD | CSMA/CA |
网络类型 | 有线(以太网) | 无线(WiFi) |
冲突策略 | 发生后检测 | 发生前预防 |
机制 | 在传输过程中监控电压 | 使用 RTS/CTS 握手 |
开销 | 最小(仅冲突时) | 较大(协调消息) |
效率 | 适用于低冲突环境 | 适用于高冲突环境 |
隐藏节点问题 | 不适用 | 通过协调解决 |
CSMA/CD(碰撞检测) 是较早开发的以太网有线网络技术。在 CSMA/CD 中,设备在判断信道空闲时会立即发送数据,并在传输期间监控碰撞。如果检测到碰撞(通过检测导线上异常的电压水平)两个设备都会停止发送,等待一个随机退避时间后再尝试发送。
CSMA/CA(碰撞避免),也是我们的重点,采用了专为无线网络设计的预防措施。CSMA/CA 不在碰撞发生后才检测,而是通过请求发送/允许发送(RTS/CTS)机制,在发送前预留信道,从而主动作出预防,避免碰撞的发生。
除了这两种主要的变体外,CSMA 家族还包括几种持久性策略,这些策略定义了设备尝试发送的激进程度。这些策略可以与碰撞检测(CD)或碰撞避免(CA)结合使用:
- 1-持续性 CSMA:可以把 1-持续性 CSMA 理解为一种激进的变体,设备会持续监测繁忙的信道,在信道变为空闲时立即发送,这会导致如果有多个设备等待时碰撞率较高。
- 非持续性 CSMA:一种不那么激进的方式是让设备在重新检测信道前等待随机时间,这样能减少碰撞,但如果信道实际是空闲的,这也可能浪费宝贵的时间。这就是非持续性 CSMA 所做的。
- P-持续性 CSMA: 此版本的 CSMA 使用概率来决定何时发送,即设备在发现信道空闲时以一定概率“p”发送数据。因此,它在激进和保守两种策略之间取得了平衡。
这些变体各自针对不同的网络挑战而演变,但在无线环境中,CSMA/CA 正是主角,这也是我们 NetSpot 所专注的。作为一家致力于开发简单易用的无线网络评估、扫描和勘测软件的团队,我们深知 CSMA/CA 的碰撞避免机制对保持 NetSpot 帮助你分析和优化的 WiFi 顺畅表现至关重要。
CSMA/CA是如何工作的?
我们已经在高层次上介绍了CSMA/CA的作用,但你可能也想进一步了解它实际上是如何工作的。本质上,CSMA/CA要求每个设备在发送数据之前完成一系列特定的步骤:
- 先听后说:设备进行载波侦听,检查无线信道上是否已有其他设备正在传输。
- 等待静默:如果信道正忙,设备会通过二进制指数退避算法进行等待,每次失败后等待时间加倍。
- 观察IFS间隔:即使信道看似空闲,设备也会等待一个帧间间隔(IFS)周期,以确保前一次传输已经完全结束。
- 增加随机退避:设备还会再等待一个额外的随机时间,以防止信道空闲时多台设备同时发送数据。
- 发送数据:最后,设备发送数据帧,并等待接收端的确认。
这一基本过程在负载较轻的网络和小型数据传输时运作良好。然而,在需要大规模传输或环境拥挤的无线网络中,还需要更复杂的解决方案:
- RTS/CTS(请求发送/允许发送)对于繁忙的网络或大数据传输,设备可以先使用一种可选的握手协议。发送方首先发送一个简短的RTS帧请求发送权限。接入点回应一个CTS帧,授予发送许可,并同时警告范围内的其他所有设备保持静默。
- 网络分配向量(NAV)这种虚拟载波侦听机制在物理信号检测之外增加了额外一层碰撞避免。每个传输的帧都会包含时长信息,告知其他设备信道将被占用的确切时间。接收到这些帧的设备会设置自己的NAV定时器,并认为在该时段内信道“虚拟占用”
- 智能定时:现代CSMA/CA使用不同的帧间间隔(IFS)以在繁忙网络中优先处理不同的流量并维持秩序。关键的确认帧拥有最短等待时间(SIFS)以快速确认传输成功。常规数据采用标准间隔(DIFS)而错误恢复则使用最长的间隔(EIFS)
这些机制的结合,使得CSMA/CA能够从安静的家庭网络到服务成千上万设备的繁忙机场WiFi网络都能高效应对。
当然,单靠CSMA/CA并不能保证完美的WiFi性能,信号强度、干扰和网络配置等因素同样至关重要。这正是像NetSpot这样的工具对网络管理员和家庭用户都极有价值的原因,因为它们可以帮助你可视化并优化无线网络的物理层面,从查找盲区到找到最不拥堵的信道。
结语
CSMA/CA是一种基础协议,通过要求设备在传输前检查信道是否空闲,以防止WiFi网络中的数据冲突。该协议结合了多种技术,能够应对各种网络环境,从简单的家庭设置到有数百台设备竞争的高密度环境。
常见问题
CSMA/CA 通过让设备在传输前检查无线信道是否空闲,防止了WiFi网络中的数据碰撞。
CSMA/CD 和 CSMA/CA 之间有两个主要区别。首先,CSMA/CD 通过监测线路上的电压变化,在碰撞发生后检测碰撞,而 CSMA/CA 通过诸如 RTS/CTS 之类的协调机制,在碰撞发生前防止碰撞。其次,CSMA/CD 仅用于所有设备都能相互监听的有线以太网网络,而 CSMA/CA 设计用于无线网络。
是的,CSMA/CA 目前仍然在每一个 WiFi 网络中被广泛使用,从最新的Wi-Fi 7标准(该标准增加了如正交频分多址等提升效率的改进)到较早的 802.11 实现,都是如此。
802.11 使用 CSMA/CA,因为无线设备无法在同一频率上同时发送和接收,因此在传输时无法检测到冲突。此外,无线网络面临独特的挑战,如隐藏节点(彼此无法接收到信号但在接入点处发生干扰的设备)这使得冲突检测变得不切实际,必须采取避免冲突的机制。