Just like a company can create its own shipping department, an application layer protocol could avoid using a transport layer protocol, but it almost never happens. Why? Well, the transport layer protocols already exist. They provide great services that many applications need. It takes a lot less time and effort for the application to use a transport layer protocol. In short, it's better, faster, cheaper, and simpler for an application to use a transport layer protocol.
So, what do these transport layer protocols do for the application? This chapter focuses on one of those protocols in particularTransmission Control Protocol (TCP), which is defined in RFC 793. TCP/IP does have another transport layer protocolUser Datagram Protocol (UDP)but TCP is much more interesting. TCP provides a lot of features, and UDP doesn't. You can think of TCP as providing premium service and UDP as providing cheap service.
This chapter will hit the high points of TCP, such as
Delivering application data through encapsulation
Breaking large shipments into manageable sizes using segmentation
Ensuring delivery through error recovery
Getting the data to the right individual program, not just the right computer, by using port numbers
Simplifying the creation of applications by hiding the details of data delivery from the application
You'll learn about each of these features in the next four sections of this chapter.