iperf
iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool
iperf3 is a command-line tool that measures actual data transfer speed between two machines on a network, reporting throughput, packet loss, and related network performance stats.
iperf3 is a command-line tool for measuring how fast data can be transferred across a network. You run it on two machines: one acts as the server and waits for connections, the other acts as the client and sends data. After the test finishes, it reports the actual throughput (how much data moved per second), packet loss, and related statistics. This helps network administrators and engineers understand whether a network link is performing as expected or whether something is limiting its speed.
The tool supports three network protocols: TCP, which is the standard reliable protocol used by most internet traffic; UDP, which sacrifices reliability for speed and is used in video streaming and gaming; and SCTP, a less common protocol designed for reliability and multi-homing. Various parameters can be tuned, such as buffer sizes and test duration. Results can optionally be output as JSON, which makes it easier to feed into scripts or monitoring systems.
iperf3 was built from scratch as a cleaner rewrite of the original iperf tool and is not compatible with it. It is developed primarily at ESnet and Lawrence Berkeley National Laboratory, and is used as a component in perfSONAR, a network measurement platform used by research and education networks worldwide. It also appears in various commercial networking products.
Building it from source follows a standard configure, make, make install pattern. It runs on Linux, FreeBSD, and macOS, with community reports of success on Android and other platforms. The BSD license allows it to be used and redistributed freely, including in commercial settings.
Where it fits
- Measure the maximum throughput of a network link between two servers before deploying a streaming application
- Diagnose network performance issues by running TCP and UDP bandwidth tests between machines
- Benchmark a cloud or datacenter network connection to validate it meets expected performance