Wi-Fi 技术学习:802.11ax BSS 着色原理与性能优化解析

802.11ax 通过 OFDMA 等技术提升了频谱利用率,同时也借助 BSS 着色等机制提升了空间复用效率。而本文将聚焦于 BSS 着色,尝试用更易懂的方式进行讲解。

Wi-Fi 是半双工通信

我们都知道,802.11 通信是半双工的,这意味着同一时间一个站点只能处于发送或接收状态,无法同时收发,因此被称为 "半双工"。

CSMA/CA(带冲突避免的载波侦听多路访问)

由于 802.11 的通信机制,每个站点必须等待其他站点完成通信后才能开始发送数据,这一过程由 CSMA/CA 机制实现。

CSMA/CA 也存在一些自身的挑战,例如:

  • 竞争开销(Contention overhead)
  • 信道时间利用率低(Airtime utilization),会消耗大量带宽

我们不深入讲解 CSMA/CA 的工作细节,而是聚焦于 802.11ax 中的 BSS 着色技术。BSS 着色并非替代 CSMA/CA,而是对它的优化,使其效率更高。

OBSS(重叠基本服务集)

重叠基本服务集(OBSS)指的是下图中可见的服务集,即附近其他接入点,或连接到这些接入点的客户端设备,都可以被彼此感知到。

如果两个基本服务集(BSS)工作在同一信道上,CSMA/CA 机制会同时影响这两个重叠的 BSS。客户端和接入点都需要竞争信道资源,等待信道空闲,而 BSS 着色技术正是为了解决这个问题,从而提升整体性能。

BSS 内帧与 BSS 间帧

BSS 着色并非全新概念,它在 802.11ah 标准中就已出现。802.11ax 标准整合了多种技术,BSS 着色便是其中之一。

BSS 着色让设备能够通过帧 MAC 头识别出自身所属的 BSS,以区分重叠的 BSS(OBSS)。这里的 "着色" 并非指实际的颜色(如蓝色或白色),而是一个 6 比特的字段,取值范围为 0 到 63。

(BSS colour information field)

BSS 内帧(Intra-BSS frame)

在传统的 CSMA/CA 机制下,设备需要持续侦听信道,只有当所有设备都处于静默状态时才能发送数据。

BSS 着色让站点能够判断发送帧的站点是来自自身 BSS 还是重叠 BSS(OBSS)。如果帧的着色比特与自身 BSS 的着色比特相同,该帧就会被判定为 BSS 内帧,站点仍需像传统流程一样竞争信道。

BSS 间帧(Inter-BSS frame)

如果帧的着色与接收站点的 BSS 着色不同,该帧会被判定为 BSS 间帧。

这正是 802.11ax 与传统标准的核心区别:在传统标准中,无论帧来自同 - BSS 还是 OBSS,站点都必须竞争信道;而在 802.11ax 中,当站点识别出帧来自 OBSS 时,会直接忽略它,不再竞争信道,而是继续自身的发送过程。

这种机制允许两个位于不同 BSS 的站点,在同一信道上同时进行通信。

(BSS 间帧 vs BSS 内帧)

BSS 着色决策流程:

  1. 站点检测到射频能量(RF energy)
  2. 进行空闲信道评估(CCA):判断能量是否高于 - 82 dBm 或低于该阈值。
  3. 如果 RSSI 大于 - 82 dBm,站点会检查自身是否能解调出该流量。
  • 如果可以,它会读取帧头以获取该帧的着色信息。
  • 如果着色与自身 BSS 相同 → 判定为BSS 内帧,并执行常规的 CSMA/CA 流程。
  • 如果着色与自身 BSS 不同 → 判定为BSS 间帧
  1. 对 BSS 间帧进行二次阈值检查:判断其信号强度是否高于 - 62 dBm 或低于该阈值。
  • 如果信号强度大于 - 62 dBm → 表示该重叠 BSS 距离过近,信道将被视为 "忙" 状态。
  • 如果信号强度小于 - 62 dBm → 站点不会为这次传输竞争信道,而是继续自身的发送过程。

(BSS 着色决策流程)

BSS 着色(或空间复用)的优势:

  • 提升网络容量
  • 自适应空闲信道评估(CCA):可以动态调整信号强度阈值
  • 减少信道竞争问题
  • 同 BSS 信号:使用较低的 RSSI 阈值来触发退避,从而减少同 BSS 内的碰撞
  • 重叠 BSS(OBSS)信号:使用较高的 RSSI 阈值来触发退避,从而支持更多并发连接
  • 提供一定程度的公平性
相关推荐
zl_dfq19 小时前
python学习8 之 【集合、datetime模块、字典】
学习
kdxiaojie19 小时前
U-Boot分析【学习笔记】(3)
linux·笔记·学习
salipopl20 小时前
FPGA中AXI-FIFO主机接口的自定义实现与versal读写工程分析
网络·fpga开发
MediaTea20 小时前
Scikit-learn:从数据到结构——无监督学习的最小闭环
人工智能·学习·算法·机器学习·scikit-learn
@杰克成20 小时前
Java学习26
java·学习·idea
qeen8720 小时前
【数据结构】二叉树相关经典函数C语言实现
c语言·数据结构·c++·笔记·学习·算法·二叉树
dingxingdi20 小时前
如何学习一个新的 Coding CLI 工具
学习
Alice-YUE20 小时前
深入解析 JS 事件循环:浏览器与 Node.js 的差异全解析
前端·javascript·笔记·学习
minglie121 小时前
UG585Address Map
学习