There are a bunch of tools used to measure network performance. One of the most commonly used is iperf.
Iperf was developed by the Distributed Applications Support Team (DAST) at the National Laboratory for Applied Network Research (NLANR) and it is written in C language.
At the time I'm writing there are two versions of iperf.
The original one at www.iperf.fr up to version 2.0.5-2 and iperf3 mainly developed by ESnet / Lawrence Berkleley National Laboratory. iperf3 is "a new implementation from scratch, with the goal of a smaller, simpler code base, and a library version of the functionality that can be used in other programs". iperf3 in not backward compatible with iperf and can be found at https://github.com/esnet/iperf.
iperf can test the quality of a link measuring the following characteristics:
- Latency (response time or RTT): can be measured with the Ping command.
- Jitter (latency variation): can be measured with an Iperf UDP test.
- Datagram loss: can be measured with an Iperf UDP test.
here you are the measurement done on my mac mini loopback interface, using iperf3
Terminal 1
$ ./iperf3 -s
———————————————————–
Server listening on 5201
———————————————————–
Accepted connection from ::1, port 52356
[ 5] local ::1 port 5201 connected to ::1 port 52357
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 1.68 GBytes 14.4 Gbits/sec
[ 5] 1.00-2.00 sec 1.68 GBytes 14.4 Gbits/sec
[ 5] 2.00-3.00 sec 1.73 GBytes 14.9 Gbits/sec
[ 5] 3.00-4.00 sec 1.71 GBytes 14.7 Gbits/sec
[ 5] 4.00-5.00 sec 1.69 GBytes 14.5 Gbits/sec
[ 5] 5.00-6.00 sec 1.69 GBytes 14.6 Gbits/sec
[ 5] 6.00-7.00 sec 1.69 GBytes 14.5 Gbits/sec
[ 5] 7.00-8.00 sec 1.69 GBytes 14.6 Gbits/sec
[ 5] 8.00-9.00 sec 1.72 GBytes 14.8 Gbits/sec
[ 5] 9.00-10.00 sec 1.70 GBytes 14.6 Gbits/sec
[ 5] 10.00-10.00 sec 1.00 MBytes 14.1 Gbits/sec
– – – – – – – – – – – – – – – – – – – – – – – – –
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.00 sec 17.0 GBytes 14.6 Gbits/sec sender
[ 5] 0.00-10.00 sec 17.0 GBytes 14.6 Gbits/sec receiver
———————————————————–
Server listening on 5201
———————————————————–
Terminal 2
$ ./src/iperf3 -c localhost
Connecting to host localhost, port 5201
[ 6] local ::1 port 52357 connected to ::1 port 5201
[ ID] Interval Transfer Bandwidth
[ 6] 0.00-1.00 sec 1.68 GBytes 14.4 Gbits/sec
[ 6] 1.00-2.00 sec 1.68 GBytes 14.4 Gbits/sec
[ 6] 2.00-3.00 sec 1.73 GBytes 14.9 Gbits/sec
[ 6] 3.00-4.00 sec 1.71 GBytes 14.7 Gbits/sec
[ 6] 4.00-5.00 sec 1.69 GBytes 14.5 Gbits/sec
[ 6] 5.00-6.10 sec 1.86 GBytes 14.5 Gbits/sec
[ 6] 6.10-7.00 sec 1.53 GBytes 14.6 Gbits/sec
[ 6] 7.00-8.10 sec 1.86 GBytes 14.5 Gbits/sec
[ 6] 8.10-9.10 sec 1.72 GBytes 14.8 Gbits/sec
[ 6] 9.10-10.00 sec 1.54 GBytes 14.7 Gbits/sec
– – – – – – – – – – – – – – – – – – – – – – – – –
[ ID] Interval Transfer Bandwidth
[ 6] 0.00-10.00 sec 17.0 GBytes 14.6 Gbits/sec sender
[ 6] 0.00-10.00 sec 17.0 GBytes 14.6 Gbits/sec receiver
iperf Done.
You can play with all available options to create your own personalized test.
Gg1