A Quick Look at TCP/IP Networking
The practice of describing protocol systems in terms of their layers is widespread and nearly universal. The layering system does provide insights into the protocol system, and it's impossible to describe TCP/IP without first introducing its layered architecture. However, focusing solely on protocol layers also creates some imitations.
First, talking about protocol layers rather than protocols introduces additional abstraction to a subject that is already excruciatingly abstract. Second, itemizing the various protocols as subheads within the greater topic of a protocol layer can give the false impression that all protocols are of equal importance. In fact, though every protocol has a role to play, most of the functionality of the TCP/IP suite can be described in terms of only a few of its most important protocols. It is sometimes useful to view these important protocols in the foreground, against the backdrop of the layering system described earlier in this hour.
Figure 2.4 describes the basic TCP/IP protocol networking system. Of course, there are additional protocols and services in the complete package, but Figure 2.4 shows most of what is going on.
Figure 2.4. A quick look at the basic TCP/IP networking system.
The basic scenario is as follows:
Data passes from a TCP/IP application, or from a network application program interface, through a TCP or UDP port to either of the two Transport layer protocols (TCP or UDP). Programs can access the network through either TCP or UDP, depending on the program's requirements.
TCP is a connection-oriented protocol. As you'll learn in Hour 6, "The Transport Layer" connection-oriented protocols provide more sophisticated flow control and error checking than connectionless protocols. TCP goes to great effort to guarantee the delivery of the data. TCP is more reliable than UDP, but the additional error checking and flow control mean that TCP is slower than UDP.
UDP is a connectionless protocol. It is faster than TCP, but it is not as reliable. UDP offloads more of the error-checking responsibilities to the application.
The data segment passes to the Internet level, where the IP protocol provides logical-addressing information and encloses the data into a datagram.
The IP datagram enters the Network Access layer, where it passes to software components designed to interface with the physical network. The Network Access layer creates one or more data frames designed for entry onto the physical network. In the case of a LAN system such as ethernet, the frame may contain physical address information obtained from lookup tables maintained using the Internet layer ARP and RARP protocols. (ARP, Address Resolution Protocol, translates IP addresses to physical addresses. RARP, Reverse Address Resolution Protocol, translates physical addresses to IP addresses.)
The data frame is converted to a stream of bits that is transmitted over the network medium.
Of course, there are endless details describing how each protocol goes about fulfilling its assigned tasks. For instance, how does TCP provide flow control, how do ARP and RARP map physical addresses to IP addresses, and how does IP know where to send a datagram addressed to a different subnet? These questions are explored later in this book. You'll also learn more about the TCP/IP protocols and about the processes described in this section in later hours.