Swing is a closed-loop, network responsive traffic generator that accurately captures the packet interactions of a range of applications using a simple structural model. Starting from observed traffic at a single point in the network, Swing automatically extracts distributions for user, application, and network behavior. It then generates live packet traffic corresponding to the underlying models in a network emulation (ModelNet) environment running commodity network protocol stacks. By modeling fine-grained user, network and application behavior Swing can reproduce burstiness in traffic across a range of timescales. Swing also provides users with a set of intuitive knobs that can be tuned to project traffic to alternate scenarios. For instance, it allows the user to change assumptions about network conditions, application mix and application characteristics, for instance the response size of objects, to generate new traffic.
Kashi Venkatesh Vishwanath
Amin Vahdat
| 2008-09-19 | Swingxficgenerator-0.3.1.tar.gz |
|
|
README
Swing, is a closed-loop traffic generator, aimed
for laboratory experiments. The current beta release
possibly contains a number of bugs that have not
manifested in the limited testing the authors have
done before releasing the source code.
We would love to hear about any such findings. Any
ideas for improvements are of course, always welcome.
Please read all the categories, INSTALL, USAGE, ASSUMPTIONS,
and DESCRIPTION before prooceeding with experimentation.
The brief explanation here assumes BASH as the shell
environment. Please alter the commands as appropriate
per your environment.
ASSUMPTIONS:
============
* You have sudo access on all machines.
* A sample hosts.xml is provided, please modify as appropriate.
* Make sure tcpdump is in your path.
* Make sure modelnet is up and running in the cluser, and that
modelnet's bindir is in your path.
* /usr/local/bin/bash and /usr/bin/bash both exist.
* All machines used in the cluster can mount the same NFS dirs.
* gexec/gexecd/authd are all present in /usr/local/sbin
* Each trace that acts as input to Swing is self-contained
in a dir.
* Each expt produces a trace that is, again, self-contained
in a dir, which in-turn is a subdir of ${SWINGTRACES}.
INSTALL:
========
$ ./configure --prefix=
$ make
$ make install
USAGE:
======
$ export SWINGHOME=
(i.e. same as that used in prefix above)
$ export PATH=${SWINGHOME}:${PATH}
now here are two different usage scenarios
Scenario1:
----------
Say you have a single file (in pcap format).
Rename it as fileboth.dump
create a directory for storing the trace, say tracedir1
$ mkdir /home/john/tracedir1
$ cp tracefile.dump /home/john/tracedir1/
say the outputs are in some dir ${SWINGTRACES}
and this particular expt is in dir swingexpt1
now call
$ swing_masterscript.sh /home/john/tracedir1 ${SWINGHOME} swingexpt1 ${SWINGTRACES}
After the expt the trace will be collected in dir ${SWINGTRACES}/swingexpt1
as fileboth, file0 and file1
Scenario2:
----------
Say you have two files (file0 and file1), corresponding
to the two directions of traffic
create a directory for storing the trace, say tracedir1
$ mkdir /home/john/tracedir1
$ cp file0 file1 /home/john/tracedir1/
say the outputs are in some dir ${SWINGTRACES}
and this particular expt is in dir swingexpt1
now call
$ swing_masterscript.sh /home/john/tracedir1 ${SWINGHOME} swingexpt1 ${SWINGTRACES}
After the expt the trace will be collected in dir ${SWINGTRACES}/swingexpt1
as fileboth, file0 and file1
Note, that both scenarios are almost identical.
DESCRIPTION:
============
swing_masterscript.sh involves 3 stages
Stage 0: Convert 2way trace (say fileboth.dump) to 1way traces (file0 and file1) if
neeeded.
(scripts/swing_trace_convert_2way_2_1way.sh)
Stage 1: Extract user/network/application parameters from the trace
(scripts/swing_extractuserappnwparams.sh)
Stage 2: Configure the expt with metadata etc.
Run the xpt.
Collect the resulting swing trace.
(scripts/swing_exptpreprocess.sh)
These stages can be called independently too.
Please modify as appropriate.
Kashi Venkatesh Vishwanath
| ToN '09
|
Swing: Realistic and Responsive Network Traffic Generation
Proceedings of IEEE/ACM Transactions on Networking 2009. Kashi Vishwanath, Amin Vahdat
|