Iperf
Iperf
Iperf
Server specific:
-p, --port #[-#] server port(s) to listen on/connect to
-s, --server run in server mode
-1, --singleclient run one server at a time
--histograms enable latency histograms
--jitter-histograms enable jitter histograms
--permit-key-timeout set the timeout for a permit key in seconds
--tcp-rx-window-clamp set the TCP receive window clamp size in bytes
--test-exchange-timeout set the timeout on the test exchange, use 0 for no
timeout
--tap-dev #[<dev>] use TAP device to receive at L2 layer
-t, --time # time in seconds to listen for new connections as well as
to receive traffic (default not set)
-B, --bind <ip>[%<dev>] bind to multicast address and optional device
-U, --single_udp run in single threaded UDP mode
--sum-dstip sum traffic threads based upon destination ip address
(default is src ip)
-D, --daemon run the server as a daemon
-R, --remove remove service in win32
-V, --ipv6_domain Enable IPv6 reception by setting the domain and socket
to AF_INET6 (Can receive on both IPv4 and IPv6)
Client specific:
--bounceback request a bounceback test (use -l for size, defaults to
100 bytes)
--bounceback-hold request the server to insert a delay of n milliseconds
between its read and write
--bounceback-no-quickack request the server not set the TCP_QUICKACK socket
option (disabling TCP ACK delays) during a bounceback test
--bounceback-period request the client schedule a send every n milliseconds
--bounceback-reply set the bounceback reply message size (defaults to
symmetric)
--bounceback-txdelay request the bounceback server delay n seconds between
the request and the reply
-c, --client <host> run in client mode, connecting to <host>
--connect-only run a connect only test
--connect-retries # number of times to retry tcp connect
-d, --dualtest Do a bidirectional test simultaneously (multiple
sockets)
--fq-rate #[kmgKMG] bandwidth to socket pacing
--fq-rate-step #[kmgKMG] step value to socket pacing
--fq-rate-step-interval #[kmgKMG] step interval (in seconds) for socket
pacing
--full-duplex run full duplex test using same socket
--histograms enable histograms for --tcp-write-times
--ipg set the the interpacket gap (milliseconds) for packets
within an isochronous frame
--isochronous <frames-per-second>:<mean>,<stddev> send traffic in bursts
(frames - emulate video traffic)
--incr-dstip Increment the destination ip with parallel (-P) traffic
threads
--incr-dstport Increment the destination port with parallel (-P)
traffic threads
--incr-srcip Increment the source ip with parallel (-P) traffic
threads
--incr-srcport Increment the source port with parallel (-P) traffic
threads
--local-only Set don't route on socket
--near-congestion=[w] Use a weighted write delay per the sampled TCP RTT
(experimental)
--no-connect-sync No sychronization after connect when -P or parallel
traffic threads
--no-udp-fin No final server to client stats at end of UDP test
-n, --num #[kmgKMG] number of bytes to transmit (instead of -t)
-r, --tradeoff Do a fullduplexectional test individually
--tcp-quickack set the socket's TCP_QUICKACK option (off by default)
--tcp-write-prefetch set the socket's TCP_NOTSENT_LOWAT value in bytes and
use event based writes
--tcp-write-times measure the socket write times at the application level
-t, --time # time in seconds to transmit for (default 10 secs)
--trip-times enable end to end measurements (requires client and
server clock sync)
--txdelay-time time in seconds to hold back after connect and before
first write
--txstart-time unix epoch time to schedule first write and start
traffic
-B, --bind [<ip> | <ip:port>] bind ip (and optional port) from which to source
traffic
-F, --fileinput <name> input the data to be transmitted from a file
-H, --ssm-host <ip> set the SSM source, use with -B for (S,G)
-I, --stdin input the data to be transmitted from stdin
-L, --listenport # port to receive fullduplexectional tests back on
-P, --parallel # number of parallel client threads to run
-R Remove the windows service
--reverse reverse the test (client receives, server sends)
-S, --tos IP DSCP or tos settings
-T, --ttl # time-to-live, for multicast (default 1)
--working-load request working load(s)
--working-load-cca set working load CCA
-V, --ipv6_domain Set the domain to IPv6 (send packets over IPv6)
-X, --peer-detect perform server version detection and version exchange
Miscellaneous:
-x, --reportexclude [CDMSV] exclude C(connection) D(data) M(multicast)
S(settings) V(server) reports
-y, --reportstyle C report as a Comma-Separated Values
-h, --help print this message and quit
-v, --version print version information and quit
Accepted tos values are: af11, af12, af13, af21, af22, af23, af31, af32, af33,
af41, af42, af43,
cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, ef, le, nqb, nqb2, ac_be, ac_bk, ac_vi,
ac_vo, lowdelay, throughput,
reliability, or a numeric value.
The TCP window size option can be set by the environment variable
TCP_WINDOW_SIZE. Most other options can be set by an environment variable
IPERF_<long option name>, such as IPERF_BANDWIDTH.