Network file system
Network File System (NFS) is a network file system protocol originally jointly developed by Sun Microsystems and IBM in 1984, allowing a user on a client computer to access files over a network as easily as if the network devices were attached to its local disks. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call (ONC RPC) system. The Network File System protocol is specified in RFC 1094, RFC 1813, and RFC 3530 (which obsoletes RFC 3010).
Sun used version 1 only for in-house experimental purposes, and did not release it to the public. IBM partnered with Sun on version 2 of the protocol.
Version 2 of the protocol (defined in RFC 1094, March 1989) originally operated entirely over UDP. Its designers meant to keep the protocol stateless, with locking (for example) implemented outside of the core protocol. People involved in the creation of NFS version 2 include Rusty Sandberg, Bob Lyon, Bill Joy, and Steve Kleiman.
Version 3 (RFC 1813, June 1995) added:
* support for 64-bit file sizes and offsets, to handle files larger than 4 gigabytes (GB);
* support for asynchronous writes on the server, to improve write performance;
* additional file attributes in many replies, to avoid the need to re-fetch them;
* a READDIRPLUS operation, to get file handles and attributes along with file names when scanning a directory;
* assorted other improvements.
At the time of introduction of Version 3, vendor support for TCP as a transport-layer protocol began increasing. While several vendors had already added support for NFS Version 2 with TCP as a transport, Sun Microsystems added support for TCP as a transport for NFS at the same time it added support for Version 3. Using TCP as a transport made using NFS over a WAN more feasible.
Version 4 (RFC 3010, December 2000; revised in RFC 3530, April 2003), influenced by AFS and CIFS, includes performance improvements, mandates strong security, and introduces a stateful protocol. Version 4 became the first version developed with the Internet Engineering Task Force (IETF) after Sun Microsystems handed over the development of the NFS protocols.
Various side-band protocols have become associated with NFS, including:
* The byte-range advisory Network Lock Manager (NLM) protocol (added to support UNIX System V file-locking APIs).
* The remote quota reporting (RQUOTAD) protocol (to allow NFS-users to view their data-storage quotas on NFS servers).
WebNFS, an extension to Version 2 and Version 3, allows NFS to integrate more easily into Web-browsers and to enable operation through firewalls. Sun Microsystems recently opensourced their WebNFS implementation via https://yanfs.dev.java.net/.