MSDU/MPDU/AMSDU/AMPDU基本概念:pre 11ax

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层之后完成聚合。

A-MSDU

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

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

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

A-MSDU帧格式如下

MPDU

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等级。

为保证数据传输的可靠性,802.11协议规定每收到一个单播数据帧都必须立即回应ACK。A-MPDU的接收端在收到A-MPDU后,需要对每一个MPDU进行处理,发送应答。Block ACK通过使用一个ACK来完成对多个MPDU的应答,从而减少信道竞争所消耗的时间, 提高了系统吞吐量。

通过ADDBA Request/Response报文协商建立Block ACK协定。

协商完成后,发送方可以发送有限多个QoS数据报文,接收方会保留这些数据报文 的接收状态,待收到发送方的BlockAckReq报文后,接收方则回应BlockAck报文来对之前接收到的多个报文一次性回复。

通过DELBA Request报文来删除一个已经建立的Block Ack协定。

对于Bock Ack的确认氛围即时确认和延时确认。即时确认一般由硬件完成,延时确认一般由协议栈完成,通过Block Ack的确认配合帧聚合的使用何以大大提高802.11n无线传输中的吞吐量。

总结

802.11在物理层和MAC做了许多改进,极大的提高了物理层传输速率。聚合机制的提出,减少了协议开销,有效的提高了帧效率,改善WLAN链路的带宽利用率低的特点,为高带宽业务提供了可能。

>>>>>>>>>>>>>>>>>>>>>>

Basic operation of DCF is illustrated in Figure1 below.

A-MSDU: The concept of A-MSDU is to allow multiple MSDUs to be sent to the same receiver concatenated in a single MPDU. This supporting function for A-MSDU within 802.11n is mandatory at the receiver. Due to Destination Address (DA) and sender Address (SA) in the subframe header must match to same receiver address (RA) and the transmitter address (TA) in the MAC header, A-MSDU cannot be used for broadcast & multicast.

A-MPDU: The concept of A-MPDU aggregation is to join Multiple MPDU sub frames with a single leading PHY header. A key difference from A-MSDU aggregation is that A-MPDU functions after the MAC header encapsulation process. This method offer higher MAC throughput compare to A-MSDU.

Difference in implementation:

If we see the packet being handed from the IP layer to the MAC layer the following sequence of processing is seen. The packet goes from the IP layer to the MAC-llc (logical link control layer) or the upper MAC. This is also called as the MAC service access point (MAC-SAP). 

MSDU: Is the  MAC service data unit . This is the unit of transmission used at the MAC layer which is received from the upper layer.

AMSDU: Aggregation of the  MSDUs directly performed at the MAC layer is called an AMSDU. Such AMSDU's are now passed to the lower PHY layer, where they are dealt with as MPDUs. Multiple MSDUs are aggregated at the MAC layer and pushed into a single MPDU (which is pushed to the PHY). They have a single frame header with multiple frames, and they are destined for the same client and the same service class. (Basically they all have the same TiD).

* The main motivation for aggregation at the MSDU layer is that: (1) Ethernet is the native frame format for most clients, (2) since the ethernet header is much smaller than the 802.11 header, we can combine multiple ethernet frames to form a single A-MSDU.

MPDU: MAC protocol data units are the frames passed from the MAC layers into the PHY layer.

AMPDU: These are are the aggregated MPDU units which are pushed into a single PPDU (physical protocol data unit).  All frames will have a single PLCP header and preamble.

** The 802.11n system was designed so that either AMPDU, AMSDU or both aggregation algorithms could be used.

When do we want to use an A-MPDU and when do we want to use an A-MSDU:

Rather , the topic of this discussion should be why is AMPDU aggregation preferred over AMSDU aggregation most of the time. Or why most systems use AMPDU aggregation and not AMSDU aggregation.

A-MSDU increases the maximum frame transmission size from 2,304 bytes to almost 8k bytes (7935 to be exact) while A-MPDU allows up to 64k bytes.

However, the main problem with AMSDUs is that the entire blob becomes one MAC frame (or protocol data unit - PDU) and hence has only one CRC check. So as the frame size increase the probability of error increases. Since we have a single CRC check, we cannot retransmit a part of the AMSDU and in most cases this leads to re-transmission at lower rates which nullifies the benefit of aggregation. An AMPDU on the other hand consists of multiple PDUs each with their own CRCs. Hence, in the event of a failure, part of these can be retransmitted resulting in higher efficiency. However, this performance gain comes at a cost since now with every aggregate AMPDU we are sending MAC headers for all of the subframes.

Hence decision of using AMSDU versus AMPDU is a tradeoff between probability of error and retransmission costs in an AMSDU versus MAC frame header overheads in an aggregate with AMPDU. In most real world systems, the later wins, and hence most systems implement AMPDUs.

<think>好的,我需要回答用户关于MSDUMPDU区别的问题。首先,我得回顾一下之前提供的关于PSDU的内容,并结合用户新给的引用资料。用户提到MSDUMPDU网络通信中的定义和功能对比,所以需要明确两者的层级归属、结构以及作用。 首先,MSDU是MAC层服务数据单元,属于LLC子层传递到MAC层的数据,而MPDU是MAC协议数据单元,是MAC层处理后的数据帧。根据引用[2],MSDU在MAC层聚合时会添加LLC头和MAC头,而MPDU则可能包含多个MSDU或者经过分片。此外,用户提供的引用[1]提到A-MPDU由多个子帧组成,每个子帧包括分界符和MPDU实体,这涉及到MPDU的结构。引用[2]还讨论了聚合时的填充和对齐,这些影响有效吞吐量,所以需要比较两者的聚合方式和效率。 接下来,要区分两者的封装过程。MSDU作为高层数据,进入MAC层后会被封装成MPDU,添加MAC头和FCS。而MPDU则是传输到物理层前的最终形式,可能在物理层进一步聚合为PSDU。引用[2]中的例子显示,MSDU聚合时共享MAC头,而MPDU聚合需要分界符和填充,这说明两者的处理步骤不同。 功能方面,MSDU关注数据完整性,MPDU负责传输控制,比如地址识别和错误检测。需要结合引用中的例子,比如不聚合时的MPDU结构,以及聚合后如何影响吞吐量。同时,用户之前的回答提到了PSDU与MPDU的关系,这里需要将MSDUMPDU的关系联系起来,明确它们在协议栈中的位置。 最后,要确保回答结构清晰,分点说明定义、结构、封装和功能对比,并引用提供的资料来支持论点。可能还需要添加相关问题,引导用户进一步学习,如聚合技术的优劣或不同协议版本的影响。</think>### **MSDUMPDU的区别及功能对比** 在802.11协议栈中,**MSDU**(MAC Service Data Unit)和**MPDU**(MAC Protocol Data Unit)是MAC层处理数据的两种核心单元,二者的区别体现在**定义层级、封装结构、功能定位**等方面。以下结合标准定义与实际场景进行详细对比: --- #### **1. 定义与层级归属** | **特性** | **MSDU** | **MPDU** | |------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------| | **全称** | MAC Service Data Unit(MAC服务数据单元) | MAC Protocol Data Unit(MAC协议数据单元) | | **层级来源** | 来自**LLC子层**(逻辑链路控制层)的数据单元,是MAC层的**服务接口输入**[^2]。 | MAC层自身处理后的数据帧,是MAC层与物理层(PHY)交互的**协议数据单元**[^1]。 | | **核心作用** | 承载**上层应用数据**(如IP报文、TCP/UDP负载)。 | 封装MAC层控制信息(地址、序列号、帧控制字段等),确保数据可靠传输。 | --- #### **2. 封装结构与组成** | **特性** | **MSDU** | **MPDU** | |------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------| | **封装内容** | 仅包含**原始数据**(如以太网帧的Payload部分),无MAC层头部或尾部[^2]。 | 由**MAC头部**(30字节)、**帧主体**(MSDU或分片后的MSDU)和**FCS**(帧校验序列)组成[^2]。 | | **分片与聚合** | 当MSDU超过物理层支持的PSDU长度时,MAC层将其**分片**为多个MPDU[^1]。 | MPDU可通过**A-MPDU聚合**(802.11n/ac)合并多个子帧,提升传输效率[^1]。 | | **填充对齐** | MSDU聚合时需插入**0-3字节填充**以实现4字节对齐(如A-MSDU)[^2]。 | MPDU聚合时需添加**分界符**(Delimiter)和填充(子帧对齐)[^1]。 | **示例对比**(引用[2]附图3): - **无聚合场景**: - 应用层Payload(1420字节) → 添加LLC头(8字节) → 添加MAC头(30字节) → 形成**单个MPDU**(总长1458字节)。 - **聚合场景**(A-MSDU): - 多个MSDU共享**一个MAC头**,MSDU间插入填充字节对齐,形成**单个MPDU**(节省MAC头开销)。 --- #### **3. 功能定位对比** | **功能** | **MSDU** | **MPDU** | |------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------| | **数据完整性** | 关注**高层数据的完整性**(如TCP重传由上层处理)。 | 确保**MAC层帧的可靠性**(通过FCS校验、ACK重传机制)。 | | **传输控制** | 不直接参与传输控制。 | 包含**地址字段**(源/目的MAC)、**序列号**、**帧类型**等控制信息。 | | **聚合优化** | 通过**A-MSDU聚合**减少MAC头开销(适合小包场景)[^2]。 | 通过**A-MPDU聚合**提升信道利用率(适合高吞吐量场景)[^1]。 | --- #### **4. 典型场景对比** 1. **发送流程**: - **MSDU处理**:LLC层传递MSDU至MAC层 → MAC层添加头部/尾部形成MPDU → 物理层封装为PSDU。 - **MPDU处理**:若MPDU长度超过物理层限制(如802.11ac最大PSDU为1MB),需分片为多个MPDU。 2. **聚合效率**: - **A-MSDU**:聚合多个MSDU为一个MPDU,减少MAC头开销,但要求所有MSDU**目标地址相同**。 - **A-MPDU**:聚合多个MPDU为一个PSDU,允许不同目标地址,通过单次传输提升效率[^1]。 3. **错误恢复**: - **MSDU丢失**:需依赖上层协议(如TCP)检测和重传。 - **MPDU丢失**:MAC层通过Block ACK机制快速重传[^1]。 --- #### **5. 协议演进中的差异** - **802.11n/ac**: - **A-MPDU**成为主流聚合方式,支持更大规模MPDU聚合(802.11ac支持1MB PSDU)。 - **802.11ax(Wi-Fi 6)**: - 引入**多用户聚合**(OFDMA),MPDU可分割为多个RU(资源单元)服务不同用户[^3]。 --- ### **总结** - **MSDU**是MAC层接收的原始数据单元,**MPDU**是MAC层封装后的传输单元。 - **关键区别**: - MSDU无MAC控制信息,MPDU包含完整MAC帧结构。 - MSDU聚合优化头部开销,MPDU聚合优化信道利用率。 - **协同关系**: MSDU通过分片或聚合形成MPDU,最终通过物理层(PSDU)发送,二者共同实现高效可靠的数据传输[^1][^2]。 --- ### **相关问题** 1. A-MSDU与A-MPDU的适用场景有何不同?哪种聚合方式更适合高密度Wi-Fi网络? 2. MPDU分片机制如何影响无线信道利用率? 3. 在802.11ax中,OFDMA如何与MPDU聚合技术结合以提升多用户性能? [^1]: A-MPDU通过聚合多个MPDU子帧,减少前导码和帧间隔开销,显著提升吞吐量[^1]。 [^2]: MSDU聚合通过共享MAC头降低协议开销,但需目标地址一致,适用于视频流等小包场景。 [^3]: 802.11ax的OFDMA技术支持MPDU分割为多RU,实现多用户并行传输,降低延迟[^3]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值