Time-based Fairness Improves Performance in Multi-rate Wireless LANs

Godfrey Tan, John Guttag
Proc. of USENIX'04 , Boston, MA, June, 2004.

The performance seen by individual clients on a wireless local area network (WLAN) is heavily influenced by the manner in which wireless channel capacity is allocated. The popular MAC protocol DCF (Distributed Coordination Function) used in 802.11 networks provides equal long-term transmission opportunities to competing nodes when all nodes experience similar channel conditions. When similar-sized packets are also used, DCF leads to equal achieved throughputs ( throughput-based fairness) among contending nodes.

Because of varying indoor channel conditions, the 802.11 standard supports multiple data transmission rates to exploit the trade-off between data rate and bit error rate. This leads to considerable rate diversity, particularly when the network is congested. Under such conditions, throughput-based fairness can lead to drastically reduced aggregate throughput.

In this paper, we argue the advantages of time-based fairness, in which each competing node receives an equal share of the wireless channel occupancy time. We demonstrate that this notion of fairness can lead to significant improvements in aggregate performance while still guaranteeing that no node receives worse channel access than it would in a single-rate WLAN. We also describe our algorithm, TBR (Time-based Regulator), which runs on the AP and works with any MAC protocol to provide time-based fairness by regulating packets. Through experiments, we show that our practical and backward compatible implementation of TBR in conjunction with an existing implementation of DCF achieves time-based fairness.

[ PostScript (393 kB)][PDF (257 kB)]

Bibtex Entry:

  author =       "Godfrey Tan and John Guttag",                                                
  title =        {Time-based Fairness Improves Performance in Multi-rate WLANs},             
  booktitle =    {Proc. of USENIX'04},
  year =         2004,                                                                         
  month =        June,                                                                         
  address =      {Boston, MA}