Welcome to the Network Engineering Domain
Pape O. Fall's Blog

iPerf – Bandwidth Measurement Tool

iPerf is one of my favorite tool as it constitutes a fundamental instrument in the Network Engineer toolkit. It is essentially a measurement tool that outputs the maximum achievable bandwidth, MSS or MTU size in an IP network. We also have the capability of tuning diverse parameters such as TCP window size, buffers and generate traffic with different types of protocols such as TCP, UDP and SCTP. We can also measure jitter, latency and datagram loss.

In this post, I’ll demonstrate various iPerf tests between 2 hosts that are not part of the same broadcast domain. Here is the setup we’re working with today.

 


Here we have a simple setup with 2 of my virtual servers. We will use “HQ HOST” as our iPerf Server and “REMOTE HOST” as our client here.

The first thing we need to do is to download iPerf from the following link: iPerf. Save the folder in your desktop and via cmd, change the directory to the iPerf folder.

Note that it is mandatory to set one side as a server and the other as a client. By default, iPerf uses TCP/5201 in the version I’m using. Let’s do that and check how much bandwidth we have between our servers.

SERVER SIDE

C:\Users\Papy\Desktop\iperf3>iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 10.2.2.100, port 49160
[  5] local 10.1.1.100 port 5201 connected to 10.2.2.100 port 49161
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.03   sec  4.98 MBytes  40.6 Mbits/sec
[  5]   1.03-2.01   sec  5.29 MBytes  45.2 Mbits/sec
[  5]   2.01-3.01   sec  6.08 MBytes  51.1 Mbits/sec
[  5]   3.01-4.01   sec  7.01 MBytes  58.9 Mbits/sec
[  5]   4.01-5.01   sec  5.25 MBytes  44.1 Mbits/sec
[  5]   5.01-6.01   sec  6.57 MBytes  55.2 Mbits/sec
[  5]   6.01-7.00   sec  5.22 MBytes  43.8 Mbits/sec
[  5]   7.00-8.00   sec  6.87 MBytes  57.7 Mbits/sec
[  5]   8.00-9.00   sec  4.59 MBytes  38.5 Mbits/sec
[  5]   9.00-10.02  sec  5.94 MBytes  49.2 Mbits/sec
[  5]  10.02-10.22  sec  1.24 MBytes  51.3 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.22  sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-10.22  sec  59.0 MBytes  48.5 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

CLIENT SIDE

C:\Users\Papy\Desktop\iperf3>iperf3 -c 10.1.1.100
Connecting to host 10.1.1.100, port 5201
[  4] local 10.2.2.100 port 49161 connected to 10.1.1.100 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.01   sec  6.00 MBytes  49.6 Mbits/sec
[  4]   1.01-2.01   sec  5.75 MBytes  48.3 Mbits/sec
[  4]   2.01-3.01   sec  6.38 MBytes  53.6 Mbits/sec
[  4]   3.01-4.02   sec  6.38 MBytes  52.7 Mbits/sec
[  4]   4.02-5.01   sec  5.75 MBytes  49.1 Mbits/sec
[  4]   5.01-6.01   sec  6.25 MBytes  52.5 Mbits/sec
[  4]   6.01-7.00   sec  5.62 MBytes  47.3 Mbits/sec
[  4]   7.00-8.00   sec  6.62 MBytes  55.7 Mbits/sec
[  4]   8.00-9.00   sec  4.62 MBytes  38.9 Mbits/sec
[  4]   9.00-10.02  sec  5.88 MBytes  48.6 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.02  sec  59.2 MBytes  49.6 Mbits/sec                  sender
[  4]   0.00-10.02  sec  59.0 MBytes  49.4 Mbits/sec                  receiver

iperf Done.

Note that all we need on the server side is “iperf3 -s” for the server to start listening on TCP/5201 in my case. The default protocol is TCP and if we wanted to change it to UDP, we’d need to use the -u argument. Here we can see that I’ve transferred about 60 bytes of data reporting a bandwidth of about 50Mbps between my 2 servers.

Let’s see what a UDP test looks like

SERVER SIDE

C:\Users\Papy\Desktop\iperf3>iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 10.2.2.100, port 49162
[  5] local 10.1.1.100 port 5201 connected to 10.2.2.100 port 61704
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  5]   0.00-1.01   sec   152 KBytes  1.23 Mbits/sec  26.945 ms  13/32 (41%)
[  5]   1.01-2.01   sec  80.0 KBytes   656 Kbits/sec  16.815 ms  0/10 (0%)
[  5]   2.01-3.01   sec  80.0 KBytes   656 Kbits/sec  8.819 ms  0/10 (0%)
[  5]   3.01-4.01   sec  80.0 KBytes   656 Kbits/sec  5.908 ms  0/10 (0%)
[  5]   4.01-5.01   sec   112 KBytes   919 Kbits/sec  6.442 ms  0/14 (0%)
[  5]   5.01-6.01   sec   120 KBytes   985 Kbits/sec  6.107 ms  1/16 (6.2%)
[  5]   6.01-7.00   sec   120 KBytes   985 Kbits/sec  6.089 ms  0/15 (0%)
[  5]   7.00-8.00   sec   128 KBytes  1.05 Mbits/sec  6.585 ms  1/17 (5.9%)
[  5]   8.00-9.00   sec   128 KBytes  1.05 Mbits/sec  5.021 ms  0/16 (0%)
[  5]   9.00-10.02  sec   120 KBytes   969 Kbits/sec  6.688 ms  1/16 (6.2%)
[  5]  10.02-10.23  sec  32.0 KBytes  1.20 Mbits/sec  6.998 ms  0/4 (0%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  5]   0.00-10.23  sec  0.00 Bytes  0.00 bits/sec  6.998 ms  16/160 (10%)
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

CLIENT SIDE

C:\Users\Papy\Desktop\iperf3>iperf3 -c 10.1.1.100 -u
Connecting to host 10.1.1.100, port 5201
[  4] local 10.2.2.100 port 61704 connected to 10.1.1.100 port 5201
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.01   sec   280 KBytes  2.26 Mbits/sec  35
[  4]   1.01-2.01   sec  80.0 KBytes   656 Kbits/sec  10
[  4]   2.01-3.01   sec  80.0 KBytes   656 Kbits/sec  10
[  4]   3.01-4.01   sec  80.0 KBytes   656 Kbits/sec  10
[  4]   4.01-5.01   sec   120 KBytes   985 Kbits/sec  15
[  4]   5.01-6.01   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   6.01-7.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   7.00-8.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   8.00-9.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   9.00-10.02  sec   128 KBytes  1.03 Mbits/sec  16
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-10.02  sec  1.25 MBytes  1.05 Mbits/sec  6.998 ms  16/160 (10%)
[  4] Sent 160 datagrams

iperf Done.

Notice how we also get jitter information when UDP test is conducted. Also the default bandwidth for a UDP test is 1Mbps and that’s the reason why the bandwidth reported is just about 1Mbps. In order to increase the bandwidth, add the -b argument at the end of the command and the bandwidth desired.

It’s important to note here that TCP is a connection oriented protocol and what it means is that it tracks data flow and requires acknowledgement. It also ensures that out-of-order, missing or duplicated data are not sent to the upper layer protocol. UDP on the other hand is a connectionless protocol and what it means is that it does not have those error check functions baked in. It is mostly used is instances where loss of packets are less critical than out-of-order packets such as voice and video.

In some instances, we may have different applications running on a single server and would like to test parallel connections throughput. Let’s see how it’s done here.

SERVER SIDE

C:\Users\Papy\Desktop\iperf3>iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 10.2.2.100, port 49184
[  5] local 10.1.1.100 port 5201 connected to 10.2.2.100 port 49185
[  7] local 10.1.1.100 port 5201 connected to 10.2.2.100 port 49186
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.05   sec  4.13 MBytes  33.2 Mbits/sec
[  7]   0.00-1.05   sec  2.37 MBytes  19.0 Mbits/sec
[SUM]   0.00-1.05   sec  6.51 MBytes  52.2 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   1.05-2.01   sec  1.06 MBytes  9.19 Mbits/sec
[  7]   1.05-2.01   sec  4.65 MBytes  40.3 Mbits/sec
[SUM]   1.05-2.01   sec  5.70 MBytes  49.5 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   2.01-3.01   sec  3.84 MBytes  32.2 Mbits/sec
[  7]   2.01-3.01   sec  2.35 MBytes  19.8 Mbits/sec
[SUM]   2.01-3.01   sec  6.19 MBytes  52.0 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   3.01-4.01   sec  5.28 MBytes  44.4 Mbits/sec
[  7]   3.01-4.01   sec   980 KBytes  8.04 Mbits/sec
[SUM]   3.01-4.01   sec  6.24 MBytes  52.4 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   4.01-5.01   sec  3.37 MBytes  28.3 Mbits/sec
[  7]   4.01-5.01   sec  3.42 MBytes  28.7 Mbits/sec
[SUM]   4.01-5.01   sec  6.79 MBytes  57.1 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   5.01-6.01   sec  3.83 MBytes  32.2 Mbits/sec
[  7]   5.01-6.01   sec  4.47 MBytes  37.6 Mbits/sec
[SUM]   5.01-6.01   sec  8.30 MBytes  69.8 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   6.01-7.00   sec  4.50 MBytes  37.8 Mbits/sec
[  7]   6.01-7.00   sec  2.34 MBytes  19.6 Mbits/sec
[SUM]   6.01-7.00   sec  6.84 MBytes  57.5 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   7.00-8.00   sec  3.17 MBytes  26.7 Mbits/sec
[  7]   7.00-8.00   sec  3.72 MBytes  31.3 Mbits/sec
[SUM]   7.00-8.00   sec  6.90 MBytes  58.0 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   8.00-9.00   sec  3.07 MBytes  25.8 Mbits/sec
[  7]   8.00-9.00   sec  3.25 MBytes  27.3 Mbits/sec
[SUM]   8.00-9.00   sec  6.32 MBytes  53.1 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]   9.00-10.02  sec  2.52 MBytes  20.8 Mbits/sec
[  7]   9.00-10.02  sec  4.36 MBytes  36.1 Mbits/sec
[SUM]   9.00-10.02  sec  6.88 MBytes  56.9 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  5]  10.02-10.20  sec   739 KBytes  32.3 Mbits/sec
[  7]  10.02-10.20  sec   901 KBytes  39.4 Mbits/sec
[SUM]  10.02-10.20  sec  1.60 MBytes  71.8 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.20  sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-10.20  sec  35.5 MBytes  29.2 Mbits/sec                  receiver
[  7]   0.00-10.20  sec  0.00 Bytes  0.00 bits/sec                  sender
[  7]   0.00-10.20  sec  32.8 MBytes  26.9 Mbits/sec                  receiver
[SUM]   0.00-10.20  sec  0.00 Bytes  0.00 bits/sec                  sender
[SUM]   0.00-10.20  sec  68.3 MBytes  56.1 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

CLIENT SIDE

C:\Users\Papy\Desktop\iperf3>iperf3 -c 10.1.1.100 -P 2
Connecting to host 10.1.1.100, port 5201
[  4] local 10.2.2.100 port 49185 connected to 10.1.1.100 port 5201
[  6] local 10.2.2.100 port 49186 connected to 10.1.1.100 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.01   sec  4.62 MBytes  38.3 Mbits/sec
[  6]   0.00-1.01   sec  3.00 MBytes  24.8 Mbits/sec
[SUM]   0.00-1.01   sec  7.62 MBytes  63.1 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   1.01-2.01   sec  1.38 MBytes  11.6 Mbits/sec
[  6]   1.01-2.01   sec  4.62 MBytes  38.9 Mbits/sec
[SUM]   1.01-2.01   sec  6.00 MBytes  50.4 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   2.01-3.01   sec  4.50 MBytes  37.8 Mbits/sec
[  6]   2.01-3.01   sec  1.88 MBytes  15.8 Mbits/sec
[SUM]   2.01-3.01   sec  6.38 MBytes  53.6 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   3.01-4.01   sec  4.88 MBytes  41.0 Mbits/sec
[  6]   3.01-4.01   sec  1.62 MBytes  13.7 Mbits/sec
[SUM]   3.01-4.01   sec  6.50 MBytes  54.6 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   4.01-5.02   sec  3.12 MBytes  25.9 Mbits/sec
[  6]   4.01-5.02   sec  3.88 MBytes  32.1 Mbits/sec
[SUM]   4.01-5.02   sec  7.00 MBytes  57.9 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   5.02-6.01   sec  4.00 MBytes  34.1 Mbits/sec
[  6]   5.02-6.01   sec  4.00 MBytes  34.1 Mbits/sec
[SUM]   5.02-6.01   sec  8.00 MBytes  68.3 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   6.01-7.00   sec  4.38 MBytes  36.8 Mbits/sec
[  6]   6.01-7.00   sec  2.50 MBytes  21.0 Mbits/sec
[SUM]   6.01-7.00   sec  6.88 MBytes  57.8 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   7.00-8.00   sec  4.00 MBytes  33.6 Mbits/sec
[  6]   7.00-8.00   sec  3.00 MBytes  25.2 Mbits/sec
[SUM]   7.00-8.00   sec  7.00 MBytes  58.8 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   8.00-9.00   sec  1.62 MBytes  13.7 Mbits/sec
[  6]   8.00-9.00   sec  4.12 MBytes  34.7 Mbits/sec
[SUM]   8.00-9.00   sec  5.75 MBytes  48.3 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   9.00-10.02  sec  3.12 MBytes  25.9 Mbits/sec
[  6]   9.00-10.02  sec  4.38 MBytes  36.2 Mbits/sec
[SUM]   9.00-10.02  sec  7.50 MBytes  62.0 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.02  sec  35.6 MBytes  29.8 Mbits/sec                  sender
[  4]   0.00-10.02  sec  35.5 MBytes  29.7 Mbits/sec                  receiver
[  6]   0.00-10.02  sec  33.0 MBytes  27.6 Mbits/sec                  sender
[  6]   0.00-10.02  sec  32.8 MBytes  27.4 Mbits/sec                  receiver
[SUM]   0.00-10.02  sec  68.6 MBytes  57.5 Mbits/sec                  sender
[SUM]   0.00-10.02  sec  68.3 MBytes  57.2 Mbits/sec                  receiver

iperf Done.

Here, I’ve instructed the client to create 2 parallel TCP connections to the server and you can confirm that via the distinct port numbers. The bandwidth reported is an average calculations of both connections.

Another interesting test is also changing the TCP window size. In host to host communication, each machine informs the far side how much data they’re willing to accept at one time. This is called TCP window size ! It happens that in some instances, a server with a low window size has a detrimental effect on performance and here is why. Let’s say you have a 10MB file you need to transfer to the far side host with a TCP window size of 2KB. This essentially means that since this is a connection oriented session, the sender will need to pause and wait 5 times for acknowledgement.

10MB / 2KB = 5

This is a small scale illustration to show you the output but you’ll need to adapt your test as you see fit. Let’s see that how it’s done.

SERVER SIDE

C:\Users\Papy\Desktop\iperf3>iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 10.2.2.100, port 49203
[  5] local 10.1.1.100 port 5201 connected to 10.2.2.100 port 49204
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.01   sec   207 KBytes  1.67 Mbits/sec
[  5]   1.01-2.01   sec  1.12 MBytes  9.38 Mbits/sec
[  5]   2.01-3.01   sec  1.17 MBytes  9.86 Mbits/sec
[  5]   3.01-4.01   sec  1.22 MBytes  10.3 Mbits/sec
[  5]   4.01-5.01   sec  1.39 MBytes  11.7 Mbits/sec
[  5]   5.01-6.01   sec  1.44 MBytes  12.1 Mbits/sec
[  5]   6.01-7.00   sec  1.43 MBytes  12.0 Mbits/sec
[  5]   7.00-8.00   sec  1.24 MBytes  10.4 Mbits/sec
[  5]   8.00-8.66   sec   811 KBytes  10.1 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-8.66   sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-8.66   sec  10.0 MBytes  9.69 Mbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

CLIENT SIDE

C:\Users\Papy\Desktop\iperf3>iperf3 -c 10.1.1.100 -n 10M -w 2000
Connecting to host 10.1.1.100, port 5201
[  4] local 10.2.2.100 port 49204 connected to 10.1.1.100 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.01   sec   400 KBytes  3.23 Mbits/sec
[  4]   1.01-2.01   sec  1.18 MBytes  9.95 Mbits/sec
[  4]   2.01-3.01   sec  1.19 MBytes  10.0 Mbits/sec
[  4]   3.01-4.01   sec  1.23 MBytes  10.3 Mbits/sec
[  4]   4.01-5.01   sec  1.41 MBytes  11.9 Mbits/sec
[  4]   5.01-6.01   sec  1.44 MBytes  12.1 Mbits/sec
[  4]   6.01-7.00   sec  1.41 MBytes  11.8 Mbits/sec
[  4]   7.00-8.00   sec  1.20 MBytes  10.1 Mbits/sec
[  4]   8.00-8.44   sec   557 KBytes  10.4 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-8.44   sec  10.0 MBytes  9.94 Mbits/sec                  sender
[  4]   0.00-8.44   sec  10.0 MBytes  9.94 Mbits/sec                  receiver

iperf Done.

Here, the argument -n defines the payload size. In our case, it is set to 10MB. As you can here, we’ve transfered 10MB and the bandwidth reported here is about 10Mbps. Let’s run the same command and increase the window size to 128000 bytes.

CLIENT SIDE

C:\Users\Papy\Desktop\iperf3>iperf3 -c 10.1.1.100 -n 10M -w 128000
Connecting to host 10.1.1.100, port 5201
[  4] local 10.2.2.100 port 49207 connected to 10.1.1.100 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.01   sec  5.51 MBytes  45.6 Mbits/sec
[  4]   1.01-1.67   sec  4.52 MBytes  57.9 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.67   sec  10.0 MBytes  50.4 Mbits/sec                  sender
[  4]   0.00-1.67   sec  9.80 MBytes  49.2 Mbits/sec                  receiver

iperf Done.

Here we can see a drastic difference in terms of performance just by increasing the TCP window size.

In some instances, you may want to change the communication port to test firewall for instance as well as the test duration and the report interval. Let’s see how it’s done.

SERVER SIDE

C:\Users\Papy\Desktop\iperf3>iperf3 -s -p 10000
———————————————————–
Server listening on 10000
———————————————————–
Accepted connection from 10.2.2.100, port 49210
[ 5] local 10.1.1.100 port 10000 connected to 10.2.2.100 port 49211
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.01 sec 3.37 MBytes 27.9 Mbits/sec
[ 5] 1.01-2.01 sec 6.38 MBytes 53.6 Mbits/sec
[ 5] 2.01-3.01 sec 4.69 MBytes 39.4 Mbits/sec
[ 5] 3.01-4.01 sec 6.95 MBytes 58.4 Mbits/sec
[ 5] 4.01-5.01 sec 6.45 MBytes 54.2 Mbits/sec
[ 5] 5.01-6.01 sec 5.97 MBytes 50.1 Mbits/sec
[ 5] 6.01-7.00 sec 5.47 MBytes 45.9 Mbits/sec
[ 5] 7.00-8.00 sec 5.45 MBytes 45.8 Mbits/sec
[ 5] 8.00-9.00 sec 6.31 MBytes 53.0 Mbits/sec
[ 5] 9.00-10.03 sec 5.94 MBytes 48.4 Mbits/sec
[ 5] 10.03-11.01 sec 5.56 MBytes 47.5 Mbits/sec
[ 5] 11.01-12.01 sec 5.55 MBytes 46.7 Mbits/sec
[ 5] 12.01-13.01 sec 5.61 MBytes 47.1 Mbits/sec
[ 5] 13.01-14.01 sec 5.82 MBytes 48.9 Mbits/sec
[ 5] 14.01-15.01 sec 6.55 MBytes 55.0 Mbits/sec
[ 5] 15.01-15.23 sec 833 KBytes 31.2 Mbits/sec
– – – – – – – – – – – – – – – – – – – – – – – – –
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-15.23 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-15.23 sec 86.9 MBytes 47.9 Mbits/sec receiver
———————————————————–
Server listening on 10000
———————————————————–

Here, on the server side we changed the default port to 10000. Let’s see what we have on the client side.

CLIENT SIDE

C:\Users\Papy\Desktop\iperf3>iperf3 -c 10.1.1.100 -p 10000 -t 15 -i 2
Connecting to host 10.1.1.100, port 10000
[  4] local 10.2.2.100 port 49211 connected to 10.1.1.100 port 10000
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-2.01   sec  11.5 MBytes  47.9 Mbits/sec
[  4]   2.01-4.01   sec  11.5 MBytes  48.3 Mbits/sec
[  4]   4.01-6.01   sec  12.2 MBytes  51.5 Mbits/sec
[  4]   6.01-8.00   sec  11.0 MBytes  46.2 Mbits/sec
[  4]   8.00-10.02  sec  11.9 MBytes  49.5 Mbits/sec
[  4]  10.02-12.01  sec  11.4 MBytes  47.8 Mbits/sec
[  4]  12.01-14.01  sec  11.6 MBytes  48.8 Mbits/sec
[  4]  14.01-15.01  sec  5.88 MBytes  49.4 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-15.01  sec  87.0 MBytes  48.6 Mbits/sec                  sender
[  4]   0.00-15.01  sec  86.9 MBytes  48.6 Mbits/sec                  receiver

iperf Done.

Note that we’ve also changed the communication port to 10000 on the client side and increase the test during by 5 since the default duration is 10 secs. We’ve also specified the periodic bandwidth report to be every 2 secs.

We also can check the available commands via the “iperf3 -h”. Let’s see what we have available.

C:\Users\Papy\Desktop\iperf3>iperf3 -h
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
  -i, --interval  #         seconds between periodic bandwidth reports
  -F, --file name           xmit/recv the specified file
  -B, --bind          bind to a specific interface
  -V, --verbose             more detailed output
  -J, --json                output in JSON format
  --logfile f               send output to a log file
  -d, --debug               emit debugging output
  -v, --version             show version information and quit
  -h, --help                show this message and quit
Server specific:
  -s, --server              run in server mode
  -D, --daemon              run the server as a daemon
  -I, --pidfile file        write PID file
  -1, --one-off             handle one client connection then exit
Client specific:
  -c, --client        run in client mode, connecting to 
  -u, --udp                 use UDP rather than TCP
  -b, --bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited)
                            (default 1 Mbit/sec for UDP, unlimited for TCP)
                            (optional slash and packet count for burst mode)
  -t, --time      #         time in seconds to transmit for (default 10 secs)
  -n, --bytes     #[KMG]    number of bytes to transmit (instead of -t)
  -k, --blockcount #[KMG]   number of blocks (packets) to transmit (instead of -t or -n)
  -l, --len       #[KMG]    length of buffer to read or write
                            (default 128 KB for TCP, 8 KB for UDP)
  --cport             bind to a specific client port (TCP and UDP, default: ephemeral port)
  -P, --parallel  #         number of parallel client streams to run
  -R, --reverse             run in reverse mode (server sends, client receives)
  -w, --window    #[KMG]    set window size / socket buffer size
  -M, --set-mss   #         set TCP/SCTP maximum segment size (MTU - 40 bytes)
  -N, --no-delay            set TCP/SCTP no delay, disabling Nagle's Algorithm
  -4, --version4            only use IPv4
  -6, --version6            only use IPv6
  -S, --tos N               set the IP 'type of service'
  -Z, --zerocopy            use a 'zero copy' method of sending data
  -O, --omit N              omit the first n seconds
  -T, --title str           prefix every output line with this string
  --get-server-output       get results from server
  --udp-counters-64bit      use 64-bit counters in UDP test packets

[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-

iperf3 homepage at: http://software.es.net/iperf/
Report bugs to:     https://github.com/esnet/iperf

C:\Users\Papy\Desktop\iperf3>

That’s all I have for you today.

Leave a Reply

Your email address will not be published. Required fields are marked *

A Little About Myself

Hello I'm Pape. My friends call me Pop. I'm CCIE #48357. I enjoy my field and love to share it with others. I love to write so I'm sharing my blog with you.

Sign up to receive notifications and updates whenever new topics or videos are uploaded!

RouteLeak Calendar

November 2024
M T W T F S S
 123
45678910
11121314151617
18192021222324
252627282930