q程q程调用QRPCQ是一U通过|络从远E计机E序上请求服务,而不需要了解底层网l技术的协议。RPC 协议假定某些传输协议的存在,?TCP ?UDPQؓ通信E序之间携带信息数据。在 OSI |络通信模型中,RPC 跨越了传输层和应用层。RPC 使得开发包括网l分布式多程序在内的应用E序更加Ҏ?/p> RPC 采用客户?服务器模式。请求程序就是一个客hQ而服务提供程序就是一个服务器。首先,调用q程发送一个有q程参数的调用信息到服务q程Q然后等待应{信息。在服务器端Q进E保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进E参敎ͼ计算l果Q发送答复信息,然后{待下一个调用信息,最后,客户端调用过E接收答复信息,获得q程l果Q然后调用执行l进行?/p> 目前Q有多种 RPC 模式和执行。最初由 Sun 公司提出。IETF ONC 宪章重新修订?Sun 版本Q?ONC PRC 协议成ؓ IETF 标准协议。现在用最普遍的模式和执行是开攑ּ软g基础的分布式计算环境QDCEQ? |
![]() |
协议l构 |
q程q程调用QRPCQ信息协议由两个不同l构l成Q调用信息和{复信息。信息流E如下所C: |
RPCQ远E过E调用流E?/p> |
RPC 调用信息Q每条远E过E调用信息包括以下无W号整数字段Q以独立识别q程q程Q?
RPC 调用信息M形式如下Q?/p> struct call_body { unsigned int rpcvers; unsigned int prog; unsigned int vers; unsigned int proc; opaque_auth cred; opaque_auth verf; 1 parameter 2 parameter . . . }Q?/p> RPC {复信息QRPC 协议的答复信息的改变取决于网l服务器对调用信息是接收q是拒绝。答复信息请求包括区别以下情形的各种信息Q?
RPC{复信息形式如下Q?/p> enum reply_stat stat { MSG_ACCEPTED = 0, MSG_DENIED = 1 }Q?br />----------------------------------------------------------------------------------------- |