AI-generated Computed, not captured Standard frame format Illustrative addresses

This visualiser was generated by Claude (Anthropic) as part of the Wireless 101 course materials. The field offsets and their sum, the whole Frame Control decode, and the CRC-32 over the real frame bytes are computed live from the rules printed at the foot of the page — the frame is assembled byte by byte and the trailer is a genuine CRC-32, never a number typed in. Three kinds of number appear, each labelled where it is used: computed (offsets, the decode, the CRC, the FCS check, the MCS rate), published figure (the 802.11 MAC header layout, the Frame Control bit map, the CRC-32 polynomial, and the 802.11n 20 MHz PHY constants), and illustrative (the specific addresses, Duration, Sequence Control and body bytes, chosen so there is a concrete frame to run the CRC over). It does not capture any traffic and it does not call out to a server.

802.11 MAC frame: Frame Control (2) | Duration/ID (2) | Address 1/2/3 (6 each) | Sequence Control (2) | [Address 4 (6)] | Frame Body (0–n) | FCS (4). FCS is a CRC-32 with reflected polynomial 0xEDB88320 (IEEE 802.3); CRC-32("123456789") = 0xCBF43926. Sources: IEEE 802.11-2020 §9.2 (frame format), IEEE 802.3 (FCS), course M11-L1 WiFi.

Decode a WiFi (802.11) frame

Take an 802.11 MAC frame apart field by field, decode the Frame Control word bit by bit, and check the FCS trailer is a real CRC-32 over the frame. Change the Frame Control hex to see the type and flags change; stretch the frame body and watch the offsets and the total length move; flip a byte and the CRC no longer matches — the frame reads corrupt. Every offset, bit and checksum is computed from the bytes, never sketched.

The decode pipeline

A receiver takes the raw bytes, walks the fixed field layout to find each field, decodes the Frame Control word into type/subtype and flags, and verifies the FCS is a CRC-32 over everything before it. Each thumbnail is drawn from the same computation as the panels below — nothing here is an icon. Hover a block to highlight the panel and the knobs that feed it.

The frame, field by field

Each cell is one field, with its byte offset and length. The offsets are contiguous — each field starts exactly where the previous one ends — so the lengths sum to the total frame length. Add Address 4 (only present when both ToDS and FromDS are set) or stretch the body and every offset after it shifts.

Frame Control, bit by bit

The 2-byte Frame Control word carries the protocol version (bits 0–1), the type (bits 2–3), the subtype (bits 4–7) and eight flags (bits 8–15). Type 0 is Management, 1 is Control, 2 is Data. Type the hex and watch the bits and the decode change.

 

FCS: a real CRC-32 check

The transmitter computes a CRC-32 over the MAC header and body and appends it as the 4-byte FCS. The receiver recomputes the CRC over the bytes it got and compares. Flip a byte and the recomputed CRC diverges from the transmitted trailer — that is how a corrupt frame is caught.

 

MCS index → PHY data rate

The rate is not looked up — it is computed from the physical parameters: rate = N_SD · N_BPSCS · R · N_SS / T_SYM, with the 802.11n 20 MHz constants N_SD = 52 and T_SYM = 4.0 µs (or 3.6 µs with the short guard interval). The MCS index only names the modulation and coding rate.

 

The rules, in full