Difference between MPDU, MSDU, AMPDU, and AMSDU in 802.11n

来源:互联网 发布:stm32 pid控制算法 编辑:程序博客网 时间:2024/06/08 10:13

原文地址:http://ergodicthoughts.blogspot.com/2012/02/difference-between-mpdu-msdu-ampdu-and.html

 

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.
MSDU是个以太网帧,由IP层下发到MAC层,MAC层加入MAC header后,再

作为MPDU下发到PHY层。MPDU=(MAC header + MSDU)

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).

MSDU聚合:将多个MSDUs聚合在一起形成AMSDU,AMSDU+MAC headr之后形成MPDU发送到PHY层。
* 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.
AMSDU目的:1、对于大多数client来说原始帧格式是以太网帧,2、以太网帧头比802.11帧头小很多,可以将多个以太网帧结合在一起使用一个802.11帧头封装成一个MPDU。
MPDU: MAC protocol data units are the frames passed from the MAC layers into the PHY layer.
MAC协议数据单元:从MAC层传给PHY层,MPDU=(MAC header + MSDU/AMSDU)
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.
多个MPDU聚合成一个AMPDU,AMPDU=(MPDU1+...+MPDUn)

,PPDU=(PLCP header preamble + MPDU/AMPDU)

** The 802.11n system was designed so that either AMPDU, AMSDU or both aggregation algorithms could be used.
AMSDU和AMPDU可以同时使用

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.

0 0
原创粉丝点击