NFS Protocol Overview
Connected: An Internet Encyclopedia
NFS Protocol Overview
Up:
Connected: An Internet Encyclopedia
Up:
Topics
Up:
Functions
Up:
File Sharing
Prev: File Sharing
Next: File Transfer
NFS Protocol Overview
NFS Protocol Overview
The Network File System (NFS), developed by Sun Microsystems, is the
de facto standard for file sharing among UN*X hosts.
NFS Version 3 is documented in
RFC 1813.
The Mount Protocol is closely related.
NFS is implemented using the
RPC Protocol,
designed to support remote procedure calls. All NFS operations are implemented
as RPC procedures. A summary of NFS procedures is show below:
Procedure 0: NULL - Do nothing
Procedure 1: GETATTR - Get file attributes
Procedure 2: SETATTR - Set file attributes
Procedure 3: LOOKUP - Lookup filename
Procedure 4: ACCESS - Check Access Permission
Procedure 5: READLINK - Read from symbolic link
Procedure 6: READ - Read From file
Procedure 7: WRITE - Write to file
Procedure 8: CREATE - Create a file
Procedure 9: MKDIR - Create a directory
Procedure 10: SYMLINK - Create a symbolic link
Procedure 11: MKNOD - Create a special device
Procedure 12: REMOVE - Remove a File
Procedure 13: RMDIR - Remove a Directory
Procedure 14: RENAME - Rename a File or Directory
Procedure 15: LINK - Create Link to an object
Procedure 16: READDIR - Read From Directory
Procedure 17: READDIRPLUS - Extended read from directory
Procedure 18: FSSTAT - Get dynamic file system information
Procedure 19: FSINFO - Get static file system Information
Procedure 20: PATHCONF - Retrieve POSIX information
Procedure 21: COMMIT - Commit cached data on a server to stable storage
NFS is a stateless protocol. This means that the file server stores
no per-client information, and there are no NFS "connections". For example,
NFS has no operation to open a file, since this would require the server
to store state information (that a file is open; what its file descriptor
is; the next byte to read; etc). Instead, NFS supports a Lookup procedure,
which converts a filename into a file handle. This file handle is an
unique, immutable identifier, usually an i-node number, or disk block
address. NFS does have a Read procedure, but the client must specify
a file handle and starting offset for every call to Read. Two identical
calls to Read will yield the exact same results. If the client wants
to read further in the file, it must call Read with a larger offset.
Of course, this is seldom seen by the end user. Most operating systems
provide system calls to open files, and read from them sequentially.
The client's operating system must maintain the required state information,
and translate system calls into stateless NFS operations.
NFS Performance
NFS performance is closely related to RPC performance.
Since RPC is a request-reply protocol, it exhibits very poor performance
over wide area networks. NFS performs best on fast LANs.
Next: File Transfer
Connected: An Internet Encyclopedia
NFS Protocol Overview
|