Chocolatey Community Coffee Break

Join the Chocolatey Team on our regular monthly stream where we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Learn More

Chocolatey Product Spotlight

Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You'll have a chance to have your questions answered in a live Ask Me Anything format.

Learn More

Announcing Chocolatey Central Management 0.10.0

Livestream from
Thursday, 06 October 2022

We recently released our largest update to Chocolatey Central Management so far. Join Gary and Steph to find out more about Chocolatey Central Management and the new features and fixes we've added to this release.

Watch On-Demand
Chocolatey and Intune Overview

Webinar Replay from
Wednesday, 30 March 2022

At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!

Watch On-Demand
Chocolatey For Business. In Azure. In One Click.

Livestream from
Thursday, 9 June 2022

Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.

Watch On-Demand
The Future of Chocolatey CLI

Livestream from
Thursday, 04 August 2022

Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We'll talk about some cool new features, long term asks from Customers and Community and how you can get involved!

Watch On-Demand
Hacktoberfest Tuesdays 2022

Livestreams from
October 2022

For Hacktoberfest, Chocolatey ran a livestream every Tuesday! Re-watch Cory, James, Gary, and Rain as they share knowledge on how to contribute to open-source projects such as Chocolatey CLI.

Watch On-Demand
Chocolatey Product Spotlight: Chocolatey 1.2.0 and Chocolatey Licensed Extension 5.0.0

Livestream from
Thursday, 03 November 2022

Join Paul and Gary for this months Chocolatey product livestream where we look at the latest release of Chocolatey 1.2.0, Chocolatey Licensed Extension 5.0.0 and shine a spotlight on the new hook scripts functionality. This opens up so many possibilities for Chocolatey CLI users!

Watch On-Demand
Chocolatey Coding Livestream

Livestream from
Tuesday, 29 November 2022

Join Josh as he adds the ability to manage Chocolatey GUI config and features with the Chocolatey Ansible Collection.

Watch On-Demand
Introduction into Chocolatey with Veeam

Webinar from
Tuesday, 13 December 2022

Join Gary, Paul, and Maurice as they introduce and demonstrate how to use Chocolatey! Questions will be answered live in an Ask Me Anything format.

Watch On-Demand



Downloads of v


Last Update:

25 Mar 2019

Package Maintainer(s):

Software Author(s):

  • Mark Gates
  • Alex Warshavsky
  • Ajay Tirumala
  • Jim Ferguson
  • Jon Dugan
  • Feng Qin
  • Kevin Gibbs
  • John Estabrook
  • Andrew Gallatin
  • Stephen Hemminger
  • Nathan Jones
  • Gerrit Renker
  • Robert J. McMahon
  • Tim Auckland




This is not the latest version of iPerf2 available.

  • 1
  • 2
  • 3 | Updated: 25 Mar 2019



Downloads of v



Software Author(s):

  • Mark Gates
  • Alex Warshavsky
  • Ajay Tirumala
  • Jim Ferguson
  • Jon Dugan
  • Feng Qin
  • Kevin Gibbs
  • John Estabrook
  • Andrew Gallatin
  • Stephen Hemminger
  • Nathan Jones
  • Gerrit Renker
  • Robert J. McMahon
  • Tim Auckland




This is not the latest version of iPerf2 available.

  • 1
  • 2
  • 3

All Checks are Passing

3 Passing Tests

Validation Testing Passed

Verification Testing Passed


Scan Testing Successful:

No detections found in any package files

Learn More

Deployment Method: Individual Install, Upgrade, & Uninstall

To install iPerf2, run the following command from the command line or from PowerShell:


To upgrade iPerf2, run the following command from the command line or from PowerShell:


To uninstall iPerf2, run the following command from the command line or from PowerShell:


Deployment Method:


This applies to both open source and commercial editions of Chocolatey.

1. Enter Your Internal Repository Url

(this should look similar to

2. Setup Your Environment

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

2. Get the package into your environment

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Copy Your Script

choco upgrade iperf2 -y --source="'INTERNAL REPO URL'" --version="''" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:

choco upgrade iperf2 -y --source="'INTERNAL REPO URL'" --version="''" 

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0

Exit $exitCode

- name: Install iperf2
    name: iperf2
    version: ''
    state: present

See docs at

chocolatey_package 'iperf2' do
  action    :install
  source   'INTERNAL REPO URL'
  version  ''

See docs at

cChocoPackageInstaller iperf2
    Name     = "iperf2"
    Version  = ""
    Source   = "INTERNAL REPO URL"

Requires cChoco DSC Resource. See docs at

package { 'iperf2':
  ensure   => '',
  provider => 'chocolatey',
  source   => 'INTERNAL REPO URL',

Requires Puppet Chocolatey Provider module. See docs at

4. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

Package Approved

This package was approved by moderator gep13 on 28 Mar 2019.


A network traffic tool for measuring TCP and UDP performance. The goals include maintaining an active iperf 2 code base (code originated from iperf 2.0.5), preserving interoperability with iperf 2.0.5 clients and servers, preserving the output for scripts (new enhanced output requires -e), adopt known 2.0.x bug fixes, maintain broad platform support, as well as add some essential feature enhancements mostly driven by WiFi testing needs. Also added python code to centralize test control.

Iperf 2 vs iperf 3 major differences: Iperf 2 here has timing related stats including end/end packet latency w/histograms (clocks assumed to be synced); supports multicast including SSM; supports threaded operation; supports L2 length checks. Iperf3 is a "cleaner" code base per a rewrite; supports json output; uses a test connection; is single threaded.

Iperf2 and iperf3 do not interoperate.


Verification is intended to assist the Chocolatey moderators and community
in verifying that this package's contents are trustworthy.
1. Download the following .exe-

2. Use checksum utility of your choice to get checksum of the .exe

3. Check that the checksum matches-
	MD5: 43355059836ce11fec1458a978293f00
	SHA-1: 196ca63b404b5091f0035c415d6a24426917733d
	SHA-256: fc0c508dc46b885b502dc1623baa55ef9d6af440a7bac227a41156695f2e61f4
	SHA-512: 4030963ef74b9f3f203eaaed36f6b8e54ebdacce4526a30e1663b0d8968fd8b7646f4a93e622b1ad766bf3de2e202045c949cedef092b2102934e42675257692


<TITLE>Iperf Copyright</TITLE>
<!-- $Id: ui_license.html,v 2004/05/18 01:50:44 kgibbs Exp $ -->

<BODY BGCOLOR="#FFFFFF" LINK="#006633" VLINK="#669900" ALINK="#669966">

<P><IMG SRC="dast.gif"
        ALT="Distributed Applications Support Team"></P>

<H1 ALIGN=CENTER>Iperf Copyright</H1>

<HR><!-- ----- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- -->

Copyright (c) 1999,2000,2001,2002,2003,2004,2005  The Board of Trustees of the University of Illinois<br>
All Rights Reserved.

<a href="">Iperf performance test</a><BR>
Mark Gates<BR>
Ajay Tirumala<br>
Jim Ferguson<br>
Jon Dugan<br>
Feng Qin<br>
Kevin Gibbs<br>
John Estabrook<BR>
National Laboratory for Applied Network Research <BR>
National Center for Supercomputing Applications <BR>
University of Illinois at Urbana-Champaign <BR>
<a href=""></a>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software (Iperf)
and associated documentation files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
<li>Redistributions of source code must retain the above copyright notice, this list of
    conditions and the following disclaimers.

<li>Redistributions in binary form must reproduce the above copyright notice, this list
    of conditions and the following disclaimers in the documentation and/or other
    materials provided with the distribution.

<li>Neither the names of the University of Illinois, NCSA, nor the names of its
    contributors may be used to endorse or promote products derived from this
    Software without specific prior written permission.



<HR><!-- ----- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- -->

<P><FONT FACE="helvetica,arial" SIZE="2">

<A HREF="mailto:[email protected]">[email protected]</A>

Last modified: Jan 5, 2004<br>

<A HREF="">NLANR</a> ||
<A HREF="">applications support</a> ||
<A HREF="">engineering support</a> ||
<A HREF="">measurement and operations</a>

md5: 43355059836CE11FEC1458A978293F00 | sha1: 196CA63B404B5091F0035C415D6A24426917733D | sha256: FC0C508DC46B885B502DC1623BAA55EF9D6AF440A7BAC227A41156695F2E61F4 | sha512: 4030963EF74B9F3F203EAAED36F6B8E54EBDACCE4526A30E1663B0D8968FD8B7646F4A93E622B1AD766BF3DE2E202045C949CEDEF092B2102934E42675257692

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Add to Builder Version Downloads Last Updated Status
iPerf2 2.1.8 140 Friday, March 10, 2023 Approved
iPerf2 2.1.7 22 Friday, March 10, 2023 Approved
iPerf2 2.1.6 18 Friday, March 10, 2023 Approved
iPerf2 2.1.4 1248 Friday, November 19, 2021 Approved
iPerf2 2.1.1 80 Friday, November 19, 2021 Approved
iPerf2 2.1.1-dev-20210622 88 Tuesday, July 6, 2021 Exempted
iPerf2 2.1.1-dev-20210407 91 Friday, April 9, 2021 Exempted
iPerf2 2.1.1-dev-202100622 77 Tuesday, July 6, 2021 Exempted
iPerf2 2.1.0-rc02 110 Friday, February 12, 2021 Approved
iPerf2 2.1.0-rc01 100 Thursday, January 7, 2021 Approved
iPerf2 82 Monday, January 4, 2021 Approved
iPerf2 108 Wednesday, December 23, 2020 Approved
iPerf2 96 Wednesday, December 16, 2020 Approved
iPerf2 88 Saturday, December 12, 2020 Approved
iPerf2 79 Friday, December 11, 2020 Approved
iPerf2 101 Friday, December 4, 2020 Approved
iPerf2 107 Thursday, December 3, 2020 Approved
iPerf2 94 Monday, November 30, 2020 Approved
iPerf2 112 Wednesday, November 25, 2020 Approved
iPerf2 84 Tuesday, November 24, 2020 Approved
iPerf2 93 Friday, November 20, 2020 Approved
iPerf2 105 Friday, October 23, 2020 Exempted
iPerf2 2054 Monday, March 25, 2019 Approved
iPerf2 2.0.13 180 Friday, October 23, 2020 Approved
iPerf2 2.0.12 83 Friday, October 23, 2020 Approved
iPerf2 2.0.10 87 Friday, October 23, 2020 Approved
iPerf2 2.0.8 115 Friday, October 23, 2020 Approved

2.0.6 change set ([email protected]) March 2014
o Increase the shared memory for report headers reducing mutex contention. Needed to increase performance. Minor code change that should be platform/os independent

2.0.7 change set ([email protected]) August 2014
o Linux only version which supports end/end latency (assumes clocks synched)
o Support for smaller report interval (5 milliseconds or greater)
o End/end latency with UDP (mean/min/max), display in milliseconds with resolution of microseconds
o Socket read timeouts (server only) so iperf reports occur regardless of no received packets
o Report timestamps now display millisecond resolution
o Local bind supports port value using colon as delimeter (-B
o Use linux realtime scheduler and packet level timestamps for improved latency accuracy
o Suggest PTP on client and server to synch clocks to microsecond
o Suggest a quality reference for the PTP grandmaster such as a GPS disciplined oscillator from companies like Spectracom

2.0.8 change set (as of 1/12/2015)

o Fix portability, compile and test with Linux, Win10, Win7, WinXP, MacOS and Android
o Client now requires -u for UDP (no longer defaults to UDP with -b)
o Maintain legacy report formats
o Support for -e to get enhanced reports
o Support TCP rate limited streams (via the -b) using token bucket
o Support packets per second (UDP) via pps as units, (e.g. -b 1000pps)
o Display PPS in both client and server reports (UDP)
o Support realtime scheduler as a command line option (--realtime or -z)
o Improve client tx code path so actual tx offerred rate will converge to the -b value
o Improve accuracy of microsecond delay calls (in platform independent manner)
o (Use of Kalman filter to predict delay errors and adjust delays per predicted error)
o Display target loop time in initial client header (UDP)
o Fix final latency report sent from server to client (UDP)
o Include standard deviation in latency output
o Suppress unrealistic latency output (-/-/-/-)
o Support SO_SNDTIMEO on send so socket write won't block beyond -t (TCP)
o Use clock_gettime if available (preferred over gettimeofday())
o TCP write and error counts (TCP retries and CWND for linux)
o TCP read count, TCP read histogram (8 bins)
o Server will close the socket after -t seconds of no traffic

2.0.9 change set (as of June 2016)
o Apply SO_SNDTIMEO for both UDP and TCP per both -t and -i
o Server (and listener) threads won't block forever when -t set (uses select() with non-blocking accept())
o Remove need for cmath to improve portability
o Fix report interval bug so single threaded mode no works
o Skeleton code for Python based flows which will be use Pythnon 3's asyncio module
o configure script check for struct tcp_info code fix and uses netinet/tcp.h

2.0.10 change set (as of August 11, 2017)
o clean up help and man page for -V option
o UDP IPv6 : Default the mBuf size to 1450 for the client, default the Listener/server to 1470
o Display read/write buffer size in the report header (only when -e enhanced)
o Add -S and --tos to man page and help, and format options to same
o Reject --ipv6_domain (-V) option if HAVE_IPV6 is not defined, rather than silently ignoring it.
o Clean up settings/command line parsing code including removing oder dependencies
o Use strtok (instead of strtok_r) for better portability
o Fix 'format string is not a string literal' warnings on Mac OS X
o Use SOCKET type on Windows instead of int to clean up signed/unsigned warnings
o Fix WIN32 timeout paste errors
o man page updates to describe format characters, improve BUGS sections
o Fix autoconf IPV6 check for case where configure is not called from srcdir
o Add support for v6 link local, e.g. 'iperf -V -c fe80::428d:5cff:fef7:5a73%eno1'
o Fix ClientHdrXchange when gettimeofday() is used
o Fix for -l, -W and -n to support format characters, also fix -n for -d and -r
o Fixes -for -d (dual) honoring -b on remote
o Fix for -t and -r
o Support for 64 bit sequence numbers (--udp-counters-64bit)
o Update config to support new platforms, eg --host=aarch64-linux
o Fixes to header xchange, length messages, and packing
o Server thread mbuf length checks
o remove trailing whitespace across all files in the git repository
o Support peer version detection and exchange with -X option
o Add UDP buffer size minimum checks and warnings prior to peer test exchange
o 2.0.5 interop testing and fixes (assume lots of 2.0.5 servers in the field)
o Fix thread settings per hdr xhcange fixes
o Fix for -P and -d used together
o Error on client and -D
o Fix local port binding on client to support both v4 and v6
o Fix more on use clock_gettime() over gettimeofday() when available
o Treat ENOBUFS as transient, i.e. don't exit on this error
o Python: add flows directory and skeleton flows code using asyncio
o Python: Support flows stats in dictionary for pandas

2.0.11 change set (as of May 24th, 2018)
o support for -b on server (read rate limiting)
o honor -T (ttl) for unicast. (Note: the default value is 1 so this will impact unicast tests that require routing)
o support for --isochronous traffic with optional frames per second, mean and variance uses a log normal distribution (requires configure w/-enable-isochronous and compile)
o support for --udp triggers (requires configure w/ --enable-udptriggers, early code with very limited support)
o support for --udp-histogram with optional bin width and number of bins (default is 1 millisecond bin width and 1000 bins)
o support for frame (burst) latency histograms when --isochronous is set
o support for --tx-sync with -P for synchonrized writes. Initial use is for WiFi OFDMA latency testing.
o support for --incr-dstip with -P for simultaneous flows to multiple destinations (use case is for OFDMA)
o support for --vary-load with optional weight, uses log normal distribution (requires -b to set the mean)
o support for --l2checks to detect L2 length errors not detected by v4 or v6 payload length errors (requires linux, berkeley packet filters BPFs and AF_PACKET socket support)
o support for server joining mulitcast source specific multicast (S,G) and (*,G) for both v4 and v6 on platforms that support it
o improved write counters (requires -e)
o accounting bug fix on client when write fails, this bug was introduced in 2.0.10
o slight restructure client/server traffic thread code for maintainability
o python: flow example script updates
o python: ssh node object using asyncio
o python: histograms in flows with plotting (assumed gnuplot available)
o python: hierarchical clustering of latency histograms (early code)
o man pages updates
o Note: latency histograms require client and server system clock synchronization. A GPS disciplined oscillator using Precision Time Protocol works well for this.

2.0.12 change set (as of June 25th 2018)
o Change the unicast TTL default value from 1 to the system default (to be compatable with previous versions.) Mulitcast still defaults to 1.
o adpative formatting bug fix: crash occurs when values exceed 1 Tera. Add support for Tera and Peta and eliminate the potential crash condition
o configure default compile to include isochronous support (use configure --disable-isochronous to remove support)
o replace 2.0.11's --vary-load option with a more general -b option to include mean,stdev, e.g. -b 100m,40m, which will pull from a log normal distribution every 0.1 seconds
o fixes for windows cross compile (using mingw32)
o compile flags of -fPIE for android
o configure --enable-checkprograms to compile ancillary binaries used to test things such as delay, isoch, pdf generation
o compile tests when trying to use 64b seq numbers on a 32b platform
o Fix GCC ver 8 warnings

2.0.13 change set (as of January 22, 2019)
o Set the listening socket backlog to a large value, let os control the max, better operations with FreeBSD
o Fix breakage to -r and -d options
o Fix so ctrl-c works with -r and -d
o Fix ctrl-c on server to have a graceful exit including print report
o Fix kfreebsd compile breakage per multicast support
o The UDP final server report may be larger than the client's -l length, fix the client to read maximum packet length for that instead of using -l as the read size
o Minor code clean up around write errors
o Added netpower to TCP client enhanced output (throughput/RTT)
o Display TCP client connect time in the connected to message
o use IPV6_TCLASS for ipv6 (-V) dscp/tos (-S) if available
o Add suport for --txstart-time value where value is epoch/unix format, e.g. iperf -c --txstart-time 1536090358.515
o Add support for socket option SO_MAX_PACING_RATE using --fq-rate
o Add configure support for --enable-fastsampling, allowing 100 microsecond report intervals
o Add support for --trip-time on the client. Measures client's 3WHS done to client's fin+fin-ack, reported on the server requires -e and synchronized clocks
o Support for 64 bit sequence numbers on by default, no longer requires --udp-counters-64bit, interoperates with 2.0.5 32 bit sequence numbers
o Integer fixes for 64 bit, int max, printf, etc.
o Obsolete the need for include/slim_headers.h
o Update man page to have some example usages

2.0.14a change set (as of January 30th, 2019)
o Fix the case when -P value is set on the server such that Summing output is displayed. While -P isn't really needed on the server, some existing systems use it.
A latent defect to this seemed to have been introduced around the 2.0.8 release.

This package has no dependencies.

Discussion for the iPerf2 Package

Ground Rules:

  • This discussion is only about iPerf2 and the iPerf2 package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or iPerf2, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus