A network protocol is a set of rules for communicating between computers. Protocols govern format, timing, sequencing, and error control. Without these rules, the computer cannot make sense of the stream of incoming bits. But there is more than just basic communication.
Suppose you plan to send a file from one computer to another. You could simply send it all in one single string of data. Unfortunately, that would stop others from using the network for the entire time it takes to send the message. This would not be appreciated by the other users. Additionally, if an error occurred during the transmission, the entire file would have to be sent again.
To resolve both of these problems, the file is broken into small pieces called packets and the packets are grouped in a certain fashion. This means that information must be added to tell the receiver where each group belongs in relation to others, but this is a minor issue. To further improve transmission reliability, timing information and error correcting information are added. Because of this complexity, computer communication is broken down into steps. Each step has its own rules of operation and, consequently, its own protocol. These steps must be executed in a certain order, from the top down on transmission and from the bottom up on reception. Because of this hierarchical arrangement, the term protocol stack is often used to describe these steps.
A protocol stack, therefore, is a set of rules for communication, and each step in the sequence has its own subset of rules. What is a protocol, really? It is software that resides either in a computer’s memory or in the memory of a transmission device, like a network interface card. When data is ready for transmission, this software is executed. The software prepares data for transmission and sets the transmission in motion. At the receiving end, the software takes the data off the wire and prepares it for the computer by taking off all the information added by the transmitting end.
There are a lot of protocols, and this often leads to confusion. A Novell network communicates through its own set of rules (its own protocol called IPX/SPX), Microsoft does it another way (NetBEUI), DEC does it a third way (DECnet), and IBM does it yet a fourth (NetBIOS). Since the transmitter and the receiver have to “speak” the same protocol, these four systems cannot talk directly to each other. And even if they could directly communicate, there is no guarantee the data would be usable once it was communicated. Anyone who’s ever wanted to transfer data from an IBM-compatible personal computer to an Apple Macintosh computer realizes that what should be a simple procedure is anything but. These two popular computers use widely differing-and incompatible-file systems. That makes exchanging information between them impossible, unless you have translation software or a LAN.
Even with a network, file transfer between these two types of computers isn’t always transparent. (Editor’s note: Even in the Internet age, Mac/Windows/Unix file exchange is often less than perfectly transparent.) If two types of personal computers can’t communicate easily, imagine the problems occurring between PCs and mainframe computers, which operate in vastly different environments and usually under their own proprietary operating software and protocols.
For example, the original IBM PC’s peripheral interface-known as a bus-transmitted data eight bits at a time. The newer 386, 486, and Pentium PCs have 32-bit buses, and mainframes have even wider buses. This means that peripherals designed to operate with one bus are incompatible with another bus, and this includes network interface cards (NICs). Similar incompatibilities also exist with software. For instance, Unix-based applications (and often the data generated with them) cannot be used on PCs operating under Windows or MS-DOS. Resolving some of these incompatibilities is where protocol standards fit in. A protocol standard is a set of rules for computer communication that has been widely agreed upon and implemented by many vendors, users, and standards bodies. Ideally, a protocol standard should allow computers to talk to each other, even if they are from different vendors.
Computers don’t have to use an industry-standard protocol to communicate, but if they use a proprietary protocol then they can only communicate with equipment of their own kind. There are many standard protocols, none of which could be called universal, but the successful ones can be characterized with something called the OSI model. The standards and protocols associated with the OSI reference model are a cornerstone of the open systems concept for linking the literally dozens of dissimilar computers found in offices throughout the world.
The OSI Model
The Open System Interconnection (OSI) model includes a set of protocols that attempt to define and standardize the data communications process. The OSI protocols were defined by the International Organization for Standardization (ISO). The OSI protocols have received the support of most major computer and network vendors, many large customers, and most governments, including the United States.
The OSI model is a concept that describes how data communications should take place. It divides the process into seven groups, called layers. Into these layers are fitted the protocol standards developed by the ISO and other standards bodies, including the Institute of Electrical and Electronic Engineers (IEEE), American National Standards Institute (ANSI), and the International Telecommunications Union (ITU), formerly known as the CCITT (Comité Consultatif International Téléphonique et Télégraphique). The OSI model is not a single definition of how data communications actually takes place in the real world. Numerous protocols may exist at each layer.
The OSI model states how the process should be divided and what protocols should be used at each layer. If a network vendor implements one of the protocols at each layer, its network components should work with other vendors’ offerings. The OSI model is modular. Each successive layer of the OSI model works with the one above and below it. At least in theory, you may substitute one protocol for another at the same layer without affecting the operation of layers above or below. For example, Token Ring or Ethernet hardware should operate with multiple upper-layer services, including the transport protocols, network operating system, internetwork protocols, and applications interfaces.
However, for this interoperability to work, vendors must create products that meet the OSI model’s specifications. Although each layer of the OSI model provides its own set of functions, it is possible to group the layers into two distinct categories. The first four layers- physical, data link, network, and transport-provide the end-to-end services necessary for the transfer of data between two systems. These layers provide the protocols associated with the communications network used to link two computers together.
The top three layers-the application, presentation, and session layers-provide the application services required for the exchange of information. That is, they allow two applications, each running on a different node of the network, to interact with each other through the services provided by their respective operating systems. The Physical layer provides the electrical and mechanical interface to the network medium (the cable). This layer gives the data-link layer (layer 2) its ability to transport a stream of serial data bits between two communicating systems; it conveys the bits that move along the cable. It is responsible for making sure that the raw bits get from one place to another, no matter what shape they are in, and deals with the mechanical and electrical characteristics of the cable.
The Data-Link layer handles the physical transfer, framing (the assembly of data into a single unit or block), flow control and error-control functions over a single transmission link; it is responsible for getting the data packaged for the Physical layer. The data link layer provides the network layer (layer 3) reliable information-transfer capabilities. The data-link layer is often subdivided into two parts-Logical Link Control (LLC) and Medium Access Control (MAC)-depending on the implementation.
The Network layer establishes, maintains, and terminates logical and physical connections among multiple interconnected networks. The network layer is responsible for translating logical addresses, or names, into physical (or data-link) addresses. It provides network routing and flow-control functions across the computer-network interface.
The Transport layer ensures data is successfully sent and received between two end nodes. If data is sent incorrectly, this layer has the responsibility to ask for retransmission of the data. Specifically, it provides a reliable, network-independent message-interchange service to the top three application-oriented layers. This layer acts as an interface between the bottom and top three layers. By providing the session layer (layer 5) with a reliable message transfer service, it hides the detailed operation of the underlying network from the session layer. The Session layer decides when to turn communication on and off between two computers-it provides the mechanisms that control the data-exchange process and coordinates the interaction between them. It sets up and clears communication channels between two communicating components. Unlike the network layer (layer 3), it deals with the programs running in each machine to establish conversations between them.
Some of the most commonly encountered protocol stacks, including TCP/IP, don’t implement a session layer. The Presentation layer performs code conversion and data reformatting (syntax translation). It is the translator of the network, making sure the data is in the correct form for the receiving application. Of course, both the sending and receiving applications must be able to use data subscribing to one of the available abstract data syntax forms. Most commonly, applications handle these sorts of data translations themselves rather than handing them off to a Presentation layer. The Application layer provides the interface between the software running in a computer and the network. It provides functions to the user’s software, including file transfer access and management (FTAM) and electronic mail service.
Unfortunately, protocols in the real world do not conform precisely to these neat definitions. Some network products and architectures combine layers. Others leave layers out. Still others break the layers apart. But no matter how they do it, all working network products achieve the same result-getting data from here to there. The question is, do they do it in a way that is compatible with networks in the rest of the world?
What OSI is and is not
While discussing the OSI reference model it is important to understand what the model does not specify as well as what it actually spells out. The ISO created the OSI reference model solely to describe the external behavior of electronics systems, not their internal functions. The reference model does not determine programming or operating system functions, nor does it specify an application programming interface (API). Neither does it dictate the end-user interface-that is, the command-line and/or icon-based prompts a user uses to interact with a computer system. The OSI standards merely describe what is placed on a network cable and when and how it will be placed there.
It does not state how vendors must build their computers, only the kinds of behavior these systems may exhibit while performing certain communications operations. The OSI standards are distinct from the OSI suite of protocols. This concept permits a vendor to develop network elements that are more or less ignorant of the other components on the network. They are said to be ignorant in that they may need to know that other network components exist, but not the specific details about their operating systems or interface buses. One of the primary benefits of this concept is that vendors can change the internal design of their network components without affecting their network functionality, as long as they maintain the OSI-prescribed external attributes.
Connection Types
The OSI protocol suite is inherently connection-oriented, but the services each OSI layer provides can either be connection-oriented, or connectionless. In the three-step connection-oriented mode operation (the steps are connection establishment, data transfer, and connection release), an explicit binding between two systems takes place. In connectionless operation, no such explicit link occurs; data transfer takes place with no specified connection and disconnection function occurring between the two communicating systems. Connectionless communication is also known as datagram communication.
At the Physical Layer
Let’s compare some real protocols to the OSI model. The best known physical layer standards of the OSI model are those from the IEEE. That is, the ISO adopted some of the IEEE’s physical network standards as part of its OSI model, including IEEE 802.3 or Ethernet, IEEE 802.4 or token-passing bus, and IEEE 802.5 or Token Ring. ISO has changed the numbering scheme, however, so 802.3 networks are referred to as ISO 8802-3, 802.4 networks are ISO 8802-4, and 802.5 networks are ISO 8802-5.
Each physical layer standard defines the network’s physical characteristics and how to get raw data from one place to another. They also define how multiple computers can simultaneously use the network without interfering with each other. (Technically, this last part is a job for the data-link layer, but we’ll deal with that later.) IEEE 802.3 defines a network that can transmit data at 10Mbps and uses a logical bus (or a straight line) layout. (Physically, the network can be configured as a bus or a star.) Data is simultaneously visible to all machines on the network and is nondirectional on the cable. All machines receive every frame, but only those meant to receive the data will process the frame and pass it to the next layer of the stack.
Network access is determined by a protocol called Carrier Sense Multiple Access/Collision Detection (CSMA/CD). CSMA/CD lets any computer send data whenever the cable is free of traffic. If the data collides with another data packet, both computers “back off,” or wait a random time, then try again to send the data until access is permitted. Thus, once there is a high level of traffic, the more users there are, the more crowded and slower the network will become. Ethernet has found wide acceptance in office automation networks. IEEE 802.4 defines a physical network that has a bus layout. Like 802.3, Token Bus is a shared medium network.
All machines receive all data but do not respond unless data is addressed to them. But unlike 802.3, network access is determined by a token that moves around the network. The token is visible to every device but only the device that is next in line for the token gets it. Once a device has the token it may transmit data. The Manufacturing Automation Protocol (MAP) and Technical Office Protocol (TOP) standards use an 802.4 physical layer. Token Bus has had little success outside of factory automation networks. IEEE 802.5 defines a network that transmits data at 4Mbps or 16Mbps and uses a logical ring layout, but is physically configured as a star. Data moves around the ring from station to station, and each station regenerates the signal. It does not support simultaneous multiple access as Ethernet does.
The network access protocol is token-passing. The token and data move about in a ring, rather than over a bus as they do in Token Bus. Token Ring has found moderate acceptance in office automation networks and a greater degree of support in IBM-centric environments. There are other physical and data-link layer standards, some that conform to the OSI model and others that don’t. ARCnet is a well known one that only became standardized in 1998, long after the time when it had any commercial significance. It uses a token-passing bus access method, but not the same as does IEEE 802.4. LocalTalk is Apple’s proprietary network that transmits data at 230.4Kbps and uses CSMA/CA (Collision Avoidance). Fiber Distributed Data Interface (FDDI) is an ANSI and OSI standard for a fiber-optic LAN that uses a token-passing protocol to transmit data at 100Mbps on a ring.
When It Began
The International Standards Organization, based in Geneva, Switzerland, is a multinational body of representatives from the standards-setting agencies of about 90 countries. These agencies include the American National Standards Institute (ANSI) and British Standards Institute (BSI). Because of the multinational nature of Europe, and its critical need for intersystem communication, the market for OSI-based products is particularly strong there.
As a result, the European Computer Manufacturers’ Association (ECMA) has played a major role in developing the OSI standards. In fact, before the Internet’s Transmission Control Protocol/Internet Protocol (TCP/IP) began to dominate international networks, European networking vendors and users were generally further advanced in network standards, based on OSI implementations, than were their American counterparts, who relied principally on proprietary solutions such as IBM’s Systems Network Architecture (SNA) or TCP/IP.
Creating the OSI standards was a long, drawn-out process: The ISO began work on OSI protocols in the late 1970s, finally releasing its seven-layer architecture in 1984. It wasn’t until 1988 that the five-step standards-setting process finally resulted in stabilized protocols for the upper layers of the OSI reference model. (Editor’s note: From the perspective of 2000, the primary worldwide significance of the OSI protocols was in the use of the seven layer stack model as a way of learning about networks.
While there remain many implementations of OSI protocols, particularly in Europe where they were in some cases legally imposed, it’s clear that worldwide, the lion’s share of new development and investment is devoted to TCP/IP and will be for the foreseeable future.) The Data-Link layer (the second OSI layer) is often divided into two sublayers; the Logical Link Control (LLC) and the Medium Access Control (MAC). The IEEE also defines standards at the data-link layer. The ISO standards for the MAC layer, or lower half of the data-link layer, were taken directly from the IEEE 802.x standards. Medium Access Control, as its name suggests, is the protocol that determines which computer gets to use the cable (the transmission medium) when several computers are trying.
For example, 802.3 allows packets to collide with each other, forcing the computers to retry a transmission until it is sent successfully. 802.4 and 802.5 limit conversation to the computer with the token. Remember, this is done in fractions of a second, so even when the network is busy, users don’t wait very long for access on any of these three network types. The upper half of the data-link layer, the LLC, provides reliable data transfer over the physical link. In essence, it manages the physical link. The IEEE splits the data-link layer in half because the layer has two jobs to do. The first is to coordinate the physical transfer of data. The second is to manage access to the physical medium. Dividing the layer allows for more modularity and therefore more flexibility.
The type of medium access control has more to do with the physical requirements of the network than the actual management of data transfer. In other words, the MAC layer is closer to the physical layer than the LLC layer. By dividing the layer, a number of MAC layers can be created, each corresponding to a different physical layer, but just one LLC layer can handle them all. This increases flexibility and gives the LLC an important role in providing an interface between the various MAC layers and the higher-layer protocols.
The role of the data-link’s upper layer is so crucial, the IEEE gave it a standard of its own: 802.2 LLC. Besides 802.2, other protocols can perform the LLC functions. High-level Data-Link Control (HDLC) is a protocol from ISO, which also conforms to the OSI model. IBM’s Synchronous Data-Link Control (SDLC) does not conform to the OSI model but performs functions similar to the data-link layer. Digital Equipment’s DDCMP or Digital Data Communications Protocol provides similar functions.
Three Transport Protocols
The ISO has established protocol standards for the middle layers of the OSI model. The transport layer, at layer four, ensures that data is reliably transferred among transport services and users. Layer five, the session layer, is responsible for process-to-process communication. The line between the session and transport layers is often blurred. As of yet, no ISO transport or session layer has been implemented on a widespread basis, nor has the complete OSI protocol stack been established.
To make matters more confusing, most middle-layer protocols on the market today do not fit neatly into the OSI model’s transport and session layers, since many were created before the ISO began work on the OSI model. The good news is many existing protocols are being incorporated into the OSI model. Where existing protocols are not incorporated, interfaces to the OSI model are being implemented. This is the case for TCP/IP, and IPX, which are the major middle-layer protocols available today. In the PC LAN environment, NetBIOS has been an important protocol. IBM developed NetBIOS (or Network Basic Input/Output System) as an input/output system for networks. NetBIOS can be considered a session-layer protocol that acts as an application interface to the network. It provides the tools for a program to establish a session with another program over the network. Many programs have been written to this interface. NetBIOS does not obey the rules of the OSI model in that it does not talk only to the layers above and below it. Programs can talk directly to NetBIOS, skipping the application and presentation layers.
This doesn’t keep NetBIOS from doing its job; it just makes it incompatible with the OSI model. The main drawback of NetBIOS is that it is limited to working on a single network. TCP/IP or Transmission Control Protocol/Internet Protocol is actually several protocols. TCP is a transport protocol. IP operates on the network layer. TCP/IP traditionally enjoyed enormous support in government, scientific, and academic internetworks and in recent years has dominated the commercial networking environment, too. Part of the explanation is that corporate networks began to approach the size of networks found in the government and in universities, which drove corporations to look for internetworking protocol standards. They found TCP/IP to be progressively more useful as it became more widespread.
Many people once viewed TCP/IP as an interim solution until OSI could be deployed, but no one seriously believes that the OSI protocols will ever have more than a niche role in the future. Often when TCP/IP is discussed, the subjects of SMTP, FTP, Telnet, and SNMP are also raised. These are application protocols developed specifically for TCP/IP. SMTP or the Simple Mail Transfer Protocol is the electronic mail relay standard. FTP stands for File Transfer Protocol and is used to exchange files among computers running TCP/IP.
Telnet is remote log-in and terminal emulation software. SNMP or the Simple Network Management Protocol is the most widely implemented network management protocol. The figure shows the protocols of TCP/IP. Novell traditionally used IPX/SPX as its native transport protocols, though the company introduced a “native” implementation of TCP/IP in place of IPX/SPX. Internetwork Packet Exchange (IPX) and Sequenced Packet Exchange (SPX) are both variants of Xerox’s XNS protocol. IPX provides network layer services, while SPX is somewhat rarely employed by applications that need transport layer services. Because IPX implementations prior to the introduction of NetWare Link Services Protocol (NLSP) in NetWare 4 caused a great deal of broadcast traffic and required frequent transmission acknowledgements, which can cause problems in a WAN,
Novell also supported TCP/IP with gateways prior to its native TCP/IP implementation. Other transport layer protocols include XNS and NetBEUI. XNS or Xerox Network System was one of the first local area network protocols used on a wide basis, mainly for Ethernet networks. 3Com’s 3+ used a version of it. NetBEUI is IBM’s transport protocol for its PC networking products. (The legacy of IBM’s long-deceased partnership with Microsoft lives on in Microsoft’s default implementations of NetBEUI in Windows for Workgroups, Windows 95/98, and Windows NT.)
Protocol Babel
If the number of available protocols seems like senseless confusion, it is and it isn’t. Certain protocols have different advantages in specific environments. No single protocol stack will work better than every other in every setting. NetBIOS works well in small PC networks but is practically useless for communicating with WANs; APPC works well in peer-to-peer mainframe environments; TCP/IP excels in internetworks and heterogeneous environments.
On the other hand, much more is made about the differences in protocols than is warranted. Proprietary protocols can be perfect solutions in many cases. Besides, if proprietary protocols are sufficiently widespread, they become de facto standards, and gateways to other protocols are built. These include DEC’s protocol suite, Sun Microsystems’ Network Filing System and other protocols, and Apple’s AppleTalk protocols. While these enjoy widespread use, that use is based on the computers these companies sell and not the proliferation of the protocols throughout the networking industry.
Whether it’s a proprietary or standard protocol, users are faced with difficult choices. These choices are made slightly easier by the shakeout and standardization that has occurred at the physical and data-link layers. There are three choices: Token Ring, Ethernet, or FDDI. At the transport layers, IPX/SPX and TCP/IP emerged as the dominant protocols.