Start with a TCP throughput test
TCP tests measure the throughput achieved by TCP connections under the prevailing endpoint and network conditions. iPerf3 uses TCP by default, so the client command does not need a protocol flag.
Single-stream TCP throughput
iperf3 -c 192.0.2.10 -p 5201 -t 30 -i 1 -f mMeasure aggregate TCP throughput
Parallel streams can reveal aggregate throughput beyond what one TCP flow achieves, while increasing endpoint resource usage. Try a single stream first when single-flow behavior matters, then compare with a small multistream test if you want to observe aggregate performance.
Four parallel TCP streams
iperf3 -c 192.0.2.10 -p 5201 -P 4 -t 30 -i 1 -f mTCP options explained
| Option | Purpose |
|---|---|
-c host | Run as a client and connect to the named server. |
-P 4 | Use four parallel test streams. |
-t 30 | Test for 30 seconds. |
-i 1 | Report results every second. |
-f m | Express reported bitrate in Mbits/sec. |
-b 100M | Configure approximately 100 Mbit/s of send pacing per stream. |
-R | Reverse the test direction so the server sends. |
Unlimited versus rate-limited TCP
TCP has no configured iPerf3 bitrate limit by default. For maximum achievable TCP throughput, leave bitrate at Unlimited, which means omitting -b. To deliberately pace a TCP test, specify -b.
TCP with a 100 Mbps per-stream target
iperf3 -c 192.0.2.10 -b 100M -P 4 -t 30 -f m-b value is a sending-rate target, not a promise of delivered TCP throughput. With four streams at 100 Mbit/s each, the aggregate configured target is about 400 Mbit/s. Achieved throughput may be lower.Interpreting TCP results
Compare the sender and receiver summary lines. With parallel streams, iPerf3 also reports per-stream measurements and aggregate [SUM] lines. TCP performance can be affected by congestion control, loss, RTT, receive buffers, sender and receiver CPU capacity, and the test path.