Last time, we discussed how TCP combines a flow control parameter (Advertised Window) and a congestion control parameter (Congestion Window) to determine how many bytes the sending device can transmit (Effective Window). We also mentioned that determining the optimum value for the Congestion Window is somewhat tricky because network congestion changes over time.
TCP has multiple mechanisms to determine Congestion Window and today, we'll describe one of those called Additive Increase/Multiplicative Decrease (AI/MD). AI/MD is typically used when the sending device is operating close to the available capacity of the network.
The basic assumption made by AI/MD is that if the sender does not receive an acknowledgement of a sent packet, the packet was dropped by the network due to congestion. Hence, when faced with a timeout, AI/MD assumes there is network congestion and cuts Congestion Window in half. Subsequent timeouts result in additional halving of Congestion Window, which leads to the phrase "Multiplicative Decrease."
While AI/MD decreases Congestion Window rapidly, it increases Congestion Window slowly. Every time that the source is successful in sending a Congestion Window's worth of packets, it adds the equivalent of one packet to Congestion Window.
Analysis of TCP throughput demonstrates that this slow increase and rapid decrease in Congestion Window results in throughput that resembles a saw tooth. This analysis also demonstrates that network throughput can be significantly impacted by packet loss.
Future newsletters will examine some of the techniques that are used to overcome the performance limitations of TCP.