We’ll then return to principles and confront one of the most fundamental problems
in computer networking—how two entities can communicate reliably over a
medium that may lose and corrupt data. Through a series of increasingly complicated (and realistic!) scenarios, we’ll build up an array of techniques that transport
protocols use to solve this problem. We’ll then show how these principles are
embodied in TCP, the Internet’s connection-oriented transport protocol.