1.2.5 OSI Protocols
As stated in the previous chapter, the OSI model provides a framework within which standards can be developed for protocols at each layer. The protocol standards developed by ISO and other related organizations (CCITT, for example) are known as OSI protocols. This is in contrast to other networking protocols, most of which predate the OSI model, which have been developed by organizations other than ISO or CCITT. TCP/IP, XNS, and SNA, for example, are protocol suites that are not based on ISO standards.
OSI protocols have become popular lately as many organizations (such as the U.S. government) have stated their intentions to move towards networks based on ISO standards. Unfortunately, networks based on OSI protocols are still in their infancy. Working examples of the lower layers exist, but most of the standards at these lower layers (layer 1-3) were developed before the OSI model. Standards exist and are currently being developed for the upper layers and for specific applications.
One confusing feature of the ISO standards is that their terminology differs from existing networking terminology. For example, what we call a client and server are termed as initiator and responder, respectively, in ISO-world. The concepts of an iterative server and a concurrent serer are called static responder and a dynamic responder. The packets or messages that are exchanged by peer layers are termed protocol data unit in OSI model.
22.214.171.124 Data-Link Layer
The data-link layer provides services to the network layer. LANs that use the OSI protocols typically use the IEEE 802 standards for the data-link layer and the physical layer. This provides for the IEEE 802.2 logical link control as the interface between the network layer and the data-link layer. The lower portion of the data-link layer, along with the physical layer, is then Ethernet (802.3), token bus (802.4), or token ring (802.5). These four IEEE standards have comparable ISO standards: 8802/2, 8802/3, 8802/4, and 8802/5. The 802.2 standard allows either a connection-oriented service or a connectionless service to be provided to the network layer.
Networks that use the OSI protocols with point-to-point connections typically use the link access procedure (LAP) that is part of the X.25 standard. This protocol is similar to the SDLC protocol used by SNA for point-to-point links.
126.96.36.199 Network Layer
ISO standard 8348 defines the services provided by the network layer for the presentation layer. The original version of the standard provided only for a connection-oriented network service (CONS). An addendum provides for a connectionless network service (CLNS) also.
X.25 is the name used to describe the widely used connection-oriented protocol network layer protocol. X.25 is a CCITT standard that first appeared in 1974. X.25 encompasses layers 1, 2, and 3, not just the network layer. ISO standard 8878 describes how X.25 can be used to provide a connection-oriented network service.
ISO standard 8473 defines the protocol used to provide the connectionless network service. This protocol is similar to the Internet Protocol, IP. One difference is that the Internet IP uses fixed-length address fields in its IP header (the 32-bit network ID and host ID value) while the OSI IP uses variable-length address fields.
188.8.131.52 Transport Layer
The task of the transport layer is to provide reliable, end-to-end data transfer for users of the transport layer. ISO standard 8072 provides the definition of the services provided by the transport layer. As with the network layer, the original standard only defined the services for a connection-oriented transmission, with an addendum specifying the services for connectionless transmission.
One service that the connection-oriented transport layer must provide is expedited data, which is called out-of-band. Few specifics are given, however, other than the requirement that up to 16 bytes of expedited data be sent in a single operation. Additionally, the service definition requires that normal data sent after expedited data must not be delivered to the peer before the expedited data.
The definition of the transport layer services also includes features such as establishing a connection between two endpoints, and the negotiation of parameters during connection establishment.
The specification of the actual connection-oriented transport layer protocols is given in ISO standard 8073. Included in this standard is the definition of three different types of network services that are provided to the transport layer, types A, B, and C.
Type A A reliable network service. The network layer and the data-link layer handle all error conditions.
Type B A reliable network service with error notification. Although most error conditions are handled by the network layer and the data-link layer for this type of service, there can be some notifications to the transport layer that something has gone wrong. A reset notification from the network layer requires that both transport ends resynchronize. A restart notification requires that both transport ends establish a new connection.
Type C An unreliable network service. This is the type of service provided by datagram-oriented networks.
X.25 networks provide a type B network service, since both resets and restarts are possible. But, it is often assumed that an X.25 network provides a reliable type A service.
Given these three types of network services, there are five different classes of connection-oriented transport protocols: classes 0 through 4. We can classify the five protocol classes by the type of network service they are intended to be used with (A, B, or C), whether they can detect errors on their own, whether they can recover from errors that are signaled by the network layer, and whether they do multiplexing. This is shown in Figure 28. Multiplexing here means the ability to have two or more transport connections over a single network connection.
Figure 28. ISO connection-oriented transport protocol classes
These five classes are sometimes called TP0 through TP4. TP0 is a simple protocol—everything is handled by the lower layers. TP1 can be used with an X.25 network service, although if a reliable X.25 service is assumed, TP0 can be used instead. TP4 is similar to the Internet TCP, since TP4 assumes an unreliable network layer. TP4 could be used with the ISO connectionless network layer.
184.108.40.206 Session Layer
The session layer provides services to a user process, in addition to the services provided by the transport layer. ISO standard 8326 defines the services to be provided by the session layer and ISO standard 8327 defines the session layer protocol.
Two of the services provided by the session layer to the layers above it are session establishment and session release. A session is similar in concept to a transport connection. During the life of a session there are two possible ways for the session layer to handle the transport connection that it needs for the session: a single transport connection can be used for the entire session, or two or more transport connections can be used for the entire session. In the latter case, it must be transparent to the user of the session layer that the actual transport connection has changed. It is also possible for a session layer to have consecutive sessions use a single transport connection. One restriction, however, is that the session layer cannot multiplex several sessions on a single transport connection.
Another service that can be provided by the session layer is dialog management. This feature provides a half-duplex, flip-flop form of data exchange. To manage this feature, an imaginary token is maintained by the two session layers. Only the end that holds the token can transmit data. During the session establishment, it is determined which end gets the token to start. One end can also ask the other end for the token when it wants to transmit data. This half-duplex, flip-flop mode of operation is similar to the SNA LU 6.2 protocol.
There are other services that the session layer can provide: synchronization, activity management, and exception reporting. Furthermore, the ISO standard defines four subsets of the session services, realizing that few applications, if any, need all the features that the session layer can provide. These four subsets are called kernel, BCS (basic combined subset), BSS (basic synchronized subset), and BAS (basic activity subset). The simplest of these, the kernel, must be provided with any implementation. All the kernel subset provides is session establishment and data transfer.
There is nothing similar to the session layer in the TCP/IP protocol suite.
220.127.116.11 Presentation Layer
The presentation layer is concerned with the representation of the data that is being exchanged. This can include conversion of the data between different formats (ASCII, EBCDIC, binary), data compression, and encryption. Additionally, the presentation layer must make the services of the session layer available to the application. Much of the presentation layer, therefore, is just a pass-through of application requests (establish a session, terminate a session, etc.) to the session layer.
ISO standard 8822 defines the services for the presentation layer and ISO standard 8823 defines the protocols.
One task, of the presentation layer is to convert the application data into some standard form. To explain this the ISO terminology of abstract syntax and transfer syntax are used. The application layer deals with an abstract syntax. This includes items such as "an integer whose value is 1." This is an abstract description that does not say how the data value is represented. A transfer syntax, however, specifies exactly how this data value is represented. For example, it could be represented as 16-bit integer in twos complement binary format with the most significant bit transferred first. To convert from an abstract syntax to a transfer syntax, encoding rules are applied by the presentation layer. Two presentation layers exchange data in the transfer format, while the two application layers exchange data in the abstract format.
ISO standard 8824 specifies an abstract syntax called ASN.l. This stands for "abstract syntax notation 1". The encoding rules for converting ASN.l data structures into a bit stream for transmission are contained in ISO standard 8825.
SNA supports some features that resemble the presentation layer.
18.104.22.168 Application Layer
Common Application Service Elements
CASE stands for "common application service elements." It is intended to provide capabilities that are useful to a variety of applications. Currently there are only two CASEs.
• Association Control Service Elements (ACSE)
This element allows the user process to establish and release associations with a peer. There is a one-to-one relationship between associations and presentation layer connections.
• Commitment, Concurrency, and Recovery (CCR)
CCR provides atomic actions between application entities. An atomic action is a set of operations, with either all operations being done or none of the operations being done—there is no in-between. Atomic operations and the techniques used by CCR have been used by distributed database systems and transaction processing systems for many years.
ISO standard 8649 defines the CASE services and ISO standard 8650 defines the CASE protocols.
In 1984 CC1TT defined a set of protocols for what it calls MHS (message handling system). The CCITT recommendations are defined in their X.400-series. These were incorporated in the OSI model at the application layer where they are called MOTIS (message-oriented text interchange system). X.400 provides for more than simple text-oriented electronic mail. It provides for a variety of message types, including text, facsimile, and digitized voice, for example.
Electronic mail under Unix is usually divided into two pieces. The user agent (UA) is the program the user interacts with the interactive user to send or receive mail. The user agent then communicates with a message transfer agent (MTA) that delivers the mail. Typical user agents are /usr/ucb/Mail on 4.3BSD, /bin/mail and mailx on System V, and a variety of other programs. The typical message transfer agent on 4.3BSD is sendmail. X.400 is concerned with all aspects of message handling—the user agent and the message transfer agent.
Directory services (DS) are similar to a telephone book. It maps names of people and services into their corresponding attributes (addresses, etc.). It is intended that the directory services be usable by the message handling systems (MHS) and other OSI applications. Directory services are sometimes classified as "white pages" or "yellow pages," similar to a telephone book, depending whether you are searching for a name or a service.
ISO standard 9594 and the CCITT X.500 recommendation specify all the details of the OSI directory.
The OSI virtual terminal (VT) allows various terminals to be used. The intent is to isolate applications from the differences in terminal characteristics. ISO standards 9040 and 9041 describe the virtual terminal services and protocols, respectively.
When a virtual terminal connection is started, the two peer entities negotiate the parameters of the terminal that can be supported. An example of the types of parameters that can be specified for the virtual terminal are: number of dimensions (two for a standard CRT, three for a bit-mapped display), maximum coordinate in each dimension, allowable character sets, and so on. Some example operations that can be done are: move cursor to absolute position, enter characters starting at current position, and erase this line from cursor to end.
The ISO virtual terminal can be used to provide a remote login client and server, similar to the Internet TELNET application.
File Transfer, Access, and Management
The OSI file transfer, access, and management application (FTAM) is built around the concept of a virtual filestore. This virtual filestore presents a standard interface to its users. It is up to the software to map this virtual filestore into the actual filesystem being used. ISO standard'8571 specifies the services and protocols used by FTAM.