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 a tar file and requires the libhj package which is also available as a tar file. The udpmon file also contains some sample command files showing how udpmon may be run; these command scripts 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 macro Load_net_file that reads a text data file into a worksheet and renames the worksheet; and there is also a macro Load_all that reads all the output files from a given test into the respective sheets in the work book. the macros may be found here. The latest versions of the write-up, exel files, udpmon and libhj files may be found in the table below.
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
- Measurement of the traffic through the NICs
- Measurement of the SNMP counters on the hosts
- Measurement of time-series statistics of the received packets of a UDP flow
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.
From udpmon version 1.3.3 the udpmon and udpmon_extra tools have been merged into the udpmon tarball.
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.
Versions of udpmon
Version |
Download
udpmon |
Download
libhj library |
Write-up |
Excel plots example |
Notes |
udpmon-1.5.1 |
tar file v 1.5.1 |
libhj-4.7.0 |
|
|
udpmon_req uses new Statistics |
udpmon-1.5.0 |
tar file v 1.5.0 |
libhj-4.6.1 |
|
|
Add collection of NIC level statistics
Add -I interface name for the NIC stats |
udpmon-1.4.4 |
tar file v 1.4.4 |
libhj-4.5.6 |
|
|
Use new names of network interfaces - max 16
Printout updated, interrupts removed
Local UDP port may be specified. |
udpmon-1.4.3 |
tar file v 1.4.3 |
libhj-4.5.2 |
|
|
Improved support for 64 core systems.
Enabled cmd_*.pl files to use -a set affinity. |
udpmon-1.4.1 |
tar file v 1.4.1 |
libhj-4.5.0 |
|
Excel spreadsheet lite
Excel spreadsheet full
Excel spreadsheet time series
Excel spreadsheet loss distribution |
|
udpmon-1.4.0 |
tar file v 1.4.0 |
libhj-4.5.0 |
|
Excel spreadsheet lite
Excel spreadsheet full
Excel spreadsheet time series |
Improved Autotools and spec for rpm generation.
Enabled cmd_*.pl files to use system installed or home directory versions of udpmon programs. |
udpmon-1.3.3 |
tar file v 1.3.3 |
libhj-4.4.0 |
|
Excel spreadsheet lite |
udpmon and udpmon_extra tools merged into udpmon.
-r for rate added; simple lite output without the -x option
Support for ARMv6 as in Raspberry Pi |
udpmon-1.2.6 |
tar file v 1.2.6 |
libhj-4.3.2 |
.doc format
.pdf format |
|
|
udpmon-1.2.5 |
tar file v 1.2.5 |
libhj-4.2.6 |
|
Excel spreadsheet |
Time calibration does not use wait to avoid power-saving issues |
|
|
|
|
|
|
udpmon-1.1.2 |
tar file v 1.1.2 |
libhj-4.1.3 |
|
Excel spreadsheet |
|
udpmon-1.1.1 |
tar file v 1.1.1 |
libhj-4.0.4 |
|
|
-x for if/snmp stats |
udpmon-1.0.2 |
tar file v 1.0.2 |
libhj-4.0.2 |
|
Excel spreadsheet |
|
udpmon-1.0.1 |
tar file v 1.0.1 |
libhj-4.0.1 |
|
|
|
udpmon-1.0.0 |
tar file v 1.0.0 |
libhj-4.0.0 |
|
|
|
v 3.2-6 |
the tar file |
|
pdf format |
Excel spreadsheet |
|
v 3.2 |
the tar file |
|
|
Excel spreadsheet |
|
v 3.1D-2 |
the tar file |
|
|
Excel spreadsheet |
|
v 3.1 |
the tar file |
|
|
|
|
v 2.5 |
the tar file |
|
pdf format |
|
|
Very early |
the tar file |
|
pdf format |
|
|
Installation of Older Versions of udpmon
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.
Installation and Versions of udpmon_extra
Since version 1.3.2 udpmon_extra tools have been merged into the udpmon tarball.
udpmon_extra requires two tarballs: the udpmon_extra tool and the supporting library libhj. The udpmon_extra-a.b.c tarball creates directory udpmon_extra-a.b.c; cd to this directory containing udpmon and do:
./configure --prefix=$HOME --with-hj-location=$HOME
make install
$HOME/sbin is created with the udpmon_extra programs.
Version |
Download
udpmon |
Download
libhj library |
Write-up |
Excel plots example |
Notes |
udpmon_extra-1.3.2 |
tar file v 1.3.2 |
libhj-4.3.2 |
|
|
CPU Affinity support |
udpmon_extra-1.3.2.VLBI |
tar file v 1.3.2.VLBI |
libhj-4.3.2 |
|
|
v-1.3.2 for use with iBoB |
udpmon_extra-1.3.1 |
tar file v 1.3.1 |
libhj-4.3.2 |
|
Excel time-series |
64 bit packet num
IPv4 & IPv6 |
udpmon_extra-1.2.5 |
tar file v 1.2.5 |
libhj-4.2.6 |
|
Excel spreadsheet |
|
|
|
|
|
|
|