Iperf test results


A bit of background: normally when I want to test my network speed I use speedtest, iperf or other solutions that gave me the expected results. But until now I tested only networks with speed up to 200 Mbits/sec.

Now I have what suppose to be a dedicated (guaranty) 1Gb connection and I have some strange results when testing the internet speed. I run my test from an internal Raspberry Pi 4, there are many people connected to the network, so I do not expect my results to be really consistent

If I run a “classic” iperf test to ping.online.net ( this one is located in Paris, it is the quickest public iperf server from my area: south of France) (port 5200 to 5208 is available, I changed the port from time to time when a server is busy).

iperf3 -c ping.online.net -p 5203 -i 1
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.05 GBytes 901 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.05 GBytes 900 Mbits/sec receiver

that seems to work fine and it is a consistent result (800Mbits/sec to 900Mbits/sec)

Now with the R option ( Run in reverse mode, server sends, client receives)

iperf3 -R -c ping.online.net -p 5204 -i 1
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 332 MBytes 278 Mbits/sec 357 sender
[ 5] 0.00-10.00 sec 328 MBytes 275 Mbits/sec receiver

This time I do not reach my “promised” limit (the result is not consistent I reach 150Mbits/sec to 300Mbits/sec)

Following those results, the provider asks me to run the following command:

iperf3 -V -R -c ping.online.net -p 5203 -P 10
[SUM] 0.00-10.00 sec 1.04 GBytes 891 Mbits/sec 693 sender
[SUM] 0.00-10.00 sec 1.02 GBytes 876 Mbits/sec receiver

That seems to be good but it is not a consistent result, I get results from 300Mbits/sec to 600Mbits/sec most of the time

I run as well the same command without -R
iperf3 -V -c ping.online.net -p 5204 -P 10
[SUM] 0.00-10.00 sec 1.09 GBytes 938 Mbits/sec 47 sender
[SUM] 0.00-10.00 sec 1.09 GBytes 934 Mbits/sec receiver

It is a consistent result

So I increase the P value to 20 and the results are fairly consistent all above 900 Mbits/sec with and without the R option

As I understand the P value use parallel connection. So it seems that my real network speed is really 1Gb.

So why do I get an average of 300Mbits/sec in download speed with tools like speedtest and iperf (without the P option)?

Thank you for your time

edit: spelling…

Could be a limit on your firewall for inbound traffic on a per stream basis? Also, when I test bandwidth, I like to put my test device in place of the firewall so I know nothing else would interfere with the results, such as a firewall.