注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

韬光养晦

路漫漫其修远兮,吾将上下而求索

 
 
 

日志

 
 

RPC  

2007-11-14 13:09:26|  分类: MSE learning |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

什么是 RPC ?

Remote Procedure Calls

远程过程调用 (RPC) 是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。

RPC(远程过程调用)是一项广泛用于支持分布式应用程序(不同组件分布在不同计算机上的应用程序)的技术。RPC 的主要目的是为组件提供一种相互通信的方式,使这些组件之间能够相互发出请求并传递这些请求的结果。

RPC is a powerful technique for constructing distributed, client-server based applications. It is based on extending the notion of conventional, or local procedure calling, so that the called procedure need not exist in the same address space as the calling procedure. The two processes may be on the same system, or they may be on different systems with a network connecting them. By using RPC, programmers of distributed applications avoid the details of the interface with the network. The transport independence of RPC isolates the application from the physical and logical elements of the data communications mechanism and allows the application to use a variety of transports.

RPC makes the client/server model of computing more powerful and easier to program. When combined with the ONC RPCGEN protocol compiler clients transparently make remote calls through a local procedure interface.

 

RPC

英文原义:Remote Procedure Call Protocol

中文释义:(RFC-1831)远过程调用协议

注解:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCPUDP,为通信程序之间携带信息数据。在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

  };

  评论这张
 
阅读(154)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018