In a TCP connection, the underlying network drops
packets when it lacks the capacity to deliver all the packets
sent by the sender to the receiver. This phenomenon
is called congestion. TCP at the sender’s side will not
receive acks for these dropped packets. Since TCP is a
reliable protocol, the sender must retransmit all these
packets. The mechanism used by TCP to deal with such
situations is called TCP Congestion Control. In this article,
we explain the basics of congestion control and provide
experiential exercises to help understand its impact
on TCP performance.