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.