Slow Down to Speed Up

On a flaky link, talking slowly can actually speed up data transfers.

The speed at which a radio can communicate with another depends on how much signal is available. In order to maintain communications as the available signal fades, the radios need to transmit data at a slower rate. Normally, the radios attempt to work out the available signal on their own and automatically select the fastest possible speed for communications. But in fringe areas with a barely adequate signal, packets may be needlessly lost while the radios continually renegotiate the link speed.

For example, suppose you have a long distance point-to-point link made of Orinoco radios. The received signal at each end varies between -83 and -80 dBm. The threshold for an Orinoco to flip from 11 Mbps to 5.5 Mbps is -82 dBm, so the radios spend at least part of their time negotiating the best speed. Operating on a borderline signal level like this leads to excessive retransmissions that can seriously degrade performance.

If you can’t add more antenna gain or reposition your equipment to achieve enough signal for your link, consider forcing your card to sync at a lower rate. This will mean fewer retries, and can be substantially faster than using a continually flip-flopping link. Each driver has its own method for setting the link speed. In Linux, set the link speed with iwconfig:

pebble~# iwconfig eth0 rate 2M

This forces the radio to always sync at 2 Mbps, even if other speeds are available. You ...

Get Wireless Hacks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.