Iperf is a widely used networking throughput or speed measurement tool. This is mainly used for wired or wireless network speed testing. There are two main versions of iperf like iperf2 and iperf3. In Linux Hint, iperf 2.0.5 is discussed here. Now, let us discuss about iperf3 commands.
Install Iperf3 in Linux
To know if iperf3 is installed or not, we can use the following command in Linux:
If we get the following output, it means that iperf3 is not installed:
sudo apt install iperf3
We can use the following command to install iperf3:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libiperf0
…….
…….
Processing triggers for libc-bin (2.23-0ubuntu11) ...
Now, enter “iperf3” in the terminal again.
Usage: iperf [-s|-c host] [options]
iperf [-h|--help] [-v|--version]
Server or Client:
-p, --port # server port to listen on/connect to
-f, --format [kmgKMG] format to report: Kbits, Mbits, KBytes, Mbytes
………………………
Many more lines..
………………………
How to Run the TCP Traffic Using Iperf3
TCP server command:
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
TCP client command: We should know the server IP address.
Let us look at the server and client output:
Server Output:
[ 5] local 192.168.1.102 port 5201 connected to 192.168.1.4 port 51220
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 1.35 MBytes 11.3 Mbits/sec
[ 5] 1.00-2.00 sec 1.53 MBytes 12.8 Mbits/sec
[ 5] 2.00-3.00 sec 1.62 MBytes 13.6 Mbits/sec
[ 5] 3.00-4.00 sec 1.67 MBytes 14.0 Mbits/sec
[ 5] 4.00-5.00 sec 1.67 MBytes 14.0 Mbits/sec
[ 5] 5.00-6.00 sec 1.46 MBytes 12.3 Mbits/sec
[ 5] 6.00-7.00 sec 1.45 MBytes 12.2 Mbits/sec
[ 5] 7.00-8.00 sec 1.59 MBytes 13.3 Mbits/sec
[ 5] 8.00-9.00 sec 1.78 MBytes 14.9 Mbits/sec
[ 5] 9.00-10.00 sec 1.32 MBytes 11.1 Mbits/sec
[ 5] 10.00-11.00 sec 1.19 MBytes 9.95 Mbits/sec
[ 5] 11.00-12.00 sec 1.12 MBytes 9.37 Mbits/sec
[ 5] 12.00-13.00 sec 1.41 MBytes 11.9 Mbits/sec
[ 5] 13.00-14.00 sec 1.60 MBytes 13.4 Mbits/sec
[ 5] 14.00-15.00 sec 1.50 MBytes 12.6 Mbits/sec
[ 5] 15.00-16.00 sec 1.71 MBytes 14.4 Mbits/sec
[ 5] 16.00-17.00 sec 1.48 MBytes 12.4 Mbits/sec
[ 5] 17.00-18.00 sec 1.47 MBytes 12.3 Mbits/sec
[ 5] 18.00-19.00 sec 1.37 MBytes 11.5 Mbits/sec
[ 5] 19.00-20.00 sec 1.50 MBytes 12.5 Mbits/sec
[ 5] 20.00-20.11 sec 236 KBytes 17.6 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-20.11 sec 30.0 MBytes 12.5 Mbits/sec sender
[ 5] 0.00-20.11 sec 30.0 MBytes 12.5 Mbits/sec receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Client Output:
[ 4] local 192.168.1.4 port 51220 connected to 192.168.1.102 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.01 sec 1.56 MBytes 13.0 Mbits/sec
[ 4] 1.01-2.02 sec 1.56 MBytes 13.0 Mbits/sec
[ 4] 2.02-3.00 sec 1.56 MBytes 13.4 Mbits/sec
[ 4] 3.00-4.01 sec 1.69 MBytes 14.0 Mbits/sec
[ 4] 4.01-5.01 sec 1.69 MBytes 14.2 Mbits/sec
[ 4] 5.01-6.00 sec 1.44 MBytes 12.2 Mbits/sec
[ 4] 6.00-7.00 sec 1.37 MBytes 11.5 Mbits/sec
[ 4] 7.00-8.01 sec 1.75 MBytes 14.5 Mbits/sec
[ 4] 8.01-9.00 sec 1.62 MBytes 13.7 Mbits/sec
[ 4] 9.00-10.00 sec 1.37 MBytes 11.6 Mbits/sec
[ 4] 10.00-11.01 sec 1.12 MBytes 9.34 Mbits/sec
[ 4] 11.01-12.00 sec 1.19 MBytes 10.1 Mbits/sec
[ 4] 12.00-13.02 sec 1.44 MBytes 11.8 Mbits/sec
[ 4] 13.02-14.01 sec 1.56 MBytes 13.2 Mbits/sec
[ 4] 14.01-15.00 sec 1.50 MBytes 12.7 Mbits/sec
[ 4] 15.00-16.01 sec 1.81 MBytes 15.1 Mbits/sec
[ 4] 16.01-17.01 sec 1.37 MBytes 11.5 Mbits/sec
[ 4] 17.01-18.00 sec 1.44 MBytes 12.2 Mbits/sec
[ 4] 18.00-19.00 sec 1.31 MBytes 11.0 Mbits/sec
[ 4] 19.00-20.00 sec 1.62 MBytes 13.6 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-20.00 sec 30.0 MBytes 12.6 Mbits/sec sender
[ 4] 0.00-20.00 sec 30.0 MBytes 12.6 Mbits/sec receiver
iperf Done.
As we can see, after the 20sec [-t20] run, the server is still running but the client stopped.
Here is the throughput from this TCP traffic:
How to Run the UDP Traffic Using Iperf3
UDP Server:
Same command as TCP server.
UDP Client:
Server Output:
[ 5] local 192.168.1.102 port 5201 connected to 192.168.1.4 port 54181
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-1.00 sec 1.30 MBytes 10.9 Mbits/sec 313523.501 ms 0/167 (0%)
[ 5] 1.00-2.00 sec 1.34 MBytes 11.3 Mbits/sec 16.624 ms 5/177 (2.8%)
[ 5] 2.00-3.00 sec 1.99 MBytes 16.7 Mbits/sec 10.843 ms 0/255 (0%)
[ 5] 3.00-4.00 sec 672 KBytes 5.50 Mbits/sec 3.955 ms 0/84 (0%)
[ 5] 4.00-5.00 sec 1.98 MBytes 16.6 Mbits/sec 14.042 ms 8/261 (3.1%)
[ 5] 5.00-5.68 sec 960 KBytes 11.6 Mbits/sec 3.389 ms 0/120 (0%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-5.68 sec 8.31 MBytes 12.3 Mbits/sec 3.389 ms 13/1064 (1.2%)
Client Output:
[ 4] local 192.168.1.4 port 54181 connected to 192.168.1.102 port 5201
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.23 sec 1.38 MBytes 9.40 Mbits/sec 176
[ 4] 1.23-2.00 sec 1.73 MBytes 18.7 Mbits/sec 221
[ 4] 2.00-3.12 sec 1.65 MBytes 12.3 Mbits/sec 211
[ 4] 3.12-4.01 sec 1.76 MBytes 16.6 Mbits/sec 225
[ 4] 4.01-5.03 sec 1.80 MBytes 14.8 Mbits/sec 231
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-5.03 sec 8.31 MBytes 13.9 Mbits/sec 3.389 ms 13/1064 (1.2%)
[ 4] Sent 1064 datagrams
Conclusion
Here, we learned some basic commands for iperf3. There are many advance options in iperf3. To know more on iperf3, we can use the “man iperf3” command and use it.