Personal Miscellaneous TCP/IP GRID Quality of ServiceMulti-Cast  
Background high-speed tcp Transfer Tests Web 100TCP Tuning  

Web100

Web100 is a program suite for Linux machines that allows in-depth analysis of a TCP connection `on-the-fly'. Through the use of this kernel patch, and referencing some of the supplied APIs which were included with the package, we were able to create intrinsic data sets of each transfer test that were conducted with iperf.

Web100 keeps a tab on all TCP variables plus a few of its own which Web100 calls the TCP-Kernel Instruction Set (TCP-KIS). These show the state of the TCP connection with variables such as the cwnd, the ssthresh and RTT variables. More specifically, Web100 includes certain variables which allow the monitoring of the duration, frequency and amount of data that is sent in the sender, receiver and network states.


Installation

In order to install Web100, we needed a copy of the source files of the 2.2-14,16 or 18 kernel files\footnote{Available from kernel.org or similar Linux archive source.}.

After downloading the kernel source (2.4.16), we untar the file. These files will be placed in ./linux/ by default.

Next we have to download the web100 patch files from www.web100.org. Untaring the download should place the files in ./web100. We now need to apply the patch onto the kernel sources. 'cd' into the ./linux directory and type:

patch -p3 [path-to-web100]/web100-2.4.xx-<date stamp>.patch

This will apply the web100 patch appropriate patch onto your kernel version (xx). It is then necessary to configure the kernel settings using the commands,

make mrproper
make menu
config

Load the boston.config file - this should set up all the configurations required for the kernel install...

Please note that some in-depth knowledge of your computer system(s) is required to build a kernel for it. However, the most important aspects of the configuration are listed below.

In order to make web100 work, we must set the following options,

Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
Processor type and features --->
[*] Symmetric multi-processing support (Select for SMPs only)
Networking options --->
[*] IP: Allow large windows (not recommended if (16Mb of memory)
[*] Web100 networking enhancements (NEW)
[*] Web100: TCP statistics (NEW)
[*] Web100: default winscale sysctl variable (NEW)
(5) Web100: default winscale initial value (NEW)

It is important to add that certain network cards may not be supported on the version of the 2.2 kernel that you select. As such, it may be necessary to contact your network card vendor to obtain compatible drivers. In our case, we had to download and install drivers for our 3Com 3x09x card.

Now we have to make dependencies for the kernel with the command:

make dep

Then the modules for the kernel to use (sound cards, ethernet cards etc)...

make modules

Now we can compile the kernel image by using the command,

make bzImage

This will create a file called bzImage which should be copied to your /boot directory and linked with either lilo or grub (depending on your installation). As this is quite a dangerous operation, we need to become root first.

In this case, the file bzImage should be in ./arch/i386/boot/bzImage. So we need to copy the file over to the /boot directory.

cp arch/i386/boot/bzImage /bootvmlinuz-2.4.16web100smp

We also need to install the modules that we compiled earlier. This is done through the command:

make modules_install

Now configure grub (redhat 7.2) to use this boot image by editing /etc/grub/menu.lst

emacs /etc/grub/menu.lst

...

Once this is all set up, it should be possible to reboot with the web100 kernel you have just produced!\footnote{Or maybe not like in our case! - no one said it was going to be easy! Some fiddling around with the options may be required.}


Other

readvars - a program that outputs user definable variables from the web100 TCP-KIS to stdout.
readvars_grapher - a Perl program that takes log files from readvars and outputs variable tables.


Demostration

Click here for a live demostration of the web100 API using an iperf transfer from London.


Links

slac involvement
list of web100 tcp variables
Facilitating High Performace Network Use


Documentation

Current Web100 Statement of Work
Web100 Concept Paper
Automatic Bandwidth Delay Product Discovery

 

Mon, 3 November, 2003 15:13 Previous PageNext Page
 
 
    email me!
2001-2003, Yee-Ting Li, email: ytl@hep.ucl.ac.uk, Tel: +44 (0) 20 7679 1376, Fax: +44 (0) 20 7679 7145
Room D14, High Energy Particle Physics, Dept. of Physics & Astronomy, UCL, Gower St, London, WC1E 6BT