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.