Bottleneck Bandwidth Measurement Using PATH Algorithm Introduction: ============= To improve the practicability, accuracy and performance of existing network-bandwidth measurement algorithms, such as PathChar, Bprobe and Cartouche algorithm, we have developed a new method: PATH (PAcket-Train with Header) algorithm. PATH is the combination of single-packet and packet-pair algorithms. It is a sender-based algorithm that is straightforward to implement in the Internet. This project is composed of three differnet part: BAMA simulator; tcl file for Network Simulator; and java file analyze.java 1. Installtion of BAMA simulator: --------------------------------- BAMA simulator is a user-friendly network simulation tool, which is specially designed for testing and tuning of PATH algorithm. It is developed by Visual Basic. So it is easier to install comparing with other two parts. We just need load the source code into the Visual Basic compiling environment and then begin compling. After that, we could start the BAMA simulator by just simple clicking the Windows format executable file generated by the previous step. There are three kinds of parameters in BAMA simulator: ¡¤Router/link information(the parameters to simulate their algorithms): o The number of routers o Bandwidth: The capacity bandwidth (Kbps) o Latency: The latency of each link (millisecond) o Cross traffic FR: the flow rate of cross traffic (Kbps) from the sender to the receiver direction. Zero means there is no cross traffic o ACK CTFR: the flow rate of cross traffic (Kbps) from the receiver to the sender direction. Zero means there is no cross traffic. ¡¤Packet information(Users can design their own probe schema): o Packet number: The number of the packets in each run o Packet Size: The size of each packet (bytes) o ACK: If there is ACK packet coming back to the sender o TTL: The TTL value in the header of the packets o Times: how many times the whole packet train (we call it "run") is sent out from sender. ¡¤Cross traffic information(set the minimal and maximum packet size of cross traffic packets) 2. Running tcl file on Network Simulator: ----------------------------------------- In this section, we compare the PATH and the BProbe algorithm via using Network Simulator. There are two tcl files. One is created to implement BProbe algorithm and the other is for PATH algorithm. In order to run these simulating scenario, we have to build the network simulator environment firstly. Network Simulator [NS(WEB)] is based on TCL/TK and C++ languages. It is widely used by many people who do research on the network.Ns is fairly large. The allinone package requires about 250MB of disk space to build. Building ns from pieces can save some disk space. Under Unix: you can download the ns all-in-one installing file from http://www.isi.edu/nsnam/ns/ns-build.html#allinone. Ns is developed on several kinds of Unix (FreeBSD, Linux, SunOS, Solaris), so it installs smoothest there, but it should run on an Posix-like computer, possibly with some tweaking. Under Windows: You can download the ns all-in-one installing file from http://www.isi.edu/nsnam/dist/ns-allinone-2.27.tar.gz Actually, ns can not directly run on Windows system. It has to run on Cygwin environment.Cygwin is a Linux-like environment for Windows. In order to build the Cygwin environment, you should first down load the setup.exe file from http://www.cygwin.com/setup.exe. After that, just click on the setup.exe file, it will start a graph installing procedure which will instruct you install Cygwin system. There are still a few things must be mentioned in the installation of Cygwin: 1. Make sure you have installed Cygwin with the UNIX text type. (It's the default during the Cygwin install procedure.); 2. Make sure your Cygwin installation directory does not contain any spaces. Spaces in the root directory seem to be causing a lot of problems. In particular, C:\Cygwin (the default) is a good installation directory; 3. Make sure all the packages: the XFree86-base, XFree86-bin, XFree86-prog, XFree86-lib, and XFree86-etc packages is installed. That is the XFree86 binaries, sources and configuration files 4. Make sure the make, patch and diff utilities as well as perl (5.6.1 or above) packages are installed. 5. Make sure the gcc (both gcc and gcc-g++ packages - and version 3.x, not gcc2!), awk, tar, and gzip packages are installed. 6. Make sure the w32api package is installed. After installing Cygwin successfully, we begin to install ns step by step: 1. Put the ns-allinone-2.27.tar.gz file in your Cygwin home directory, typically something like C:\cygwin\home\xxx(where XXX is your login name); 2. Launch Cygwin, start an XFree86 server if you see fit startx 3. From your Cygwin (bash) prompt, run the following commands to extend the installing files to directory ns-allinone-2.27: gzip -d -c ns-allinone-2.27.tar.gz | tar xvf - 4. After extending, you can install everything by doing: cd ns-allinone-2.27 ./install 5. Update your /home/XXX/ns-allinone-2.27/.bashrc file by adding the following commands to it: NS_HOME=/home/XXX/ns-allinone-2.27/ PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/bin:$PATH LD_LIBRARY_PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:\ $NS_HOME/otcl-1.8:$NS_HOME/lib:$LD_LIBRARY_PATH TCL_LIBRARY=$NS_HOME/tcl8.4.5/library 6. Run the validation tests with(optional): cd ns-2.27 ./validate Now you start ns with the command 'ns ' , where '' is either the name of the Tcl script file which defines the BProbe simualtion scenario or the PATH one. 3. Installing ETVOC tool: -------------------------- To compare the difference of traffic volume that SDSP and SMSP generate, based on the SDSC dataset [Jac97, Dow99a], we develop a Java class analyze.java, for Estimation of Traffic VOlume for Convergence (ETVOC) to analyze the traffic. In order to run ETVOC tool, we need to install it step by step: 1. Download and install Javatm2 Platform, Standard Edition (J2SEtm) JRE or SDK; 2. set PATH points to the directory where the java and javac executables exist. set PATH=%PATH%;[JRE directory]\bin; or [SDK directory]\bin; 3. set CLASSPATH set CLASSPATH=[JRE directory]\lib; or [SDK directory]\lib; Note: [JRE directory] is usually "C:\Program Files\Java\j2re*". [SDK directory] is usually "C:\j2sdk*". 4. make sure the sdsc.dump file is under the same directory where the analyze.java exists. Now you can start analyzing the simualtion result by java analyze