The MAC model
Infrastructure association
在基础设施模式下的关联操作是由关联管理器执行的一项高级 MAC 功能,该功能通过一个基类(WifiAssocManager)和一个默认子类(WifiDefaultAssocManager)来实现,并由 StaWifiMac 类的 AssocType 属性进行控制。该属性决定了非 AP 的 STA/MLD 是执行传统的关联操作还是与 AP 设备进行 ML 建立(后者仅适用于与多链路 AP 进行关联的 EHT 设备;如果在不符合此条件的情况下选择此选项,系统将自动回退到传统的关联操作)。站 MAC、关联管理器基类和子类之间的交互关系如图所示:扫描过程。

这个图的过程如下:
首先STA启动扫描(StartScanning),根据扫描参数过滤掉那些不符合条件的接入点(ap)。当STA接收到来自AP的Beacon或Probe Response帧时,通过NotifyApInfo(apInfo)过程,STA会将这些信息传递给关联管理器(Assoc. Manager),并将其按照某些排列规则(由子类定义)加入到AP列表中。如果扫描超时(ScanningTimeout),系统会从已排序的AP列表中提取出最佳AP(bestAp)。接下来,默认的关联管理器(Default Assoc. Manager)会决定是否立即结束扫描(EndScanning),如果已获取到 AP 信息,则立即安排对 EndScanning() 函数的调用;否则,在预设的主动/被动扫描时间结束后再进行调用。如果有多个链路可以建立,系统会选择合适的链路,并根据需要调整信道。最后,STA向选定的最佳AP发送关联请求(Send Association Request)以完成连接的建立。
StartScanning (scanParams):STA 开始扫描时,会根据传入的参数(如扫描时间、扫描频道等)设置扫描条件。
STA 接收到 Beacon/Probe Response frame:此时,STA 接收到 AP (接入点) 发送的 beacon 或 probe 响应帧,其中包含了 AP 的信息。
NotifyApInfo (apInfo):NotifyApInfo(apInfo) 是在连接过程中,STA(终端设备)接收到来自接入点(AP)的信息时,关联管理器(Assoc. Manager)用来更新AP列表的一个过程。具体来说:
apInfo是包含接入点信息的对象,通常包括AP的信号强度、SSID、支持的速率、加密方式等参数。- 该函数会将接收到的AP信息添加到一个已排序的AP列表中。排序的依据由子类定义,通常是根据信号强度、网络负载、加密方式等因素来决定哪个AP最合适。
ScanningTimeout (bestAp):在扫描过程中,如果扫描超时,关联管理器会从已排序的 AP 列表中选择最优的 AP 来进行关联。
DoStartScanning:默认关联管理器会调用这个函数来开始扫描,移除不符合扫描条件的 AP 信息。
EndScanning():当扫描结束时,会调用这个函数。如果扫描到多个可用链接,管理器会尝试识别哪些链接可以设置,并在其他 STA 上切换信道(如果需要并且允许的话)。
Schedule call to EndScanning():此函数会根据扫描的完成情况安排对 EndScanning() 的调用。
Send Association Request:当 STA 找到最佳 AP 后,会发送关联请求。此时,AP 信息已经包含了与 STA 之间的通信所需的信息,STA 可以准备好与 AP 建立连接。
Roaming(漫游)
目前不支持二层漫游(即 STA 从一个 AP 切换关联到另一个 AP)。因此,IEEE 802.11 标准 [ieee80211] 中描述的最小/最大信道驻留时间实现也被省略,因为它仅在信道漫游的上下文中才有意义。
Channel access(信道访问)
帧聚合的方式
-
MSDU(MAC Service Data Unit),即MAC 服务 数据单元,MSDU仅仅是数据帧的Payload部分,没有Header,可以把MSDU理解成Ethernet报文;
-
MPDU(MAC Protocol Data Unit ),即MAC 协议 数据单元,是Payload+MAC层的数据包头部,也可以大致理解为MDPU = MAC层头部 + MSDU。
802.11n的MSDU聚合和MPDU聚合扩展,两者可以组合在一起(两级聚合)
-
PPDU(Physical Layer Protocol Data Unit),物理层协议数据单元,它包括物理层前导码信息、物理层帧头部和净荷信息三部分。

对图片的逐层解释:
-
网络层(Layer 3)
- 数据从网络层(如 IP 包)向下传递到数据链路层。
- 在无线网络中,这通常称为 L3–L7 数据。
-
数据链路层(Data-Link Layer, Layer 2)
这一层分为两个子层:
- LLC(Logical Link Control)
- 提供帧同步和错误控制。
- 上层数据在这里形成 MSDU(MAC Service Data Unit)。
- MAC(Medium Access Control)
- MSDU 传到 MAC 子层后,被封装成 MPDU(MAC Protocol Data Unit)。
- MPDU = MAC Header + MSDU + MAC Trailer(如 FCS)。
- 图中标注:MSDU is encapsulated in the MPDU。
- LLC(Logical Link Control)
-
物理层(PHY Layer)
在无线网络中,物理层也分为两个子层:
- PLCP(Physical Layer Convergence Procedure)
- 负责将 MPDU 进一步封装成 PPDU(PLCP Protocol Data Unit)。
- 图中标注:MPDU = PSDU,即 MPDU 作为 PSDU(PHY Service Data Unit) 传入物理层。
- PLCP 会加上 Preamble(前导码) 和 PHY Header。
- PMD(Physical Medium Dependent)
- 将 PPDU 转换成实际的 比特流(0101…),通过无线电波发送出去。
- 图中标注:Data is transmitted as bits
- PLCP(Physical Layer Convergence Procedure)
-
802.11ax

802.11ax中的MAC层接入机制
OFDM和OFDMA技术
802.11 ax 采用了 OFDMA 调制方式,OFDMA 是在 OFDM 的基础上改进而来,在 802.11 ax 协议提出之前已经在移动蜂窝网上得到了应用。802.11 ax 将 OFDMA 技术移植到了无线局域网并进行了简化。传统的 OFDM 技术在传输数据信号时,无论数据量多大都会在传输时间内独占整个信道,802.11ax 利用 OFDMA 技术将信道划分为若干个子载波,多个用户可以同时被分配一定数值的带宽接入信道传输数据。
与802.11 ac使用的正交频分复用(OFDM,Orthogonal Frequency Division Multiplexing)技术不同,802.11ax采纳了移动蜂窝网络率先使用的正交频分多址 (OFDMA,Orthogonal Frequency Division Multiple Access)技术,多个终端同一时间并排传输数据,避免了竞争和等待,降低时延的同时也提高了传输效率。
OFDMA 技术是在OFDM的基础上加入多址(即多用户)技术演进而来的。OFDMA技术将帧结构重新设计,细分成若干资源单元(RUs,Resource Units),为多个用户服务。 以20MHz信道为例,在OFDM方案里每一帧由52个数据子载波组成,但由于这一帧只为一个终端服务,当传输的数据包过小的时候,空载的子载波也无法分配给其他终端,而在OFDMA方案里每一帧由234个数据子载波组成,26个子载波被定义为 一个资源单元,每个资源单元可以为一个终端服务,这样每一帧就可以同时为9个用 户服务,从而提升传输效率。OFDM下连接点(AP)同一时间只能和一个终端交换 数据,即使是下载一张图片也要占用整个通信周期。802.11 ax的编码类型升级到 OFDMA后,适用于小数据包的并行传输,能够让连接点一个通信周期内跟多台设备同时通信,同时尽可能压缩每次通信周期的数据传输量,以提高传输效率和信道利用率,从而使网络更畅通。下图为两种技术的对比

DL OFDMA and UL OFDMA
下行OFDMA接入机制(DL-OFDMA)
上行OFDMA接入机制(UL-OFDMA)
MU-MIMO 技术
MU-MIMO 技术在采用 802.11 ac 标准的设备上便得到了应用,使系统吞吐量得到了提升。但如上表所示 802.11 ac 只实现了 MU-MIMO 的下行传输,不具备上行链路传输的功能,802.11 ac 的 MU-MIMO 最大规格为 4×4,能最多同时向 4 个终端发送 MU-MIMO 数据。802.11 ax 在 802.11 ac 基础上不仅将最大用户数扩大到了 8 个,而且支持上行链路和下行链路的传输。也就是说当连接点向多个终端分享数据包时,终端也可以同时向连接点发送数据,这种全双工的传输方式减少了竞争,提高了传输效率。
DIFS(Distributed Interframe Space)和 EIFS(Extended Interframe Space)是IEEE 802.11标准中定义的两种时间间隔,它们用于控制无线网络中设备之间的通信时序,帮助协调设备的传输行为。它们主要用于确定设备何时可以开始传输数据,以及在信道发生忙碌事件或错误时如何重新进行传输。