Good designs imitate life. The rise in popularity of internetworking as a means of interconnecting computers is largely due the naturalness and work-ability it embodies, because it mirrors our own, human methods of communication in social hierarchies. Internetworking is loosely based three things:
Many systems created by our culture exhibit these characteristics as a means of getting things done efficiently. Writing a bank check is one such example. The end user has a standard communication interface, the check, that he knows how to work with; he need not know the details of the system that handles the checks or the people involved, and yet he sends it away freely. As Douglas Comer indicates in the introduction to his Internetworking with TCP/IP - Volume I: Principles, Protocols and Architecture [9], a key facet of internetworking is its ability to ``hide the details'' of other systems:
In the past 15 years, a new technology has evolved that makes it possible to interconnect many disparate physical networks and make them function as a coordinated unit. The technology, called internetworking, accommodates multiple, diverse underlying hardware technologies by providing a way to interconnect heterogeneous networks and a set of communication conventions. The internet technology hides the details of network hardware and permits computers to communicate independent of their physical network connections.[9, p.1,]
Although a full-fledged introduction to internetworking is beyond the scope of this paper, the subject is extremely well documented; an excellent example is Douglas Comer's book mentioned above. Other books such as Parker's Teach Yourself TCP/IP in 14 Days [36] and similar texts with mass-market appeal can focus greatly on an end product of learning appropriate terminology, rather than learning the terminology through the process of understanding networking concepts, and should be avoided. Texts by Comer, W. Richard Stevens[42] and Andrew S. Tannenbaum[44] can appear daunting, but are expertly written.
Regardless, there are four important items that cannot be ignored in any presentation of internetworking: the client/server model, protocol layering and encapsulation, TCP/IP and data transport units.
There is a good deal of terminology that is used to refer to certain groupings of data commonly found associated with networking. Figure 3.1 attempts to illustrate the differences graphically, it is followed by descriptions of many of the usual data units found on the Internet.
TCP/IP is the de-facto standard for communications on the Internet today. It arose out of research conducted by the Advanced Research Projects Agency (ARPA) and the National Science Foundation (NSF). These research efforts led to the creation of a physical backbone which used TCP/IP as the mandated standard for communications. The ARPAnet and the NSFnet were the seed for the entity that would become known as the Internet. (The Internet is the largest existing example of an internet, and will be referred to with as previously, Internet with a capital `I.')
Although the two acronyms that form TCP/IP resolve to Transmission Control Protocol and Internet Protocol, the TCP/IP Internet Protocol suite is actually composed of a number of protocols and pieces of software. Of particular importance to this paper is that TCP/IP is fundamentally composed of three protocols: the previously mentioned TCP and IP, as well as the User Datagram Protocol (UDP). As will be discussed to greater extent in the next section, IP defines the addressing scheme used on the Internet and both UDP and TCP interface with IP to wrap their data with information necessary for transport across the Internet. Programmers can choose to utilize either UDP or TCP to transfer data, but both ultimately interface to IP. Kale and Socolofsky offer an excellent practical discussion of the TCP/IP protocols in RFC1180[31].
Briefly, the salient points of the three protocols are summarized below:
TCP/IP is based on four conceptual layers of implementation. Each layer is composed of a system or systems with a defined task and standardized communication interface to the surrounding layers. Figure 3.2 shows the four layers: application, transport, internet and network interface.
The layers are defined as follows:
The four conceptual layers of TCP/IP are actually derived from a standard developed by the International Organization for Standardization (ISO) referred to as the Reference Model of Open System Interconnection. ISO's model has 7 layers that bear only historical importance to protocols in use today, as the protocols based on these specifications were never as widely accepted as TCP/IP. The ISO 7-layer model is reproduced in figure 3.3.
Layering is the heart of the Internet. Thanks to properly documented and publicly available standards of interconnection, layering makes the Internet ``work'' by allowing communication between, but hiding the details of all kinds of different manufacturers' systems.
The client/server model for communication is one that, again, mimics a great number of existing human systems. Typically, a server is a provider of a service that a client wishes to utilize in some manner. A few examples of this interaction are tabulated in table 3.1
Client | Server |
hungry person | restaurant |
web-browser | web-server |
student | college |
word processing program | print spooler |
cable-TV box | cable-TV provider |
couch potato | cable-TV provider |
finger | finger daemon: fingerd |
The connection between client and server is abstracted to one as simple as that in figure 3.4.
Many servers are capable of dealing with more than a single client at the same time, either by multiplexing or through creating multiple execution instances (for example by using fork() in C programs or a similar command.) Figure 3.5 shows multiple clients connecting to a single server.
Figure 3.6 reveals the details of the connection that have been hidden from us through appropriate layering.
The client/server model is an important conceptual tool at many levels of internetworking technology, and is relied on greatly by the networking community.