Saturday, December 8, 2018

Free Network Performance Test tool - Iperf

According 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
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.


No comments:

Post a Comment