There are many client/server network models however one of the most popular is called NFS. The service was originally designed to provide transparent file sharing in network environments. It was originally designed as a commercial project by a team working for Sun Microsystems in the 1980s but was eventually released as an open internet protocol. There are several defined standards originally from RFC 1094 which was then updated to RFC 1813 in the mid 1990s. NFS is now a widely used protocol with globally approved specifications, one of it’s important co-existent protocols is AFS (Andrew File System).
One of the reasons that NFS became so important was it’s ability to run on all sorts of systems. The system can be run on PCs, servers, mainframes using a variety of widely available operating systems. In fact multiple client types can access shared NFS file systems on all sorts of environments. Indeed it was first used as a predecessor of file sharing systems and an advanced FTP alternative. Indeed many media files that were downloaded from film, and movie sites like the BBC were downloaded and shared sing NFS in those earlier years before DRM protections were implemented.
Over twenty years ago there were an estimated client base of 8.5 million systems using NFS throughout the world and that number is probably significantly higher now. Although alternative file systems are available, NFS has the advantage of being freely available in the public domain and is supported by many commercial vendors like Sun Microsystems. Although it should be said that Sun only support their commercial version of the file system and the internet version known as WebNFS.
It should be noted that NFS is more than a simple network files system such as FTP (File transfer protocol). NFS does not require full transfer of a file but instead works on blocks of files which are transported as required. This is an important function of NFS which dramatically reduces network traffic. Servers installed with NFS will broadcast or advertise the directories which are being shared. The details of the directory contents are stored in configuration files which can be read when the server is initially booted or the file system mounted.
This process of making a file available will be more familiar to Unix and linux users than Microsoft users. It’s know as file mounting and the process can be automated to happen when a user tries to access the file. The difficulty that effects all such file directories is to handle concurrent users. If several people access the same file and all of them want to modify it – what happens? NFS deals with this situation by locking a file when it is being accessed by a user. The first person is able to access and modify the file but subsequent users will only have read access to the file until it’s released.
Subsequent versions of NFS such as version 3 implemented global systems which allow users to move files to different network locations for modification. This is especially useful for implementing applications like Netflix which require specific access to things like configuration files. These advanced versions of NFS also include other improvements including that of security. Most modern versions of NFS now allow multiple authentication schemes including that of security systems like Kerberos