Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a laptop (let me call it A) with Intel Centrino 1030-N wireless (iwlwifi module), running Arch Linux, and another laptop (I will call it B) with Atheros AR928X wireless (ath9k module), running Ubuntu 11.10.

They connect to a wireless network provided by a D-Link DI-524 router (802.11g), which in turn connects to a DSL modem (10Mbps/1Mbps link)

Copying files between those machines, either through scp or mounting a share via NFS or Samba, is very slow (at most 200 KB/s) and sometimes fails (times out), even when both machines are inches away from the router.

However, downloading files on either machine works correctly at the expected speeds (~1.2 MB/s).

I ran iperf, as recommended in a comment, and it gave me this:

For the B machine as server and the A machine as client:

renan@B:~$ iperf -s
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
[  4] local port 5001 connected with port 57153
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-11.1 sec  6.88 MBytes  5.19 Mbits/sec

renan@A:~$ iperf -c
Client connecting to, TCP port 5001
TCP window size: 23.5 KByte (default)
[  3] local port 57153 connected with port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.8 sec  6.88 MBytes  5.32 Mbits/sec

For the A machine as server and the B machine as client:

renan@B:~$ iperf -c
Client connecting to, TCP port 5001
TCP window size: 16.0 KByte (default)
[  3] local port 34611 connected with port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.1 sec  8.38 MBytes  6.96 Mbits/sec

renan@A:~$ iperf -s
 Server listening on TCP port 5001
 TCP window size: 85.3 KByte (default)
 [  4] local port 5001 connected with port 34611
 [ ID] Interval       Transfer     Bandwidth
 [  4]  0.0-10.8 sec  8.38 MBytes  6.51 Mbits/sec

The bandwidth is very low, as can be seen from those results.

Any clues?

share|improve this question
I find much better wireless routers are from LinkSys (Cisco), they are advanced in this business compared to D-Link brands. Linksys E series was giving me that issue lesser before. – YumYumYum Mar 4 '12 at 17:50
Do you really think it is the wlan hop? you can try to do such a scp (that is slow) local source machine (on sourcemachine: scp sourcemachine:/some/where /tmp/xxx) – Jörg Beyer Mar 4 '12 at 20:10
@JörgBeyer I think it's the WLAN, because when using a wired network, the problem does not happen. Using scp sourcemachine:file /tmp gives slightly better results (I get peaks of 1 MB/s, but then it slows down). – Renan Mar 4 '12 at 20:19
where is wlan in the picture, when you the mentioned scp on the local source machine? – Jörg Beyer Mar 4 '12 at 20:22
Install IPerf on both machines and run that between them, and see what speed you get there. NFS, SMB, and scp may all be inefficient users of the network. – Spiff Mar 4 '12 at 23:39
up vote 4 down vote accepted

So it sounds like you're getting 10 megabits per second when downloading from wired to wireless on an 802.11g AP, which is on the low side but not terrible. Maybe you're on a busy channel. Try a different one. I usually expect 15 megabits per second under real-world conditions for 802.11g, although in ideal conditions you can see over 20 and even close to 30 megabits per second with chipsets that really know how to use the airtime efficiently (frame bursting, etc.). The rule of thumb for any flavor of 802.11 is that you can get IPerf TCP throughput of about 50-60% of the 802.11 signaling rate that you're getting.

Actually, come to think of it, to see what your maximum wired to wireless throughput really is without possible constraints of your broadband internet connection, you should try putting one of your machines on wired Ethernet on the LAN port of your AP, and do the IPerf between there and the other client (which would still be on wireless) to see what kind of max TCP throughput numbers you can get. If you still get only 10 megabits per second, read on.

Given that you can only do 10 megabits per second wired to wireless, the fact that you're getting 5–6.5 megabits per second wireless to wireless is to be expected. Because in that case, every packet has to go across the channel twice: once from client A to the AP, and then again from the AP to client B. This is a standard part of the 802.11 protocol called intra-BSS relay. It solves what's known as the hidden node problem when A and B are each in range of the AP, but not in range of each other. Unfortunately 802.11 doesn't really have a way (yet) for two clients of an AP to talk directly to each other when they are in range of each other.

So it could be that what you're seeing wireless-to-wireless makes sense for your conditions. The equipment you're saddled with is also a bit of a bummer, with a G-only AP, a Centrino wireless card that is 2.4GHz only, and is single spatial stream ("N in name only") on transmit, and and Atheros chipset that is also 2.4GHz-only (but at least it can both send and receive with 2 spatial streams). Ways to improve it would include:

  • Find a cleaner channel (which can be hard to do in 2.4GHz in densely-populated environments nowadays).
  • Upgrade to an 802.11n, 2x2:2 (2 spatial streams, 300 megabits per second) AP. Without the option of using 5GHz, you'll be a little stuck because if you can't find 2 contiguous clean channels, you won't be able to use 40MHz-wide channels very well, so you'll probably be stuck using it in 20MHz channel mode (HT20), meaning your maximum signaling rate will be 144.4 megabits per second (assuming 2 spatial streams, so only 72.2 megabits per second when your Centrino is transmitting).
  • Upgrade your AP and your wireless clients to modern 802.11 gear. That means 802.11n with 3 spatial streams on both send and receive, dual-band capable cards, and a simultaneous dual-band AP. That way you can make your laptops to 450 megabit per second signaling using 40MHz-wide channels in the less crowded 5GHz band.
share|improve this answer
Very interesting, I didn't know about much of this stuff. Thanks! – Renan Mar 5 '12 at 21:22

Your Answer


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.