Chapter One Title Bar


Providing a Framework for Learning

This chapter introduces the concept of the OSI Reference Model. The OSI Model provides a framework for describing what goes on when two computer systems communicate over a network. The framework divides the tasks involved with communicating into a series of layers. We will discuss each layer in detail; what it does, and how it communicates with the other layers in the model.

  1. Open Systems
  2. The Model
  3. Conclusion
  4. Self Check

[ I ] The Problem: Open Systems

In the early years of computing, computer systems were essentially islands. They didn't talk to each other directly; any system-to-system communication occurred through manual processes -- carrying tapes or stacks of punched cards from one system to another. In the period where computing was dominated by commercial mainframe systems establishing communication from like to like was relatively simple. Your IBM mainframe had the facilities to "talk" to other IBM mainframes, provided by IBM. The problem came when you wanted to establish a link between your IBM system and your partner's Honeywell computer. Both had the ability to talk to other systems of the same make through proprietary software written for each system, but they lacked the ability to communicate easily with anyone else's proprietary system.

Out of this frustration came the Open Systems movement. Open Systems proponents pushed the idea that computing worked better when manufacturers designed systems that could communicate with other manufacturers' systems through common, standardized methods.

Standardization is not a new concept; numerous national and international standards organizations exist. Three of them are: the International Organization for Standardization (ISO), the International Association of Electrical and Electronics Engineers (IEEE) and the American National Standards Institute (ANSI). ANSI sets standards in the U.S. that cover activities ranging from bookkeeping practices to the composition of motor oil and the pitch of threads on a bolt, to computer network technologies. ISO deals with a similarly broad array of topics from quality control systems (you may have heard about "ISO 9000 registration") to providing the model for computer to computer communication which we will be using as the foundation for this text.

In 1977 ISO formed a working committee to develop standards for computer to computer communication. The result was the Open Systems Interconnect (OSI) Reference Model; a logical method for dividing up the task of system to system communication and a framework for understanding all the pieces of that task.








Of all of the ISO standards, only the OSI Model has broad acceptance. Standards from other bodies, such as the IEEE or Internet Engineering Task Force (IETF) have much broader acceptance and use. This is due in large part to the fact that IEEE and IETF standards come from existing technologies, and the ISO method is to specify the standard first through a laborious committee process and then go out and try to build something that conforms to the standard.



[ II ] The OSI Model

The Open Systems Interconnect Reference Model, or OSI Model, breaks the job of system to system communication over a network into seven layers. Each layer represents a different portion of the task. In my presentation of the seven layers you may find that some layers appear to perform redundant functions. What your are seeing is layers using similar methods to control different functions. The situation is somewhat analogous to how we control when we eat and when we sleep. In both cases we use similar methods -- checking the clock, observing clues from our bodies -- to regulate different things: consuming food and taking rest.

The bottom layer of the OSI model is closest to the hardware in the computer or other networked device. The top layer is closest to the application software that you and I interact with. In presenting the model we will take a "bottom up" approach, starting with layer one. The outline of the model is shown below.

7
Application
6
Presentation
5
Session
4
Transport
3
Network
2
Data Link
1
Physical


Tasks and information move down from the top layers until they reach the bottom layer where they are sent out over the network media from the source system to the destination. At the destination the task or information rises back up through the layers until it reaches the top. Each layer is designed to accept work from the layer above it, and pass work down to the layer below it. The interfaces between layers are standardized. This permits several things that would not be possible without a layered design for communications. Each layer can be designed independantly of the others. This means that the overall task of communicating on the network can be divvied up between several design teams who can all work on the problem simultaneously (equating to easier and more rapid product development). Also, the functioning of a layer can be changed without affecting the functioning of the layers above and below it (or, you can substitute whole chunks of the lower layers of the model with new ones without upsetting the operation of the upper layers -- what this means will be made clear in Chapter 2!).

Peer Communication

While each layer provides services to the layer above it, and sends work requests down to the layer below it, each layer communicates with its peer layer on the remote computer.

COMPUTER A
COMPUTER B


Application
Application
Presentation
Presentation
Session
Session
Transport
Transport
Network
Network
Data Link
Data Link
Physical
Physical


In the diagram above, the Transport layer on Computer A has a message for its peer -- the Transport layer on Computer B. Transport on Computer A hands its message down to Network on Computer A, requesting that it be sent to Computer B. The message is handed down through the layers until it reaches layer 1 -- the Physical layer -- and is transmitted across the network media to Computer B. Once at Computer B the message rises layer by layer until it reaches Transport. There, Transport on Computer B reads the message from its peer -- Transport on Computer A -- and takes whatever action is appropriate for the message. In this example, all the layers on each computer from layer four on down were utilized, but only layer four on each computer actually communicated with the other.

Headers

As information or instructions (one computer telling another what to do) move down through the layers on their way to the network media, each layer has the option to add a header to the data it recieves from the layer above it. This header contains information for that layer's peer on the remote system. That information may indicate how to route the packet through the network, or what should be done to the packet as it's handed back up the layers on the recipient computer.

Diagram of headers added at each layer

Several things are evident from examining the diagram above. First, the Application layer, as the originator of the data, does not add a header. Second, the size of the message can grow considerably as each progressive layer adds its header onto the packet. Third, the Physical layer does not add a header -- it represents where the packet is actually put onto the network media and sent to the recipient computer. When the packet arrives at the destination system each layer decodes the header put on by its peer layer at the source system, acts on whatever instructions are in the header, and then passes the data up. On the next higher layer the process of decoding its header and handing up the data is repeated until the data reaches the peer layer of the originating layer on the sending computer.

The header and data from one layer becomes just a large block of data when it is handed down to the next lower layer. The Session layer's header and data become a single block of data when the Transport layer deals with it. The data and all the acuumulated headers from the upper layers are merely cargo for the next layer down to handle.

Protocols

A final note about the OSI Model before we move onto the individual layers: the model itself doesn't get any communicating done. It is not a piece of hardware or software. Rather, the OSI Model serves as a guideline for defining protocols. A protocol is a way of doing something. We might talk about the protocol which tells us which fork to use first at a fancy dinner, and there is diplomatic protocol -- how an ambassidor or head of state is greeted. In networking a protocol defines a specific way to accomplish some part of the task of communicating from one system to another. There are hardware protocols which define how hardware built to the protocol's specifications will operate, and software protocols that define how software written to the protocol's specifications will act.

A protocol can be thought of as a blueprint for a building. The idea behind a protocol specification is to create a blueprint that anyone can use to build, or program, a device that will work properly with all the other devices built to that specification. With the blueprint analogy, different builders may use different materials to build a house, but if all are working from the same plans it won't matter if the house is made of wood or stone: you will be able to walk into each house, go up the stairs, turn left, and in every house built with that blueprint, find the master bedroon. If a protocol specification is said to be a blueprint for building hardware or software, then the OSI Model can be thought of as the building codes that shape the design of the blueprint.

This is the goal of the Open Systems movement: to create networks based on common, non-proprietary standards so that we can can safely assume that any device that is designed to conform to the Ethernet protocol will be able to interoperate correctly with any other device designed to the Ethernet protocol.


Layer One - Physical

The Physical layer defines functionality of the network hardware: what connectors are shaped like; how many pins they have; what voltage (and for how long) defines a 1 or a 0; whether the media is copper wire, optical fibers, or open air.

Line drawing of IEEE 802.3 NIC

Everything dealing with how data is transformed to and from a signal on the network media is dealt with at the Physical layer. Fast Ethernet, RS232, and ATM are examples of protocols with physical layer components.


Layer Two - Data Link


All modern network devices are assigned a permanent hardware, or MAC (Medium Access Control) address at the time they are manufactured. MAC addresses are unique; this uniqueness insures against trouble caused by duplicate addresses.
The Data Link layer performs several tasks. It compiles the stream of ones and zeros coming from the Physical layer into bytes, and then into frames -- units of information that have a logical meaning. Data Link can add its own header to the information it passes down to the Physical layer. Information in the header usually includes the destination and source addresses of the frame. Eg. to Computer 12, from computer 15. Data Link is sometimes said to perform error correction. In truth this is really more error detection and simple rejecting of corrupted frames. Layer two also performs flow control.


Layer Three - Network

The Network Layer deals with moving packets of information across the network. Large networks are made up of smaller sub-networks called segments. Within a segment two systems can communicate with each other just by referencing their layer two hardware addresses. To cross from one segment to another, systems need to know the Network layer address of the destination system. The difference is similar to identifying a house just by its house number, and identifying the house by both street name and house number.

Devices that operate on layer three of the network forward packets from one segment to the next based on the destination network address of the packet. They choose how to forward the packed based on either dynamically determining the best route, or by looking up a route from a static table. Through this method a packet is routed one hop at a time from its source, across the network, to its destination.


Layer Four - Transport

The objective of the transport layer is to provide reliable data transmission for the layers above it. In so doing, it is often working to make up for unreliability in the lower layers. (This is not as bad as it sounds -- much of this unreliability is designed in. Our discussion of CSMA/CD in Chapter 2 will shed more light on this.) Transport does this by ordering the process of setting up and tearing down communications between two systems. It uses sequence numbers and flow control to keep information moving at the right rate, and to make sure that the recipient knows how to reassemble a stream of packets in the right order. The Transport layer also performs multiplexing: combining data together to conserve bandwidth, or splitting data up to travel over several network pathways.


So, you think I'm kidding about this backhoe business? Take a look here and here.
The Transport layer is not bullet-proof: if the network has suffered some kind of physical failure (such as an attack by the Cable Seeking Backhoe) no amount of retrying will get a message through. However, layer 4 does have the ability to recognize trouble and send a signal back to the upper layers indicating that a transmission cannot get through. (Whether the upper layers can gracefully deal with a failed transmission is another matter entirely -- and not something that the Transport layer is concerned with at all.)


Layer Five - Session

The bottom four layers -- Physical, Data Link, Network, and Transport -- all look "down" toward the bottom of the network. Their focus is on getting the job of moving data from point A to point B done. The Session layer, in a sense, looks up toward the top layers. Session is responsible for regulating the flow of information between applications. It synchronizes their communication, and takes care of such things as security and handling errors outside the scope of network communications (such as a server with a full disk drive, or a tape that needs to be mounted). The illustration below shows the role the Session layer plays in coordinating upper level communicataion.

Dave, I'd like a file please.
Do I know you?
I'm system "Hal".
I know you Hal. What would you like?
File kubrick_bio.doc please.
Sending it to you now.
I've received the file. Thank you.
You're welcome. Good bye.
Graphic of two computers talking over a network


Layer Six - Presentation

The primary job of the Presentation layer is that of translator. It takes care of translating ACSII into EBCIDIC, and vice versa; compression, decompression; encryption and decryption. Essentially, the Presentation layer works to transform data into the form that the Application layer can accept.


Layer Seven - Application

This is the layer closest to you and me. Though it is called the Application layer, it does not necessarilly mean the applications that you and I interact with when we use a computer. The Application layer deals with printing, file transfer, remote terminal services, and directory browsing. Some user applications exist directly at the Application layer, such as Telnet and FTP. Other user applications have Application layer functions built into them. A word processing program that can print to a network printer has Application layer functions built into it. Watching the status bar of your web browser is a good place to see Application layer functions at work.


[ III ] Conclusion

At this point we have outlined the roots of the Open Systems movement in the desire for products that would predictably interoperate with each other, and that would not "lock" the customer into one vendor's proprietary solution. This chapter has presented the concept of the OSI Reference Model as a framework for understanding the tasks of communicating across a network, and for simplifying the process of designing protocols. I presented hardware and software protocols as blueprints for building compatible network devices. And, the functionality of the model as a whole, and as individual layers, was explained. When you have mastered the concepts embodied in the OSI Model you are ready to proceed on to Chapter 2 where we explore network topologies and access methods, and examine a "real world" network protocol -- Ethernet -- in depth. Use the questions in the Self Check section below to test your understanding of the OSI Model.


[ IV ] Self Check

  1. Describe the state of computer-to-computer communications in the mainframe era. What was the driving force behind the development of the Open Systems movement?

  2. How many layers does the OSI Reference Model have? Write down the layers in order.

  3. How is the functionality of the Session layer like that of the Transport layer? How is it different?

  4. We used a house number vs. house number and street name analogy to explain the difference between Layer 2 and Layer 3 addresses. What other analogy could you use?

  5. What type of information is carried in a header? Describe the processes through which headers are added and removed from a message.

  6. Is a process running at the Session layer necessarilly concerned about what hardware protocol is being used at the Physical layer?

  7. Describe the peer-to-peer communications in the OSI Model.




[ Appendix B ] [ TOC ] [ CH 2 ]

Back to top
© 1999, 2000 Shipman | Created 1-17-99 | Updated 2-6-00