Wi-Fi bandwidth

Physical layer bandwidth

When a wireless station connects to an access point, it does so of course by using RF. In order to carry digital data, it must first modulate the RF to represent the bit stream. The modulation methods are different for different data rates. If you are close to the AP, chances are you’ll have a good clean signal and be able to connect at a high rate. The modulation used for high rates is more susceptible to noise and errors. If you move away to a weaker signal, or a signal that isn’t as clean, then the modulation used changes to one that only supports a lower rate.

This data rate is the physical rate, determined by the modulation used. It is the rate shown on the icon in the operating system when you connect to an AP.

MAC layer bandwidth

The above mentioned physical rate is not what you’ll be able to transfer data at. For all this 802.11 to work, there are three kinds of frames:

  • management frames (e.g., beacons, association frames)
  • control frames (e.g., acknowledgement frames)
  • data frames (carry actual data payload)

A wireless network has lots of overhead in order to work. Only the data frames carry actual data. Unlike wired networks, wireless networks can’t detect if a collision has occurred. Therefore, every data frame that gets transmitted, must have a corresponding acknowledgement frame to confirm delivery. Straight away we’re eating into the bandwidth which was available at the physical layer.

Network throughput

After all the overhead is out of the way, the data bandwidth available has to be shared amongst all the users associated to that AP. Think of it as a hub, which can only service one device at a time.

On an 802.11g AP, I have my mobile phone connected at a physical bandwidth of 54 Mb/s (the maximum for 802.11g). I run a program called iperf, which has a server side, and client side instance running. This program pumps out data so you can see the actual throughput. Running this on TCP takes into account the TCP overhead as well. On my 54 Mb/s physical connection, I get an average of 21 Mb/s of actual data throughput. This is with just the one client connected, and a very clean RF environment, as shown below.