概述
概念:
- MSDU - MAC Service Data Unit ,MAC服务数据单元
- MPDU - MAC Protocol Data Unit ,MAC协议数据单元。从MAC层传给PHY层,MPDU=(MACheader + MSDU/AMSDU)
- A-MSDU:将多个MSDUs聚合在一起形成AMSDU,AMSDU+MACheadr之后形成MPDU发送到PHY层。
- A-MPDU:针对MPDU的聚合,多个MPDU聚合成一个AMPDU,AMPDU=(MPDU1+…+MPDUn)
- PLCP
1 、PLCP(Physical Layer Convergence Procedure):物理层会聚协议,物理层会聚协议(PLCP)是映射ATM信元到物理媒体的规范,定义特定的管理信息。
2 、PLCP = Packet Layer Control Protocol
PPDU=(PLCPheader preamble + MPDU/AMPDU)
AMSDU目的:
- 对于大多数client来说原始帧格式是以太网帧
- 以太网帧头比802.11帧头小很多,可以将多个以太网帧结合在一起使用一个802.11帧头封装成一个MPDU。
关联:
- MSDU是Ethernet报文,经过添加完整性校验MIC、分帧、省电模式下报文缓存、加密、序列号赋值、CRC校验、MAC头之后成为MPDU,MPDU就是指的经过802.11协议封装过的数据帧。
- MSDU是个以太网帧,由IP层下发到MAC层,MAC层加入MACheader后,再作为MPDU下发到PHY层
区别:
- MSDU可以认为是Ethernet报文,A-MPDU聚合的是经过802.11报文封装后的MPDU,这里的MPDU是指经过802.11封装过的数据帧。
为什么需要聚合:
- 在信道的竞争中所产生的冲突
- 以及为解决冲突而引入的退避机制都大大降低了系统的吞吐量。
802.11n为了解决MAC层的这两个问题,采用了帧聚合(FrameAggregation)技术和BlockAcknowledgement机制。
帧聚合技术又包含针对MSDU的聚合(A-MSDU)和针对MPDU的聚合(A-MPDU)。
对信道利用率的提高主要体现在三个方面。
- 802.11n标准中采用A-MPDU聚合帧格式,即将多个MPDU聚合为一个A-MPDU,只保留一个PHY头,删除其余MPDU的PHY头,减少了传输每个MPDU的PHY头的附加信息,同时也减少了ACK帧的数目,从而降低了协议的负荷,有效的提高网络吞吐量。
- 802.11n协议定义了一个新的MAC特性A-MSDU,该特性实现了将多个MSDU组合成一个MSDU发送,与A-MPDU类似,通过聚合,A-MSDU减少了传输每个MSDU的MAC头的附加信息,提高了MAC层的传输效率。
- 802.11n支持在物理层的优化,提供短间隔功能。原11a/g的GI时长800us,而短间隔Short GI时长为400us,在使用Short GI的情况下,可提高10%的速率。
解析:
A-MSDU:
- 多个MPDU聚合成一个AMPDU,AMPDU=(MPDU1+…+MPDUn),针对MSDU的聚合,A-MSDU技术是指把多个MSDU通过一定的方式聚合成一个较大的载荷。
- 这里的MSDU可以认为是Ethernet报文。通常,当AP或无线客户端从协议栈收到报文(MSDU)时,会打上Ethernet报文头,这里我们称之为A-MSDUSubframe,而在通过射频口发送出去前,需要逐一将其转换成802.11报文格式。而A-MSDU技术旨在将若干个A-MSDUSubframe聚合到一起,并封装为一个802.11报文进行发送。从而减少了发送每一个802.11报文所需的PLCPPreamble、PLCPHeader和802.11MAC头的开销,同时减少了应答帧的数量,提高了报文发送的效率。
A-MSDU报文是由若干个A-MSDU Subframe组成的,每个Subframe均是由Subframe header (Ethernet Header)、一个MSDU和0-3字节的填充组成。
A-MSDU报文结构:
A-MPDU:针对MPDU的聚合,将多个MSDUs聚合在一起形成AMSDU,AMSDU+MACheadr之后形成MPDU发送到PHY层。通过一次性发送若干个MPDU,减少了发送每个802.11报文所需的PLCPPreamble、PLCPHeader,从而提高系统吞吐量。
A-MPDU报文格式:
A-MPDU和A-MSDU 功能都是802.11n中用来提高信道利用率的技术,且AMSDU和AMPDU可以同时使用。
延申知识点:
- 为保证数据传输的可靠性,802.11协议规定每收到一个单播数据帧,都必须立即回应以ACK帧。A-MPDU的接收端在收到A-MPDU后,需要对其中的每一个MPDU进行处理,因此同样针对每一个MPDU发送应答帧。Block
Acknowledgement通过使用一个ACK帧来完成对多个MPDU的应答,以降低这种情况下的ACK帧的数量。
Block Ack机制分三个步骤来实现:
Þ 通过ADDBA Request/Response报文协商建立Block ACK协定。
Þ 协商完成后,发送方可以发送有限多个QoS数据报文,接收方会保留这些数据报文的接收状态,待收到发送方的BlockAckReq报文后,接收方则回应以BlockAck报文来对之前接收到的多个数据报文做一次性回复。
Þ 通过DELBA Request报文来撤消一个已经建立的Block Ack协定。
Block Ack 工作机制
为什么大多数系统使用AMPDU聚合而不是AMSDU聚合?
- A-MSDU 将最大帧传输大小从 2304 字节增加到几乎 8k 字节,而 A-MPDU 允许高达 64k 字节。
- AMSDU 的主要问题是整个 frame 成为一个 MACframe(或协议数据单元 - PDU),因此只有一个 CRC 检查,因此,随着帧大小的增加,错误的可能性也会增加。由于我们有单一CRC检查,我们无法重新传输AMSDU的一部分,在大多数情况下,这会导致以较低的速率重新传输,从而抵消了聚合的好处。另一方面,AMPDU由多个PDU组成,每个PDU都有自己的CRC,因此,在发生故障时,其中一部分可以重新传输,从而提高效率。然而,这种性能提升是有代价的,因为现在每个聚合 AMPDU 我们都为所有子帧发送 MAC 标头。
所以在技术看来,如果遇到别人说AMPDU和AMSDU他们的区别在哪,我们可以直接说结论:一个聚大包,一个聚小包!
最后
以上就是火星上大神为你收集整理的A-MSDU、A-MPDU、PLCP、MSDU、MPDU、PPDU的全部内容,希望文章能够帮你解决A-MSDU、A-MPDU、PLCP、MSDU、MPDU、PPDU所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复