logo_iperf_command.png?resize=200%2C191&ssl=1logo_iperf_command.png?resize=200%2C191&ssl=1According to wikipedia Iperf “is a commonly used network testing tool that can create TCP and UDP data streams and measure the throughput of a network that is carrying them. Iperf is a modern tool for network performance measurement written in C++.”

This tool has to configure server side and client side to complete a test. It can test from client side to server side , also can test from both direction.

1. Download iperf 3 

The main download site is from https://iperf.fr/iperf-download.php.

2. Start it as server

Running command ‘iperf -s’ from command line as iperf server (ip address 100.99.136.66).

C:\Tools>iperf -s  ————————————————————

Server listening on TCP port 5001

TCP window size: 8.00 KByte (default)

————————————————————

[188] local 100.99.136.66 port 5001 connected with 100.94.200.14 port 48410

[ ID] Interval       Transfer     Bandwidth

[188]  0.0-10.0 sec   121 MBytes   101 Mbits/sec


3. Run iperf as test client

User ‘ipef -c’ command to run from client test machine (ip adss 100.94.200.14)  to evaluate the network throughput based on TCP connection.

C:\tools>iperf -c 100.99.136.66

 ————————————————————

Client connecting to 100.99.136.66, TCP port 5001

TCP window size: 8.00 KByte (default)

————————————————————

[1912] local 100.94.200.14 port 48410 connected with 100.99.136.66 port 5001

[ ID] Interval       Transfer     Bandwidth

[1912]  0.0-10.0 sec   121 MBytes   101 Mbits/sec

4. Send 100MBytes data for testing

iperf -c 100.99.136.66 -n 100m

5. Bi-direction test

Simultaneous bi-directional bandwidth measurement: (-d argument)

To measure the bi-directional bandwidths simultaneousely, use the -d argument. If you want to test the bandwidths sequentially, use the -r argument (see previous test).

By default (ie: without the -r or -d arguments), only the bandwidth from the client to the server is measured.

C:\tools> iperf -c 100.99.136.66  -d

————————————————————

Server listening on TCP port 5001

TCP window size: 85.3 KByte (default)

————————————————————

————————————————————

Client connecting to 10.1.1.1, TCP port 5001

TCP window size: 16.0 KByte (default)

————————————————————

[ 5] local 10.6.2.5 port 60270 connected with 10.1.1.1 port 5001

[ 4] local 10.6.2.5 port 5001 connected with 10.1.1.1 port 2643

[ 4] 0.0-10.0 sec 76.3 MBytes 63.9 Mbits/sec

[ 5] 0.0-10.1 sec 1.55 MBytes 1.29 Mbits/sec

6. Parallel TCP connections

Parallel connections can be useful if you need to saturate the bandwidth of a link.  The bandwidth of a single TCP session can be greatly affected by the size of the receive window and the latency of the link.

iperf -s -i 1 (-i 1 means update terminal every second)

iperf -c 192.168.1.1 -t 30 -P 10

4-3-2014+2-09-31+PM.jpg?resize=400%2C223&ssl=14-3-2014+2-09-31+PM.jpg?resize=400%2C223&ssl=1
Add caption

7.  Other Parameters

iperf -c 12.12.12.12 -p 2233 -i 1 -t 60 -f M

Notes:

c:start iperf as client, followed ip address is remote server ip.

p:set specific server port, which should be same as server side’s settings.

i:reporting intervals

t:length of test

f:change number output format

Other parameters can be found from https://iperf.fr/iperf-doc.php.