What is Iperf?
While tools to measure network performance, such as ttcp, exist, most are very old and have confusing options. Iperf was developed as a modern alternative for measuring TCP and UDP bandwidth performance.
Iperf allows the tuning of various parameters and UDP characteristics. Iperf reports bandwidth, datagram loss, delay jitter.
Here are some key features of "Iperf":
· TCP
· 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
· UDP
· 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