iperf3 with tls support
Go to file
Bruce A. Mah c04bdcb9d0 Second try at printing statistics when processes are interrupted.
When the client process gets interrupted, both the client and server
dump out accumulated interval statistics, as well as a partial set of
summary statistics (basically each side dumps what it has, but without
the exchange of information that usually happens at the end of a
normal run).

If the server process gets interrupted, the server dumps out its
accumulated interval and summary statistics as above.  The client does
this as well in the -R case, but exits with a "Broken pipe" in the non
-R case (this behavior was present all along; it was not introduced in
this change).  More investigation will be needed to understand the
client behavior.

Bump copyright dates in a few places.

Issue:		132 (signal handler for API calls)
Discussed with:	aaron@internet2.edu
2014-01-07 16:06:27 -08:00
config Changed bug report email to google code link. 2013-11-26 10:07:32 -08:00
examples Fix typos: s/exitting/exiting/ 2014-01-03 11:24:06 -08:00
src Second try at printing statistics when processes are interrupted. 2014-01-07 16:06:27 -08:00
aclocal.m4 Changed bug report email to google code link. 2013-11-26 10:07:32 -08:00
AUTHORS updates for 3.0 release 2013-11-10 09:37:10 -08:00
bootstrap.sh Updated autoconf stuff and fixed a small error with ierror() 2010-07-19 20:38:40 +00:00
configure Changed bug report email to google code link. 2013-11-26 10:07:32 -08:00
configure.ac Changed bug report email to google code link. 2013-11-26 10:07:32 -08:00
INSTALL Commented 'AX_LIB_SOCKET_NSL' out of configure.ac to fix build problem. 2012-08-20 14:35:58 -07:00
LICENSE Update license to a BSD license 2011-04-20 20:14:05 +00:00
make_release cleanups on the make_release script 2013-03-28 12:51:08 -05:00
Makefile.am Add an initial autotools setup. 2009-12-08 21:36:24 +00:00
Makefile.in Changed bug report email to google code link. 2013-11-26 10:07:32 -08:00
README updated for 3.0.0 release 2013-12-18 15:23:16 -08:00
RELEASE_NOTES Mention -D, -C, -L in release notes. 2013-12-16 10:15:32 -08:00
test_commands.sh added test for -C flag 2013-12-20 15:05:21 -08:00
TODO updates for 3.0 release 2013-11-10 09:37:10 -08:00

= Summary =

iperf3 is a tool for measuring achievable bandwidth on IP networks.

iperf3 is NOT backwards compatible with the original iperf.

Supported platforms:
  * Linux
  * FreeBSD 
  * Mac OSX

= Building iperf3 =

== Prerequisites: ==
  * libuuid: this is not installed by default for Debian/Ubuntu Systems
             to install: apt-get install uuid-dev

== Building ==

./configure; make; make install

(Note: If configure fails, try running ./bootstrap.sh first)

= Latest version =

To check out the most recent code, do:  hg clone http://code.google.com/p/iperf/


= Bug Reports =

Before submitting a bug report, try checking out the latest version of the code, and confirm 
that its not already fixed. Then submit to: https://code.google.com/p/iperf/issues/list

For more information see: http://code.google.com/p/iperf/

= Changes from iperf 2.x =

New options:
  -V, --verbose             more detailed output than before
  -J, --json                output in JSON format
  -Z, --zerocopy            use a 'zero copy' sendfile() method of sending data
  -O, --omit N              omit the first n seconds (to ignore slowstart)
  -T, --title str           prefix every output line with this string
  -F, --file name           xmit/recv the specified file
  -A, --affinity n/n,m      set CPU affinity

Deprecated options:

Plan to add for the next release:
  -Z, --linux-congestion <algo>  set TCP congestion control algorithm (Linux only)

Not planning to support. If you really miss these options, please submit a request in the issue tracker
  -d, --dualtest           Do a bidirectional test simultaneously
  -r, --tradeoff           Do a bidirectional test individually
  -N, --nodelay            set TCP no delay, disabling Nagle's Algorithm
  -T, --ttl                time-to-live, for multicast (default 1)
  -x, --reportexclude [CDMSV]   exclude C(connection) D(data) M(multicast) S(settings) V(server) reports
  -y, --reportstyle C      report as a Comma-Separated Values

Also deprecated is the ability to set the options via environment variables.

For sample command line usage, see: 
	http://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf-and-iperf3/


Using the default options, iperf is meant to show typical well designed application performance.
'Typical well designed application' means avoiding artificial enhancements that work only for 
testing (such as splice()'ing the data to /dev/null).  iperf does also have flags for 'extreme 
best case' optimizations but they must be explicitly activated.

These flags include:
  -Z, --zerocopy            use a 'zero copy' sendfile() method of sending data
  -A, --affinity n/n,m      set CPU affinity


= Known Issues =

* UDP performance: iperf2/iperf3 both only are only about 50% as fast as nuttcp in UDP mode. 
We are looking into this, but in the meantime, if you want to get UDP above 5Gbps, we recommend 
using nuttcp instead (http://www.nuttcp.net/)

* Interval reports on high-loss networks: The way iperf3 is currently implemented, the sender 
write command will block until the entire block has been written. This means that it might take
several seconds to send a full block if the network has high loss, and the interval reports will 
have widely varying interval times. We are trying to determine the best solution to this, but in 
the meantime, try using a smaller block size if you get strange interval reports. 
For example, try "-l 4K".