UDPmon Home Page
A Tool for Testing Hardware & Network Behaviour
This Page contains information about UDPmon which can be used for measuring the performance of 100 Mbit, Gigabit and 10 Gigabit switches, as well as network connections involving LANs, MANs and WANs. There are also links to results of tests made on Gigabit switches for the ATLAS experiment, and some tests made using the LANs, MANs and WANs of NetNorthWest, Manchester Campus and SuperJANET.
There is a simple write-up that describes the programs and the command options. The latest version of the code is available as the udpmon tar file and requires the libhj package which is also available as the libhj tar file. The udpmon file also contains some sample command files showing how UDPmon may be run; they produce a set of text files containing the results. There is an Excel spreadsheet file that will accept these files and plot them for you! The spreadsheet contains a simple macro that reads a data file into a worksheet and renames the worksheet.
The programs use the standard socket interface and do not require root access. They are designed to measure end-to-end performance of the network and its components by using UDP packets. The code has mainly been used on Linux, although some programs have been ported to Suns. To get fine time bins for individual network measurements, the cycle counter on the Pentium chip has been used. The programs are used in pairs to make the following measurements:
- Latency as a function of packet size - using Request-Response UDP packets.
- Histograms of the UDP Request-Response Latency.
- Estimation of the "on-the-wire" Bandwidth, packet loss, and out of order packets as a function of packet size and packet spacing using UDP packets.
- Histograms (and analysis) of the packet jitter between the two nodes.
- Measurement of arrival times of received packets
- Estimation of the relative 1-way delay between the two nodes on a packet by packet basis.
- Measurement of the user mode and kernel mode load on all CPUs for both sending and receiving hosts.
- Measurement of the number of interrupts given by the NICs
Installation of UDPmon
From UDPmon version 1.0.0 automake was used and the distribution was split into two tarballs: the udpmon tool and the supporting library libhj. The udpmon-a.b.c tarball creates directory udpmon-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 UDPmon 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 udpmon and do:
./configure --prefix=$HOME --with-hj-location=$HOME
make install
$HOME/sbin is created with the UDPmon programs.
Installation of Older Versions
Prior to version 1.0.0 the tar file contained both tool and library and when unpacked, created two directories:
udpmon_vxx containing the test programs and "src_vxx" containing library functions. xx is the version number of the kit.
Versions of udpmon