ntt - Network Torture Tool

Finding bad network equipment

This program makes it easy to test network equipment. It allows to easily and quickly start a (server) process on each machine, which can send and receive test data. The initiation and progress monitoring of (several) connections are made from a client process on any machine.

The general idea is to let each machine try to send and/or recieve as much data is it can.

                  mach1       mach3       mach4
Rates (/s)              mach2       mach4       mach5
              cpu   19%   14%   78%   83%   11%   10%
            rx\tx  2.2M  6.3M 45.7M 45.2M 10.6M  6.1M
mach1       6.1M         1.2M  2.3M  2.2M  209k  112k
mach2      11.3M   1.1M        4.6M  4.5M  658k  403k
mach3      39.6M   570k  1.2M       37.6M  137k 75.7k
mach4      39.8M   386k  1.2M 37.9M        126k  160k
mach5       8.1M  50.8k  1.8M  599k  443k        5.4M
mach6      11.2M  62.8k  879k  348k  395k  9.6M

So far: two malfunctioning switches identified (not above).


Download

ntt.c
Makefile

Documentation

The program is self-documenting with the --help option:
Network torture tool

./ntt options

  --server[=PORT]  Start NTT server (shutdown after 4h without connection).
  --daemon         Daemonize the server.

  --buffer=N       Set buffer size (for following connections = ffc).
  --limit=N        Limit transmit bandwidth usage (ffc). (0 = no limit)
  --respond=N      Wait for N response bytes after each buffer sent (ffc).
  --pattern=PTN    Transmission test pattern, PTN=none,zero,scanbuf,scan,rnd.

  HOST1[:P],HOST2[:P]  Create data connection from HOST1 to HOST2.
  R:HOST1[:P],H2[:P]   Create reversed data connection to HOST1 from HOST2.
  HOST[:PORT]          Monitor NTT server on HOST.

  --set:N=H1,H2,...    Define a set of hosts, with tag N.
  --connset=[R:]M,N    Create connections from all M hosts to all N hosts.
  --matrix             Show connections as a matrix of machines.
  --mtu                Show discovered MTU for connections (where available).
  --logfile[=FILE]     Write a log of the connection statistics.

  Note: network names HOST1 are looked up from / relative to HOST2.

  --rnd                Dump random bitstream. (NOTE: it is a bad PRNG!)
  --purge=HOST[:PORT]  Close all client connections on HOST.
  --kill=HOST[:PORT]   Shut the server on HOST down.

Usage

Testing network from another host to the current:
otherhost> ./ntt --server
thishost>  ./ntt --server
thishost>  ./ntt otherhost,localhost 

Links

ucesb - system to unpack experimental data.
Hunting Tools Beyond the Driplines - my PhD thesis.
The DAQ always runs - my licentiate thesis.
Return of the VAX

E-Mail: Håkan T. J. (f96hajo@chalmers.se)

Back to Håkans page

Disclaimer