3.1:
Introduce the idea of TCP simulation models, how things might be
simulated.
Introduce validating such a model.
3.2:
Cover a set of simulators:
OMNeT++:
* DES, general, mainly communication networks
* object oriented, component architecture, C++
* education, wireless, optical networks, TCP/IP
* GUI, domain specific language
* Basic TCP model, basic testing suite
OPNET:
* DES, network simulator
* object oriented, language?
* networking research, lots involving TCP
* GUI
* Featurefull TCP model, no known validation
SSF:
* DES, general, designed for parallelism
* object oriented, Java or C++, interface only
* SSFNet used for large scale (BGP) sims, worms, TCP
* SSFNet has a simple TCP model based on ns-2 validation
* DaSSF used for Internet, large sensor networks
* DaSSF has a Very simple TCP, including a fluid model
ns-2:
* DES, network simulator
* object oriented, C++ w/ OTcl
* much networking research, tons of TCP
* Featurefull TCP models, good validation suite
Other simulators:
* GTNeTS: DES, C++, large scale, TCP models
* J-Sim, DES, sensor networks, TCP models
3.3: Network simulators with real world TCP code
Important introduction to hand-modified code and such.
x-Sim:
* TCP based on 4.3 Berkeley Unix TCP/IP stack
* x-sim runs the x-kernel and can run x-kernel apps
* TCP stack is modified to fit into the new kernel
* old
ATM-TN and IRLSim:
* ATM-TN an ATM simulator with a TCP model derived from Net/3, heavily
modified. Most probably not widely used. But was used to investigate
TCP dynamics over ATM networks.
* IRLSim was an RSVP simulator but expanded to be general. Based on Parsec,
it includes a version of BSD: 4.4-Lite, which is ported to Parsec. No
known research which relies upon its TCP implementation.
NCTUns:
* Different architecture, uses tunnel interface. Does require kernel
patches.
* Only supports Linux, FreeBSD support was dropped.
* Requires modifications to the host machine.
* higher resource requirements.
* Can run real unix apps.
* Uncertain support for multiple instances?
OMNeT++ extensions 1:
* FreeBSD 4.9, hand modified.
* Most modifications are kept to a minimum, but they do multiple instance
support by hand.
* Not validated thoroughly.
OMNeT++ extensions 2:
* NetBSD. Uncertain of details.
* A small amount of direct validation.
GloMoSim:
* Basec on Parsec. Used for a lot of wireless research.
* FreeBSD 2.2.2. Probably ported to Parsec (like IRLSim?).
* Stated in passing that it is validated against an operational prototype.
* Used in some TCP research.
* Now QualNet, state of real world code uncertain.
dONE (Lunar):
* Linux 2.4.3.
* Weaves, rewrites the binary (at link time?) to support multiple instances
* Basic method of moving stack to user-space is like the one we use (and
Alpine of course).
* Only very basic validation.
(Common threads)
- Network stack: Linux (version), FreeBSD (v), NetBSD (v), BSD (other v)
- Multiple instance support: hand modified, programmatic binary, special
simulator support, none/not stated, unsure
- Process to move into user space: large hand modifications, small hand
modifications,
- Application support: real unix apps, modified real unix apps, simulator
models only, unsure
- Simulator support: integrated into existing, new, specific for real world
model
- Validation:
So classifying our simulators + models for real world code we have:
x-Sim: BSD (4.3 Berkeley Unix TCP/IP), special sim support, large hand
modifications, modified real unix apps, specific for real world model, unstated
ATM-TN: BSD (Net/3), hand modified, large hand modifications, simulator
models only, integrated into existing
IRLSim: BSD (4.4-Lite), not stated, unsure, simulator models only,
integrated into existing, unsure
NCTUns: Linux (recent) + FreeBSD (semi-recent), unsure, small hand
modifications, real unix apps, specific for real world model, unsure
OMNeT++ 1: FreeBSD (4.9), hand modified, small hand modifications, simulator
models only, integrated into existing, some validation
OMNeT++ 2: NetBSD (?), unsure, unsure, simulator models only, integrated
into existing, some validation
GloMoSim: FreeBSD (2.2.2), unsure, unsure, simulator models only, integrated
into existing, some validation
dOne/Lunar: Linux (2.4.3), programmatic binary, small hand modifications,
real unix apps, new, some validation
3.4: Research using TCP simulation
Three groups of research using TCP simulation. Introduction to these.
3.4.1: group 1: TCP mods
Lots of examples.
3.4.2: group 2: TCP under diff. conditions
Lots of examples.
3.4.3: group 3: analytical model validation
Some examples.
3.5: Conclusions
A bit of a summary.
Introduce how in some cases simplified models are preferred (wrong place
for this)