Raspberry Pi 3 iperf3 Tests – Wireless vs. Wired

By | 2016/03/11

So how fast is the Raspberry Pi 3 built on wireless vs. wired? Here is a quick test!


Hardware and OS:

Rapsberry Pi 3, latest Raspbian installed and updated.

Network:

Wired network is a gigabit network, and Pi is connected via Cat6 to a gigabit switch.

Wireless network is 802.11n.

Test software:

iperf3 to an adjacent Debian Jessie host on the same gigabit switch with a gigabit NIC


Some general info from the Pi 3

Wired:

pi@raspberrypi:~ $ sudo ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                             100baseT/Half 100baseT/Full 
        Link partner advertised pause frame use: Symmetric
        Link partner advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbag
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes
pi@raspberrypi:~ $ 

Wireless:

pi@raspberrypi:~ $ sudo ethtool wlan0
Settings for wlan0:
No data available

pi@raspberrypi:~ $ sudo iwlist wlan0 rate
wlan0     unknown bit-rate information.
          Current Bit Rate=72 Mb/s

iperf3 tests!

iperf3 test on wired (eth0):

pi@raspberrypi:~ $ iperf3 -c 192.168.1.152
Connecting to host 192.168.1.152, port 5201
[  4] local 192.168.1.126 port 58325 connected to 192.168.1.152 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  11.3 MBytes  94.6 Mbits/sec    0   33.9 KBytes       
[  4]   1.00-2.00   sec  11.2 MBytes  94.0 Mbits/sec    0   33.9 KBytes       
[  4]   2.00-3.00   sec  11.2 MBytes  94.3 Mbits/sec    0   36.8 KBytes       
[  4]   3.00-4.00   sec  11.2 MBytes  94.0 Mbits/sec    0   36.8 KBytes       
[  4]   4.00-5.00   sec  11.2 MBytes  94.3 Mbits/sec    0   36.8 KBytes       
[  4]   5.00-6.00   sec  11.2 MBytes  94.0 Mbits/sec    0   36.8 KBytes       
[  4]   6.00-7.00   sec  11.2 MBytes  94.1 Mbits/sec    0   36.8 KBytes       
[  4]   7.00-8.00   sec  11.2 MBytes  94.2 Mbits/sec    0   36.8 KBytes       
[  4]   8.00-9.00   sec  11.2 MBytes  94.2 Mbits/sec    0   36.8 KBytes       
[  4]   9.00-10.00  sec  11.2 MBytes  94.0 Mbits/sec    0   36.8 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   112 MBytes  94.2 Mbits/sec    0             sender
[  4]   0.00-10.00  sec   112 MBytes  94.2 Mbits/sec                  receiver

iperf Done.
pi@raspberrypi:~ $ 

Reverse!

pi@raspberrypi:~ $ iperf3 -c 192.168.1.152 -R
Connecting to host 192.168.1.152, port 5201
Reverse mode, remote host 192.168.1.152 is sending
[  4] local 192.168.1.126 port 58327 connected to 192.168.1.152 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  11.3 MBytes  94.8 Mbits/sec                  
[  4]   1.00-2.00   sec  11.2 MBytes  94.2 Mbits/sec                  
[  4]   2.00-3.00   sec  11.2 MBytes  94.2 Mbits/sec                  
[  4]   3.00-4.00   sec  11.2 MBytes  94.2 Mbits/sec                  
[  4]   4.00-5.00   sec  11.2 MBytes  94.2 Mbits/sec                  
[  4]   5.00-6.00   sec  11.2 MBytes  94.2 Mbits/sec                  
[  4]   6.00-7.00   sec  11.2 MBytes  94.2 Mbits/sec                  
[  4]   7.00-8.00   sec  11.2 MBytes  94.2 Mbits/sec                  
[  4]   8.00-9.00   sec  11.2 MBytes  94.2 Mbits/sec                  
[  4]   9.00-10.00  sec  11.2 MBytes  94.1 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   113 MBytes  94.4 Mbits/sec    0             sender
[  4]   0.00-10.00  sec   112 MBytes  94.3 Mbits/sec                  receiver

iperf Done.

iperf3 test on wireless (wlan0):

pi@raspberrypi:~ $ iperf3 -c 192.168.1.152
Connecting to host 192.168.1.152, port 5201
[  4] local 192.168.1.137 port 50864 connected to 192.168.1.152 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  5.46 MBytes  45.8 Mbits/sec    0    123 KBytes       
[  4]   1.00-2.00   sec  5.48 MBytes  46.0 Mbits/sec    0    123 KBytes       
[  4]   2.00-3.00   sec  5.34 MBytes  44.8 Mbits/sec    0    123 KBytes       
[  4]   3.00-4.00   sec  5.46 MBytes  45.8 Mbits/sec    0    130 KBytes       
[  4]   4.00-5.00   sec  5.40 MBytes  45.3 Mbits/sec    0    130 KBytes       
[  4]   5.00-6.00   sec  5.44 MBytes  45.6 Mbits/sec    0    130 KBytes       
[  4]   6.00-7.00   sec  5.54 MBytes  46.5 Mbits/sec    0    153 KBytes       
[  4]   7.00-8.00   sec  5.45 MBytes  45.8 Mbits/sec    0    153 KBytes       
[  4]   8.00-9.00   sec  5.43 MBytes  45.6 Mbits/sec    0    153 KBytes       
[  4]   9.00-10.00  sec  5.56 MBytes  46.6 Mbits/sec    0    153 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  54.6 MBytes  45.8 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  54.3 MBytes  45.6 Mbits/sec                  receiver

iperf Done.

Reverse!


pi@raspberrypi:~ $ iperf3 -c 192.168.1.152 -R
Connecting to host 192.168.1.152, port 5201
Reverse mode, remote host 192.168.1.152 is sending
[  4] local 192.168.1.137 port 50866 connected to 192.168.1.152 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  5.09 MBytes  42.7 Mbits/sec                  
[  4]   1.00-2.00   sec  4.96 MBytes  41.6 Mbits/sec                  
[  4]   2.00-3.00   sec  4.94 MBytes  41.4 Mbits/sec                  
[  4]   3.00-4.00   sec  4.77 MBytes  40.0 Mbits/sec                  
[  4]   4.00-5.00   sec  4.75 MBytes  39.8 Mbits/sec                  
[  4]   5.00-6.00   sec  4.76 MBytes  40.0 Mbits/sec                  
[  4]   6.00-7.00   sec  4.79 MBytes  40.2 Mbits/sec                  
[  4]   7.00-8.00   sec  4.78 MBytes  40.1 Mbits/sec                  
[  4]   8.00-9.00   sec  4.83 MBytes  40.5 Mbits/sec                  
[  4]   9.00-10.00  sec  4.70 MBytes  39.4 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  48.8 MBytes  40.9 Mbits/sec   21             sender
[  4]   0.00-10.00  sec  48.8 MBytes  40.9 Mbits/sec                  receiver

iperf Done.
pi@raspberrypi:~ $ 


Conclusions

So the wired connection is clearly still the better option for pure bandwidth. Wired is literally twice as fast nearing the 100Mb/s limit of the USB bus NIC.

However, the wireless is not too bad at all at ~45Mb/s and does not conflict for USB resource contention.

Rock on,