This section specifies a message protocol used in implementing the Remote Procedure Call (RPC) package. (The message protocol is specified with the External Data Representation (XDR) language. This section assumes the reader is familiar with XDR. See ``XDR/RPC protocol specification'' for details.)
This section discusses servers, services, programs, procedures, clients, and versions.
A ``server'' is a process that provides remote services to clients.
A ``network service'' is a collection of one or more remote programs.
A ``remote program'' implements one or more remote procedures; the procedures, their parameters, and results are documented in the specific program's protocol specification (see ``rpcbind protocol'' for an example).
Network ``clients'' are processes that make remote procedure calls to servers. A server may support more than one version of a remote program to be forward compatible with changing protocols.
As an example of how these terms are used, consider a network file service composed of two programs. One program may deal with high-level applications such as file system access control and locking. The other may deal with low-level file I/O and have procedures like ``read'' and ``write.'' A client machine of the network file service would call the procedures associated with the two programs of the service on behalf of some user on the client machine.