Skip to main content

RFC 1813 - NFS Version 3 Protocol Specification

Published: June 1995
Status: Informational
Authors: B. Callaghan, B. Pawlowski, P. Staubach (Sun Microsystems, Inc.)


Abstract

This paper describes the NFS version 3 protocol. This paper is provided so that people can write compatible implementations.


Table of Contents

  • 1. Introduction
    • 1.1 Scope of the NFS version 3 protocol
    • 1.2 Useful terms
    • 1.3 Remote Procedure Call
    • 1.4 External Data Representation
    • 1.5 Authentication and Permission Checking
    • 1.6 Philosophy
    • 1.7 Changes from the NFS version 2 protocol
  • 2. RPC Information
    • 2.1 Authentication
    • 2.2 Constants
    • 2.3 Transport address
    • 2.4 Sizes
    • 2.5 Basic Data Types
    • 2.6 Defined Error Numbers
  • 3. Server Procedures
    • 3.1 General comments on attributes
    • 3.2 General comments on filenames
    • 3.3.0 NULL: Do nothing
    • 3.3.1 GETATTR: Get file attributes
    • 3.3.2 SETATTR: Set file attributes
    • 3.3.3 LOOKUP: Lookup filename
    • 3.3.4 ACCESS: Check access permission
    • 3.3.5 READLINK: Read from symbolic link
    • 3.3.6 READ: Read from file
    • 3.3.7 WRITE: Write to file
    • 3.3.8 CREATE: Create a file
    • 3.3.9 MKDIR: Create a directory
    • 3.3.10 SYMLINK: Create a symbolic link
    • 3.3.11 MKNOD: Create a special device
    • 3.3.12 REMOVE: Remove a file
    • 3.3.13 RMDIR: Remove a directory
    • 3.3.14 RENAME: Rename a file or directory
    • 3.3.15 LINK: Create link to an object
    • 3.3.16 READDIR: Read From directory
    • 3.3.17 READDIRPLUS: Extended read from directory
    • 3.3.18 FSSTAT: Get dynamic file system information
    • 3.3.19 FSINFO: Get static file system information
    • 3.3.20 PATHCONF: Retrieve POSIX information
    • 3.3.21 COMMIT: Commit cached data on a server to stable storage
  • 4. Implementation issues
    • 4.1 Multiple version support
    • 4.2 Server/client relationship
    • 4.3 Path name interpretation
    • 4.4 Permission issues
    • 4.5 Duplicate request cache
    • 4.6 File name component handling
    • 4.7 Synchronous modifying operations
    • 4.8 Stable storage
    • 4.9 Lookups and name resolution
    • 4.10 Adaptive retransmission
    • 4.11 Caching policies
    • 4.12 Stable versus unstable writes
    • 4.13 32 bit clients/servers and 64 bit clients/servers
  • 5. Appendix I: Mount protocol
    • 5.1 RPC Information
    • 5.2 Server Procedures
  • 6. Appendix II: Lock manager protocol
    • 6.1 RPC Information
    • 6.2 NLM Procedures
    • 6.3 Implementation issues
  • 7. Appendix III: Bibliography
  • 8. Security Considerations
  • 9. Acknowledgements
  • 10. Authors' Addresses