KTTCP(4) BSD Kernel Interfaces Manual KTTCP(4)NAME
kttcp -- kernel support for testing network throughput
This driver provides kernel support for testing network throughput from the perspective of the kernel. It is similar in spirit to the clas-
sic ttcp network benchmark program, the main difference being that with kttcp, the kernel is the source and sink of the data.
Testing like this is useful for a few reasons:
1. This allows us to know what kind of performance we can expect from network applications that run in the kernel space, such as the NFS
server or the NFS client. These applications don't have to move the data to/from userspace, and so benchmark programs which run in
userspace don't give us an accurate model.
2. Since data received is just thrown away, the receiver is very fast. This can provide better exercise for the sender at the other end.
3. Since the NetBSD kernel currently uses a run-to-completion scheduling model, kttcp provides a benchmark model where preemption of the
benchmark program is not an issue.
BSD December 2, 2006 BSD
Check Out this Related Man Page
TTCP(1) General Commands Manual TTCP(1)NAME
ttcp - test TCP and UDP performance
ttcp -t [-u] [-s] [-p port] [-l buflen] [-b size] [-n numbufs] [-A align] [-O offset] [-f format] [-D] [-v] host [<in]
ttcp -r [-u] [-s] [-p port] [-l buflen] [-b size] [-A align] [-O offset] [-f format] [-B] [-T] [-v] [>out]
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, the transmitter should be started with -t and -s after the receiver has been started 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 rang-
ing from tens of bytes to several ``pages'' can illuminate bottlenecks.
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 -
and on the source machine: tar cf - directory | ttcp -t dest_machine
Additional intermediate machines can be included by: ttcp -r | ttcp -t next_machine
OPTIONS -t Transmit mode.
-r Receive mode.
-u Use UDP instead of TCP.
-s If transmitting, source a data pattern to network; if receiving, sink (discard) the data. Without the -s option, the default is
to transmit data from stdin or print the received data to stdout.
-l length 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.
-b size Set size of socket buffer. The default varies from system to system. This parameter affects the maximum UDP packet length. It
may not be possible to set this parameter on some systems (for example, 4.2BSD).
Number of source buffers transmitted (default 2048).
-p port Port number to send to or listen on (default 2000). On some systems, this port may be allocated to another network daemon.
-D If transmitting using TCP, do not buffer data when sending (sets the TCP_NODELAY socket option). It may not be possible to set
this parameter on some systems (for example, 4.2BSD).
-B When receiving data, output only full blocks, using the block size specified by -l. This option is useful for programs, such as
tar(1), that require complete blocks.
-A align Align the start of buffers to this modulus (default 16384).
-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.
-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'.
-T ``Touch'' the data as they are read in order to measure cache effects.
-v Verbose: print more statistics.
-d Debug: set the SO_DEBUG socket option.
SEE ALSO ping(1M), traceroute(1M), netsnoop(1M)