This manual describes the programmer's interface to network services in the SunOS 5.8 operating system.
SunOS 5.8 is fully compatible with System V, Release 4 (SVR4) and conforms to the third edition of the System V Interface Description (SVID). It supports all System V network services.
The theme of networking in SunOS 5.8 is transport independence. Networked applications can execute without having to be tailored to a specific transport protocol.
Previous versions of the system contain sockets, TLI, and name-to-address translation functions. In SunOS 5.8 these are enhanced and work with the new network selection facility to free user applications of the details of specific protocols and address formats.
Transport independent RPC provides interfaces that let applications be free of or more closely tied to the underlying transport. It is the developer's choice to use the most appropriate level.
Applications that must adjust options or use specific addresses can still do so. But you can now write applications to be very portable over different protocol stacks.
Another important feature of SunOS 5.8 is standardized internal kernel network interfaces at the transport and link levels. At the transport level, the AT&T Transport Provider Interface is required. At the link level, the UNIX International Data Link Provider Interface is required.
Standardizing on these interfaces lets you interchange STREAMS drivers at the transport and link level with no changes to the modules or drivers communicating with them. In particular, TLI and sockets can interface to any transport provider supporting TPI, and any device driver supporting DLPI can be linked beneath the Internet Protocol (IP).
The Open Systems Interconnect (OSI) reference model is the basis of commercially available network service architectures. Other network protocols, developed independently, conform loosely to the model. The TCP/IP Internet Protocol suite is an example.
The OSI reference model is a convenient framework for networking concepts. Basically, data are injected into a network by a sender. The data are transmitted along a communication connection and are delivered to a receiver. To do this, a variety of networking hardware and software must work together.
The OSI reference model divides the functions of networking into seven layers, as depicted in Figure 1-1.
Each protocol layer performs services for the layer above it. The ISO definition of the protocol layers provides designers some freedom of implementation. For example, some applications skip the presentation and session layers to interface directly with the Transport layer.
The hardware layer of the model. On SPARC(TM) systems, it consists of the connector to the network transmission medium, any multiplexor boxes, and cables.
Does the sending and receiving. On the sending end, Ethernet (or similar) software organizes the data into packets of appropriate size and packages them. The packaging includes the physical address of the intended receiver. The layer also transmits the message packets and retransmits them if needed.
On the receiving end, the Ethernet hardware recognizes packets with its address and receives them. The Ethernet software strips the transmission packaging and reassembles the data. It can detect transmission errors.
Does the message routing, including translation from logical to physical addresses. The Internet Protocol (IP) is the normal network layer for SPARC systems.
Controls the flow of data on the network. In SunOS 5.8, any of the Transport Layer Interface (TLI), the Transmission Control Protocol (TCP), or the User Datagram Protocol (UDP) can be used. In SPARC systems, connection mode service is typically provided through TCP, and connectionless service is typically provided through UDP.
Manages reliable sessions between processes. Remote Procedure Calls (RPC) belong at this layer. The interface at this layer allows remote communication using function call semantics.
Performs the translation between the data representation local to the computer and the processor-independent format that is sent across the network. In the SunOS 5.8 environment, the processor-independent data format is XDR.
At this top layer are the user-level programs and services. Examples of user-level programs are telnet, rlogin, ftp, and yppasswd. Examples of services are NFSTM, NIS, and DNS.
Industry standards have been or are being defined for each layer of the reference model. Two standards are defined for each layer: one specifies the interface to the services provided by the layer, and the other specifies the protocol observed by the services in the layer. Users of a service interface standard should be able to ignore the protocol and any other implementation details of the layer.
The transport layer (layer 4) is the lowest layer of the model that provides applications and higher layers with end-to-end service. This layer hides the topology and characteristics of the underlying network from users. The transport layer also defines a set of services common to many contemporary protocol suites including the ISO protocols, Transmission Control Protocol and TCP/IP Internet Protocol Suite, Xerox Network Systems (XNS), and Systems Network Architecture (SNA).
In RPC programming, the term "network" is frequently used as a synonym for transport or transport type.
The Transport Layer Interface (TLI) is modeled on the industry standard Transport Service Definition (ISO 8072). It also can be used to access both TCP and UDP. It is implemented as a user library using the STREAMS I/O mechanism.