每个 MSDU 子帧包括子帧帧头、数据区、0~3 字节的填充区。帧头格式包括 DA、SA、Length,SA、DA 即为子帧的源端地址和目的端地址,length 为子帧的长度;数据区域为完整的 MSDU 数据;子帧要求要求 4 字节对齐,不足部分由填充域完成。
由于 MSDU 聚合后无独立的 802.11 MAC 帧头, 要求所聚合帧的 SA 和 DA 所映射的TA 和 RA 是相同的,也即所聚合的帧由同一个无线端和由同一个无线端接收。聚合后,所有的子帧都会采用统一的加密方式,而且经聚合的帧将只能具备一种 QoS 属性,不允许将不同 QoS 属性的帧聚合。
MPDU 聚合(A-MPDU)
由上面的MSDU聚合我们可以看到,MPDU=MSDU+MAC header+FCS=IP packet+8+28
MPDU 帧聚合是更低层次的聚合,802.11 协议栈首先收集一定数量的 802.11 MAC 帧,再将其进行聚合后打上 PHY 标头进行传输。MPDU 聚合帧中的每个子帧均具有完整的802.11 MAC 帧头。参考MSDU,AMPDU聚合之后共用的是物理头,而AMSDU聚合之后共用的是MAC头
Deilmiter字段的作用是便于接收端检测到聚合帧中各个子帧的边缘并将子帧提取出来。在解聚合算法中,接收端依据Delimiter中的Signature子域检测Delimiter的位置,然后根据CRC子域检验Delimiter的正确性。如果正确,则将MPDU提取出来,再进行下一个的检测,直到解聚合完成。
这里的MPDU就是MAC头部+FCS+MSDU 帧聚合的限制
1) 进行聚合的帧必须具备相同的接收端地址,即只有在同一个 AP 和 STA 之间传输的帧才能进行聚合。
2) 在发送端,必须准备一定数量的待发送帧进行聚合,因此会对某些帧带来延迟。
3) 不能将不同 QoS 等级的帧进行聚合。
4) 帧聚合增大了帧的长度,在信道恶劣的情况下,更容易发生错误。
通过帧聚合我们看一下的MSDU、MPDU的关系
名词介绍:
MSDU: MAC Service Data Unit。可以理解为传输的有效数据,MAC帧的data部分。
MPDU: MAC Protocol Data Unit。可以理解为经过MAC协议封装的帧,包括MAC帧头。
PLCP: Physical Layer Convergence Procedure。可以理解为PHY层的编码和封包过程。
PPDU: PLCP Protocol Data Unit。可以理解为PHY层封装的帧,包括PHY帧头和MAC帧。
A-MSDU: Aggregate MSDU。MSDU帧聚合。
A-MPDU: Aggregate MPDU。MPDU 帧聚合。