Iperf here is a means of measuring networks - capacity & latency (including ECN) over sockets both TCP and UDP. The goals include maintaining an active iperf code base across a broad set of platforms and operating systems. This is a multi-threaded design that scales with the number of CPUs or cores within a system. It supports both high impact and low impact techniques to obtain and report network performance.

Current release: 2.2.1, Nov 4th, 2024

About iperf 2 and iperf3: Read about the differences between these programs at https://iperf2.sourceforge.io/IperfCompare.html

Man page: https://iperf2.sourceforge.io/iperf-manpage.html

Android version: https://play.google.com/store/apps/details?id=iperf.project

Features

  • TOO MANY TO LIST SEE THE RELEASE NOTES OR THE MAN PAGE!!
  • Fix portability, compile and tested with Linux, Win10, Win7, WinXP, MacOS, Android and some set-top box OSs.
  • Require -u for UDP (-b no longer defaults to UDP)
  • Improved performance
  • Enhanced reporting with -e
  • Support smaller report intervals (100 us or greater, configure --enable-fastsampling for high precision interval time output)
  • Support SO_RCVTIMEOUT for server reports regardless of no packets
  • Support SO_SNDTIMEO on send so socket write won't block beyond -t or -i
  • Support SO_TIMESTAMP for kernel level packet timestamping
  • Support end/end latency in mean/min/max/stdev format (UDP) (-e required) (assumes client and server clocks synched, e.g by Precision Time Protocol to an OCXO oscillator per Spectracom)
  • Fixes to bind so OS can auto assign source port
  • Add local port to bind support (-B option) using colon as separator (v4) or brackets (v6) e.g. iperf -c 192.168.100.100 -B 192.168.100.10:6001 (v4) or for v6, iperf -V -c 2001:e30:1401:2:d46e:b891:3082:b939 -B [2001:e30:1401:2:d46e:b891:3082:b940]:6001
  • Support TCP rate limited streams (via the -b) using simplified token bucket
  • Support packets per second (UDP) via pps as units, (e.g. -b 1000pps)
  • Display PPS in both client and server reports (UDP) (-e required)
  • Support realtime scheduler as a command line option (--realtime or -z, assumes proper user privileges)
  • Improve client tx code path so actual tx offered rate will converge to the -b value
  • Improve accuracy of microsecond delay calls (in platform independent manner) (Use of Kalman filter to predict delay errors and adjust delays per predicted error)
  • Display target loop time in initial client header (UDP)
  • Fix final latency report sent from server to client (UDP)
  • Include standard deviation in latency output
  • Suppress unrealistic latency output using (-/-/-/-)
  • Use clock_gettime() in critical sections, if available, replacing gettimeofday() calls
  • TCP write and error counts (TCP retries and CWND for linux) (-e required)
  • TCP read count, TCP read histogram (8 bins) (-e required)
  • TCP RTT and CWND values in client reports (-e required, Linux only, RTT units microseconds)
  • Added support for -t on the Server (Listener) so servers/listener can be set to timeout and exit
  • Add ipv6 link local support (e.g. iperf -c fe80::d03a:d127:75d2:4112%eno1)
  • Default ipv6 UDP payload to 1450 bytes per one ethernet frame per payload
  • -V on server will accept both IPv4 and IPv6 traffic flows
  • Isochronous traffic support (via --isochronous) and frame bursts with variable bit rate (vbr) traffic and frame ids
  • Multicast SSM support for both v4 and v6 using -H or -ssm-host, e.g. iperf -s -B ff1e::1 -u -V -H fc00::4
  • Latency histograms for both packets and frames (e.g. --udp-histogram=10u,200000, 0.03, 99.97)
  • Ethernet frame length checks with --l2checks on the client (UDP only and requires systems that support AF_PACKET)
  • Server (read) -b support for TCP (via token bucket)
  • UDP write counters and write error counters (requires -e)
  • Python asyncio code to manage multiple iperf sessions (found in the flows directory)
  • Support for timed transmit starts per --txstart-time <unix.epoch time>
  • Support for client incrementing the destination ip with -P via --incr-dstip
  • Support for varying the offered load using a log normal distribution around a mean and standard deviation (per -b <mean>,<stdev>),
  • Honor -T (ttl) for both unicast and multicast
  • Added network power to TCP client and UDP server enhanced output (netpower = throughput / RTT or throughput / end2end delay on server)
  • Add TCP connect time to connected to message
  • Add support for SO_MAX_PACING_RATE socket option using --fq-rate <value>
  • Add configure support for --enable-fastsampling, allowing 100 microsecond report intervals
  • Add support for --trip-time on client, requires -e on both client and server and synchronized clocks
  • UDP uses 64 bit sequence numbers (though still interoperates with 2.0.5 which uses 32b seq no.)

Project Samples

Project Activity

See All Activity >

Categories

Raspberry Pi

Follow Iperf 2

Iperf 2 Web Site

You Might Also Like
Streamline Hiring with Skill Assessments Icon
Streamline Hiring with Skill Assessments

Say goodbye to hiring guesswork. Use Canditech’s job simulation tests to assess real-world skills and make data-driven decisions.

Canditech offers innovative, cheat-proof skill assessments and job simulations to transform your hiring process. From technical skills to soft skills, we help you assess candidates on actual job performance. With over 500 customizable tests and powerful video interview features, you can evaluate real-world capabilities, streamline your hiring, and reduce biases. Whether you’re hiring for remote roles, mass hiring, or looking to expand your diversity pool, Canditech’s data-driven platform ensures the right candidates are chosen for the job every time.
Get a Free Demo
Rate This Project
Login To Rate This Project

User Ratings

★★★★★
★★★★
★★★
★★
4
0
0
0
0
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5

User Reviews

  • Must have tool for multicast testing.
  • I used this tool to check path bandwidth and it works well even for links with high capacities.
  • I used it to check latency between TCP and UDP for video broadcasting. Iperf2 becomes a perfect choice.
  • iPerf is a widely used tool for network performance measurement and tuning. It is significant as a cross-platform tool that can produce standardized performance measurements for any network. more update for imap setting of mail account realmailfix on google search.
    1 user found this review helpful.
Read more reviews >

Additional Project Details

Registered

2014-02-06