Protocol Specification chapter of this manual. The NFS Protocol Specification is written using the RPC data description language. Sun provides implementations of XDR and RPC, but NFS does not require their use. The NFS protocol is stateless. That is, a server does not need to maintain any extra state information about any of its clients in order to function correctly.
Stateless servers have a distinct advantage over stateful servers in the event of a failure.
The client of a stateful server, on the other hand, needs to either detect a server crash and rebuild the server's state when it comes back up, or cause client operations to fail. This may not sound like an important issue, but it affects the protocol in some unexpected ways. We feel that it is worth a bit of extra complexity in the protocol to be able to write very simple servers that do not require fancy crash recovery. The goal is to not introduce any extra state in the protocol itself.