Iperf here is a means of measuring networks - capacity & latency (including dual queue L4S) 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.0, April 10, 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

GPS atomic clock options for RPi:
https://store.uputronics.com/index.php?route=product/product&product_id=81
https://store.timebeat.app/products/gnss-raspberry-pi-cm4-module?variant=41934772764843

Open source time server:
https://github.com/opencomputeproject/Time-Appliance-Project/tree/master/Open-Time-Server/

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 >

Follow Iperf 2

Iperf 2 Web Site

Other Useful Business Software
Gain Advanced Threat Protection for Your AWS Workloads Icon
Gain Advanced Threat Protection for Your AWS Workloads

Running FortiGate NGFW on AWS Graviton2 Lets You Boost Scalability With Reduced Compute Costs

FortiGate-VM delivers comprehensive security and scalable VPN connectivity for your AWS workloads, while native AWS integrations unlock broad coverage for your environment. Now with support for AWS Graviton2 instances, FortiGate lets you optimize price performance and reduce your Amazon EC2 costs by up to 20 percent. Deploy today in AWS Marketplace.
Rate This Project
Login To Rate This Project

User Ratings

★★★★★
★★★★
★★★
★★
3
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

  • 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