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](/content/images/chap4_9780138222918/elementLinks/28fig05.jpg)
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](/content/images/chap4_9780138222918/elementLinks/28fig06.jpg)
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 -----------------------------------------------------------