Network File System (NFS)

NFS was developed in 1984 by Sun, who bundled it with their SunOS operating system. It is layered on top of Sun RPC (Remote Procedure Call), later called ONC RPC (Open Network Computing RPC). The first versions of NFS ran over UDP, although NFS version 3 and later added support for operation over TCP.

NFS is primarily used in local area networks (LAN), but there have been early experiments with NFS-over-WAN. In particular, the popular wuarchive mirror server could be mounted (read-only) over NFS in the 1990s. Recent NFS versions include better support for wide-area implementation, in particular because of TCP support and other improvements that make it more "firewall-friendly".

Currently, the IETF is standardizing NFSv4.1, which includes support for pNFS (parallel NFS), which separates meta-data and data servers, and allows data accesses to be "striped" to different servers.

Performance considerations

NFS over UDP

Originally, NFS ran over UDP. NFS requests and responses (like other RPC requests and responses) were transported as individual UDP datagrams, respectively. NFS requests often operated on "block"-size pieces of data, defined by the rsize and wsize parameters, typically 4096 or 8192 bytes. This lead to UDP (and thus IP) datagrams somewhat larger than 4K or 8KBytes. On typical paths with a Path MTU of 1500 bytes, these datagrams would need to be fragmented in 3-6 fragments. When a single of these fragments was lost, the entire request (or reply) was lost, and had to be retransmitted after a timeout.

Newer versions/implementations of NFS use TCP by default, so this is no longer an issue.


-- SimonLeinen - 25 May 2008

Topic revision: r1 - 2008-05-25 - SimonLeinen
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2004-2009 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.