RPC 调用消息

本节说明远程过程调用消息。

每条远程过程调用消息都包含以下无符号整数字段,用于唯一地标识远程过程:

  • 程序号
  • 程序版本号
  • 过程号
RPC 调用消息的主体采用以下格式:

struct call_body {
     rpcvers_t rpcvers;
     rpcprog_t prog;
     rpcvers_t vers;
     rpcproc_t proc;
     opaque_auth cred;
     opaque_auth verf;
     1 parameter
     2 parameter . . . 
};

此结构的参数如下所示:

描述
rpcvers 指定 RPC 协议的版本号。 此参数的值为 2 以指示 RPC 的第二个版本。
prog 指定标识远程程序的编号。 这是协议中表示的分配编号,用于标识调用远程过程所需的程序。 程序号由中央机构管理,并记录在程序的协议规范中。
vers 指定标识远程程序版本的编号。 随着远程程序的协议的实现,它们会不断演变和变化。 分配版本号以标识协议演化的不同阶段。 服务器可以同时为同一协议的不同版本的请求提供服务。
proc 指定与正在调用的远程程序相关联的过程的编号。 这些数字记录在特定程序的协议规范中。 例如,协议的规范可以将读取过程列示为过程号 5 或将写入过程列示为过程号 12。
cred 指定 credentials-authentication 参数,用于将调用者标识为有权调用远程程序。 此参数作为不透明数据结构传递,这意味着数据不会在从客户机传递到服务器时进行解释。
verf 指定用于向服务器标识调用者的 verifier-authentication 参数。 此参数作为不透明数据结构传递,这意味着数据不会在从客户机传递到服务器时进行解释。
1 parameter 表示特定于过程的参数。
2 parameter 表示特定于过程的参数。

客户端可以向网络发送广播包,等待来自各种服务器的众多回复。 客户机还可以将批处理中任意大序列的调用消息发送到服务器。