nTCP
has imbedded congestion control. When ACKs come back with a delay (i.e. timers expire) the window size is reduced by the sender. The sender will
only send data = min{congestion
window, receiver (or sliding) window}.
nTCP
also uses something called slow start: The sender starts off with only sending 1 (in
some cases 2) packet, then
doubles that if the ACK comes back before the retransmit timer expires. It keeps on
doubling until it reaches
a threshold then goes into a linear increase (i.e., adds one to the window size). If at
anytime an ACK is delayed,
it sets the threshold to half the current congestion window size and starts again with slow
start.