2.2.5. Example: TCP Reliability

TCP is used to transport continuous streams of data split into multiple data packets, with each data packet carrying a fragment of the continuous stream. A packet is identified by its position within the stream and protected by a two byte checksum.

The recipient acknowledges the delivery of a data packet by notifying the sender of the position within the stream that the recipient is at. The sender interprets the first acknowledgement of a certain position as a positive acknowledgement of a data packet at that position, and any consecutive acknowledgements of a certain position as a negative acknowledgement of a data packet after that position. For sake of efficiency, traffic in both directions is supported and data packets sent in one direction also serve as acknowledgement packets in the other direction.

Modifications of TCP that allow selective acknowledgement and retransmission exist.