Solution (source code)

= Solution

<Transport sequence numbers> identify the position of data within an exchange. They let a receiver restore order, recognize duplicates, identify missing data and state precisely what has been received in an <acknowledgement>. In <TCP> they count <bytes>, so one <packet> can contain several consecutively numbered <bytes>.

A <send window> is the range of numbered data the sender is currently allowed to have outstanding. It permits several transmissions before their <acknowledgements> return, which keeps the path busy despite <network latency>, while bounding unacknowledged data and the information needed for <data retransmission>. A <receive window> specifies the range the receiver is prepared to accept, limiting buffer use and rejecting data outside the current range; an implementation may retain acceptable out-of-order data until earlier data arrive. As <acknowledgements> and consumption advance, these ranges slide, giving a <sliding window protocol>. Thus
$$
\boxed{\text{numbers identify data; send/receive windows bound outstanding/acceptable data}.}
$$