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 | 表示特定于过程的参数。 |
客户端可以向网络发送广播包,等待来自各种服务器的众多回复。 客户机还可以将批处理中任意大序列的调用消息发送到服务器。