pathChirp is an active probing tool for estimating the
available bandwidth on a communication network path. Based on the
concept of "self-induced congestion," pathChirp features an
exponential flight pattern of probes we call a chirp. Packet
chirps offer several significant advantages over current probing
schemes based on packet pairs or packet trains. By rapidly increasing
the probing rate within each chirp, pathChirp obtains a rich set of
information from which to dynamically estimate the available
bandwidth.

Another of our tools, STAB, is based on pathChirp
and locates available bandwidth bottlenecks.

If you downloaded the Uncompressed Filetar -xvf ./pathchirp-2.4.1.tar Start
by reading the README file in the newly created subdirectory pathchirp-2.4.1 or follow the instructions below.

Compiling code.

cd ./pathchirp-2.4.1

./configure

make

Running the code.

cd ./Bin

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 the SENDER, RECEIVER, and MASTER machines. Chirps travel from the SENDER to the RECEIVER machine. The MASTER starts the experiment and stores the results of the experiment in a file (see above figure).

On the SENDER run ./pathchirp_snd

On the RECEIVER run ./pathchirp_rcv

On the MASTER run ./pathchirp_run -S [sender machine name or IP address] -R [receiver machine name or IP address] -t 300

At the MASTER you will observe the output
Opening file: [resultsfilename]

After 300 seconds (5 minutes) the experiment would have ended. The results will be in the file [resultsfilename] at the receiver in the format[timestamp] [Available bandwidth estimate in Mega bits/sec]

To view the results run the following at the MASTER
more [resultsfilename]

To rerun the experiment you only need to restart the ./pathchirp_run program at the MASTER.

You should already have the ns-2 simulator installed. You can obtain ns-2 code here.
In the following NS-2-DIR refers
to your ns-2.* directory (example: ns-2.27)

Save current files:
Before untarring the code below, save a few ns files that will be overwritten
so that you can revert to the original easily.
1) cd NS-2-DIR 2) tar -cvf original.tar Makefile.in FILES tcl/lib/ns-default.tcl tcl/lib/ns-packet.tcl common/packet.h