什么是 RPC 实现?

当一台计算机中的程序想要从运行在不同网络中的另一台计算机上的另一个程序请求某些内容时,该程序可能使用的协议称为远程过程调用。

通过使用这个协议,程序不需要知道网络细节。

RPC的应用

RPC 的一些应用如下:

  • Windows 中的 Active Directory 服务使用此协议。

  • 大多数 MMC 终端也使用该协议。

  • 许多 DCOM 组件都基于 RPC。

  • 一些实用程序,如“Windows 计算机管理”、“注册表编辑器”等,可以让我们联系远程系统。这些也使用 RPC 协议。

RPC 实现

让我们考虑下图 RPC -

解释

第 1 步- RPC 由称为存根程序的客户端程序组成,该程序与其自己的地址空间相连。参数以通常的方式传递。客户没有发现或注意到此呼叫有任何异常,因为它是本地呼叫。

Step 2 - 现在客户端存根收集参数并将它们打包成一条消息。此操作称为参数编组。消息构造完成后,交给传输层进行传输。

步骤 3 - 在无连接 LAN 系统中,传输实体将标头附加到消息并将其发送到网络上。在 WAN 中,实际的传输有点复杂。

Step 4 - 当消息到达服务器端时,传输实体将把它传递给服务器存根,然后它会解组参数。

Step 5 - 服务器存根将调用服务器过程,以标准方式传递参数。服务器过程无法说它是被远程激活的,因为它的直接调用者是一个遵守所有标准规则的本地过程。只有存根知道发生了一些奇怪的事情。

第 6 步- 完成工作后,服务器程序返回的方式与其他程序完成时返回的方式相同。然后它将结果返回给调用者。

步骤 7 - 服务器存根将结果编组为消息并在传输接口处将其传递,可能通过进行系统调用,如步骤 2 所示。

第 8 步- 之后,回复将返回到客户端计算机。

Step 9 - 回复后将其交给客户端存根。最后,客户端存根返回给它的调用者,即客户端过程。

第 10 步- 服务器返回的任何值都将提供给客户端。