Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have two ASUS laptops running Windows 7 connected wirelessly via 802.11n at 150 Mbit, as reported by Task Manager. The router is Netgear WNDR3700.

When testing the wireless connection speed using iperf, I'm not getting nearly 150 Mbit:

C:\>iperf -c 10.0.0.123 -t 30
------------------------------------------------------------
Client connecting to 10.0.0.123, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[148] local 10.0.0.116 port 53819 connected with 10.0.0.123 port 5001
[ ID] Interval       Transfer     Bandwidth
[148]  0.0-30.0 sec  41.2 MBytes  11.5 Mbits/sec

That's a typical result. Running parallel client threads does not increase the overall total speed.

Why would I only be getting 11.5 Mbit on a 150 Mbit connection? What is a reasonable max rate I should expect?

There are no other nearby wireless networks, nor cordless phones or microwave ovens.

share|improve this question

4 Answers 4

The rule of thumb for TCP throughput over Wi-Fi is that you can get 50-60% of your signaling rate. So in your case, you should see 75-90 megabits per second of TCP throughput.

Wait, why is your TCP window size just 8 KibiBytes? That strikes me as an absurdly low default.

Let's see what yours should be by calculating a "Bandwidth x Delay product" for your connection.

If Windows 7 is reporting that you're getting a 150 mbps signaling rate, that's 150,000,000 bits per second, so let's use that as the bandwidth number.

As for delay, well, my average ping round trip time over Wi-Fi to my AP is a little under 3 milliseconds. But you're going from one wireless client to another, which gets relayed by the AP (to avoid the hidden node problem), so I'm guessing if you pinged one of your wireless clients from the other one, you'd get a round trip time of up to 6ms.

So 150,000,000 bits/sec of bandwidth * 0.006 seconds of delay = 900,000 bits you need to be able to put "in flight" before getting an Ack back, in order to keep the pipe full.

900,000 bits / 8192 bits per KibiByte = about 110 KibiBytes of TCP window needed. Let's be generous and make it a nice round 128.

Try adding -w 128K to your iperf argument lists on both the client and the server to force the TCP window to something reasonable, and see if that helps.

Since wireless is a fickle medium and there can sometimes be latency spikes due to transient noise forcing link-layer packet retransmissions, you could even try going larger than that, maybe up to 512KiB, but at some point there will be diminishing returns.

If increasing your TCP window size gets you up to around 75 megabits/sec of TCP throughput in IPerf, but if Windows 7 is defaulting your window size to 8KiB, then you probably need to figure out how to get Windows 7 to pick a better default TCP window size for all TCP connections.

share|improve this answer

Do you have any slower devices connected to the network such as an iPod touch or iPhone? When a slower device associates with the network, the hardware activates a protection mechanism which will make a noticeable difference on transfer speeds. Average downlink for 802.11n is about 40Mbit/s, so there is definitely something wrong with the connection. I've gotten upwards of 35Mbit/s using iperf on an 802.11n network.

share|improve this answer
    
ah, interesting... i've got a couple ipod touches, a droid, and an eeepc on the network as well. i'll test without them activated and see what happens. –  Ian Mar 22 '10 at 4:21
    
unfortunately disabling the devices and resetting the router ( to be sure ) had no effect on transfer speeds. –  Ian Mar 22 '10 at 4:58
    
Try setting the router to n-only mode. –  John T Mar 22 '10 at 11:00
    
My router doesn't have that option, unfortunately. –  Ian Mar 22 '10 at 20:13

Here is what I found out about this subject. Let me draw your attention to a little-known limitation of ad-hoc (peer-to-peer) wireless networks, typically used between two or more notebooks with Wi-Fi adapters.

The IEEE 802.11 standard specifies that performance in ad-hoc mode must achieve 11Mbits/sec, but no more, regardless of whether the adapter is 802.11b or 802.11g. There's no requirement for manufacturers to exceed the 11Mbits/sec specification and most don't.

share|improve this answer
1  
[citation needed] –  ThatGraemeGuy May 16 '10 at 16:42
    
"citation needed"...? try this link... "dlink.com/support/faq/…; –  Eric May 17 '10 at 6:21
    
Here is another manufacturers "citation" on the subject.... kb.netgear.com/app/answers/detail/a_id/1069/kw/ad-hoc%20mode/… –  Eric May 21 '10 at 5:18

By default, Windows limits its wireless bandwidth to about 10-12 Mbps (sorry, don't know for sure), even though you have your devices ready for 150 Mbps or 300 Mbps or more. The key is in the registry and you need to edit those to get your best result.

But, not to worry, our friends at SpeedGuide Forums has made it easy for us. If you want to tweak it for yourself, please read this. If you don't want to be bothered with tweaking stuffs, then please download the application called SG TCP/IP Optimizer from this page (and there are also some links for tweaking on that page).

Here's a screenshot of the application: SG TCPOptimizer

To use it, u just simply drag the slider to match the speed you want, choose Optimal option at the bottom, click Apply changes, and you'll be prompted to restart. Restart it when you're ready.

Hope this helps.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.