This illustration uses a familiar structure of a sender and receiver positioned side-by-side, with dotted lines extending vertically downwards from each to indicate the respective timelines and send and receive operations depicted with blue arrows going back and forth between the two timelines. Here we see multiple operations, as five packets are being sent by the sender. However, this illustration also includes sequence numbers for each operation; each sequence runs from 0 to 9, though different groups of numbers are highlighted in blue in each step of each operation.
Operations begin at the topmost part of the sender's timeline, at a point labeled "pkt0 sent." Sequence numbers 0123 are highlighted. A blue arrow extends diagonally downward to the right towards the receiver's timeline, to a point labeled "pkt0 rcvd, delivered, ACK0 sent." Sequence numbers 1234 are highlighted. Below pkt0 on the sender's timeline, pkt1 is sent. Sequence numbers 0123 are highlighted. An arrow extends to the receiver's timeline, to a point labeled "pkt1 rcvd, delivered, ACK1 sent." Sequence numbers 2345 are highlighted. Below pkt1 on the sender's timeline, pkt2 is sent. Sequence numbers 0123 are highlighted. An arrow extends halfway and stops, indicating a loss. Below this point on the sender's timeline, pkt 3 is sent from a point labeled "pkt3 sent, window full." Sequence numbers 0123 are highlighted. An arrow extends to the receiver's timeline to a point labeled "pkt3 rcvd, buffered, ACK3 sent." Sequence numbers 2345 are highlighted.
Below pkt3 on the sender's timeline, the sender receives ACK0, sent by the receiver in response to pkt0. This point on the sender's timeline is labeled "ACK0 rcvd, pkt4 sent." Sequence numbers 1234 are highlighted. An arrow extends to the receiver's timeline to a point labeled "pkt4 rcvd, buffered, ACK4 sent." Sequence numbers 2345 are highlighted. ACK4 is sent.
Below pkt4 on the sender's timeline, the sender receives ACK1, sent by the receiver in response to pkt1. This point on the sender's timeline is labeled "ACK1 rcvd, pkt5 sent." Sequence numbers 2345 are highlighted. An arrow extends to the receiver's timeline to a point labeled "pkt5 rcvd; buffered, ACK5 sent." Sequence numbers 2345 are highlighted. ACK5 is sent.
Below pkt5 on the sender's timeline, pkt2 experiences TIMEOUT. This point on the timeline is linked to the previous point on the timeline where pkt2 was originally sent. Pkt2 is now resent. Sequence numbers 2345 are highlighted. An arrow extends to the receiver's timeline to a point labeled "pkt2 rcvd, pkt2,pkt3,pkt4,pkt5 delivered, ACK2 sent." Sequence numbers 6789 are highlighted. ACK2 is sent.
The final point on the sender's timeline is labeled "ACK3 rcvd, nothing sent." Sequence numbers 2345 are highlighted.