Measuring throughput in wireless networks: iperf vs nuttcp
As part of my PhD thesis, I investigate the impact of interference on the network performance in large-scale multi-hop wireless mesh networks. Most experiments are based on throughput measurements to determine the maximum capacity of a link in interference-prone scenarios. iperf has almost become the standard traffic generator for this task in wire line and wireless networks alike. However, control packets to signal the start and end of a traffic flow are exchanged between the two endpoints of the measurements on the same channel that is subject to the measurement. In wireless networks with possible high levels of interference, these packets may get lost, thus invalidating the whole measurement.
This is where the feature of nuttcp becomes useful, which allows to you use a different interface for the control messages if such an interface is available. I usually experiment on the DES-Testbed, which consists of about 130 multi-radio network nodes. Each node is also equipped with an Ethernet interface. Using this interface for the control messages, promises a higher ratio of successful measurements. Here are some results of the percentage of successful measurements for more than 4000 single-hop traffic flows (UDP, 6mbps).
In about 15.7% of the measurements with iperf, control messages have been lost thus invalidating the measurement. For nuttcp, no control messages have been reported as lost. So that clearly indicates that nuttcp is much better suited for wireless networks in which an additional control interface is available.