WLAN帧聚合
帧聚合分为A-MSDU和A-MPDU
A-MSDU
A-MSDU(Aggregate MAC Service Data Unit,服务数据单元)是将相同的源地址和接收地址的MSDU聚合成要给较大的载荷,从而减少物理层和MAC的开销
如上图所示,每个A-MSDU由多个MSDU构成,每个A-MSDU包含子帧头,MSDU和填充字段,每个A-MSDU子帧都被填充为4个八位位组的整数倍,最后一个A-MSDU的子帧不填充,A-MSDU子帧头仅包含DA,SA,Length三个字段,于原来的头部项目,MSDU子帧头由36个八位组减少到14个八位组,减少了不必要的数据传输
A-MSDU聚合只允许将发往同一个地址的多个MSDU聚合,聚合的MSDU被一个单独的接收端接收以及同一个发送端发送,只要发往相同的接收端(RA地址)在同一个A-MSDU帧里,目的地址(DA)可以不同,
A-MSDU的最大长度为4K字节
A-MPDU
从上图中可以看出,一个A-MPDU基本结构不变,有一个或者多个A-MPDU子帧组成,每一个A-MPDU子帧由MPDU实体和MPDU定界符组成,定界符强制将A-MPDU中的MPDU分隔开来,防止聚合帧接收错误时,帧结构被覆盖造成的数据帧接收失败,
11n支持最大聚合为65535字节,而11ac标准将A-MPDU的最大长度增加到1048575字节,从而进一步降低开销提高性能,
如上图是A-MPDU的图示说明,
由于A-MPDU中的MPDU目的地址相同,所以接收端对MPDU进行逐个接收,在接受的过程中如果发现错误的MPDU则不会发ack,此时会触发重传机制,接受正确发送ack并将数据移交上层处理,当重传次数超过最大次数时,发送端将该MPDU丢弃
下图是两层聚合的示意图
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律