ThorneLabs

Wireless Laptop to Wireless Laptop Real World Throughput Benchmarks

• Updated March 17, 2019


More and more devices are becoming wireless. It isn’t unheard of for one person to be carrying three or more wireless devices on them at one time: a phone, a tablet, a laptop, and, more recently, a watch.

There are plenty of benchmarks and articles benchmarking the throughput achieved from a wireless device to a wired device - with a wireless router in the middle of course. This is useful to know if you’re transferring or streaming data from your laptop, phone, or tablet to a device connected via ethernet. However, most people forgo connecting anything via ethernet because connecting wirelessly is just too easy. I am much more interested in the throughput achieved from one wirelessly connected device to another wirelessly connected device.

In this post I am going to use iperf to benchmark the throughput I can achieve from one wirelessly connected laptop to another wirelessly connected laptop across several consumer wireless routers.

Take note, when transferring data from one wireless device to another wireless device, bandwidth is effectively cut in half compared to transferring data from one wireless device to a wired device.

The Setup

The following wireless routers were used:

The following two laptops were used:

  • MacBook (Retina, 12-inch, Early 2015)
  • MacBook Pro (Retina, 15-inch, Early 2013)

The MacBook Pro will be the iperf server and the MacBook will be the iperf client. The iperf server is running with the default iperf settings when running iperf -s. The iperf client will perform a one way transfer of 100 MBytes and 500 MBytes to the iperf server.

Both laptops were:

  • Next to each other
  • In the same room as each wireless router
  • About 5 feet from each wireless router

Only one wireless router was turned on at a time during each test.

Only the two laptops were connected to the wireless router.

The tests were conducted in an apartment building where I was surrounded by 20+ wireless access points operating in the 2.4 GHz and 5.0 GHz frequencies.

Linksys WRT54GL v1.1

Firmware: Tomato Firmware by Shibby 1.28.0005 124 ND VPN

802.11g only at 2.4 GHz on Channel 6

[16:06:27][~] iperf -c 192.168.1.113 -n 100M
------------------------------------------------------------
Client connecting to 192.168.1.113, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.118 port 62161 connected with 192.168.1.113 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-308.7 sec   100 MBytes  2.72 Mbits/sec

2.72 Mbits/sec converts to 0.34 MBytes/sec. Pathetic throughput. I didn’t even bother running the 500 MBytes payload.

No matter what non-overlapping channel I was on (1, 6, or 11), I was never able to get decent throughput. The highest throughput I achieved was 1.4 MBytes/sec, but that was only for 10 seconds. Throughput averaged 100 - 500 KBytes/sec and would very often fall below 100 KBytes/sec.

Apple AirPort Express Base Station Model A1264

Firmware: 7.6.4

802.11n only at 2.4 GHz on Channel 11 at 20 MHz

[16:45:10][~] iperf -c 10.0.1.3 -n 100M
------------------------------------------------------------
Client connecting to 10.0.1.3, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.2 port 62470 connected with 10.0.1.3 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-36.8 sec   100 MBytes  22.8 Mbits/sec

22.8 Mbits/sec converts to 2.85 MBytes/sec.

Increased payload to 500 MBytes:

[16:46:59][~] iperf -c 10.0.1.3 -n 500M
------------------------------------------------------------
Client connecting to 10.0.1.3, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.2 port 62471 connected with 10.0.1.3 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-171.0 sec   500 MBytes  24.5 Mbits/sec

24.5 Mbits/sec converts to 3.06 MBytes/sec.

802.11n only at 5.0 GHz on Channel 40 at 40 MHz

[16:54:12][~] iperf -c 10.0.1.3 -n 100M
------------------------------------------------------------
Client connecting to 10.0.1.3, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.2 port 62485 connected with 10.0.1.3 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-15.6 sec   100 MBytes  53.7 Mbits/sec

53.7 Mbits/sec converts to 6.71 MBytes/sec.

Increased payload to 500 MBytes:

[16:50:29][~] iperf -c 10.0.1.3 -n 500M
------------------------------------------------------------
Client connecting to 10.0.1.3, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.2 port 62484 connected with 10.0.1.3 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-67.3 sec   500 MBytes  62.3 Mbits/sec

62.3 Mbits/sec converts to 7.79 MBytes/sec.

ASUS RTN-66U

Firmware: Tomato Firmware by Shibby 1.28.0000 MIPSR2-117 K26 USB VPN-64K

802.11n only at 2.4 GHz on Channel 11 at 20 MHz

[19:46:58][~] iperf -c 192.168.1.196 -n 100M
------------------------------------------------------------
Client connecting to 192.168.1.196, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.198 port 49457 connected with 192.168.1.196 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-45.5 sec   100 MBytes  18.4 Mbits/sec

18.4 Mbits/sec converts to 2.3 MBytes/sec.

Increased payload to 500 MBytes:

[19:47:46][~] iperf -c 192.168.1.196 -n 500M
------------------------------------------------------------
Client connecting to 192.168.1.196, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.198 port 49458 connected with 192.168.1.196 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-221.6 sec   500 MBytes  18.9 Mbits/sec

18.9 Mbits/sec converts to 2.36 MBytes/sec.

802.11n only at 5.0 GHz on Channel 40 at 40 MHz

[17:03:18][~] iperf -c 192.168.1.196 -n 100M
------------------------------------------------------------
Client connecting to 192.168.1.196, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.198 port 62512 connected with 192.168.1.196 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 8.4 sec   100 MBytes  99.6 Mbits/sec

99.6 Mbits/sec converts to 12.45 MBytes/sec.

Increased payload to 500 MBytes:

[17:03:28][~] iperf -c 192.168.1.196 -n 500M
------------------------------------------------------------
Client connecting to 192.168.1.196, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.198 port 62513 connected with 192.168.1.196 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-40.5 sec   500 MBytes   104 Mbits/sec

104 Mbits/sec converts to 13 MBytes/sec.

Apple AirPort Express Model A1392 MC414LL/A

Firmware: 7.6.7

802.11n only at 2.4 GHz on Channel 11 at 20 MHz

[16:02:51][~] iperf -c 10.0.1.2 -n 100M
------------------------------------------------------------
Client connecting to 10.0.1.2, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.3 port 56117 connected with 10.0.1.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-42.8 sec   100 MBytes  19.6 Mbits/sec

19.6 Mbits/sec converts to 2.45 MBytes/sec.

Increased payload to 500 MBytes:

[16:07:52][~] iperf -c 10.0.1.2 -n 500M
------------------------------------------------------------
Client connecting to 10.0.1.2, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.3 port 56130 connected with 10.0.1.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-218.4 sec   500 MBytes  19.2 Mbits/sec

19.2 Mbits/sec converts to 2.4 MBytes/sec.

One test achieved a throughput of 17.4 Mbits/sec or 2.175 MBytes/sec.

802.11n only at 5.0 GHz on Channel 40 at 40 MHz

[16:12:09][~] iperf -c 10.0.1.2 -n 100M
------------------------------------------------------------
Client connecting to 10.0.1.2, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.3 port 56174 connected with 10.0.1.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.3 sec   100 MBytes  81.1 Mbits/sec

81.1 Mbits/sec converts to 10.1375 MBytes/sec.

Increased payload to 500 MBytes:

[16:13:53][~] iperf -c 10.0.1.2 -n 500M
------------------------------------------------------------
Client connecting to 10.0.1.2, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.3 port 56176 connected with 10.0.1.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-54.9 sec   500 MBytes  76.4 Mbits/sec

76.4 MBits/sec converts to 9.55 MBytes/sec.

5.0 GHz on Channel 40 at 40 MHz to 100 Megabit Ethernet

Out of curiosity, I wanted to see the throughput I could achieve between the wirelessly connected MacBook and the 1 gigabit ethernet wired MacBook Pro. However, it turns out this AirPort Express model does not have any 1 gigabit ethernet ports. Nevertheless, I ran the test, and the speeds are exactly what you would expect for 100 megabit ethernet.

[16:16:38][~] iperf -c 10.0.1.4 -n 1000M
------------------------------------------------------------
Client connecting to 10.0.1.4, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.3 port 56201 connected with 10.0.1.4 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-89.4 sec  1000 MBytes  93.9 Mbits/sec

93.9 Mbits/sec converts to 11.7375 MBytes/sec.

Apple AirPort Extreme 802.11ac Model ME918LL/A

Firmware: 7.7.3

The AirPort Extreme does not let you turn off any of the 802.11 modes. They are all always turned on and it will determine which 802.11 mode the wireless device communicates over.

So, instead of testing the different 802.11 modes, I tested 2.4 GHz vs 5.0 GHz.

2.4 GHz on Channel 11 at 20 MHz

[19:15:21][~] iperf -c 10.0.1.4 -n 100M
------------------------------------------------------------
Client connecting to 10.0.1.4, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.3 port 65202 connected with 10.0.1.4 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-19.5 sec   100 MBytes  43.0 Mbits/sec

43 Mbits/sec converts to 5.375 MBytes/sec.

Increased payload to 500 MBytes:

[19:15:43][~] iperf -c 10.0.1.4 -n 500M
------------------------------------------------------------
Client connecting to 10.0.1.4, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.3 port 65207 connected with 10.0.1.4 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-89.4 sec   500 MBytes  46.9 Mbits/sec

46.9 Mbits/sec converts to 5.86 MBytes/sec.

5.0 GHz on Channel 40 at 40 MHz and 80 MHz

[18:51:39][~] iperf -c 10.0.1.4 -n 100M
------------------------------------------------------------
Client connecting to 10.0.1.4, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.3 port 63566 connected with 10.0.1.4 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 4.4 sec   100 MBytes   191 Mbits/sec

191 Mbits/sec converts to 23.875 MBytes/sec.

Increased payload to 500 MBytes:

[18:51:47][~] iperf -c 10.0.1.4 -n 500M
------------------------------------------------------------
Client connecting to 10.0.1.4, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.3 port 63567 connected with 10.0.1.4 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-22.0 sec   500 MBytes   191 Mbits/sec

191 Mbits/sec converts to 23.875 MBytes/sec.

The MacBook can connect using 802.11ac, and can use the 80 MHz channel width. The MacBook Pro can only connect using 802.11n and is limited to the 40 MHz channel width. Because of this, the MacBook Pro became the limiting factor in these tests. The throughput would probably have been even higher if I had another 802.11ac capable laptop.

5.0 GHz on Channel 40 at 80 MHz to 1 Gigabit Ethernet

Out of curiosity, I wanted to see the throughput I could achieve between the wirelessly connected MacBook and the 1 gigabit ethernet wired MacBook Pro. I ran the exact same tests, however, I expected the throughput to be much higher, so I increased the payload to 1 GByte. The result did not disappoint.

[18:56:48][~] iperf -c 10.0.1.2 -n 1000M
------------------------------------------------------------
Client connecting to 10.0.1.2, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.1.3 port 63574 connected with 10.0.1.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-15.7 sec  1000 MBytes   534 Mbits/sec

534 Mbits/sec converts to 66.75 MBytes/sec.

Summary

Based on these results, it’s clear you should stop using the 2.4 GHz frequency if you want any level of decent throughput. The 2.4 GHz frequency is simply too crowded with older wireless routers, Bluetooth, microwaves, and the occasional cordless landline phone.

The 5.0 GHz frequency will eventually become just as crowded as the 2.4 GHz frequency has become, but hopefully when that time comes there will be new wireless technology to mitigate interference or new wireless frequencies to use.

Affiliate Disclaimer

This post contains Amazon affiliate links, and, as an Amazon Associate, I earn money from qualifying purchases made using my affiliate links.