Home - GiBg1aN/TCP-Simulator GitHub Wiki

TCP (Trasmission Control Protocol)

The TCP protocol is one of the most important protocol located at the trasport layer of the TCP/IP model. In this work, it's important to know what it is the congestion window and how data/acks segments are sent.
Data segments are sent from a user until the number of segments reachs the congestion window size, that manage the trading limits of a the user on the web.
When a data segment arrives at his destination, the receiver send back an ack segment to confirm the reception.

AIMD(Addictive increase / Multiplicative decrease)

The AIMD TCP implementation works as follow: every time that a segment complete a round trip without errors, respecting the timeout, the congestion window increases its size of one MSS (Minimum Segment Size) unit. Otherwise, the congestion window will be resetted, restarting from 1 MSS.

Tahoe

The Tahoe TCP implementation provides the following behaviour: every time that a segment complete a round trip without errors, respecting the timeout, the congestion window doubles its size until it overcomes a threshold. When this threshold is reached, the congestion window has a linear growth. The threshold follows the congestion window rise. If the user receives three duplicated acks or the timeout expires, the congestion window will be resetted, restarting from 1 MSS. When the congestion window is resetted, the threshold will get halved considering the size before the reset.

Reno

The Reno TCP implementation is similar to TAHOE one. The only difference is that when the user receives three duplicated acks, both the congestion window and the threshold will get halved (Fast Recovery).