What is iPerf?
iPerf, which is short for Internet Performance Working Group, is an open-source speed test and network performance measurement tool. The mechanism is fairly simple: it creates TCP and UDP streams, and sends traffic from one host to another, then reports the maximum bandwidth to the user. This allows users to determine network throughput and top bandwidth speed.
Originally called ttcp by developers at the National Laboratory for Applied Network Research (NLANR), iPerf is the version that emerged when funding to NLANR was cut in 2006.
What is iPerf 3
IPerf3, started in 2009, offers similar functionality to the original iPerf, with both versions actively being developed. Like its predecessor, iPerf3 is also used to measure bandwidth and performance.
The original iPerf3 project did not have multithreading and was also limited to sub 100Gbps. However, in 2023, iPerf3 was modified and restructured to support multi-threading, so that it uses one thread per test stream. This modification allows iPerf33 to use multiple CPU cores during tests, which in turn permits it to keep up with continually increasing network link speeds.
IPerf version 3.16 has been observed to run at 160Gbps, with both iPerf2 and iPerf3 achieving high speeds via multi-threading.
iPerf3 boasts several use-enhancing improvements, including:
- A modular design to make extension easier
- Support for multi-threading, allowing a single set of code to be used by several processors at different execution stages
- Enhanced capabilities for TCP, UDP, and SCTP measurements
- More detailed output, including JSON output format, so that it’s more easily integrated with other systems or tools.
- Active updates, bug fixes and new feature additions, including active community support
- New features for adjusting buffer sizes, setting target bandwidth, and specifying the number of parallel streams.
- Improved command-line interface with more options and flexibility
- Easier scripting and automation for complex testing
- Bidirectional and simultaneous bi-direction testing
- Measurements for packet loss, latency, and jitter
iPerf, iperf, IPERF, or Iperf – Which is Correct?
While all capitalization options refer to the same tool, we’ve seen it written out many ways. Top preferences seem to be iperf (all lowercase), capitalizing the P (iPerf), or capitalizing the P and I (IPerf).
Why Use iPerf?
Testing network throughput with iPerf is usually the first step in determining network speed and functionality. Because it’s an open-source command-line tool and produces standardized performance measurements no matter the network, iPerf has become a popular, accessible tool. It’s also flexible: it can test TCP, UDP, and SCTP.
What Data Can an iPerf Test Provide?
The main information users want from iPerf is throughput, but it can also provide information on packet loss, jitter, and traffic distribution.
For more information, see the iPerf FAQ or Stack Overflow.
iPerf vs. iPerf 3: What’s the Difference?
There have been multiple versions of iPerf over the years. Starting with NLANR’s ttcp, developers took the eventual iPerf code and started over from scratch to create a smaller, more streamlined version. This resulted in two different, incompatible branches of iPerf: iPerf2 and iPerf3.
iPerf3, first released in 2014, is mainly used to test networks, while iPerf2 is better suited to measuring Wi-Fi speeds. When end users refer to iPerf, they are typically talking about iPerf3, but both versions can run similar tests and provide similar results.
iPerf vs. iPerf 3 Commands
Feature | Iperf 2 | Iperf 3 |
---|---|---|
Traffic types | ||
TCP traffic | Y | Y |
UDP traffic | Y | Y |
SCTP (Stream) traffic | N | Y |
IPv4 | Y | Y |
IPv6 | Y | Y |
Multicast traffic (including SSM) | Y | N |
Output options | ||
Human format | Y | Y |
JSON output | N | Y |
CSV (basic only) | Y | N |
Traffic profiles | ||
Fair queue rate limiting | Y | Y |
Write rate limiting | Y | Y |
Read rate limiting (TCP) | Y | N |
Bursts | Y | Y |
Metrics | ||
Throughput | Y | Y |
Responsiveness per second (RPS) | Y | N |
UDP packets (total/lost) | Y | Y |
UDP Jitter | Y | Y |
TCP retries | Y | Y |
TCP RTT | Y | Y |
Send side write delay histograms | Y | N |
UDP packets per second | Y | N |
Latency histograms | Y | N |
TCP connect times | Y | N |
TCP response per interval | Y | N |
Other | ||
Multi-threaded design | Y | Y |
CPU affinity | N | Y |
Python framework (asyncio) | Y (flows) | N |
Testing WiFi thru 100G | Y | N/A |
Scaling to 1000+ threads | Y | N/A |
Complete table can be found here.
Supported Platforms for iPerf3
Originally iPerf was built only for Linux machines. iPerf3 however available for a multitude of platforms including Windows, Mac, Android and Linux. If, however, it’s not supported on your preferred platform, you can likely find community-provided binaries to help you out.
How to Use iPerf3 with FileCatalyst
To achieve the fastest possible file transfer speeds, you can run a network test using iPerf3 to ensure your system is clean and free of bottlenecks before implementing a fast file transfer solution. While FileCatalyst is a premium file acceleration tool, its speed is defined by both the hardware and network on which it is used.
iPerf Example: How to Measure Network and Disk Throughput with IPERF3