Previous section.

Protocols for Interworking: XNFS, Version 3W
Copyright © 1998 The Open Group

Introduction

Overview

The vast majority of open-systems-compliant systems, now and in the future, will be connected to other systems in local or wide area networks. To exploit the capabilities of these networks, two types of mechanism have been used. In the first traditional model, the existence of the network is explicitly recognised, and interfaces are provided which allow applications or end users to perform operations across the network. In the second, the semantics of local system interfaces are extended to allow access to objects on remote systems, so that applications and end users can (as far as possible) ignore the distinctions between local and remote objects. The first approach is the subject of the X/Open Networking Services Specification (see reference XNS). This document is concerned with the second. More specifically, it is concerned with access to files and directories which are physically stored on remote systems. It does not address operations on, or communications between, processes within a network.

The process of accessing remote files and directories as though they were part of the local file system hierarchy has been termed "transparent file access" (TFA). TFA is an attractive concept for a number of reasons. Using TFA, it becomes possible to use a single set of applications, utilities, and so on, for local and remote operations. For example, instead of invoking a network application such as BSFT (see the X/Open BSFT Specification) to copy a file from one system to another, the XSI cp utility may be used. Accessing a remote file directly, rather than copying it to the local system and working on the copy, has two obvious benefits. First, the single copy of the file can be updated without the need to update the copies. Second, the total disk storage used within the network is reduced. From here it is a short step to using TFA to support a diskless system, in which all file service is networked. Such a system may offer certain benefits in the areas of cost, simplicity and administration.

The most widely used heterogeneous TFA architecture is the Network File System (NFS), originally developed by Sun Microsystems, Inc. NFS has been implemented on a wide range of architectures, from personal computers to mainframes and supercomputers. The specifications for the protocols associated with NFS have been published, and there have been several independent implementations.

With the XNFS specification, The Open Group offers the market a temporary but complete solution to the problem of transparent file access between open-systems-compliant systems. Temporary, because The Open Group recognises the TFA standardisation effort ongoing within the IEEE P1003.1f committee, and The Open Group intends to be compliant with P1003.1f TFA at such time as it becomes an IEEE standard. Complete, because The Open Group now offers both protocols for interoperability (via this XNFS specification) and interfaces for application/user portability (via the XSI specifications, in conjunction with the semantic differences defined in Semantic Difference Summary for File Access , Open-System Interface Semantics over XNFS and Open System Utilities Semantics over XNFS .

There is a certain overlap between the X/Open (PC)NFS Specification and this specification. However, the X/Open (PC)NFS Specification contains a large number of PC-specific definitions, and the two documents address different markets (PC-X/Open Interworking and X/Open-X/Open interworking, respectively).

Scope

This document is a specification for XNFS. XNFS incorporates all of the protocols defined for NFS, and formalises the semantics for XSI applications and utilities operating on remote file systems. A system compliant to an Open Brand for XNFS will be able to access files on any other conforming system, and will be able to make its local files accessible to conforming systems. It will also be able to act as a file server to personal computers running (PC)NFS, as described in the X/Open (PC)NFS Specification. It is intended that it will also be able to interoperate with implementations of NFS on systems which are not compliant with an Open Brand for XNFS, but such interoperation is outside the scope of this specification. Throughout this specification, XNFS will refer to the complete specification, while NFS will refer only to the file-sharing protocol component.

This document contains protocol specifications for External Data Representation (XDR), Remote Procedure Call Protocol (RPC), the Network File System (NFS) and the XNFS adjunct protocols, which include Portmap, Mount, Network Status Monitor (NSM) and Network Lock Manager (NLM). Protocols corresponding to both NFS Version 2 and NFS Version 3 are specified. Systems conforming to this document must support both protocol sets.

This document introduces the WebNFS extensions in an optional appendix.

The RPC specification is included because the NFS protocols are defined in terms of it. The XDR specification is included because the NFS protocols and RPC are defined in terms of it.

The inclusion of these specifications does not mandate the use of distinct XDR or RPC implementation components, nor does it define or mandate any general RPC protocols or interfaces for distributed client/server applications. However, the RPC and XDR specifications define unambiguously the encoding of NFS and adjunct protocol requests and responses when transmitted across a network, as described in RPC Interface to UDP Transport Services .

This specification does not define the utilities and interfaces used for the administration of XNFS. However it is impractical to avoid the issue of configuration entirely. XNFS implementations include a number of configuration options, and many of the semantic issues discussed in the appendices are inherently dependent upon the way in which XNFS is configured. The solution adopted in this document is to define an abstract XNFS Service Model (see XNFS Service Model ) which specifies a set of administrative operations and the attributes of the entities to be managed. The attributes are those defined in the most widely-used NFS reference source from Sun Microsystems, Inc., "NFSSRC4.0". The implementation of the administrative model, in terms of programming interfaces, utilities, data bases and so on, is not specified, and need not be patterned on NFSSRC4.0. It is intended that this specification is compatible and interoperable with current practice as described in RFC 1094 and RFC 1813 (see References to RFCs ). The behaviour described in Semantic Difference Summary for File Access , Open-System Interface Semantics over XNFS and Open System Utilities Semantics over XNFS , is presented in terms of the attributes introduced in the Service Model.

These appendices document the semantic differences experienced when using NFS instead of a local file system.

Audience

There are two intended audiences for this specification. The first includes anyone who wishes to implement XNFS as part of an open-systems-compliant scheme. This specification defines the protocols which are to be implemented by a conforming system, so that it may interoperate with other conforming systems. It does not, however, define the way in which these protocols are to be implemented, nor the way in which XNFS is to be integrated into the rest of the system. If, for example, an implementation performs a read() on a remote file, this specification defines completely the format of the remote request and the corresponding response. It does not define the circumstances under which an implementation should issue a remote read() request. However, as a guide for implementors, a (non-normative) transmission analysis is included as Open Systems Transmission Analysis .

The second audience is the developers of applications. This group relies upon the semantics of the XSI as defined in the X/Open System Interfaces and Headers Specification (see reference XSH) and the X/Open Commands and Utilities Specification (see reference XCU), and needs to be aware of any semantic changes which the use of XNFS may introduce. These changes are described in Semantic Difference Summary for File Access , Open-System Interface Semantics over XNFS and Open System Utilities Semantics over XNFS . Obviously an XNFS implementor must be aware of this material so that his or her implementation does not behave in an unexpected manner.

Terminology

The following common english words have special meaning when used in this document:

can

This describes a permissible optional feature or behaviour available to the user or application; all systems support such features or behaviour as mandatory requirements.

implementation-dependent

The value or behaviour is not consistent across all implementations. The provider of an implementation normally documents the requirements for correct program construction and correct data in the use of that value or behaviour. When the value or behaviour in the implementation is designed to be variable or customisable on each instantiation of the system, the provider of the implementation normally documents the nature and permissible ranges of this variation. Applications that are intended to be portable must not rely on implementation-dependent values or behaviour.

legacy

Certain features are legacy, which means that they are being retained for compatibility with older applications, but have limitations which make them inappropriate for developing portable applications. New applications should use alternative means of obtaining equivalent functionality. Legacy features are marked LEGACY.

may

With respect to implementations, the feature or behaviour is optional. Applications should not rely on the existence of the feature. To avoid ambiguity, the reverse sense of may is expressed as need not, instead of may not.

must

This means that the behavior described is a requirement on the implementation.

should

With respect to implementations, the feature is recommended, but it is not mandatory. Applications should not rely on the existence of the feature.

With respect to users or applications, the word means recommended programming practice that is necessary for maximum portability.

undefined

A value or behaviour is undefined if this document imposes no portability requirements on applications for erroneous program constructs or erroneous data. Implementations may specify the result of using that value or causing that behaviour, but such specifications are not guaranteed to be consistent across all implementations. An application using such behaviour is not fully portable to all systems.

unspecified

A value or behaviour is unspecified if this document imposes no portability requirements on applications for correct program construct or correct data. Implementations may specify the result of using that value or causing that behaviour, but such specifications are not guaranteed to be consistent across all implementations. An application requiring a specific behaviour, rather than tolerating any behaviour when using that functionality, is not fully portable to all systems.

will

This means that the behavior described is a requirement on the implementation.

Protocol Stacks and Conformance

An open-systems-conformant XNFS implementation must support the following protocols:

These protocols are defined in terms of the Remote Procedure Call (RPC) protocol, which may employ the External Data Representation (XDR) encoding to ensure operating system independence.

Although the RPC protocol is inherently independent of any particular transport service, an open-systems-conformant NFS implementation must support at least one protocol suite, and support it in the manner defined in this specification.

This specification defines a single transport service, UDP over IP from the Internet Protocol Suite (IPS). All XNFS protocols are implemented over this transport.

Note:
While an implementation may elect to use some other transport such as TCP for communication between XNFS components on a single machine, this is an implementation issue and is not required or described in this specification.

Provided that an interoperable transport service and the same physical connection mechanism are chosen for two systems, conformance to this specification by both system's NFS implementations guarantees that both systems can make their local files accessible for each other and that they can access each other's files.

In addition to the protocols described in the chapters mentioned above, the following chapters are normative for open-systems-compliant NFS implementations:

Compliance

This specification applies to the X/Open Portability Guide, Issue 3 (XPG3) and the Single UNIX Specification, Issue 4, Version 2 (XCU, XSH and XBD - see Referenced Documents ), except where explicitly stated otherwise.

Relationship to other Open Group Specifications

This specification is based in part on the X/Open (PC)NFS Specification.

The X/Open (PC)NFS Specification defines the protocols for communication between a PC client running DOS or OS/2 and an open-systems-compliant server.

The XNFS specification defines:

Since many of the protocols used are the same for PC and open-systems-compliant system clients, there is obviously a great deal of overlap between these specifications.

In the event of any inconsistency or disagreement between the two documents, this document is to be treated as authoritative. At some future date, the X/Open (PC)NFS Specification will be revised to include only those elements which are specific to PC clients, such as the pcnfsd protocol, filename and attribute mapping, and the transmission analysis.

This specification describes additional return codes and changed behaviour for some of the system calls and utilities described in the X/Open System Interfaces and Headers Specification (see reference XSH) and the X/Open Commands and Utilities Specification (see reference XCU). These are documented in Semantic Difference Summary for File Access , Open-System Interface Semantics over XNFS and Open System Utilities Semantics over XNFS .

References to RFCs

This document describes only those protocols which have not otherwise been standardised. The RFCs listed in the Referenced Documemts section in the front pages of this document should be consulted for details of the Internet Protocol Suite.

Certain RFC documents are reissued periodically, with each issue receiving a new RFC number. To determine whether a particular RFC is current or not, the reader should consult a copy of the latest RFC Index. Guidance on where to find this information is included in the Referenced Documents section.


Why not acquire a nicely bound hard copy?
Click here to return to the publication details or order a copy of this publication.

Contents Next section Index