next up previous contents
Next: 3.2 The Development of Up: 3 Literature Review Previous: 3 Literature Review

3.1 Introduction to Internetworking

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:

  1. Clearly defined, standard communication interfaces.
  2. Minimal or no knowledge of the workings of external systems.
  3. Good faith.

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.

3.1.1 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.

  
Figure 3.1: Data Transport Units

3.1.2 The TCP/IP Internet Protocol Suite

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)gif 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:

Internet Protocol
A best-effort, connectionless datagram delivery service, implementing the 32-bit addressing scheme used by the Internet.
User Datagram Protocol
A best-effort, connectionless datagram delivery service that acts primarily as an interface to IP.
Transmission Control Protocol
A reliable, connection-oriented, stream transport service.

3.1.3 Protocol Layering and Encapsulation

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.

  
Figure 3.2: The TCP/IP conceptual layers

The layers are defined as follows:

Application
Usually implemented in the user-space, a program that utilizes the underlying network architecture in some way. This can be a user application or an existing one such as telnet or FTP. A common interface to the TCP/IP protocols is Berkeley Sockets, found in networking kernels derived from source code developed at Lawrence Berkeley Laboratories.
Transport
Both UDP and TCP reside in the transport layer, responsible for bridging the gap between the application and the Internet Protocol. Transport protocols communicate with streams or messages to the application layer and with packets to the Internet layer.
Internet
IP defines the Internet layer. It handles the addressing and proper encapsulation and fragmentation of packets from the transport layer protocols. IP generates datagrams appropriate for the Network Interface.
Network Interface
Drivers for physical networking devices can be found in this layer. They are responsible for proper communication of the incoming IP datagrams to the underlying physical network.

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.

  
Figure 3.3: The ISO 7-layer reference model

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.

3.1.4 The Client/Server Model

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
Table 3.1: Examples of the client/server model.

 

The connection between client and server is abstracted to one as simple as that in figure 3.4.

  
Figure 3.4: Simple client to server connection.

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.5: Many clients to single server.

Figure 3.6 reveals the details of the connection that have been hidden from us through appropriate layering.

  
Figure 3.6: Actual client to server connection.

The client/server model is an important conceptual tool at many levels of internetworking technology, and is relied on greatly by the networking community.


next up previous contents
Next: 3.2 The Development of Up: 3 Literature Review Previous: 3 Literature Review

Mike Andrews
Wed Mar 19 16:07:58 EST 1997