Incremental enhancements to iperf

Add a Review
60 Downloads (This Week)
Last Update:
Download iperf-2.0.8.tar.gz
Browse All Files



Many people still use iperf as a tool for testing networks and for qualifying networking products. While there seems a major push to go to iperf3 the iperf 2.0.5 code base benefits from bug fixes as well as some incremental feature enhancements. In that context, Iperf2 code here attempts to maintain backward compatibility (due to things like automated scripts), maintain broad OS support while keeping the tool current enough with a minimal change set to the iperf code base.

iperf2 Web Site



  • Fix portability, compile and tested with Linux, Win10, Win7, WinXP, MacOS and Android
  • Require -u for UDP (-b no longer defaults to UDP)
  • Improved performance
  • Enhanced reporting with -e
  • Support smaller report intervals (5 ms or greater)
  • Support SO_RCVTIMEOUT for server reports regardless of no packets
  • Server will close the socket after no received traffic per the -t value (default is 10 sec)
  • 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)
  • Add local port to bind support (-B option) using colon as separator
  • (e.g. iperf -c -B
  • Support TCP rate limited streams (via the -b) using 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 (-/-/-/-)
  • Support SO_SNDTIMEO on send so socket write won't block beyond -t (TCP)
  • Use clock_gettime if available (preferred over gettimeofday())
  • TCP write and error counts (TCP retries and CWND for linux) (-e required)
  • TCP read count, TCP read histogram (8 bins) (-e required)


Write a Review

User Reviews

Be the first to post a review of iperf2!

Additional Project Details


Screenshots can attract more users to your project.
Features can attract more users to your project.