nuttcp is a network performance measurement tool intended for use by network and system managers. Its most basic usage is to determine the raw TCP (or UDP) network layer throughput by transferring memory buffers from a source system across an interconnecting network to a destination system, either transferring data for a specified time interval, or alternatively transferring a specified number of bytes. In addition to reporting the achieved network throughput in Mbps, nuttcp also provides additional useful information related to the data transfer such as user, system, and wall-clock time, transmitter and receiver CPU utilization, and loss percentage (for UDP transfers).
nuttcp is based on nttcp, which in turn was an enhancement by someone at Silicon Graphics (SGI) on the original ttcp, which was written by Mike Muuss at BRL sometime before December 1984, to compare the performance of TCP stacks by U.C. Berkeley and BBN to help DARPA decide which version to place in the first BSD Unix release. nuttcp has several useful features beyond those of the basic ttcp/nttcp, such as a server mode, rate limiting, multiple parallel streams, and timer based usage. More recent changes include IPv6 support, IPv4 multicast, and the ability to set the maximum segment size or TOS/DSCP bits. nuttcp is continuing to evolve to meet new requirements that arise and to add desired new features. nuttcp has been successfully built and run on a variety of Solaris, SGI, and PPC/X86 Linux systems, and should probably work fine on most flavors of Unix. It has also been used successfully on various versions of the Windows operating system.