Softpedia Editor's Review for Iperf
A tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics
Written by Andreea Matei on January 18th, 2013
Iperf is a handy and reliable command line utility designed to measure bandwidth performance and to tweak various TCP related parameters, as well as UDP characteristics.
The application doesn’t need to be installed; the EXE file that it comes packed in is portable, which means it doesn’t affect your computer registry. Being a command line utility, it can only run from a command prompt window.
In order to learn about its usage, just run the application followed by the argument ‘-help’. Notice how the program features several individual options for Client and Server specific settings, as well as for Client and Server configurations altogether.
A quick summary of Iperf’s capabilities includes first of all, the possibility to report bandwidth parameters, MSS (maximum segment size) details, packet loss and delay jitter measurements and multicast support.
Also worth mentioning is its ability to handle multiple connections from both the server and the client. In addition, you can set it to run for a user-defined period of time instead of placing a restriction on the amount of transferred data.
Other settings include selecting the unit of measurement (Kilobits or Kilobytes, Megabits or Megabytes), reporting error messages, setting domains to IPv6 and running it as a Windows service.
Even though it may seem simple and accessible, Iperf was designed for advanced users. Proper usage requires network and server knowledge; the help section is only useful to those accustomed to terms specific to TCP / UDP monitoring. However, users who can understand its ways can get detailed reports regarding bandwidth performance.
Here are some key features of "Iperf":
· Measure bandwidth
· Report MSS/MTU size and observed read sizes
· Support for TCP window size via socket buffers
· Multi-threaded if pthreads or Win32 threads are available. Client and server can have multiple simultaneous connections
· Client can create UDP streams of specified bandwidth
· Measure packet loss
· Measure delay jitter
· Multicast capable
· Multi-threaded if pthreads are available. Client and server can have multiple simultaneous connections. (This doesn't work in Windows.)
· Where appropriate, options can be specified with K (kilo-) and M (mega-) suffices. So 128K instead of 131072 bytes
· Can run for specified time, rather than a set amount of data to transfer
· Picks the best units for the size of data being reported
· Server handles multiple connections, rather than quitting after a single test
· Print periodic, intermediate bandwidth, jitter, and loss reports at specified intervals
· Run the server as a daemon (Check out Nettest for running it as a secure daemon)
· Run the server as a Windows NT Service
· Use representative streams to test out how link layer compression affects your achievable bandwidth
· A library of useful functions and C++ classes
What's New in This Release: [ read full changelog ]
· Added bidirectional testing both simultaneously and tradeoff
· Added server side statistic reporting on the client for UDP
· Limits on the number of connections and locations for servers
· Fixed the IPv6 Multicast implementation
· Removed the SegFault on exit by Ctrl-C for the server
· Thread bug resulting in "pthread create failed" after many clients
· "connect failed" on server for UDP clients when IPv6 is enabled is fixed