Test TCP (TTCP)
|
| New Documentation | |||||
Enhancements:
| |||||
| Better Error Messages. | |||||
| Code extensively re-written, multi-threaded receiver. |
Test TCP (TTCP) is a command-line sockets-based benchmarking tool for measuring TCP and UDP performance between two systems. It was originally developed for the BSD operating system starting in 1984. The original TTCP and sources are in the public domain, and copies are available from many anonymous FTP sites.
You can read "The Story pf the TTCP Program" in the words of Mike Muuss, one of the original TTCP program authors.
Sungjin Chun <sjchun@janus.sst.co.kr> ported TTCP from BSD to Windows Sockets as WSTTCP in 1996. WSTTCP is available in executable form on WinSite.
The only problem with WSTTCP is that sources are apparently not available.
The PCATTCP program is simply PCAUSA's port of TTCP to Windows Sockets. Porting TTCP to Windows Sockets is fairly straightforward.
PCATTCP is a Win32 Console Application. You must run it from the Command Prompt or from a Batch File.
You must copy PCATTCP to two Windows platforms. One platform will be used as a receiver or data sink and the other will be used as a transmitter or data source.
To start the PCATTCP receiver, go to the Command Prompt and then change to the folder containing the PCATTCP.EXE application. Enter the following command:
C:> pcattcp -r
The "-r" command-line option starts the PCATTCP program as a receiver.
To start the PCATTCP transmitter, go to the Command Prompt and then change to the folder containing the PCATTCP.EXE application. Enter the following command:
C:> pcattcp -t 172.16.1.10
The "-t" command-line option starts the PCATTCP program as a transmitter. You must enter the IP address of the platform hosting the PCATTCP receiver after the "-t" command-line parameter.
As soon as you start the PCATTCP transmitter, the test data transfer begins. After the transfer is complete, both the PCATTCP transmitter and receiver will display performance information and then exit. Here is an illustration of what would be displayed:
On The PCATTCP Receiver:
C:> pcattcp -r PCAUSA Test TCP Utility V2.01.01.03 TCP Receive Test Local Host : twoeye400 ************** Listening...: On port 5001 Accept : TCP <- 192.168.1.105:1548 Buffer Size : 8192; Alignment: 16384/0 Receive Mode: Sinking (discarding) Data Statistics : TCP <- 192.168.1.105:1548 16777216 bytes in 33.77 real seconds = 485.22 KB/sec +++ numCalls: 2051; msec/call: 16.86; calls/sec: 60.74
On The PCATTCP Transmitter:
C:> pcattcp -t 172.16.1.10 PCAUSA Test TCP Utility V2.01.01.03 TCP Transmit Test Transmit : TCP -> 192.168.1.101:5001 Buffer Size : 8192; Alignment: 16384/0 TCP_NODELAY : DISABLED (0) Connect : Connected to 192.168.1.101:5001 Send Mode : Send Pattern; Number of Buffers: 2048 Statistics : TCP -> 192.168.1.101:5001 16777216 bytes in 1.75 real seconds = 9362.29 KB/sec +++ numCalls: 2048; msec/call: 0.88; calls/sec: 1170.29
The PCATTCP tool includes several options that are controlled by parameters passed on the command line when the program is started. To see the available options, run the PCATTCP application with the "-h" option. Here is what you would see:
pcattcp -h
PCAUSA Test TCP Utility V2.01.01.08
Usage: pcattcp -t [-options] host [ < in ]
pcattcp -r [-options > out]
Common options:
-l ## length of bufs read from or written to network (default 8192)
-u use UDP instead of TCP
-p ## port number to send to or listen at (default 5001)
-s toggle sinkmode (enabled by default)
sinkmode enabled:
-t: source (transmit) fabricated pattern
-r: sink (discard) all received data
sinkmode disabled:
-t: reads data to be transmitted from stdin
-r: writes received data to stdout
-A align the start of buffers to this modulus (default 16384)
-O start buffers at this offset from the modulus (default 0)
-v verbose: print more statistics
-d set SO_DEBUG socket option
-b ## set socket buffer size (if supported)
-f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga
-c -t: send continuously
-r: accept multiple connections sequentially
-R concurrent TCP/UDP multithreaded receiver
Options specific to -t:
-n ## number of source bufs written to network (default 2048)
-D don't buffer TCP writes (sets TCP_NODELAY socket option)
-w ## milliseconds of delay before each write (default 0)
-L ## desired transmit data rate in bytes/second
Options specific to -r:
-B for -s, only output full blocks as specified by -l (for TAR)
-T "touch": access each byte as it's read
You'll need to read the Terms And Conditions and enter your Contact Information before beginning your download. Your Contact Information will only be used by PCAUSA, primarily to determine if there is sufficient interest to maintain the software on the PCAUSA website.
Enjoy!
Download PCATTCP Executables And Source
If you find bugs in PCATTCP of have improvements, please let us know.
I have been working occasionally on making improvements to the PCATTCP application. My goal is to provide a distributed and flexible benchmarking suite. The desired architecture would include "TTCP Agents" that implement the TTCP Transmitter and TTCP Receiver function under the control of a remote "TTCP Console" management application.
As time permits I have bread boarded many of the pieces under the .NET Framework V1.1. Unfortunately I haven't been able to glue them all together yet.
Nevertheless, for some perverse reason I wanted to put out at least one small improvement in the form of a TTCP Transmitter built under the .NET Framework. So, here it is...
The TtcpTx application is a forms-based TTCP Transmitter. It allows easy entry of the basic TTCP test parameters and then performs the transmit operation using an instance the .NET TcpClient class. It's not perfect by a long shot, but it is functional and may be useful to a few of you.
TTCP test parameters can be saved to a file and then opened later if desired.
At this time there is no .NET version of the TTCP receiver. I would suggest that you just run the existing PCATTCP application in the continuous receiver mode as the "other end" of TtcpTx.
PCATTCP -c -r
The ZIP file contains sources to the current PCATTCP application modified for build under Visual Studio .NET 2003 as well as sources for TtcpTx .NET Framework version.
I would appreciate feedback about improvements, bugs, etc.
You'll need to read the Terms And Conditions before beginning your download.
Enjoy!
Download TtcpTx Executables And Source
If you find bugs in TtcpTx of have improvements, please let us know.
![]()
May 18, 2005 - The .NET TTCP transmitter C# code was cleaned up by Matthew Armatis. The revised code offers a vast improvement over the preliminary implementation by TFD.
November 8, 2004 - A preliminary .NET implementation of a TTCP Transmitter is available.
November 23, 2003 - Incorporated fix made by Clarkson University that reduces hands when closing UDP tests.
April 5, 2003 - Minor fix in filling pattern buffer for transmit.
May 30, 2002 - Minor change to exit routines and fix of some documentation typos.
May 29, 2002 - Released V2.01.01.03. Extensively revised.
January 11, 2000 - Released V1.00.00.02. Includes several fixes to Winsock port of setsockopt calls. In particular, the call to set TCP_NODELAY was ported incorrectly. Sorry!
Please let us know if you encounter difficulties using this program or if you have suggestions for improvement.
Note: PCAUSA has not made a complete port of TTCP to the Windows platform. Some options may not work as advertised.
If you find missing functionality, have the time to make improvements and have the inclination to share your work, please let us know. We will consider incorporating your improvement and posting them here.
3/27/06
|
PCAUSA Home ·
Privacy Statement ·
Products ·
Ordering ·
Support ·
Utilities ·
Resources
|