RPC:远程过程调用协议

原创 2006年06月15日 11:30:00
(RPC:Remote Procedure Call protocol)

  远程过程调用(RPC)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC 协议假定某些传输协议的存在,如 TCP 或 UDP,为通信程序之间携带信息数据。在 OSI 网络通信模型中,RPC 跨越了传输层和应用层。RPC 使得开发包括网络分布式多程序在内的应用程序更加容易。

  RPC 采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用过程接收答复信息,获得进程结果,然后调用执行继续进行。

  目前,有多种 RPC 模式和执行。最初由 Sun 公司提出。IETF ONC 宪章重新修订了 Sun 版本,使得 ONC PRC 协议成为 IETF 标准协议。现在使用最普遍的模式和执行是开放式软件基础的分布式计算环境(DCE)。


协议结构

  远程过程调用(RPC)信息协议由两个不同结构组成:调用信息和答复信息。信息流程如下所示:

远程过程调用流程

RPC:远程过程调用流程

  RPC 调用信息:每条远程过程调用信息包括以下无符号整数字段,以独立识别远程过程:
  • 程序号(Program number)
  • 程序版本号(Program version number)
  • 过程号(Procedure number)

  RPC 调用信息主体形式如下:

  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 . . . 

  };

  RPC 答复信息:RPC 协议的答复信息的改变取决于网络服务器对调用信息是接收还是拒绝。答复信息请求包括区别以下情形的各种信息:
  • RPC 成功执行调用信息。.
  • RPC 的远程实现不是协议第二版,返回 RPC 支持的最低和最高版本号。
  • 在远程系统中,远程程序不可用。
  • 远程程序不支持被请求的版本号。返回远程程序所支持的最低和最高版本号。
  • 请求的过程号不存在。通常是呼叫方协议或程序差错。

  RPC答复信息形式如下:

  enum reply_stat stat { 

  MSG_ACCEPTED = 0,

  MSG_DENIED   = 1

  };

远程过程调用(RPC)详解

本文介绍了什么是远程过程调用(RPC),RPC 有哪些常用的方法,RPC 经历了哪些发展阶段,以及比较了各种 RPC 技术的优劣。...
  • kkkloveyou
  • kkkloveyou
  • 2016年07月11日 00:12
  • 21199

RPC(远程过程调用)简介

RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。之前听过这个名词,但是也只是大概...
  • jiange_zh
  • jiange_zh
  • 2016年06月28日 00:00
  • 1512

Windows RPC 远程过程调用

本文章转载自 http://blog.csdn.net/xxxluozhen/article/details/5605818  作者写的很详细并且通俗易懂 一、什么是远程...
  • eff_vector
  • eff_vector
  • 2016年08月17日 17:05
  • 487

第2部分 启用远程过程调用RPC

1 第2部分 启用远程过程调用——让我们构建一个烤面包机 烤面包机样例的第二部分将会加入一些烤面包行为,为了完成这个任务,我们将会在toaster yang 数据模型中定义一个RPC(远程过程调用)并...
  • aaa_aa000
  • aaa_aa000
  • 2015年05月21日 09:32
  • 1689

RPC远程过程调用协议

RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在...
  • maguanghui_2012
  • maguanghui_2012
  • 2015年08月02日 18:35
  • 349

RPC远程过程调用协议简述

RPC:Remote Procedure Call Protocol即远程过程调用协议,有时候也可以说是一种编程模式,应用场景多用于替代C/S模式中HTTP所主导的一系列框架。是一个计算机通信协议,并...
  • No_Endless
  • No_Endless
  • 2017年07月26日 11:51
  • 234

RPC远程过程调用之我的理解(附带项目希望有人交流)

最近在学习开发过程中使用到了阿里开发的dubbo框架,将项目进行分布式。 最近的学习了解到了一些关于RPC的原理,心血来潮就试着实现了一下自己的RPC功能。 项目主要分为三个子项目 API 项...
  • cmmchenmm
  • cmmchenmm
  • 2017年12月08日 16:51
  • 96

RPC远程过程调用协议

远程过程调用协议 运用这个技术的应用场景:在公司里的系统都有成千上万的服务,各个服务都部署在不同的服务器上。如果想调用这个服务的话我们就要像之前老师那样写一个webserveice去访问这个...
  • lzpooo000
  • lzpooo000
  • 2017年12月15日 09:43
  • 18

RPC 远程过程调用协议

见:https://baike.baidu.com/item/%E8%BF%9C%E7%A8%8B%E8%BF%87%E7%A8%8B%E8%B0%83%E7%94%A8%E5%8D%8F%E8%AE...
  • u011314442
  • u011314442
  • 2017年10月18日 22:34
  • 93

RPC 远程过程调用协议

RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在...
  • educast
  • educast
  • 2013年07月17日 12:29
  • 742
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RPC:远程过程调用协议
举报原因:
原因补充:

(最多只允许输入30个字)