One of the key elements of the Transport layer is that the sending computer must hold on to all of the data it is sending until the data has been acknowledged. Once the receiving computer acknowledges the data, the sending computer can discard the sent data. We can look at this graphically when a message is broken into many packets. Here, the first ten packets of the message have been sent and acknowledged by the destination computer (‘a’). The sending computer has sent six more packets (‘S’), and then stopped because it reached its window size.
There are three packets that have been sent but not yet received (“S”). Since there are many hops in the network, it is very common for more than one packet to be enroute in the network at the same time.
The Transport layer on the receiving computer has received and acknowledged ten packets and delivered them to the receiving application (‘a’). 1 The Transport layer on the destination computer has received more three packets (‘R’), but one packet is out of order. Receiving a packet out of order is not a cause for concern if the missing packet arrives in a reasonably short amount of time. As long as all the packets are received, the receiving Transport layer will reconstruct the message, fitting the packets together like puzzle pieces, and deliver them to the receiving application.