Ensuring realistic modeling of HTTP traffic is done by using an implementation of the HTTP traffic model described in (1).
It should be noted that this is a practical introduction for running the experiments.
The THTTP simulation tool comes in two parts, a server side which represents the "webserver" (THTTPD) and a client side which represents a number of browsers. In the following we will first look at THTTPD and then THTTP. After describing the simulation package a couple of tools that supports running experiments are described.
The server side of the HTTP traffic simulation. As mentioned THTTPD
simulates the server side of HTTP traffic. Basically it just replies to
any request from a browser by returning a number of bytes following the
HTTP model.
Timestamp | Elapsed time (ms) | Connections - number of finished replies | Bytes Out | Bytes In | response time - the time it took to process a request |
A sample log clipping:
Tue Oct 20 11:05:45 1998 366000
34 426263 12997
3416
Tue Oct 20 11:05:46 1998 367000
12 188012 4496
800
Tue Oct 20 11:05:47 1998 368000
14 112616 4693
3313
host:howard138;port:6789
host:lovey138;port:6789
host:speedy138;port:6789
host:brain138;port:6789
host:petunia138;port:6789
PS: There must not be a newline after the last entry - then THTTP will break!
Default logging prints a single line for each logging interval,
it has the following format:
Timestamp | Elapsed time (ms) | connections | bytes out | bytes in | cumulative conn. rsp time (ms) |
Example:
Mon Aug 3 22:32:36 1998 263000
26 10472 674864
7489
Mon Aug 3 22:32:37 1998 264000
44 18969 554220
11866
Mon Aug 3 22:32:38 1998 265000
31 9979 588430
15724
Mon Aug 3 22:32:39 1998 266000
33 9679 115978
4910
Extended Logging: Prints a default logging line as well as a
line with cummulative statistics for each server. Furthermore
these statistics include page statistics, instead of only connection
response times. A default stats line includes:
STAT:
Timestamp | Elapsed time | connections | pages | bytes out | bytes in | cummulative conn. rsp time | cummulative page rsp time |
SERVER:
Server name | connections | cummulative conn. rsp time | pages | cummulative page rsp time |
Example:
STAT: Wed Sep 30 17:11:00 1998, 142081,
10, 8, 3992,
76562, 11121, 11977
SERVER:howard138,3,3134,2,2454
SERVER:lovey138,5,6272,4,7805
SERVER:speedy138,1,1318,1,1319
SERVER:brain138,1,397,1,399
SERVER:petunia138,0,0,0,0
Detailed Logging: During detailed logging every connection or page request is logged as a single entry. Because of the amount of data captured, the data is dumped to a binary file (1-2MB). Note that this logging mechanism may use more memory that is available as primary memory.
THTTP provides fuctionality to read the binary logfiles with the -rf option. Each line of a detailed log
req entry:
Timestamp (gettimeofday) | servername | time (ms) |
Example:
version: 1
servers: howard138, lovey138, speedy138, brain138, petunia138
mean per connection response time: 1098.153785
mean per page response time: 4551.405574
req: 908980000.888406 lovey138
416
req: 908980003.733097 brain138
306
page: 908982697.583750 speedy138
243
page: 908982697.856280 lovey138
2123
All of these tools are currently used on the Dirt Research Network -
and will require some modification
in order to function on the class network.
None of the scripts require root access.
All these tools expect that each experiment is has the follwing directory structure:
/some-dir-which-is-accessable-from-all-hosts-in-the-network/ ... /expname
expname/plots
# plots
expname/plots/tmp # temporary space for plot producing
scripts.
Example configuration file:
delay floyd134 brain138 0 5
delay floyd134 howard138 210 5
route thelmalou134 152.2.134.5 192.168.137.4 howard138
window brain138 16384
window howard138 16384
Each entry describes a test to run. a delay test consist of a source
host, dst host, delay, allowed jitter. A delay test
is done by performing 3 consecutive pings and taking the avrage.
A route test consist of the list of hosts which should occur during a trace route. In this case from thelmalou134 to howard138.
The window test checks the size of the windows of a given host. See the sample configuration file for further instructions.
Files in distriution: testnet and testnetconfig
The test will start the simulator and various logging stuff. All logging is done to local disk space. When the experiment is done, the logs are copied to central storage thrugh NSF.
Look at the sample configuration file for further instructions.
Files in distribution: runtest, localclientrun, localserverrun, testconfig,
killsomething
Currently uses testnet.
Files in distribution: dl_cdf, delaytable.pl
sample:
mixxel@cs.unc.edu
1) Bruce A., Mah: An Empirical Model of HTTP Network Traffic.
2) RFC 1945: HTTP/1.0 (not RFC 2324:-)