linuxethernetiperf

iperf - what is the meaning of bandwidth?


I am using iperf for testing ethernet performance. It has several capabilities which I am using:

  1. measuring maximal bandwidth

    for example with iperf -c 192.168.0.1

  2. statistics of packet loss for a given bandwidth,

    for example with iperf -uVZc 192.168.0.1 -b400m

I am surprised to see that the bandwidth it measures for a link is a bandwidth which includes loss packets (if I run the second example on the same bandwidth which it gives as maximal bandwidth, then I get packet loss of 30%)

So, I am not sure, whct is the actual meaning of bandwidth in iperf terms ?

Thank you.


Solution

  • iperf allows you to perform both UDP and TCP tests.

    When running iperf in UDP mode, you may state the bandwidth. This is actually the amount of data per second the client is trying to pump towards the server. Some of the data may arrive safely, but some of the data may be lost (due to the actual bandwidth that is in place between the server and the client).

    When running iperf in TCP mode, stating the bandwidth is relevant only if you want to limit it (and you have to take the packet size into account, as well, because that imposes limits on the minimal bandwidth limit, due to iperf behavior...). The actual bandwidth is determined by the TCP window size and the connection latency. See here for more information on TCP window and throughput.