tldr: disable WMM QoS in your router settings.
At home, I have the following setup:
- Linksys E1200 Wireless-N Router
- Macbook Air: OS X 10.7.1, Intel Core i7 1.8Ghz, 4GB RAM
- iPhone 4S: iOS 5.0
- Custom desktop: Windows 7, Intel Core 2 Duo E8400 3.0Ghz, 2GB RAM
- ISP: Comcast xfinity
Whenever I used my laptop or phone, the Wi-Fi connection felt incredibly slow. Youtube videos took forever to load, Google Maps tiles filled in slowly, and even gmail felt unresponsive. On the other hand, my desktop, which was connected to the router via an ethernet cable, worked just fine.
To confirm my observations, I decided to take some bandwidth measurements using bandwidthplace.com, speakeasy.net, and speedtest.net for the laptop and the Speed Test app for the iPhone. The results were pretty consistent across all app and device pairs and looked something like this:
- Download: 24 Mbps
- Upload: 4.5 Mbps
- Download: 0.65 Mbps
- Upload: 4.5 Mbps
- Download: 0.58 Mbps
- Upload: 4.4 Mbps
Yikes! My laptop and iPhone download speed were more than 30 times slower than my desktop's download speed! On the other hand, the upload speed was roughly the same on all devices. What the hell was going on?
After googling for solutions, I tried a number of tweaks commonly suggested around the web:
- Change DNS hosts
- Change wireless channel
- Change the wireless channel width
- Use a different security mode (WPA2 personal)
- Shut off firewalls
- Enable or disable IPv6 settings
- Reboot the router
None of these worked.
Out of desperation, I started tweaking random settings on my router and stumbled across one that finally worked. The directions for other routers may be a little different, but here's what I did:
- Go to http://192.168.1.1 and login to your router. If you've never done this, look for instructions that came with your router or do a google search to find the default username and password.
- Find a page that has QoS settings. For the E1200, you need to click on "Applications & Gaming" and select the "QoS" sub-menu.
- Disable WMM Support.
- Click save.
That's it. The second I disabled WMM support, the download speeds for my laptop and iPhone both jumped to 24 Mbps, perfectly matching my desktop.
What the hell is WMM?
WMM is apparently an 802.11e feature that provides higher priority for "time-dependent" traffic, such as video or voice. In theory, this should make things like VoIP calls and video chat (e.g. Skype) perform better. In practice, having it enabled destroyed my Wi-Fi download speeds. Since I disabled it, my Wi-Fi is blazing fast and I've seen no negative side-effects.
If anyone has more information as to why this would be the case, please share it here.