Go to the top of the NLANR/DAST web site

AAD | Advisor | Autobuf v2.0 | Multicast Beacon | BIMA | Iperf | NextINet | Tools | Web100 | All Projects


Search this site with Google

About:
- DAST
- NLANR
- FAQ
- Staff
- Contact DAST

End User Tools and Projects
- NextINet
- Advanced Applications
Database

- DAST Projects/Tools
- Network Performance
and Measurement Tools

End User Support
- Getting Started Guide
- Networking Glossary
- Other Projects/Organizations
- Funding Opportunities

Documents
- Guides/Tutorials
- Papers/Articles
- Presentations
- Reference Books

WebCT Courses
- Tuning Applications

Events
- NLANR/DAST Training
- NLANR Packets Calendar
- Idesk Travel Schedule

News
- Press Releases
- Alliance Data Link
- I2 Newswire Archives

Reports & Statistics
- Monthly Updates and QSRs
- Abilene "Weather Map"
- Web Server Stats

The Iperf project has moved to sourceforge:

http://sourceforge.net/projects/iperf

Iperf Version 2.0.2

May 3 2005
download source
patch for linux-2.6.21 kernel and above

Iperf Version 1.7.0

March 2003

Ajay Tirumala
Feng Qin
Jon Dugan
Jim Ferguson
Kevin Gibbs


Iperf 1.7
What is Iperf?
New Features
IPv6 mode
Representative streams
Server as a Daemon
Multicast Server & Client
Download
User Contributed Code
FAQ
Iperf on Sourceforge
Known Problems
Documentation and Previous Versions
Using Iperf as a Service under Win32
Related Tools
Acknowledgements
Copyright

Jperf - The GUI Front-End to Iperf

iperf-users email archives
DAST "libdast" library


What is Iperf?

While tools to measure network performance, such as ttcp, exist, most are very old and have confusing options. Iperf was developed as a modern alternative for measuring TCP and UDP bandwidth performance.

Iperf is a tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics. Iperf reports bandwidth, delay jitter, datagram loss.


New Features

  • Running Iperf in bidirectional mode
  • Removed STDLIB requirement for Iperf
  • Client reporting of server side statistics in UDP tests

IPv6 Mode
Download the IPv6 version of this release.
Get the IPv6 address of the node using the 'ifconfig' command.
Use the -V option to indicate that you are using an IPv6 address.

Server side:
$ iperf -s -V

Client side:
$ iperf -c <Server IPv6 Address> -V

Using Representative Streams to measure bandwidth
Use the -F or -I option. If you want to test how your network performs with compressed / uncompressed streams, just create representative streams and use the -F option to test it. This is usually due to the link layer compressing data.

The -F option is for file input.
The -I option is for input from stdin.

E.g.
Client: $ iperf -c <server address> -F <file-name>

Client: $ iperf -c <server address> -I

Running the server as a daemon
Use the -D command line option to run the server as a daemon. Redirect the output to a file.
E.g. iperf -s -D > iperfLog. This will have the Iperf Server running as a daemon and the server messages will be logged in the file iperfLog.

Using Iperf as a Service under Win32
There are three options for Win32:

-o outputfilename
output the messages into the specified file
-s -D
install Iperf as a service and run it
-s -R
uninstall the Iperf service

Examples:

iperf -s -D -o iperflog.txt
will install the Iperf service and run it. Messages will be reported into "%windir%\system32\iperflog.txt"

iperf -s -R
will uninstall the Iperf service if it is installed.

Note: If you stop want to restart the Iperf service after having killed it with the Microsoft Management Console or the Windows Task Manager, make sure to use the proper OPTION in the service properties dialog.

Running the multicast server and client
Use the -B option while starting the server to bind it to a multicast address.
E.g. :-iperf -s -u -B 224.0.55.55 -i 1.

This will have the Iperf server listening for datagrams (-u) from the address 224.0.55.55(-B 224.0.55.55), with a periodic reporting interval of 1s (-i 1).

Now, start a client sending packets to this multicast address, with a TTL depending on your Network Topology (if you are unsure, use a high TTL like 64 or higher).

E.g. : iperf -c 224.0.55.55 -u -T 32 -t 10 -i 1. This will have a UDP client (-u) connected to the multicast address 224.0.55.55(-c 224.0.55.55), with a TTL of 32 (-T 32), sending data for 10 seconds (-t 10), with a periodic reporting interval of 1s (-i 1).

Start multiple clients as explained above, sending data to the same multicast server. (If you have multiple servers listening on the multicast address, each of the servers will be getting the data)

Download

Iperf is copyrighted by the University of Illinois, except for the gnu_getopt.c, gnu_getopt_long.c, gnu_getopt.h files, and inet_aton.c, which are under the GNU General Public License.

 

Getting a Distribution

Latest release: 1.7.0 (13 Mar 2003) Changes Added features:

  • Added bidirectional testing both simultaneously and tradeoff
  • Added server side statistic reporting on the client for UDP
  • Limits on the number of connections and locations for servers

Changes:

  • Fixed the IPv6 Multicast implementation
  • Removed the SegFault on exit by Ctrl-C for the server
  • Thread bug resulting in "pthread create failed" after many clients
  • "connect failed" on server for UDP clients when IPv6 is enabled is fixed
Operating System Distribution Type File Size Format
unix / win32 source code 177 KB .tar.gz
Linux libc 2.1 binary 147 KB .tar.gz
Linux libc 2.3 binary 68 KB .tar.gz
FreeBSD 4.7 binary 56 KB .tar.gz
FreeBSD 5.0 binary 58 KB .tar.gz
Irix 6.5 binary 290 KB .tar.gz
MacOS X (Darwin 6.4) binary 77 KB .tar.gz
Microsoft Windows binary 120 KB EXE
OpenBSD 3.1 binary 88 KB .tar.gz
Solaris 7 binary 68 KB .tar.gz
Solaris 8 binary 63 KB .tar.gz

Iperf is released as a distribution of the C++ source. Pre-compiled binaries for selected operating systems are also available. It is copyrighted by the University of Illinois, except for the gnu_getopt.c, gnu_getopt_long.c, and gnu_getopt.h files, which are under the GNU General Public License.

See the main documentation for instructions on compiling and running Iperf.

Pre-compiled binaries of Version 1.1.1 for selected operating systems are also available.

 

User Contributed Code

Please note these contributions are provided purely "as-is", as a courtesy to the user community. We can't help you debug or support them, and take no responsibility for them if they format your hard drive or wreck your car.

Iperf 2.0.2 OSX installer - Provided by Ali Asad Lotia (lotia at UMich)
iperf.zip

Iperf 2.0.2 installer for Windows - Provided by Ted Fines (fines@macalester.edu) at Macalester College, St. Paul, MN
kperf_setup.exe

Originally posted at http://www.macalester.edu/crash/software/pc/iperf/kperf_setup.exe

From Ted: "It was built using cygwin, and includes the jperf GUI. It installs into c:\program files\iperf-2.0.2\

The command line binary should just work for you. YMMV with the Java GUI. One one system, it worked, and on another it didn't. Probably something to do with different Java versions.

I made every effort to include the license agreements, and make no claim of credit for authorship of the actual programs. It's just an installer."

Patch for iperf and DCCP on Linux - Provided by Ian McDonald, WAND Network Research Group, University of Waikato, New Zealand

http://wand.net.nz/~iam4/dccp/dccp-iperf-2.0.2-1.diff (Original Patch)

Local copy of patch copied from above URL on 11/1/05

Based on the work that Stephen Hemminger and Arnaldo did earlier.

Notes:

  • Applies against 2.0.2
  • Uses a default service (can't alter it at present)
  • You specify protcol by --protocol/-X (see --help for more details)
  • Set the packet size to under MSS by -l or else it will fail
  • Works on Linux only as far as I am aware
To do still:
  • make code tidier (my code is pretty ugly and Linux specific at the >moment) and get into iperf codebase
  • add support for selecting TCP congestion mechanisms.
  • use DCCP option for altering packet size

Problems, questions, or suggestions about Iperf?

Subscribe to the Iperf users' mailing list, at:
iperf-users /at/ dast /dot/ nlanr /dot/ net

by sending an email to:
majordomo /at/ dast /dot/ nlanr /dot/ net

with "subscribe iperf-users" (without the quotes) in the BODY of the mail. Make sure the rest of the body of the mail is empty, and that you put no signature file (.sig) on the mail. You will be sent confirmation mail with a string to send back. (Similarly, you can unsubscribe by sending "unsubscribe iperf-users" to the same address.)

Once you're subscribed to iperf-users, please send your feedback there. Thanks!

Note: The Iperf-Users list is publicly archived!

Please note that due the incredible volume of spam we get, this has been turned into a closed list that can only be sent to by subscribers. Non-subscriber email to this list is automatically discarded.

Another way to contact us is to use the DAST contact webform.

 

Known Problems

If your C/C++ compiler is a cross-compiler, it runs into problems with Iperf configure scripts. The solution is generally to try out different compilers and check which of them is not a cross-compiler. We expect to come up with a better solution shortly.

For a complete list of known problems, refer to the list that comes with the installation.

Please also read the User docs for additional features and detailed examples and the list of known problems which comes along with your install (KNOWN_PROBLEMS) before sending us mail.

Documentation and Previous Versions
Iperf User Docs

Iperf 1.1.1, along with complete documentation.

Related Tools
Autobuf
You can check out the Automatic TCP Window Tuned FTP, Autobuf. NcFTP has been modified here to achieve greater file transfer rates.

Nettest

You can also check out Nettest, which is a Secure Network Monitoring tool. It includes a set of Network testing tools including Iperf 1.2.

Bandwidth Control (BWCTL)

BWCTL is a command line client application and a scheduling and policy daemon that wraps Iperf.

Currently BWCTL wraps Iperf by actually executing the Iperf command line program on the system. The bwctl client application works by contacting a bwctld process on the two test endpoint systems. BWCTL will work as a 3-party application. The client can arrange a test between two servers on two different systems. If the local system is intended to be one of the endpoints of the test a local bwctld is not required, bwctl will detect that there is no local server and execute the required bwctld functionality directly. bwctld manages and schedules the resources of the host on which it runs.

Here are some additional links you may find useful

Enabling High Performance Data Transfers
This is a very thorough reference for performace tuning and covers lots of OS specific settings.

TCP over WAN Performance Tuning and Troubleshooting
General tuning tips, includes a troubleshooting section which is useful.

Windows 2000 TCP Performance Tuning Tips
Performance tuning specifically for Windows 2000, most of which is applicable to Windows XP as well.

ANL tcpbw100 applet
This applet attempts to determine your link and duplex settings and tries to solve some possible errors.

A User's Guide to TCP Windows
Information on TCP Windows and some examples of how to set them.

NLANR ES: TCP Performance Tools
Lists some performance tools and describes what they are.

TCP Tuning Guide
Extensive guide on TCP Tuning and hints. Specifics for some OSes.

Acknowledgements
Thanks to Mark Gates (NLANR), Alex Warshavsky (NLANR) and Justin Pietsch (University of Washington) who were responsible for the 1.1.x releases of Iperf. For this release, we would like to thank Bill Cerveny (Internet2), Micheal Lambert (PSC), Dale Finkelson (UNL) and Matthew Zekauskas (Internet2) for help in getting access to IPv6 networks / machines. Special thanks to Matthew Zekauskas (Internet2) for helping out in the FreeBSD implementation. Also, thanks to Kraemer Oliver (Sony) for providing an independent implementation of IPv6 version of Iperf, which provided a useful comparison for testing our features.

Copyright 1999-2005
The Board of Trustees of the University of Illinois
All rights reserved
See UI License for complete details.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Contact DASTBlank Space Last reviewed: December 31, 1969
NLANR || Applications Support || Engineering Support || Measurement and Network Analysis