A sender has a Congestion Window (cwnd). The cwnd is defined as the bytes starting from the first unACKed byte, to the last availale byte (a set of these may already be in-flight but unACKed).
The sender will send all the bytes within its' cwnd, wait RTT for ACKs, update the cwnd, and start again.
| (3) |
| (4) |
The cwnd is adjusted based on the observed congestion, thus limiting the rate at which the sender sends packets.