|
Site Navigation
Welcome
Introduction
TCP Simulator Operation
Running the Simulator
Simulator Capabilities and Limitations
Downloads
Java Class Documentation
Log Book
Useful Links
Email Me
|
Simulator Capabilities and Limitations
Simulator Capabilities and Limitations
The following is a description fo the simulator's capabilities and
limitations. For
a more detailed discussion, please refer to Section 8 of the
thesis.
TCP Simulator Capabilities
The TCP simulator developed in this thesis fulfils all the aims defined
in the Introduction. By -
-
Separating flow control simulation activity (encapsulated in the TCP Layer) from delay/loss generation activity (encapsulated in the
Transmission Link Layer), the simulator is capable of simulating
any flow control algorithm on top
of any type of generated delay/loss conditions.
-
Using empirically verified statistical models, the simulator is
capable of generating realistic
delay
and
loss
values similar to those found on the Internet.
-
Implementing a Dynamic Configuration Mechanism
that expresses TCP event handlers in module form, the simulator is capable of allowing
users to define any flow control
algorithm as a module set that can be loaded into the simulator at run time
for simulation.
-
Implementing a
Graphical User Interface that visualizes the operations inside the simulator,
the simulator is capable of visualizing how
flow control algorithms react when faced with different delay/loss conditions.
Currently, the TCP simulator is capable of simulating the
following flow control algorithms that
have being implemented
as module sets which can be loaded into the simulator for simulator purposes.
-
RFC 793 "Old Tahoe" TCP-The
most simple TCP variant. This is implemented as
the default handler module set
representing the basic version of TCP that is
always loaded by the TCP Layer to use as a base for patching
additional flow control algorithms onto in the simulator.
-
RFC 813 Silly Window Avoidance algorithm-An algorithm that
prevents excessive fragmentation of the TCP's send window.
-
RFC 896 Nagle's algorithm-An algorithm that
prevents excessive numbers of small TCP segments from being sent.
-
Karn's algorithm-An algorithm that
prevents erroneous segment Round Trip Time (RTT) measurements due
to segment retransmissions. (See
P. Karn & C. Partridge, "Round Trip Time Estimation", ACM SIGCOMM-87, August 1987)
-
Jacobson's Congestion Control algorithms-
A set of algorithms that introduces the use of a congestion window (cwnd) to
regulate the data send rate in TCP.
-
RFC 2581 - Reno Fast Recovery-
An algorithm that uses the arrival of duplicate Acknowledgement TCP segments to allow TCP to recover from a single segment loss efficiently.
-
RFC 2018 - Selective Acknowledgements (SACK) TCP-
An algorithm that allows TCP to selectively acknowledge out of order segments
received.
-
RFC 2582 - New Reno Fast Recovery-
An algorithm that uses the arrival of duplicate Acknowledgement TCP segments to
allow TCP to recover from multiple segment losses
quicker then Reno Fast Recovery.
-
Vegas TCP-
An algorithm that uses throughput measurement techniques to allow TCP to anticipate
congestion and reduce its data send rate before lossess occur.
-
RFC 1323 - TCP for Long Fat Networks (LFNs)-
A set of algorithms that allows TCP to operate efficiently over
communication links with high bandwidth and propagation delay.
-
RFC 3168 - Explicit Congestion Notification (ECN) TCP-
An algorithm that uses IP level router support to anticipate congestion and
reduce its data send rate prior to losses occurring.
For more information on what these algorithms actually do, please refer to Appendix 1
in the
thesis. For instructions on
how these flow control algorithms can be simulated, please refer to Section 2.1
in Appendix 2 of the thesis.
TCP Simulator Limitations
The main limitation of the TCP simulator developed in this project
arises from the static nature of the
delay
and
loss
models used.
Some flow control algorithms (i.e. Jacobson's Algorithms, ECN TCP and Vegas)
operate by reducing the data send rate when congestion is encountered, lowering the load in overburdened intermediate networks. This in turn clears congestion, allowing TCPs to subsequently send data with fewer losses, achieving higher performance.
But since delay and loss values generated by the statistical models used in the simulator stay identical regardless of how
a TCP varies its data send rate
(i.e. such models do not take into account a TCP's data send rate when generating
its loss and delay values)
, the higher throughput achieved by running such
flow control algorithms are not readily apparent. As a result, the lack of a reactive element in the
delay
and
loss
models used
generates static traffic conditions that prevent the performance gains achieved by specific flow control algorithms in the real world from being shown in the simulator.
However, while the delay and loss values generated may not be sufficiently realistic for use in
designing new algorithms (where simulated performance gains become important), they are realistic enough to trigger the operations carried out by different flow control algorithms to react to different delay and loss conditions encountered. Given that this simulator is intended to be a teaching and demonstration tool, the models currently implemented are sufficient for fulfill the simulator's requirements.
|