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 tries to summarize what 802.11n for developers.

Spatial streams

802.11n capable hardware can have more than one spatial stream. You can think of each spatial stream hardware designated for generation of traffic for TX or RX. The idea is 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 however many chains for one stream. This differs from the notion of antenna diversity on 802.11abg hardware, for example, in that with antenna diversity you are switching which 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 increase 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 form 802.11n D5.

Legend

nSS

number of spacial 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. These rates also require the addition of another entry in the table, the nES (number of BCC encoders for the DATA field).

Block Acks

The idea with Block Acks is to 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.