7.2 MSDU, MPDU, PSDU, PPDU and Aggregation
Key Takeaways
- An MSDU is the payload the MAC receives from upper layers before 802.11 header and FCS bytes are added
- An MPDU is the MAC frame; the PHY names those bits a PSDU, then adds a preamble and header to form a PPDU
- A-MSDU concatenates multiple MSDUs inside one MPDU that still has a single MAC header and one FCS
- A-MPDU concatenates MPDUs with delimiters under one PHY preamble and works with Block ACK bitmaps
- Aggregation cuts preamble, interframe, and ACK overhead that would otherwise dominate airtime at high PHY rates
Service sets tell you who talks. This section tells you what those STAs put on the air. IEEE 802.11 uses four look-alike acronyms—MSDU, MPDU, PSDU, PPDU—plus two aggregation methods, A-MSDU and A-MPDU. The names are layer names for the same conversation as a frame climbs down from LLC toward RF. Mix them up and every later question about headers, FCS, and Block ACK becomes guesswork.
Harborline’s scanners send thousands of small WMS updates per hour. Each tiny payload still needs a MAC header, an FCS, a PHY preamble, a PHY header, and an acknowledgment. Without aggregation, that overhead can dwarf the payload once PHY rates climb. Aggregation is how 802.11n and later keep airtime useful.
The encapsulation stack
Read this top-down, the way a Harborline scanner’s IP packet becomes RF:
- MSDU (MAC Service Data Unit) — the payload the MAC accepts from upper layers (typically LLC carrying an IP packet, plus any LLC/SNAP wrapping). The MAC does not treat IP addresses as 802.11 addresses; those bytes ride inside the MSDU. A classic maximum individual MSDU size is 2304 octets.
- The MAC may optionally pack several MSDUs into an A-MSDU. That aggregate still becomes the body of one MPDU.
- MPDU (MAC Protocol Data Unit) — the MAC frame: MAC header, frame body (one MSDU, a fragment, or an A-MSDU), and FCS.
- The MAC may optionally concatenate several MPDUs into an A-MPDU, inserting MPDU delimiters between them.
- PSDU (PLCP Service Data Unit) — the PHY’s name for the bits the MAC just handed down. For a single MPDU, PSDU and MPDU are the same octet string described at two layers. When the MAC sends an A-MPDU, the PSDU is the entire aggregate, not one inner MPDU.
- PPDU (PLCP Protocol Data Unit) — PSDU plus PHY preamble and PHY header (the PLCP header / SIG fields). The PPDU is what the PMD modulates onto the channel.
| Name | Layer that uses the name | What it contains |
|---|---|---|
| MSDU | MAC service (from LLC) | Upper-layer payload |
| MPDU | MAC protocol | MAC header + body + FCS |
| PSDU | PHY / PLCP service | MAC bits the PHY will wrap |
| PPDU | PHY / PLCP protocol | Preamble + PHY header + PSDU |
Memory hook: S means “service data unit coming in from above.” P means “protocol data unit this layer sends downward.” The MAC turns an MSDU into an MPDU. The PHY turns a PSDU into a PPDU. MPDU ≈ PSDU is the cross-layer rename; PPDU is that rename plus preamble and PHY header.
PHY preamble and PHY header
The PHY preamble is training energy at the front of the PPDU: short and long training fields that let the receiver lock timing, run AGC, and estimate the channel. Without a preamble, the PSDU is just noise to a radio that is not yet synchronized.
The PHY header (legacy L-SIG, plus HT/VHT/HE SIG fields on later PHYs) tells the receiver how to demodulate the rest of the PPDU: length, rate or MCS, bandwidth, and related signaling. The preamble and header are not part of the MPDU and are not covered by the MAC FCS. They are PHY overhead paid once per PPDU.
That “once per PPDU” fact is why aggregation matters. A Harborline scanner sending 80-byte updates at a high MCS still spends tens of microseconds on preamble, SIFS, and ACK for every isolated PPDU. Batch many payloads under one preamble and the percentage of airtime spent on useful MSDUs jumps.
PLCP (Physical Layer Convergence Procedure) is the PHY sublayer that attaches preamble and header. PMD (Physical Medium Dependent) is the sublayer that turns the PPDU into analog RF. CWNA-depth questions usually stop at “preamble + header + PSDU = PPDU,” not at silicon block diagrams.
A-MSDU: many MSDUs inside one MPDU
A-MSDU (Aggregate MSDU) concatenates multiple MSDUs into the body of one MPDU. There is still one MAC header and one FCS for the whole aggregate.
Each inner MSDU is wrapped in a short subframe header: destination address, source address, and length, then the MSDU, then padding to a 4-octet boundary. All MSDUs in one A-MSDU must share the same receiver (and typically the same transmitter) and the same QoS access category / TID. You do not mix voice and best-effort MSDUs in one A-MSDU.
Why use it: inner subframe headers are smaller than a full 802.11 MAC header plus FCS, so A-MSDU is efficient on the wire-like payload.
Cost: one bit error fails the single FCS, so the entire A-MSDU is discarded. There is no per-MSDU CRC inside the aggregate. A-MSDU is also a poor fit for broadcast/multicast in the usual unicast DA/SA matching rules.
Receiver support for A-MSDU was mandatory in 802.11n. Harborline’s WMS bursts to one scanner can sit in one A-MSDU when they share TID and destination.
A-MPDU: many MPDUs inside one PPDU
A-MPDU (Aggregate MPDU) concatenates complete MPDUs under one PHY preamble and PHY header. Each MPDU still has its own MAC header and own FCS. Between MPDUs the transmitter inserts a 4-octet MPDU delimiter (length, a small CRC, and a delimiter signature) and pads so the next MPDU starts on a 4-octet boundary.
Why use it: the expensive PHY preamble is paid once. If noise corrupts MPDU 5, MPDUs 1–4 and 6 can still pass their own FCS values. The recipient can request retransmission of only the failed MPDUs.
Cost: every inner MPDU still carries a full MAC header and FCS, so A-MPDU has more MAC overhead per payload than A-MSDU. The win is robustness plus preamble sharing.
VHT (802.11ac) data PPDUs are built as A-MPDUs (an A-MPDU may contain a single MPDU). HE (802.11ax) continues that model. Two-level aggregation is allowed: build A-MSDUs, wrap each as an MPDU, then A-MPDU those MPDUs into one PPDU.
Block ACK at CWNA depth
A lone MPDU historically expected an immediate ACK after SIFS. That pattern explodes when one PPDU holds dozens of MPDUs: you cannot SIFS-ACK each inner MPDU without destroying the aggregation gain.
Block ACK solves that. After an A-MPDU (or a sequence of QoS data MPDUs using Block ACK agreement), the recipient returns a BlockAck whose bitmap marks which sequence numbers were received correctly. The originator retransmits only the zeros in that bitmap.
Link the ideas the way the exam does:
- A-MPDU is the on-air packing of MPDUs with delimiters and per-MPDU FCS.
- Block ACK is the acknowledgment method that can cover many of those MPDUs in one control frame.
- A-MSDU does not get a per-inner-MSDU ACK: inner MSDUs share one MPDU FCS, so they succeed or fail together.
Harborline takeaway: small WMS updates should ride A-MPDU (often with A-MSDU nested) so one preamble and one BlockAck serve a burst, instead of one full PPDU handshake per 80-byte write.
A-MSDU versus A-MPDU
| Trait | A-MSDU | A-MPDU |
|---|---|---|
| What is concatenated | MSDUs | MPDUs |
| MAC headers | One for the whole aggregate | One per MPDU |
| Integrity check | One FCS for the whole MPDU | FCS per MPDU |
| Separator | Inner DA/SA/Length subframe headers | MPDU delimiters |
| Error behavior | Any error drops the entire A-MSDU | Intact MPDUs still usable |
| ACK relationship | Inner MSDUs are not individually ACKed | Natural pair with Block ACK bitmaps |
| Typical overhead | Lower MAC overhead | Higher MAC overhead, lower PHY overhead per MPDU |
Do not memorize these as “which is always better.” A-MSDU wins on header bytes when the channel is clean and destinations match. A-MPDU wins when you need per-MPDU CRC and Block ACK. Modern radios often use both.
If you remember only one stack sentence: MSDU in, MPDU out of the MAC; PSDU in, PPDU out of the PHY; A-MSDU packs MSDUs inside one MPDU; A-MPDU packs MPDUs inside one PPDU.
Which pairing correctly describes MPDU, PSDU, and PPDU?
Why does A-MPDU use MPDU delimiters and per-MPDU FCS values while A-MSDU does not?
Harborline scanners send many small WMS updates. Which statement about aggregation is accurate at CWNA depth?