Due to the rapidly increasing amount of hosts, it was almost foreseeable: the first “Internet Congestion Collapse” occurred as a reaction to network overload. In order to avoid similar collapses in the future the Transmission Control Protocol (TCP) gets upgraded with so-called slow-start- and congestion-avoidance-methods.
The slow-start-algorithm is designed to slowly start with the file transmission and increase the bit rate exponentially, as long as no packets get lost. At first only one segment is sent. For every segment acknowledged by the receiver, two new segments can be sent. Thus, the curve rises exponentially, which means the bit rate of the connection quickly approaches the available bit rate on the network.
If the bit rate exceeds the maximum capacity, detected for example by a lost packet which was recognized by a repeated acknowledgement and not by a timeout, the congestion-avoidance algorithm intervenes. The amount of allowed segments is now cut in half and only increases linearly. If no extraordinary congestion occurs, the TCP connection remains in congestion-avoidance mode. However, is there a timeout, the amount of allowed segments is reset to one and a new slow-start begins, which now can only rise exponentially to 50% of the last value.
TCP Add-on in MI-Learning Computernetze(in German)