There are a multitude of reasons why a client may have a bad Wi-Fi experience—CCI (Co-Channel Interference), too may SSIDs, too many clients, not enough bandwidth on your internet circuit, low basic rates, etc., but right now, we’re going to focus on mismatched transmit (Tx) power between an AP and a client.
So, how do you fix mismatched Tx power? By matching it! The basic idea of Tx power matching is to configure the Tx power of the AP to match (as closely as possible) the Tx power of the client, and here’s why it may be important.
Consider this scenario:
You want to make sure you have good coverage in a particular area, so you set the AP to max power. It’s great; clients are now showing “full bars” for their Wi-Fi signal even when they are pretty far from the AP. However, it doesn’t take long before the complaints of “slow” Wi-Fi start rolling in. You’re stumped. The clients all have great RSSI.
Well, great signal strength doesn’t necessarily equate to great throughput.
So, what’s the big deal?
Well, usually an access point is capable of transmitting at a much higher power than a typical client, especially a smaller client, like a smartphone. These client devices usually won’t, or simply can’t, transmit at such high levels. They are usually designed to conserve battery, and transmitting at higher power drains the battery more quickly.
So, if the AP is transmitting at 23 dBm, and the client is only transmitting at 14 dBm, this creates an unbalanced link. The client may hear the AP really well with a high RSSI, but the AP won’t hear the client nearly as well, or maybe not at all. You see, raising the Tx power really only works one way. It may make the AP’s signal travel farther, but it doesn’t increase the AP’s receive sensitivity. Think of it this way:
Being able to yell really loudly doesn’t make you hear any better.
Anyway, when the client needs to transmit a frame, it will think to itself “Wow, the AP is really loud. It must be close. I’ll transmit at the highest possible rate!” The problem is, by the time the transmission gets to the AP, the signal has attenuated to the point where the AP can no longer demodulate the signal. So, the AP never sends an acknowledgment (ACK).
Since the client never receives an ACK, it retransmits the frame. It still doesn’t hear an ACK, so it retransmits again… and again… and again. Depending on whatever proprietary algorithm the client’s using, it may decide to downshift to a lower data rate, and retransmit again. It may keep downshifting until it finally receives an ACK (or reaches a maximum number of retries). Now, without getting too technical, before a client can send any transmission, it must contend for access to the wireless medium in an attempt to avoid collisions. This contention process consists of several steps and various timers, but the one I want to talk about now is called the Contention Window.
Contention Window
The Contention Window is a range of values from which the client randomly chooses an amount of time to back off before transmitting. For example, for a frame marked “Best Effort,” the Contention Window starts with a range of 0 to 15. The client will randomly pick a number from this range. If the client chooses “3,” it will not attempt to transmit until it counts down 3 slot times, the length of which depends on the wireless technology in use. For example, if 802.11ac is in use, each slot time will be 9 microseconds. So, in this example, the client will need to back off for 27µs .
Why am I telling you this?
Well, every time the client attempts to retransmit the frame, this Contention Window basically doubles.* So, for the first retransmission, the Contention Window becomes 0–31. For the second, 0–63. For the third, 0–127, and so on, until it eventually tops out at 0–1023. The client will keep retransmitting until it finally gets an ACK, or until it reaches the maximum retransmission limit.
Now, since the client chooses this number randomly, there is a chance that it can choose a low number every time, but this is statistically unlikely. The bigger the Contention Window, the greater the chance that the client chooses a bigger number.
*Although the 802.11 standard calls for doubling the Contention Window itself and picking a new random number, many clients will instead choose to just double the random number that they picked initially.1
Here’s the point…
If the AP ever does send an ACK, how much airtime was just wasted? This client may be experiencing “slow” Wi-Fi, but every time it transmits, all the other clients have to wait before they transmit their own frames. Also, as the client downshifts its data rate, each retransmission takes up more and more airtime, degrading everyone else’s Wi-Fi experience.
Remember, this is just for one frame transmission. This whole process starts all over again for the next frame.
Takeaway
If the transmit power was more closely matched between the AP and the client, then the client probably wouldn’t have tried to send at its highest data rate in the first place. In fact, it might not have even associated to this access point, preferring another, closer AP.
To avoid the above scenario, find out what types of clients will be using your network, and try to configure the access points’ Tx power at, or lower than, the max Tx power of the least capable client. Oh, by the way, even though I’ve been stressing not to make the Tx power too high, making it too low is just as bad—maybe even worse depending on how you look at it. If the signal’s too low, there won’t be enough SNR (signal-to-noise ratio) to use the higher modulations—meaning low data rates, which means each transmission takes more precious airtime. If you want to learn more about this topic, here are two excellent blog posts from GreatWhiteWifi and Metis. Happy reading!
- Henry, Jerome, et al. CCIE Wireless v3 Study Guide, First Edition, Cisco Press, 2018. O’Reilly Online Learning, https://learning.oreilly.com/library/view/-/9780135162095/ch07.xhtml#94472b88-ef8b-4314-80cc-5c34a0a33288