ttcp -- test TCP and UDP performance


ttcp -t [ -A align ] [ -b size ] [ -d ] [ -D ] [ -f format ] [ -l buflen ] [ -n numbufs ]
[ -O offset ] [ -p port ] [ -s ] [ -u ] [ -v ] dest_machine [ stdin ]

ttcp -r [ -A align ] [ -b size ] [ -B ] [ -d ] [ -f format ] [ -l buflen ] [ -O offset ]
[ -p port ] [ -s ] [ -T ] [ -u ] [ -v ]


ttcp times the transmission and reception of data between two systems using the UDP or TCP protocols. It differs from common ``blast'' tests, which tend to measure the remote inetd as much as the network performance and which usually do not allow measurements at the remote end of a UDP transmission.

For testing, start the transmitter with -t and -s after starting the receiver with -r and -s. Tests lasting at least tens of seconds should be used to obtain accurate measurements. Graphical presentations of throughput versus buffer size for buffers ranging from tens of bytes to several ``pages'' can illuminate bottlenecks.

Without the -s option, the default is to transmit data from stdin or print the received data to stdout.

ttcp can also be used as a ``network pipe'' for moving directory hierarchies between systems when routing problems exist or when the use of other mechanisms is undesirable. For example, on the destination machine, use:

ttcp -r -B | tar xvpf -

On the source machine, use:

tar cf - directory | ttcp -t dest_machine

Additional intermediate machines can be included by using:

ttcp -r | ttcp -t next_machine


-A align
Align the start of buffers to this modulus (default 16384).

-b size
Set size of socket buffer. The default varies from system to system. This parameter affects the maximum UDP packet length.

When receiving data, output only full blocks, using the block size specified by -l. This option is useful for programs, such as tar(C), that require complete blocks.

Debug: set the SO_DEBUG socket option.

If transmitting using TCP, do not buffer data when sending (sets the TCP_NODELAY socket option).

-f format
Specify, using one of the following characters, the format of the throughput rates as kilobits/sec (``k''), kilobytes/sec (``K''), megabits/sec (``m''), megabytes/sec (``M''), gigabits/sec (``g''), or gigabytes/sec (``G''). The default is ``K''.

-l buflen
Length of buffers in bytes (default 8192). For UDP, this value is the number of data bytes in each packet. The system limits the maximum UDP packet length. This limit can be changed with the -b option.

-n numbufs
Number of source buffers to transmit (default 2048).

-O offset
Align the start of buffers to this offset (default 0). For example, ``-A8192 -O1'' causes buffers to start at the second byte of an 8192-byte page.

-p port
Port number to send to or listen on (default 2000). On some systems, this port may be allocated to another network daemon.

Receive mode.

If transmitting, send fabricated data to the network; if receiving, sink (discard) the data.

Transmit mode.

``Touch'' the data as they are read in order to measure cache effects.

Use UDP instead of TCP.

Verbose: print more statistics.

See also

ping(ADMN), traceroute(ADMN).
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003