algorithmnetworkingiperfiperf3

What algorithm iperf3 use under the hood to measure the bandwidth and latency between end to end points in a network infrastructure?


I am trying to learn an iperf tool, which is a handy tool to measure the bandwidth and latency of two endpoints on a network.

I am wondering which algorithm does iperf/iperf3 use under the hood to measure the latency and bandwidth. I go through the documentation of the iperf but couldn't find the information.

Does anyone know about it?


Solution

  • iperf3 and similar bandwidth-testing tools work in pretty much the same way; they send a certain amount of data from one host to another and also measure the amount of time it took to send that data. Divide the amount of data sent by the time it took, and (with appropriate unit conversions) that's the bandwidth. These measurements can also be done on the receiving end for similar (but possibly different) numbers. Sometimes, the endpoints can pace themselves, to artificially limit the speed at which data is sent.

    These tools may differ in how they coordinate the start and end of tests, how the test parameters are communicated, or how pacing is done. But the basic test being run is the same.

    If you really want to understand, in detail, what a particular tool is doing, you might need to actually read and understand the source code.