Introducing the Transport Layer
The TCP/IP Internet layer, as you learned in Hour 4, "The Internet Layer," and Hour 5, "Subnetting," is full of useful protocols that are effective at providing the necessary addressing information so that data can make its journey across the network. Addressing and routing, however, are only part of the picture. The developers of TCP/IP knew they needed another layer above the Internet layer that would cooperate with IP by providing additional necessary features. Specifically, they wanted the Transport layer protocols to provide the following:
An interface for network applications—
that is, a way for applications to access the network. The designers wanted to be able to target data not just to a destination computer, but to a particular application running on the destination computer.
A mechanism for multiplexing/demultiplexing. Multiplexing, in this case, means accepting data from different applications and computers and directing that data to the intended recipient application on the receiving computer. In other words, the Transport layer must be capable of simultaneously supporting several network applications and managing the flow of data to the Internet layer. On the receiving end, the Transport layer must accept the data from the Internet layer and direct it to multiple applications. This feature, known as demultiplexing, allows one computer to simultaneously support multiple network applications, such as a Web browser, an email client, and a file-sharing application. Another aspect of multiplexing/demultiplexing is that a single application can simultaneously maintain connections with more than one computer.
Error checking, flow control, and verification. The protocol system needs an overall scheme that ensures delivery of data between the sending and receiving machines.
The last item (error checking, flow control, and verification) is the most open ended. Questions of quality assurance always balance on questions of benefit and cost. An elaborate quality assurance system can increase your certainty that a delivery was successful, but you pay for it with increased network traffic and slower processing time. For many applications, this additional assurance simply isn't worth it. The Transport layer, therefore, provides two pathways to the network, each with the interfacing and multiplexing/demultiplexing features necessary for supporting applications, but each with a very different approach to quality assurance, as follows:
Transport Control Protocol (TCP)—
TCP provides extensive error control and flow control to ensure the successful delivery of data. TCP is a connection-oriented protocol.
User Datagram Protocol (UDP)—
UDP provides extremely rudimentary error checking and is designed for situations when TCP's extensive control features are not necessary. UDP is a connectionless protocol.
You'll learn more about connection-oriented and connectionless protocols and about the TCP and UDP protocols later in this hour.