A-MSDU 和 A-MPDU 区别

MSDU(MAC Service Data Unit): MAC服务数据单元。

MPDU(MAC Protocol Data Unit):  MAC协议数据单元。 

在无线网络安全中,MSDU是Ethernet报文,经过添加完整性校验MIC、分帧、省电模 式下报文缓存、加密、序列号赋值、CRC校验、MAC头之后成为MPDU,MPDU就是 指的经过802.11协议封装过的数据帧。

A-MSDU技术是指把多个MSDU通过一定的方式聚合成一个较大的载荷。通常,当AP 或无线客户端从协议栈收到报文(MSDU)时,会打上Ethernet报文头,称之为AMSDUSubframe,而A-MSDU技术旨在将若干个A-MSDUSubframe按照802.11协议格 式,封装成一个MPDU报文单元,即是A_MPDUSubframe

A-MPDU技术是指的按照802.11协议封装后的若干个A_MPDUSubframe报文的聚合。通 过一次性发送若干个MPDU,减少了发送每个802.11报文所需的PLCPPreamble、 PLCPHeader,从而提高系统吞吐量

802.11n提供两种帧聚合的方法:MAC服务数据单元(MSDU—MAC Service Data Unit)和信息协议数据单元(MPDU—Message Procotol Date Unit)

A-MSDU:

主要是对MSDU或者MSDU的分块进行聚合,MSDU是Ethernet报文,经过添加完整性校验MIC、加密、序列号赋值、CRC校验、MAC头部之后形成一个较长的MAC帧MPDU。

A-MPDU:

主要是对MPDU进行聚合,形成一个较长的物理层服务帧PSDU。

两者不同:

对于A-MSDU,如果整帧中有一部分子帧出错,则整帧需要重新传。而A-MPDU则只需要重传出错的那部分子帧。

注:不是所有的帧都能被聚合,广播和多播帧不能被聚合,只有单播帧且接收地址相同和优先级相同的帧才能被聚合。

在进入MAC处理之前,所有的报文都以MSDU形式存在,经过MAC处理之后转换成MPDU.。A-MSDU在进入MAC层之前完成聚合,而A-MPDU在MAC层之后完成聚合。

要求所聚合子帧的SA和DA所映射的TA和RA相同,即聚合的帧是由同一个无线端发送,且同一个无线端接收,并且只能具备一种QoS属性,不允许将不同QoS属性的帧聚合。

局限性:A-MSDU只适用于较小的MSDU聚合,聚合帧较长时只会有一个FCS,所以A-MSDU传输可靠性较差,如果其中一个MSDU传输出错,则整个A-MSDU将会被重传。

A-MSDU:主要是对MSDU或者MSDU的分块进行聚合,802.11协议栈收集一定数量的上层MSDU报文,先将其聚合在转换为802.11MAC帧.

MPDU每一个成分帧都会有一个802.11帧头。这一点不如MSDU高效,如果适用加密将会变得更加明显,因为MPDU在每一个成分帧上都加上了开销,而MSDU仅对一个汇聚帧加密,仅有单个开销。

如图一个A-MPDU由多个A-MPDU子帧所构成。每个A-MPDU子帧由MPDU Delimiter(MPDU分界符)和MPDU实体组成。对于一个A-MPDU,除了最后一个子帧外,其余子帧都会有0-3个字节的填充字段,使子帧长度变为4字节的整数倍。

MPDU是更低层次的聚合,协议栈收集一定数量的802.11MAC帧,将其聚合后打上PHY标头进行传输,MPDU聚合帧中的每个子帧均有完整的802.11MAC帧头。与MSDU相同,MPDU要求所有帧具有一样的QoS等级。

这里有一点 我们的MSDU 中所说的Ethernet 头指的是 LLC 的一个头 在wifi 802.11 的data payload 中有一个802.3 的LLC 头, 802.3 中连路程协议是LLC 在802.11 中是MAC  你解密一个wifi data 包就可以看到llc 部分

这里直接套用之前记录的,wifi MAC帧 与 Ethernet 帧的转换,的相关内容。

wifi(IEEE 802.11)作为IEEE推出的标准, 采用 LLC SNAP 来封装IP层数据, 然后将其作为 IEEE 802.11 的MAC层数据 (即相当于将 IEEE 以太网帧的 LCC header 和 数据部分 封装到 802.11 MAC 帧中)

IP层数据包在Ethernet 上的封装由RFC 894来规定, 而IP层数据包在 IEEE以太网上的封装由 RFC 1042来规定

  • 从Ethernet II到802.3 LLC帧的转换过程中, 因为添加了字段,所以需要重新计算FCS
  • 802.3 LLC 帧中除了 “目标地址”和“源地址” 外, 其余部分作为802.11的MAC帧的负载, 而 “目标地址” 和 “源地址” 则包含到 802.11 MAC header中

其实LLC这边,以前的很多设计基本没用,抓包看LLC永远是0XAA,表示的snap,这里从上面的说明中也可以看出来,直接固定了。

然后在SNAP header中显示,OUI是为0,其实在802.11h中这个地方是可以设置成别的。

唯一有用的是SNAP header中的type字段,这里其实就是会对应ip层的协议,比如arp(0x0806)、ipv4(0x0800)等。

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ESP32主板控制器支持WiFi和蓝牙双模通信,外围兼容低功耗硬件设计,深度睡眠模式下功耗仅为10uA。主控器支持USB和外接3.7V锂电池两种供电方式,可实现双电源下自动切换电源功能,并支持USB和外接DC两种充电方式。体积小巧,接口方便,上手简单,可直接应用于物联网低功耗项目。 在编程方面,ESP32主板控制器支持Arduino、idf(linux)、micropython等多种方式,并且,对于Arduino IDE做了引脚映射,可以直接传递Dx来配置引脚,使用方式上兼容UNO,从而降低了使用的门槛。 请注意:ESP32仍然针对开发人员,并不是所有的外设都具有示例代码的完整功能,还有一些bug需要被发现和修复。在Arduino IDE下,IO管脚功能以及I2C/SPI可以直接调用,其他功能依旧在开发中。 实物截图: 技术规格: 工作电压:3.3V 输入电压:3.3V~5V 支持低功耗:10uA 支持最大放电电流:[email protected] LDO 支持最大充电电流:500mA 支持USB充电 处理器:Tensilica LX6双核处理器(一核处理高速连接;一核独立应用开发) 主频:240MHz SRAM:520KB Flash:16Mbit Wi-Fi标准:FCC/CE/TELEC/KCC Wi-Fi协议:802.11 b/g/n/d/e/i/k/r (802.11n,速度高达150 Mbps),A-MPDU和A-MSDU聚合,支持0.4us防护间隔 频率范围:2.4~2.5 GHz 蓝牙协议:符合蓝牙v4.2 BR/EDR和BLE标准 蓝牙音频:CVSD和SBC音频低功耗:10uA 工作电流:80mA(平均) 频率范围:2.4~2.5GHz 支持Arduino一键下载 支持micropython 片上时钟:40MHz晶振、32.768KHz晶振 数字I/O:10(arduino默认) 模拟输入:5(arduino默认) SPI:1(arduino默认) I2C:1(arduino默认) I2S:1(arduino默认) LED_BUILTIN:D9 接口方式:FireBeetle系列兼容 工作温度:-40℃~+85℃ 模块尺寸:24 × 53(mm)/0.94 x 2.09(inches) 安装孔尺寸:内径3.1mm/外径6mm 可能感兴趣的项目设计: ESP32 兼容WiFi开发板应用及资料开源

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值