TCP Congestion Control Model

As an example of a network performance study, consider the TCP congestion control algorithm over a wireless link in which a host station A sends data to another host station B. Due to transmission interference and high incidence of errors in wireless communication, assume that every n th transmission from host A is lost (or corrupted).

For example, if n is 4 and A transmits sequences 1, 2, 3, 4, 5, 6, 7, 8, and 9, then the transmission numbers 4 and 8 will be dropped by the data-link layer. A limits the amount of data it sends, using the TCP slow start and congestion avoidance mechanisms. However, it does not implement fast retransmit or fast recovery.

We make the following assumptions in our simulation:

  1. Headers and ACKs are of size 0.
  2. The round trip time (RTT), which is set by the user, is preset to 1 s.
  3. The retransmission time-out is set to RTT + 0.01 s.
  4. The data in each frame is 1 KB.
  5. The link bandwidth is 100 KB/s.
  6. There are no other losses besides the ones mentioned above (however, every n th frame is lost irrespective of whether it is the original transmission or a retransmission).
  7. B sends an ACK for every frame it receives but may send cumulative ACKs for previously buffered frames.
  8. B has buffer space to advertise infinite receiver window.
  9. The congestion window (cwnd) at A does not increase when a duplicate ACK is received.

A “simjava” simulation toolkit is used for building the model. 4–5 It is based on a discrete event simulation kernel and includes facilities for representing simulation objects as animated icons on screen.

The model contains a number of entities, each of which runs in parallel in its own thread. An entity’s behavior is encoded in Java, using its body() method. Entities have access to a small number of simulation primitives that can be used effectively to schedule events, wait for events, hold the entity, and create animation and traces.

Using the model, traffic properties of wireless networks are modeled, and an error scenario using TCP congestion control mechanism is shown. The throughput for the simulated traffic was observed to be around 4.5 frames/s during the simulated time of about 4 s when cwnd = 8 and sthresh = 300.