什么是 RPC 实现?


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

使用此协议,程序无需了解网络详细信息。

RPC 的应用

RPC 的一些应用如下:

  • Windows 中的活动目录服务使用此协议。

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

  • 许多 DCOM 组件都基于 RPC。

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

RPC 实现

让我们考虑下面 RPC 的示意图:

解释

步骤 1 - RPC 包含一个称为存根过程的客户端程序,该程序连接到其自己的地址空间。参数以通常的方式传递。客户端没有发现或注意到此调用有任何异常之处,因为它是一个本地调用。

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

步骤 3 - 在无连接的 LAN 系统中,传输实体会在消息中附加一个报头并将其发送到网络上。在 WAN 中,实际传输会稍微复杂一些。

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

步骤 5 - 然后服务器存根将调用服务器过程,并以标准方式传递参数。服务器过程无法判断它是否被远程激活,因为它的直接调用者是一个本地过程,该过程遵循所有标准规则。只有存根知道正在发生一些特殊的事情。

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

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

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

步骤 9 - 回复后,它将传递给客户端存根。最后,客户端存根返回到其调用者,即客户端过程。

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

更新于: 2021 年 9 月 13 日

2K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告