Capacity measurement using iperf

In Ethernet capacity specifications and measurements we talked about how the capacity of a wireless system is sometimes specified at Layer 1 and sometimes at Layer 2. Cambium products are always specified at Layer 2. We also talked about how capacity tools measure capacity in a variety of different ways. This means that, if you're trying to validate the capacity of an installed system, you should remember to match the measurement method and the specification.

iperf is a widely-used network test tool used to measure capacity by sending and receiving TCP or UDP data streams between a client and a server. The UDP mode allows for an approximate capacity measurement by generating more traffic than the link can carry, so that the data rate of the traffic that actually reaches the destination represents the link capacity.

There are several things to bear in mind when using iperf:

  • iperf generates and measures traffic at the application layer. This means that the numbers reported by iperf do not include the UDP header (8 bytes), the IP header (20 bytes for IPv4), and the Ethernet header (18 bytes for normal Ethernet frames and 22 bytes for VLAN frames). At Layer 2, the network is carrying an additional 46 or 50 bytes in each frame; these bytes are not included in the capacity measured by iperf.
  • iperf's abiity to generate traffic is partly dependent on the performance and configuration of the PC or workstation that it is running on. It can be quite tricky to get really high data rates out of iperf.
  • iperf measures data rates as bit/s, kbit/s and Mbit/s; in this case, "kbit" is defined as 1,000 bits and "Mbit" is defined as 1,000,000 bits, just as we would expect. However, and less obviously, iperf defines "kbyte" as 1024 bytes and "Mbyte" as 1024 x 1024 = 1,048,576 bytes. That might only be a 5% difference, but it could be significant.

In PTP 600, PTP 650 and PTP 700 the data path is implemented in hardware, and the TDD frame structure is deterministic. We measure capacity in each system release using a large and expensive Ixia installation, and the measured capacity always agrees very closely with the capacity we calculate based on the design. The calculated capacity is reported in the web-based user interface and the SNMP MIB, tabulated in respective User Guides, and modelled accurately in LINKPlanner.

We understand that operators would sometimes like an independent check of the capacity of an installed system. There are many portable data testers that can do this task quite accurately. iperf is free, but we have often struggled to get meaningful measurements with it. That's not because of a fundamental flaw in the software, but rather a consequence of running the software on general purpose hardware.

We'd be really interested to learn more about the ways that customers make network capacity measurements and the tools that really work in practice.