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
Tue Oct 20 11:05:46 1998 367000 12 188012 4496 800
Tue Oct 20 11:05:47 1998 368000 14 112616 4693 3313
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)|
Mon Aug 3 22:32:36 1998 263000
26 10472 674864
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:
|Timestamp||Elapsed time||connections||pages||bytes out||bytes in||cummulative conn. rsp time||cummulative page rsp time|
|Server name||connections||cummulative conn. rsp time||pages||cummulative page rsp time|
STAT: Wed Sep 30 17:11:00 1998, 142081, 10, 8, 3992, 76562, 11121, 11977
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
|Timestamp (gettimeofday)||servername||time (ms)|
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 18.104.22.168 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,
Currently uses testnet.
Files in distribution: dl_cdf, delaytable.pl
1) Bruce A., Mah: An Empirical Model of HTTP Network Traffic.
2) RFC 1945: HTTP/1.0 (not RFC 2324:-)