A network traffic tool for measuring TCP and UDP performance with metrics around both throughput and latency. The goals include maintaining an active iperf code base across a broad set of platforms and operating systems. This is a multi-threaded design which scales with the number of CPUs or cores within a system. Note: iperf 2 and iperf 3 do not interoperate.

PLEASE CONTACT YOUR HOSTING PROVIDER AND TELL THEM YOU WANT YOUR CLOCKS SYNCHRONIZED TO THE GPS ATOMIC CLOCKS!!

iperf 2/3 comparison table: https://iperf2.sourceforge.io/IperfCompare.html

Man page: https://iperf2.sourceforge.io/iperf-manpage.html
Brief design doc: https://tinyurl.com/yckfnmaz

Links:
o) The average crystal ends up being about as accurate as a mechanical watch: https://tinyurl.com/y3jbwgmy
o) DIY Raspberry Pi GPS stratum 1 clock: https://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html

Android ver coming soon!

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 IPerf2

IPerf2 Web Site

Other Useful Business Software

Webinar: How to build event-driven apps architectures in AWS Icon
Webinar: How to build event-driven apps architectures in AWS

Learn how to build Apache Kafka®-based streaming apps backed by ML.

Join experts from Confluent and AWS to learn how to build Apache Kafka®-based streaming applications backed by machine learning. You’ll take away best practices for event-driven architectures.

Rate This Project

Login To Rate This Project

User Ratings

★★★★★
★★★★
★★★
★★
2
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 3 / 5

User Reviews

  • 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