Home > Articles > Latency, delay, speed test vs. iPerf

Latency, delay, speed test vs. iPerf

Chapter Description

Prepare for your CCST Networking exam in 31 days. Today's review focuses on the different measurements for network performance, the sources of delay, testing network performance online, and testing network performance using the Windows iPerf tool.

Speed Tests

It’s relatively easy for you to test the speed of your personal Internet connections. A quick Internet search will reveal several ad-supported sites that provide this service for free. Speed tests measure the throughput of your link. Specifically, they measure the throughput between you and the destination server that the speed test chooses for your test. Some speed tests, such as the one provided by Ookla, allow you to change the destination server, as shown in Figure 28-5.

Figure 28-5

Figure 28-5 Example of a Web-Based Speed Test by Ookla

Ookla also has an app you can use to test the throughput of your cellular bandwidth, as shown in Figure 28-6.

Figure 28-6

Figure 28-6 Ookla’s Mobile App Speedtest

The iPerf Tool

Although there are a variety of other tools you could download for measuring your network’s performance, the CCST-Networking exam specifically calls out the iPerf tool. As of this writing, iPerf is in version 3 and can be downloaded for all the major operating systems at https://iperf.fr.

Example 28-1 shows the iPerf tool running on a Windows machine, testing the connection to a public iPerf server in Dallas.

Example 28-1 Output from the iPerf Windows Tool

C:\tools\iperf-3.1.3-win32> iperf3 -c dal.speedtest.clouvider.net
Connecting to host dal.speedtest.clouvider.net, port 5200
[  4] local 192.168.68.106 port 61680 connected to 2.56.188.136 port 5200
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   441 KBytes  3.60 Mbits/sec
[  4]   1.00-2.00   sec   756 KBytes  6.19 Mbits/sec
[  4]   2.00-3.01   sec   756 KBytes  6.18 Mbits/sec
[  4]   3.01-4.00   sec   693 KBytes  5.68 Mbits/sec
[  4]   4.00-5.00   sec   756 KBytes  6.20 Mbits/sec
[  4]   5.00-6.00   sec   756 KBytes  6.19 Mbits/sec
[  4]   6.00-7.00   sec   756 KBytes  6.21 Mbits/sec
[  4]   7.00-8.00   sec   756 KBytes  6.20 Mbits/sec
[  4]   8.00-9.01   sec   819 KBytes  6.62 Mbits/sec
[  4]   9.01-10.01  sec   819 KBytes  6.71 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.01  sec  7.14 MBytes  5.98 Mbits/sec                  sender
[  4]   0.00-10.01  sec  7.14 MBytes  5.98 Mbits/sec                  receiver

iperf Done.

C:\tools\iperf-3.1.3-win32>

In Example 28-1, the number of kilobytes of data being transferred is measured every second. This value is then converted into the number of bits per second. After 10 seconds, we can see that the average throughput is 5.98Mbps for both the sender and the receiver.

Be sure you review the documentation for iPerf at https://iperf.fr/iperf-doc.php and practice different command-line options, including the following:

  • -s sets the device to run in server mode.

  • -t changes the amount of time in seconds to something other than the default 10 seconds.

  • -w can be used to set the TCP window size.

  • -4 or -6 indicate to only use IPv4 or IPv6, respectively.

Example 28-2 shows all the available options for iPerf on Windows.

Example 28-2 Windows iPerf Options

C:\tools\iperf-3.1.3-win32> 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      <host>  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    <host>  run in client mode, connecting to <host>
  -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          <port>     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:\tools\iperf-3.1.3-win32>

If you want to test the performance in your own network, download iPerf on the computer that will receive the iPerf packets. Use the -s option to start an iPerf server, as shown in Example 28-3.

Example 28-3 iPerf Running in Server Mode

C:\tools\iperf-3.1.3-win32> iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
5. Study Resources | Next Section Previous Section

Cisco Press Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from Cisco Press and its family of brands. I can unsubscribe at any time.