Repolode
esnet

esnet/iperf

iperf3 is a command-line tool for measuring the maximum achievable bandwidth on IP networks over TCP, UDP, and SCTP.

Stars
8,865
Forks
1,469
Open issues
245
Last commit
10 days ago

What is it?

iperf3 actively measures the maximum achievable bandwidth between two hosts on an IP network. You run it as a server on one machine and a client on another, and it reports throughput or bitrate, packet loss and other parameters for each test. Timing, protocol, and buffer settings can be tuned from the command line.

iperf3 is a from-scratch rewrite of the original iperf, with a smaller codebase and a library version of its functionality for use in other programs. It adds features such as a zero-copy mode and optional JSON output. It is not backwards compatible with the original iperf, and the separate iperf2 project continues in its own development.

The project is principally developed by ESnet and Lawrence Berkeley National Laboratory and is a component of the perfSONAR network measurement system. Development targets Ubuntu Linux, FreeBSD, and macOS, and it builds with the standard configure and make steps.

Key features

  • 01Measures TCP, UDP, and SCTP throughput between two hosts.
  • 02Reports bitrate, packet loss, and other per-test statistics.
  • 03Supports tuning of timing, protocol, and buffer parameters.
  • 04Offers optional JSON output for scripting and parsing.
  • 05Provides a zero-copy sendfile mode and CPU affinity settings for advanced testing.
  • 06Ships a library version of its functionality for embedding in other programs.

Use cases

  • Checking the achievable bandwidth of a link or path between two servers.
  • Troubleshooting network throughput issues and comparing results across configurations.
  • Running network performance tests as part of a perfSONAR measurement deployment.
  • Automating bandwidth tests in scripts using JSON output.

Quick start

  1. 1

    Clone the source repository

    git clone https://github.com/esnet/iperf.git
  2. 2

    Build and install from source

    ./configure; make; make install

Things to know

  • Only Ubuntu Linux, FreeBSD and macOS are officially supported; other platforms are not guaranteed.
  • The metadata license is unspecified (NOASSERTION), though the README describes a BSD-style license with U.S. government notices.

Topics

#network#bandwidth#benchmark#tcp#udp#sctp#networking-tools#performance-testing#iperf3

FAQ

What is iperf?
iperf3 is a command-line tool for measuring the maximum achievable bandwidth on IP networks over TCP, UDP, and SCTP. iperf3 actively measures the maximum achievable bandwidth between two hosts on an IP network. You run it as a server on one machine and a client on another, and it reports throughput or bitrate, packet loss and other parameters for each test. Timing, protocol, and buffer settings can be tuned from the command line.
Is iperf free to use? What license does it have?
iperf is open source under the Other license. Check the license terms before using it in commercial products.
Is iperf still maintained?
Actively maintained. The last commit to iperf was on Oct 27, 2026.
What can I use iperf for?
Checking the achievable bandwidth of a link or path between two servers. Troubleshooting network throughput issues and comparing results across configurations. Running network performance tests as part of a perfSONAR measurement deployment. Automating bandwidth tests in scripts using JSON output.
How do I install iperf?
Clone the source repository: git clone https://github.com/esnet/iperf.git Build and install from source: ./configure; make; make install
Where can I get iperf?
The source code and installation instructions are on GitHub: https://github.com/esnet/iperf

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects

Command-line network scanner in Go that supports ARP, ICMP, TCP, UDP and SOCKS5 scans with JSON output for automation.

Security#network-scanner#arp#tcp
1.6K+2 this week105GoMITUpdated 3 months ago