NOTE: this page is for archival only, see the note at the end of the page.

Go back –> IEEE-802.11 standards

Review of IEEE-802.11n

IEEE-802.11n was designed to allow transmissions of up to 100Mbps, thanks to this work, devices are theoretically capable of transmitting at rates of up to 600Mbps (PHY data rate). This section summarizes what 802.11n is for developers.

Spatial streams

802.11n capable hardware can have more than one spatial stream. You can have multiple spatial streams all capable of transmitting and receiving concurrently. Each stream can use multiple RX or TX chains. Streams are different than chains, each TX or RX chain consists of a dedicated radio and at least one antenna (a chain can also use antenna diversity). One stream can use one chain or move between them intelligently (this is called selection diversity). Theoretically, you can use as many chains as needed for one stream. This differs from the notion of antenna diversity on 802.11abg hardware. In antenna diversity you are switching the antenna you use to TX or RX dynamically.

The NxM nomenclature tells us about the number of TX/RX chains, and has nothing to do with streams. It should be noted that each stream increases the overall throughput. See below for nSS on the table.

MCS Rates

With 802.11n you can use a new set of rates designed specifically for high throughput (HT). Below are the HT Modulation and Coding Schemes (MCS) rates and its dependent symbols. These come from section 20.6 from 802.11n D5.

Legend

nSS

number of spatial streams

R

coding rate

nBPCSS(iSS)

Number of coded bits per signal carrier for each spatial stream, iSS = 1..., nSS

nSD

Number of complex data numbers per spatial stream per ODFM symbol

nSP

Number of pilot values per OFDM symbol

nCBPS

Number of coded bits per OFDM symbol

nDBPS

Number of data bits per OFDM symbol

HT20 rates

HT20 mode uses 20 MHz width channels.

MCS Index

nSS

Modulation

R

nBPCSS(iSS)

nSD

nSP

nCBPS

nDBPS

Mbps (800 ns GI)

Mbps (400 ns GI)

0

1

BPSK

1/2

1

52

4

52

26

6.5

7.2

1

1

QPSK

1/2

2

52

4

104

52

13.0

14.4

2

1

QPSK

3/4

2

52

4

104

78

19.5

21.7

3

1

16-QAM

1/2

4

52

4

208

104

26.0

28.9

4

1

16-QAM

3/4

4

52

4

208

156

39.0

43.3

5

1

64-QAM

2/3

6

52

4

312

208

52.0

57.8

6

1

64-QAM

3/4

6

52

4

312

234

58.5

65.0

7

1

64-QAM

5/6

6

52

4

312

260

65.0

72.2

8

2

BPSK

1/2

1

52

4

104

52

13.0

14.4

9

2

QPSK

1/2

2

52

4

208

104

26.0

28.9

10

2

QPSK

3/4

2

52

4

208

156

39.0

43.3

11

2

16-QAM

1/2

4

52

4

416

208

52.0

57.8

12

2

16-QAM

3/4

4

52

4

416

312

78.0

86.7

13

2

64-QAM

2/3

6

52

4

624

416

104.0

115.6

14

2

64-QAM

3/4

6

52

4

624

468

117.0

130.0

15

2

64-QAM

5/6

6

52

4

624

520

130.0

144.0

16

3

BSSK

1/2

1

52

4

156

78

19.5

21.7

17

3

QPSK

1/2

2

52

4

312

156

39.0

43.3

18

3

QPSK

3/4

2

52

4

312

234

58.5

65.0

19

3

16-QAM

1/2

4

52

4

624

312

78.0

86.7

20

3

16-QAM

3/4

4

52

4

624

468

117.0

130.0

21

3

64-QAM

2/3

6

52

4

936

624

156.0

173.3

22

3

64-QAM

3/4

6

52

4

936

702

175.5

195.0

23

3

64-QAM

5/6

6

52

4

936

780

195.0

216.7

24

4

BPSK

1/2

1

52

4

208

104

26.0

28.9

25

4

QPSK

1/2

2

52

4

416

208

52.0

57.8

26

4

QPSK

3/4

2

52

4

416

312

78.0

86.7

27

4

16-QAM

1/2

4

52

4

832

624

156.0

173.3

28

4

16-QAM

3/4

4

52

4

832

624

156.0

173.3

29

4

64-QAM

2/3

6

52

4

1248

832

208.0

231.1

30

4

64-QAM

3/4

6

52

4

1248

936

234.0

260.0

31

4

64-QAM

5/6

6

52

4

1248

1040

260.0

288.9

HT40 rates

MCS Index

nSS

Modulation

R

nBPCSS(iSS)

nSD

nSP

nCBPS

nDBPS

Mbps (800 ns GI)

Mbps (400 ns GI)

0

1

BPSK

1/2

1

108

6

108

54

13.5

15.0

1

1

QPSK

1/2

2

108

6

216

108

27.0

30.0

2

1

QPSK

3/4

2

108

6

216

162

40.5

45.0

3

1

16-QAM

1/2

4

108

6

432

216

54.0

60.0

4

1

16-QAM

3/4

4

108

6

432

324

81.0

90.0

5

1

64-QAM

2/3

6

108

6

648

432

108.0

120.0

6

1

64-QAM

3/4

6

108

6

648

486

121.5

135.0

7

1

64-QAM

5/6

6

108

6

648

540

135.0

150.0

8

2

BPSK

1/2

1

108

6

216

108

27.0

30.0

9

2

QPSK

1/2

2

108

6

432

216

54.0

60.0

10

2

QPSK

3/4

2

108

6

432

324

81.0

90.0

11

2

16-QAM

1/2

4

108

6

864

432

108.0

120.0

12

2

16-QAM

3/4

4

108

6

864

648

162.0

180.0

13

2

64-QAM

2/3

6

108

6

1296

864

216.0

240.0

14

2

64-QAM

3/4

6

108

6

1296

972

243.0

270.0

15

2

64-QAM

5/6

6

108

6

1296

1080

270.0

300.0

Note that MCS [16-76] exist going up to 600 Mbps but too lazy to write that from the docs, feel free to expand – the section with this table on the 802.11n specification is on tables 20-29 up to 20-43. These rates also require the addition of another entry in the table, the nES (number of BCC encoders for the DATA field).

See http://mcsindex.com/ for all of them. Raw tables are available at https://github.com/ewa/802.11-data.

Block Acks

Block Acks let you acknowledge a set of frames with a single new modified type of ACK. This is extremely useful when you use aggregation. If a transmitter did not get a block ack back it will send a block ack request to the receiver after a period of time.

Aggregation

802.11n introduces two types of aggregation to increase throughput.

A-MPDU

This is the most common form of aggregation supported and used by drivers. mac80211 has full support for this type of aggregation. With it you pack together frames and each frame has its own dedicated CRC. The receiver can send a BlockAck with a bitmap of each successful frame. In the bitmap it can also specify which frame failed to force the transmitter to retransmit the single unsuccessful frame.

A-MSDU

This is not commonly used, but the standard and WiFi certification requires support for receiving A-MSDUs. mac80211 has support for this, so drivers don't need to do anything. With A-MSDUs you cannot check each individual frame as each of them does not have a dedicated CRC. If a frame is corrupt you will have to retransmit the entire aggregate.

More references

You can read this paper written for computer scientists without a strong EE/RF signal processing background called "802.11 with Multiple Antennas for Dummies":

http://www.cs.washington.edu/homes/dhalperi/pubs/mimo_for_dummies.pdf


This is a static dump of the wiki, taken after locking it in January 2015. The new wiki is at https://wireless.wiki.kernel.org/.
versions of this page: last, v18, v17, v16, v15, v14, v13, v12, v11, v10, v9, v8, v7, v6, v5, v4, v3, v2, v1