iPerf Testing – How to Use iPerf Without a TCP Server

iperf

I'm running packets through an FPGA that doesn't support TCP. I'd like to test the performance of the link with a tool such as iperf. Since iperf uses TCP to communicate metadata it's a bit of a show stopper. Is there a mode for no TCP?

Best Answer

Hi and welcome to network engineering!

iPerf 1.7.x and iPerf 2.0.x run well in an UDP-only mode. Use the -u parameter on both server (usually: receiver) and client (usually: sender) side.

iPerf 3.x.x does some TCP based negotiation before switching over to udp. The server does not take the -u parameter, only the client.

Please take the following into consideration when working with UDP performance tests:

  • With iperf1.7.x and 2.0.x, the client (within the performance limits of its networking stack) will blast UDP traffic at the configured rate (see -b command line parameter), no matter if there is a receiving instance of iperf running or not. [1]

  • With 3.x.x, only after TCP negotiation succeeds, the client (within the performance limits of its networking stack) will blast UDP traffic at the configured rate. Other than that, the same caution applies.

  • With UDP, the interesting output happens on the receiving (server) side. The receiver can count packets, lost packets, jitter. The sender will just tell you that "sent 150Mbit/s of UDP".

  • With iPerf 1.7.x and 2.0.x, you'll have to gather recevier side data at the receiver itself. With iPerf 3.x.x, you can "pull" the receiver side output with the command line option --get-server-output.

[1] This makes UDP mode of iperf 1.7.x and 2.0.x a tool to use with great caution. One typo in the destination IP address, and your office's or lab's uplink is overloaded with traffic.

Related Topic