iperf man page

iperf — perform network throughput tests


iperf -s [ options ]

iperf -c server [ options ]

iperf -u -s [ options ]

iperf -u -c server [ options ]


iperf is a tool for performing network throughput measurements.  It can test either TCP or UDP throughput.  To perform an iperf test the user must establish both a server (to discard traffic) and a client (to generate traffic).

General Options

-e, --enhanced

Display enhanced output in reports

-f, --format

[kmgKMG]   format to report: Kbits, Mbits, KBytes, MBytes (see Notes for more)

-h, --help

print a help synopsis

-i, --interval n

pause n seconds between periodic bandwidth reports

-l, --len n[kmKM]

set read/write buffer size (TCP) or length (UDP) to n (TCP default 128K, UDP default 1470)

-m, --print_mss

print TCP maximum segment size (MTU - TCP/IP header)

-o, --output filename

output the report or error message to this specified file

-p, --port n

set server port to listen on/connect to to n (default 5001)

-u, --udp

use UDP rather than TCP


use 64 bit UDP sequence numbers

-w, --window n[kmKM]

TCP window size (socket buffer size)

-z, --realtime

Request realtime scheduler, if supported.

-B, --bind host

bind to host, an interface or multicast address

-C, --compatibility

for use with older versions does not sent extra msgs

-M, --mss n

set TCP maximum segment size (MTU - 40 bytes)

-N, --nodelay

set TCP no delay, disabling Nagle's Algorithm

-S, --tos

set the socket's IP_TOS (byte) field

-v, --version

print version information and quit

-x, --reportexclude [CDMSV]

exclude C(connection) D(data) M(multicast) S(settings) V(server) reports

-y, --reportstyle C|c

if set to C or c report results as CSV (comma separated values)

Server Specific Options

-s, --server

run in server mode

-D, --daemon

run the server as a daemon.  On Windows this will also install the IPerfService.

-R, --remove

remove the IPerfService (Windows only).

-U, --single_udp

run in single threaded UDP mode

-V, --ipv6_domain

Enable IPv6 reception by setting the domain and socket to AF_INET6 (Can receive on both IPv4 and IPv6)

Client Specific Options

-b, --bandwidth n[kmgKMG] | npps

set target bandwidth to n bits/sec (default 1 Mbit/sec) or n packets per sec.  This may be used with TCP or UDP.

-c, --client host

run in client mode, connecting to host

-d, --dualtest

Do a bidirectional test simultaneously

-n, --num n[kmKM]

number of bytes to transmit (instead of -t)

-r, --tradeoff

Do a bidirectional test individually

-t, --time n

time in seconds to listen for new traffic connections, receive traffic or transmit traffic (Defaults: transmit is 10 secs while listen and receive are indefinite)

-B, --bind ip | ip:port | ipv6 -V | [ipv6]:port -V

bind src addr(s) and ports from which to originate traffic (Note: -V option required for ipv6)

-F, --fileinput name

input the data to be transmitted from a file

-I, --stdin

input the data to be transmitted from stdin

-L, --listenport n

port to recieve bidirectional tests back on

-P, --parallel n

number of parallel client threads to run

-R, --reverse

reverse the traffic flow after header exchange, useful for testing through firewalls

-T, --ttl n

time-to-live, for multicast (default 1)

-V, --ipv6_domain

Set the domain to IPv6 (send packets over IPv6)

-X, --peerdetect

run server version detection prior to traffic.

-Z, --linux-congestion algo

set TCP congestion control algorithm (Linux only)



Controls the size of TCP buffers.


Some numeric options support format characters per '<value>c' (e.g. 10M) where the c format characters are k,m,g,K,M,G.  Lowercase format characters are 10^3 based and uppercase are 2^n based, e.g. 1k = 1000, 1K = 1024, 1m = 1,000,000 and 1M = 1,048,576


This section needs to be filled in.


See https://sourceforge.net/p/iperf2/tickets/


Iperf2, based from iperf (originally written by Mark Gates and Alex Warshavsky), has a goal of maintainence with some feature enhancement. Other contributions from Ajay Tirumala, Jim Ferguson, Jon Dugan <jdugan at x1024 dot net>, Feng Qin, Kevin Gibbs, John Estabrook <jestabro at ncsa.uiuc.edu>, Andrew Gallatin <gallatin at gmail.com>, Stephen Hemminger <shemminger at linux-foundation.org>, Tim Auckland, Robert J. McMahon <rjmcmahon at rjmcmahon.com>

See Also



APRIL 2008 NLANR/DAST User Manuals