Site Navigation


Welcome

Introduction

TCP Simulator
Operation

Running the
Simulator

Simulator
Capabilities and
Limitations

Downloads

Java Class
Documentation

Log Book

Useful Links



Email Me

TCP Simulator Operation => Transmission Link Layer


Transmission Link Layer

The Transmission Link Layer simulates the operations of the communications link that connects the the Left and Right TCP Layers in the simulator. Its role is to accept TCP segments sent by each TCP Layer, generate and simulate data traffic conditions experienced by the segment as it travels through the Transmission Link Layer before finally delivering the TCP segment to its destination TCP Layer.

The following is a brief description of how the Transmission Link Layer generates/simulates data traffic conditions experienced by traveling segments. For a complete explanation, please refer to Chapter 5 in the thesis.

Given that the 2 main data traffic conditions experienced by traveling TCP segments are -

  • Delay - How long it takes for the segment to get to its destination.
  • Loss - Whether the TCP segment is lost or corrupted during its travels.
The operations of the Transmission Link Layer revolves around generating and simulating these 2 conditions for TCP segments traveling through the Transmission Link Layer.


Generating/Simulating Delay

Delay is simulated by generating a delay value for the traveling TCP segment and having the Link Layer hold the segment for a period equal to this delay. When the period ends, the segment is passed up to the destination TCP Layer.

Delay can be split into 2 components.

  • Transmission Delay-How long it takes for the TCP Layer to transmit the segment onto the communications link. This is determined purely by the TCP segment's size and the bandwidth of the link.


  • Propagation Delay-How long it takes for the segment to travel over the communications link to its destination. This is determined by the link's underlying network topology and the traffic load currently present in the link.
To reflect this dichotomy, TCP segments traveling through the transmission link layer experience first a transmission phase followed by a propagation phase before arriving at their destinations.

However, whereas the transmission delay can be calculated directly to determine the length of the transmission phase, the network topology is not defined for this simulator and so the length of the propagation phase cannot be directly determined. Instead, statistical moddels that have being empirically verified to model delay magnitudes well on the Internet are used. Such models include the Pareto and Gamma distributions (shown below) that can be sampled directly to generate propagation delays.

Delay Gamma Distribution

Bovy, C.J., Mertodimedjo, H.T., Hooghiemstra, G., Uijterwaal, H., Van Mieghem, P., "Analysis of End to end Delay Measurements in Internet", Proceedings of PAM 2002, March 2002


Generating/Simulating Loss

Loss is simulated by generating a loss value for a traveling TCP segment. If the loss value indicates that the segment is lost, it is marked. On arrival at its destination host, the TCP Layer then checks whether the segment is marked and if so, the segment is discarded. Otherwise the TCP segment is processed as normal.

Similar to propagation delay, segment losses cannot be directly determined as the communications link's underlying network topology, as well as the traffic load currently present in the link, determines whether any given traveling TCP segment is lost. So again, statistical models that have being empirically verified to model loss well on the Internet are used. Such models include those that model the length of a loss burst (such as the Pareto Distribution shown below) as well as models that model whether a segment is lost at any given time (such as the Extended Gilbert model).

Loss Burst Length Pareto Distribution

M. S. Borella, D. Swider, S. Uludag, G. Brewster, "Internet Packet Loss: Measurement and Implications for End-to-End QoS," Proceedings, International Conference on Parallel Processing, Aug. 1998.


Transmission Link Layer Operation Example

To illustrate how the Transmission Link Layer works, an example of a TCP segment traveling from the Right to Left host is shown below.

Steps 1-4 shows what occurs when a sent TCP segment is passed down from the Right TCP Layer (Step 1); the TCP segment enters its transmission phase (Step 2) and a Queue Event signifying the end of that phase is scheduled for execution at a future point in time corresponding to the segment's transmission delay (Step 3). When that Queue Event is dispatched, the TCP segment has being completing transmitted onto the link and exits its transmission phase (Step 4).

Steps 5-8 shows what occurs in the propagation phase; once the segment enters the propagation phase (Step 5), delay and loss conditions are generated for it (Step 6). If the loss value indicates the segment is lost, it is marked. A Queue Event signifying the end of the propagation phase is scheduled for execution at a future point in time corresponding to the segment's generated propagation delay (Step 7). When that Queue Event is dispatched, the TCP segment has arrived at its destination and exits the propagation phase (Step 8).

Steps 9-10 shows what occurs when the segment arrives at its destination; a Queue Event signifying a new segment arrival is created and dispatched, causing the newly arrived segment to be passed up to the Left TCP Layer (Step 9) where it is processed by the relevant TCP event handler (Step 10). The handler first checks if the segment is marked as lost and if so, discards and ignores the segment. Otherwise the segment is processed by the handler as normal.