Programming with the X/Open Transport Interface (XTI)

Programming with the X/Open Transport Interface (XTI)

To place the Transport Interface in perspective, a discussion of the OSI Reference Model is first presented. The Reference Model partitions networking functions into seven layers, as depicted in ``OSI Reference Model''.

OSI Reference Model

Layer 1
The physical layer is responsible for the transmission of raw data over a communication medium.

Layer 2
The data link layer provides the exchange of data between network layer entities. It detects and corrects any errors that may occur in the physical layer transmission.

Layer 3
The network layer manages the operation of the network. In particular, it is responsible for the routing and management of data exchange between transport layer entities within the network.

Layer 4
The transport layer provides transparent data transfer services between session layer entities by relieving them from concerns of how reliable and cost-effective transfer of data is achieved.

Layer 5
The session layer provides the services needed by presentation layer entities that enable them to organize and synchronize their dialogue and manage their data exchange.

Layer 6
The presentation layer manages the representation of information that application layer entities either communicate or reference in their communication.

Layer 7
The application layer serves as the window between corresponding application processes that are exchanging information.
A basic principle of the Reference Model is that each layer provides services needed by the next higher layer in a way that frees the upper layer from concern about how these services are provided. This approach simplifies the design of each particular layer.

Industry standards either have been or are being defined at each layer of the Reference Model. Two standards are defined at each layer: one that specifies an interface to the services of the layer, and one that defines the protocol by which services are provided. A service interface standard at any layer frees users of the service from details of how that layer's protocol is implemented, or even which protocol is used to provide the service.

The transport layer is important because it is the lowest layer in the Reference Model that provides the basic service of reliable, end-to-end data transfer needed by applications and higher layer protocols. In doing so, this layer hides the topology and characteristics of the underlying network from its users. More important, however, the transport layer defines a set of services common to layers of many contemporary protocol suites, including the International Standards Organization (ISO) protocols, the Transmission Control Protocol and Internet Protocol (TCP/IP) of the ARPANET, Xerox Network Systems (XNS(TM)), and the Systems Network Architecture (SNA).

A transport service interface, then, enables applications and higher layer protocols to be implemented without knowledge of the underlying protocol suite. That is a principal goal of the UNIX system Transport Interface. Also, because an inherent characteristic of the transport layer is that it hides details of the physical medium being used, the Transport Interface offers both protocol and medium independence to networking applications and higher layer protocols. Because the Transport Interface provides reliable data transfer, and because its services are common to several protocol suites, many networking applications will find these services useful.

The UNIX system Transport Interface was modeled after the industry standard ISO Transport Service Definition (ISO 8072). The resulting interface was called the Transport Level Interface (TLI) library. The TLI library functions have been modified to comply with the X/Open Transport Interface (XTI) specification. Both the TLI and the XTI library interfaces are available as part of the UNIX system Transport Interface. Applications compiled on releases of UnixWare prior to UnixWare will get TLI semantics. However, new applications will be compiled so as to call the new XTI library interfaces.

The Transport Interface is implemented as a user library using the STREAMS input/output mechanism. Therefore, many services available to STREAMS applications are also available to users of the Transport Interface. These services will be highlighted throughout this topic. For detailed information about STREAMS, see Programming with system calls and libraries.

© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 -- 02 June 2005