A method and system for servicing data traffic in wireless local area
networks (such as IEEE 802.11 networks) in multiple queues having
different levels of priority. These queues include at least a low
priority queue for `best effort` traffic, a medium priority queue for
streaming data such as video pictures, and a high priority queue for
voice traffic, and are serviced in order of decreasing priority. To
prevent the `best effort` traffic in the low priority queue from being
`starved`, a bit is set to indicate when such a condition is likely to
occur, and the low priority queue is served first when that bit has been
set. Alternatively, low and medium priority traffic is handled on a
weighted round-robin basis, and high priority traffic is given strict
priority over both. Transmit and receive queues are handled on a rotating
priority basis.