STAB is a new active probing tool for locating thin
links on a network path. A thin link is a link with less available
bandwidth than all links preceding it on the path. The last thin link
on the path is the link with the minimum available bandwidth or
tight link. STAB combines the concept of "self-induced congestion",
the probing technique of "packet tailgating", and special probing
trains called "chirps" to efficiently locate the thin links.
Another of our tools, pathChirp, is a precursor of
STAB and estimates end-to-end available bandwidth.
Vinay Ribeiro, Rudolf Riedi, and Richard Baraniuk
Locating Available Bandwidth Bottlenecks, IEEE Internet Computing, pp. 34-41, September-October 2004.
(This material is presented to
ensure timely dissemination of scholarly and technical work. Copyright
and all rights therein are retained by authors or by other copyright
System Requirements: UNIX/Linux
on sender/receiver machines, filtering (i.e. discarding) of UDP
traffic must not be enabled on an intermediate firewall or on the
sender/receiver machines. This tool does not use ICMP packets.
Steps to unpack file. All UNIX commands are in bold face. The outputs of certain
commands are system dependent and are be denoted by square brackets [***].
If you downloaded the Gzip Compressed File
gunzip ./stab-1.3.1.tar.gz tar -xvf ./stab-1.3.1.tar
If you downloaded the Uncompressed File tar -xvf ./stab-1.3.1.tar Start
by reading the README file in the newly created subdirectory stab-1.3.1 or follow the instructions below.
make (on FreeBSD systems use gmake)
make clean (on FreeBSD systems use gmake clean)
make (on FreeBSD systems use gmake)
Running the code.
ls ./ Let us call the result of this command [subdir]. Examples of [subdir] could be i686, i386, sparc and so on.
cd [subdir] All the above commands must be run on both the machine that will
send out chirp packets and the machine that will receive the chirp packets.
On the machine sending out chirp packets run ./stab_snd
On the sender machine receiving chirp packets run ./stab_rcv -S [sender machine name or IP address] -t 600 On receiver machines with interrupt coalescence enabled use the following
command for improved results ./stab_rcv -S [sender machine name or IP address] -t 600 -J 4
At the receiver you will observe the output
Opening file: [resultsfilename]
After 600 seconds (10 minutes) the experiment would have ended. The results will be in the file [resultsfilename] at the receiver in the format [timestamp] [Available bandwidth estimate from source to some intermediate link number "l" in Mega bits/sec] [intermediate link "l"] [probability of link "l" being a thin link]
NOTE:If you have gnome-config installed on your receiver machine then the results
will be plotted in a window as shown below during the experiment. Two plots appear. Left plot This plot displays the available bandwidth from the sender node up to link "l" for different values of "l" (termed sub-path length). At the locations of
"thin links" the plot typically drops by a significant amount. The last thin link
is the link with the least available bandwidth on the path. The error bars in the plots reveal how accurate the estimates are. Smaller errorbars indicate more accurate estimates. Right plot This plot displays the estimated probability that different links
are thin links.
Initially no plots are displayed for a few minutes while STAB collects measurement data. Once the plots appear in the window they will update every 20 seconds with the latest results.
To view the data in the results file, run the following at the receiver machine
To rerun the experiment you only need to restart the ./stab_rcv program at the receiver machine.