Monday, March 24, 2014

PHY rate and UDP throughput

802.11ac supports a maximum speed of ~433 Mbps on a 80 Mhz channel. Does this mean the application level throughput between two 11ac devices is 433 Mbps? Not really. "433 Mbps" is the Maximum PHY rate and this is what the device manufacturers would advertise. Application throughput depends on various factors that vary from time to time and device to device. Some factors are the type of data (TCP/UDP etc), Speed of the device, Channel conditions etc. Apart from the variable factors there are also some overheads in the 802.11 protocol itself. This article tries to describe the 802.11 overheads and calculate the maximum UDP throughput (under _ideal_ conditions) for a given PHY rate.

Overheads in 802.11 data transmission


The overheads in 802.11 data transmission are illustrated in the above figure.
They are:
  • Fixed wait : DIFS or AIFS
  • Random Wait 
  • PHY Header
  • MAC Header
  • MAC FCS
  • SIFS
  • ACK/Block ACK (PHY Header + ACK Data + FCS)
Along with the above, the data frame has the following overheads
  • SNAP Header
  • IP Header
  • UDP Header

UDP Throughput

Maximum UDP throughput (for a UDP payload of 1500 bytes) in various 802.11 modes is shown below.

Mode Maximum PHY Rate(Mbps) PHY Data time (us) PHY HDR time (us) ACK time (us) Maximum UDP throughput (Mbps)
(Payload size = 1500 bytes)
11g
54
232
120
34
31.1
11a
54
232
126
40
30.2
11n (20 MHz)
72.2
176
142
56
32.1
11n (40 MHz)
150
84
142
56
42.6
11ac (20 MHz)
86.7
148
146
60
33.9
11ac (40 MHz)
200
64
146
60
44.4
11ac (80 MHz)
433
32
146
60
50.4
Updated on 20/08/2014: Corrected 11ac 20 MHz max rate (MCS9 is not allowed in 20 MHZ 1SS).

Isn't it surprising that a PHY rate of 433 Mbps results in a throughput of just 50.4 Mbps? Well, that is why aggregation is essential for achieving good throughput. Lets look at the throughput when MPDU aggregation is used (in 11n and 11ac).

Throughput with A-MPDU

Mode Maximum 
PHY Rate(Mbps)
A-MPDU 
size
Maximum Throughput
(UDP Payload=1500, 
A-MPDU spacing=0)
11n (20 MHz) 72.2 8192 56.3

72.2 16384 62

72.2 32768 65.5

72.2 65536 67.3
11n (40 MHz) 150 8192 97.1

150 16384 116.1

150 32768 128.3

150 65536 136
11ac (80 MHz) 433 8192 169.5

433
16384
241

433
32768
305.3

433
65536
352.9

The impact of aggregation on throughput is better understood with the below graph.

Approximations/Assumptions

The Maximum possible UDP throughput in the above calculations should be fairly accurate. However, please note that:
  • An average random wait of 8 slots is considered (CWMax=15)
  • PHY "SERVICE" bits (16) are not considered
  • MPDU PAD bits are not considered
  • Tail bits (6) are not considered
  • Transmission time is rounded to nearest symbol time (4 micro seconds)
  • A different UDP payload size would result in a different throughput number (larger the payload size better is the throughput)
  • "Ideal" conditions are assumed, e.g., an RF shield room 
The spreadsheets used for the above calculations can be downloaded from here.