Connected: An Internet Encyclopedia
7.1 RPC Programs and Procedures

Up: Connected: An Internet Encyclopedia
Up: Requests For Comments
Up: RFC 1831
Up: 7. RPC PROTOCOL REQUIREMENTS
Prev: 7. RPC PROTOCOL REQUIREMENTS
Next: 7.2 Authentication

7.1 RPC Programs and Procedures

7.1 RPC Programs and Procedures

The RPC call message has three unsigned integer fields -- remote program number, remote program version number, and remote procedure number -- which uniquely identify the procedure to be called. Program numbers are administered by a central authority (rpc@sun.com). Once implementors have a program number, they can implement their remote program; the first implementation would most likely have the version number 1. Because most new protocols evolve, a version field of the call message identifies which version of the protocol the caller is using. Version numbers enable support of both old and new protocols through the same server process.

The procedure number identifies the procedure to be called. These numbers are documented in the specific program's protocol specification. For example, a file service's protocol specification may state that its procedure number 5 is "read" and procedure number 12 is "write".

Just as remote program protocols may change over several versions, the actual RPC message protocol could also change. Therefore, the call message also has in it the RPC version number, which is always equal to two for the version of RPC described here.

The reply message to a request message has enough information to distinguish the following error conditions:

  1. The remote implementation of RPC does not support protocol version 2. The lowest and highest supported RPC version numbers are returned.

  2. The remote program is not available on the remote system.

  3. The remote program does not support the requested version number. The lowest and highest supported remote program version numbers are returned.

  4. The requested procedure number does not exist. (This is usually a client side protocol or programming error.)

  5. The parameters to the remote procedure appear to be garbage from the server's point of view. (Again, this is usually caused by a disagreement about the protocol between client and service.)


Next: 7.2 Authentication

Connected: An Internet Encyclopedia
7.1 RPC Programs and Procedures