Simple Web Inverted System Simulation - SWISSCopyright: Center for Advanced Internet Architecture, Author: Wendy Vanhonacker
SWISS is a simulation tool allowing the user to evaluate the performance of an inverted capacity network. The main goal was to implement a simple network with only three computers that would allow us to analyse different scenarios with differents network architectures. The tool allows the user to define:
- a set of web pages the client will have to download from the server,
- an architecture of the network mainly defined by the distances between the servers and the client
- some parameters for the simulation such as the output visualization.
2. Network architecture
First in order to use this tool, you will need to set up a basic environment for the tool. SWISS has to be installed on one machine, that we will call the client. The general architecture is setup like this:
Basic network architecture
From the client, you will be able to download a page from a remote server. If this page is cachable, then the page will be automatically downloaded from the cache server which is supposed to be closer from the client. This is what happens in a real life simulation. In an inverted network, the cachable page will be stored in a cache server which will practicalle be as close as possible from the client, so the delay from the client to the cache server is then set to 0 ms.
The bridge and the server need to have a couple of softwares installed. To setup one of your machine as a bridge, please follow instructions from Appendix1 of "Evaluation of the FreeBSD dummynet network performance simulation tool on a Pentium 4-based Ethernet Bridge" report.
In order to simulate inverted capacity networks you will have to set the server machine with the Jail Host Toolkit (JHT), so that you can have multiple virtual hosts on one machine. If you can't access the toolkit, you can setup three machines connected to the bridge. One jail will act as the main server, the two other ones are 'cache' servers, one for the inverted network and one for non-inverted networks.The virtual network architecture is thus like this:
Virtual network architecture
The output will be the time that the tool took to download the web page(s). Ultimately you can also have a plot of all the download times.
SWISS is split in two parts. The first one is the population tool that will create web documents to the satisfaction of the user and will populate the servers with these desired documents. The user can describe to the tool the web document he ultimately will simulate, or choose between a set of predefined web documents. The tool will then send those new documents to the corresponding servers. The second part is the simulation where the user can define the network architecture: delays between client and main server and client to cache servers.
To run SWISS, you need:
- java J2SE 1.4.2. If you don't have it get it from http://java.sun.com or from our website.
- FreeBSD > 3.4
- Apache HTTP server on each server. With FreeBSD, you can also get it from pkg_add -r apache??, but you have to make sure that the web documents will be in /usr/local/www/data-dist/ because that is where the web documents newly created will be sent to.
- Gnuplot >3.7.2
- to install the bridge following the instruction from Appendix 1(see point 2).
- Create a directory where you are going to put wget_extended and the swiss tool.
- Get wget_extended here
- Install wget_extended on you machine. this will replace your actual wget. If you want to keep the older version, install it another directory
- gzip -d wget_extended_1.0.tar
- tar -xf wget_extended_1.0.tar.gz
- cd wget_extended_1.0
- Run ./changeDirs $PWD as root
- chown $USER src/*
- Exit from root
- Go back as root, and run printenv ot make sure WGETDIR is set
- Run ./configure
- Run make && make install as root
Get the swiss tool here
- gzip -d swiss_1.0.tar.gz
- tar -xf swiss_1.0.tar
- Copy it to the newly created directory
- cd swiss_tool
- Run ./configure.sh to apply your directory architecture to the tool.
- Edit var.h and change the ip address to the corresponding ips of your 3 servers.
- Edit simulate.sh and change the ip address to the corresponding ips of your 3 servers.
In order to have the right network setup, follow the instructions from Appendix 1. However, when setting the bridge and dummynet, in point 2 you need to create a shell script. Copy the one that is in the network folder, as root do
scp swiss_tool/network/dummynet.sh BRIDGE_IP:/usr/local/etc/rc.d
Continue with the rest of the instructions.
On the client, once everything is setup, hardware and software, go to your swiss_tool and run java Swiss as root
6. The SWISS GUI
As you can see, the tool is split into two tabs, one is the population setup and the other is the simulation setup.
Population SetupYou can either create predefined web documents, or create your own web documents. The predefined web document list offers a choice of web pages that have been chosen to be a good representation of typical web pages. You can choose:
When this is done, click on "Start Populate". This might take a minute.
- between cachable and non-cachable documents,
- the number of objects
- the number of cachable objects
- the order of these objects (if there are)
- the size of the objects.
If you want to create a while range of documents, select "All documents( predefined list)".This might take a while.
First it is recommended to clean your servers, in case older document version are still there, click "Clean all existing documents first".
If you chose to create your own document, go to "Flexible document". This allows you to define your own order of objects with there sizes and cachability. You also need to define whether the document is cachable or not. Then click on " Start populate".
Simulation SetupOnce you are sure that the servers are populated, you can simulate them. First you need to choose what kind of network you want to simulate: if it is a realistic network, or an inverted capacity network, or you can still choose both to be able to compare them at the end.
You also need to setup the architecture of the network: the delays between the client and the servers. Select the number of times you want to download the page.
Then, you need to choose between the list of existing file which one you want to download. You can choose one or multiple pages, depending on there characterisitcs. If you want to see the list of existing documents, click on "Select from the list of existing documents" and choose one from the list (the description of the file will appear if you stay on the name for a while.
Once everything is setup, click on "Start".
After the simulation, the tool will ask you if you want to see a plot of the results.
The results will be saved in the "data" directory.