TCPmon Home Page
Tool to Measure Transaction Latency over TCP Links
tcpmon uses a TCP/IP stream to send Request-Response messages between two hosts. It makes the following measurements of the round trip times between those end hosts:
- Latency as a function of response size - using the Request-Response TCP messages.
- Histograms of the TCP Request-Response Latency
- A time series of the round trip latency for each Request-Response.
Installation of tcpmon
The distribution of tcpmon is split into two tarballs: the tcpmon tool and the supporting library libhj. The tcpmon-a.b.c tarball creates directory tcpmon-a.b.c and libhj-l.m.n creates directory libhj-l.m.n. For installation and compilation in your home directory having downloaded the corresponding tcpmon and library files, start by cd to the library directory then:
./configure --prefix=$HOME
make install
$HOME/include and $HOME/lib are created. Then cd to the directory containing tcpmon and do:
./configure --prefix=$HOME --with-hj-location=$HOME
make install
$HOME/sbin is created with the tcpmon programs.
Versions of tcpmon
Version |
Download
tcpmon |
Download
libhj library |
Write-up |
Excel plots example |
Notes |
tcpmon-1.0.3 |
tar file -1.0.3 |
libhj-4.1.3
(libhj-4.0.4) |
|
|
can use AMD64 |
tcpmon-1.0.2 |
tar file -1.0.2 |
libhj-4.0.2 |
|
|
|
Brief help
Usage: tcpmon_req -option<parameter> [...]
options:
-G = <number of req-resp on which to return information>
-H = Print histograms
-N = enable delay ack + Nagle
-P = <precidence bits set - in hex - will be shifted left by 9>
-Q = <DSCP QoS bits set - in hex >
-S = <size of send and receive socket buffers in bytes>
-T = <tos bits set - in hex - will be shifted left by 1>
-V = print version number
-b = <bin width of histo in us>
-d = <the destination IP name or IP address a.b.c.d>
-e = <end value of message length in bytes>
-i = <increment for message length in bytes>
-l = <no. of frames to send>
-m = <min (low limit) of histo in us>
-p = <length in bytes of mock data packet>
-q = quiet - only print results
-r = <start size of response message in bytes>
-v = turn on debug printout
-u = <raw/udp port no - default 0x3799 ie 14233 decimal>
-w = <time to wait between request-response in us>
Example
sbin/tcpmon_req -d192.168.111.222 -p64 -r1000 -w50000 -H -b100 -l2000
Will send 2000 requests 64 bytes long to the remote node asking for 1000 byte responses. It will wait 50ms between requests and histogram the round trip times with a bin size of 100 us.
Adding -G1000 to the above line would produce a time series of the first 1000 requests.