Slow WiFi 802.11g on the iPhone 3GS

Recently I downloaded the Speedtest.net application for the iPhone. This app tests your upload and download speeds. I ran it on my iPhone 3GS yesterday and got a speed of 0.5 Mbps downstream and 5 Mbps upstream. That’s right – downstream was 10 times SLOWER than upstream. This is on a 50 Mbps connection to the Internet and there was nothing else running.

After seeing this terrible result, we tested an iPhone 3G with the same wireless router. It ran at 2.8 Mbps downstream. Thinking it might be a problem with the Speedtest app, we used the App Store to download the same purchase to each phone. The 3G finished in about 30 seconds. The 3GS took about four minutes. So there was certainly a problem with the newer iPhone. The question was, where?

I spent an hour reading blogs this morning. There were all the normal recommendations about resetting the iPhone (no effect), turning off encryption (not a chance!), resetting the router, resetting the WiFi connection on the phone - all of which were useless.

I finally found the answer at the SupremeTechs blog.  Version 3.0.x of the iPhone has trouble with the default settings on many routers for the Fragmentation Threshold and CTS/RTS Threshold. I dropped those values back to 2305 and 2304 respectively, set the Preamble Mode to Long, and suddenly my iPhone 3GS started working. (This was with a NetGear WNDR3700 router.) Here are the results immediately after the fix – a 5x improvement, making it on par with the iPhone 3G:

You’ll notice that there’s a very high ping time. I’m not sure what’s causing that as the typical ping time to the Tucson server is 100ms. However, I tried later in the day and got substantially better downstream results:

The ping time for this last measurement is down to 120ms, which is about right.

This measure is still 4x slower than the rated performance of the Internet connection. If you look at the reviews for Speedtest.net, you’ll see a lot of low ratings for the app for just this reason. However, there’s a very good reason for this difference. The iPhone is running a relatively slow processor with very limited RAM and is desperately trying to conserve every minute of battery life. So the lower performance is expected .

Leave a Reply