问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

RPC的工作原理详解

创作时间:
作者:
@小白创作中心

RPC的工作原理详解

引用
1
来源
1.
https://learn.microsoft.com/zh-cn/windows/win32/rpc/how-rpc-works?source=recommendations

RPC(远程过程调用)是一种允许程序在不同计算机上执行过程调用的机制。通过RPC,客户端可以像调用本地过程一样调用远程服务器上的过程,而无需关心底层的网络通信细节。本文将详细介绍RPC的工作原理。

RPC体系结构

RPC体系结构主要包括客户端和服务器两端的组件。下图展示了RPC的基本架构:

客户端工作流程

  1. 调用本地存根过程:客户端应用程序调用本地存根过程,而不是直接调用远程过程。存根代码被编译并与客户端应用程序链接。

  2. 参数处理

  • 从客户端地址空间检索所需的参数。
  • 将参数转换为标准NDR(Network Data Representation)格式,以便通过网络传输。
  1. 调用RPC客户端运行时库:存根代码调用RPC客户端运行时库中的函数,将请求及其参数发送到服务器。

服务器端工作流程

  1. 接收请求:服务器RPC运行时库函数接受来自客户端的请求。

  2. 参数处理

  • 服务器存根从网络缓冲区检索参数,并将其从网络传输格式转换为服务器所需的格式。
  • 调用服务器上的实际过程。
  1. 执行远程过程:远程过程运行,可能生成输出参数和返回值。

数据返回流程

  1. 远程过程返回数据:远程过程完成后,将其数据返回到服务器存根。

  2. 参数转换与传输

  • 服务器存根将输出参数转换为通过网络传输所需的格式,并将其返回到RPC运行时库函数。
  • 服务器RPC运行时库函数将数据传输到客户端计算机。
  1. 客户端处理返回数据
  • 客户端RPC运行时库接收远程过程返回值,并将其返回到客户端存根。
  • 客户端存根将数据从NDR格式转换为客户端计算机使用的格式,并将结果返回给客户端上的调用程序。

运行时库组件

RPC运行时库分为两个部分:

  • 导入库:与应用程序链接的部分。
  • RPC运行时库:作为动态链接库(DLL)实现的核心组件。

服务器应用程序包含对服务器运行时库函数的调用,这些函数用于注册服务器的接口并允许服务器接受远程过程调用。服务器应用程序还包含客户端应用程序调用的特定于应用程序的远程过程。

RPC机制通过抽象网络通信细节,使得开发者可以像调用本地过程一样调用远程过程,大大简化了分布式系统开发的复杂性。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号