No matter what you do when connected to a network—for example, connecting to a web server or printer—the connection is governed by a small number of protocols. These protocols provide logical endpoints to which you might make requests, send replies, or send data. While there are many protocols that work together in order to transmit information from one location to another, the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP) are responsible for tethering the applications on either end of the connection together.
When an application is written, the developer determines whether it will be based on TCP or UDP. These two protocols govern a majority of the traffic running on networks today, though they do not handle it in the same way. For example, visiting a web page creates a TCP connection between the client computer and the web server. Operationally, this connection has a particular behavior. In contrast, a Voice over IP (VoIP) connection has a very different behavior, so UDP is used to encapsulate the data.
This chapter covers TCP in detail, including the packet flow between client and server machines and an explanation of the packet content. Since these connections are between clients (host computers) and a server, the client/server model will also be covered. As in the previous chapters, our discussion will center on topics found in standards or RFCs and actual network operation.
TCP was first described way back in ...