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.1.9 March 14, 2023

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
Zinrelo is a modern-day, enterprise grade loyalty rewards platform that enables businesses to launch a custom rewards program for their users. Icon
A modern-day, loyalty rewards platform, Zinrelo helps maximize repeat sales and per-customer revenue through 360-degree customer engagement. Zinrelo encourages multiple dimensions of loyalty including transactional, social, advocacy, engagement and behavioral loyalty. It supports omni-channel deployments that span across desktop, mobile and physical stores.
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