Network Architectures and Protocols

From 118wiki

Jump to: navigation, search

Network Architectures and Protocols

The text below is a quite brief summary of concepts covered in class. Key terminology is linked (please click for detail) to Wikipedia entries or other online reference documents.

Network Architecure

Computer networks are often described with the word "architecture", though this is not always a good analogy. Just as buildings are constructed from standard components, such as sheets of plywood, 2x4 lumber, concrete, and so on, computer networks are built from standard components: routers, switches, servers, hubs, repeaters, cables, antennas, and so on.

There is another sense of component architecture in computer networks. Just as the components for building materials have standardized dimensions and structural properties, the network components obey standards. There are physical standards for voltage levels, signalling rates, frequencies (in case of wireless communication); and there are software standards for data size, data representation, and how the programmed components behave. These are usually called protocol standards, which we'll study in more detail later.

To sort out different issues in network architecture, and manage complexity (which is what computer science really should be all about), most network architecture is described in terms of layered models. Here are three prominent examples of layered architectures.

  1. The OSI model is a "reference model" which guides the philosophy and terminology of computer networking. Layers are numbered 1-7, each corresponding to a different purpose.
  2. The Internet Protocol Suite or IP Stack is a less formal model, though still layered.
  3. The Asynchronous Transfer Mode (ATM) and the older SS7 are part of telephony, which is the architecture developed by telephone companies. Image:ATMrefmodel.gif

For any of the layered architectures, we can think of the layers as a "stack" with upper layer protocols positioned above lower layer protocols. Within a given stack, each layer has to be implemented using some combination of software and hardware. Programming, debugging, performance tuning, repair and enhancement -- these activities occur at all the layers, and some wisdom of the experience is worth reviewing.

  1. The engineers, programmers, managers, and even users tend to specialize working on particular layers. Over the years, special jargon and language for the different layers tends to accumulate.
  2. In the OSI model, communication between layers is restricted. Layer "k" only communicates with layer "k-1" and layer "k+1", that is, directly below and above in the stack.
  3. If we consider two or more participants in a computer network, each will have its own implementation of the layered model. For instance, if both X and Y belong to the network, each would have some implementation of layer 5. A programmer in charge of layer 5 would be solely concerned with implementations of layer 5 at X and Y, and ignore (as far as possible) the other layers. This type of specialization helps manage complexity. The implementations of layer 5 at X and Y are sometimes called peers.


The word protocol can refer to the language and behavior of diplomats, medicine, and other fields. For computer networks, a network protocol or communications protocol, specifies the behavior of programs (e.g., the implementations of some layer in a reference model) that communicate. We need to have clear, formal specifications of protocols so that different vendors supplying software will be able to substitute one for another (like building supplies) and so that their software implementations will work together (interoperate) when put into the same network. Whereas correct computer algorithms should terminate with some desired output, correct network protocols may be designed never to terminate -- so we may need a new way to specify how they work.

In the layered model, communication between peers is governed by a specified protocol. After protocols are proposed, then debugged and accepted, they become standardized. Once peers obey the protocol standard, they can be implemented by different vendors on different hardware. This helps networks have lower cost (competition) and improves maintainability. However, within a protocol stack, the communication between layers, say layer k and layer k-1, does not need to use a protocol. This type of communication inside a computer could use an API, some system or library calls, or other convention.

At lower layers in a reference model, the units of data involved in communication become standardized: there are defined protocol data unit, header (information technology), and trailer (information technology). These are used in the API or system calls as well as being in the specifications of the standard protocols.

Personal tools