gitwtfhub

wtf is iperf?

esnet/iperf — explained in plain English

Analysis updated 2026-06-24

8,481CAudience · ops devopsComplexity · 2/5LicenseSetup · easy

TL;DR

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.

Mindmap

mindmap
  root((repo))
    What it does
      Measure network speed
      Test TCP and UDP
      Report throughput stats
    Protocols
      TCP
      UDP
      SCTP
    Tech Stack
      C
      Linux
      macOS
    Audience
      Network engineers
      DevOps teams

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Measure the maximum throughput of a network link between two servers before deploying a streaming application

REASON 2

Diagnose network performance issues by running TCP and UDP bandwidth tests between machines

REASON 3

Benchmark a cloud or datacenter network connection to validate it meets expected performance

What's in the stack?

CTCPUDPSCTPLinux

How it stacks up

esnet/iperf0xfa11/multiplayernetworkingresourcesskeeto/endlessh
Stars8,4818,5008,448
LanguageCCC
Setup difficultyeasyeasymoderate
Complexity2/51/52/5
Audienceops devopsdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 30min

Both machines need iperf3 installed, building from source uses the standard configure and make steps.

Use, copy, and redistribute freely including in commercial products, just keep the copyright notice.

Wtf does this do

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.

Yoink these prompts

Prompt 1
Show me how to run an iperf3 bandwidth test between my laptop and a remote Linux server, then interpret the results
Prompt 2
Help me write a shell script that runs iperf3 every hour and logs throughput to a CSV file for network monitoring
Prompt 3
Set up iperf3 in server mode on Ubuntu and run a UDP test from a client machine, what flags do I need?

Frequently asked questions

wtf is iperf?

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.

What language is iperf written in?

Mainly C. The stack also includes C, TCP, UDP.

What license does iperf use?

Use, copy, and redistribute freely including in commercial products, just keep the copyright notice.

How hard is iperf to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is iperf for?

Mainly ops devops.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.