RPC协议
英文原义:Remote Procedure Call Protocol
中文释义:(RFC-1831)远程调用协议 ,最初由RFC-1050定义。
注解:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用过程接收答复信息,获得进程结果,然后调用执行继续进行。
目前,有多种RPC模式和执行。最初由Sun公司提出。IETF ONC宪章重新修订了Sun版本,使得ONC RPC协议成为IETF标准协议。现在使用最普遍的模式和执行是开放式软件基础的分布式计算环境(DCE)。
远程过程调用(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
};
分享到:
相关推荐
### XML-RPC协议详解 #### 一、XML-RPC简介 **XML-RPC**(XML Remote Procedure Call)是一种轻量级的远程过程调用协议,它允许不同操作系统、不同环境中的程序通过Internet进行通信。XML-RPC使用HTTP作为传输协议...
在这个“netty的rpc协议的简单实现”项目中,我们将探讨Netty如何被用来构建RPC框架的关键组件和流程。 首先,我们需要理解RPC的基本原理。RPC的核心是封装网络通信细节,使得客户端和服务器之间通过接口进行通信,...
吴超老师的这个小测试例子是关于Hadoop中RPC协议的应用,它可以帮助我们深入理解RPC的工作原理以及在Hadoop生态系统中的实际应用。 首先,我们需要知道Hadoop的RPC是如何工作的。在Hadoop中,RPC主要用于NameNode、...
### RPC协议解析 #### 概述 远程过程调用(Remote Procedure Call,简称RPC)是一种通信协议,允许在不同计算机上的程序互相调用对方的方法或函数,而无需了解底层网络细节。RPC协议的设计目的是使远程过程调用尽...
DCERPC协议pcap数据包下载,支持抓包软件(如:wireshark)打开并学习DCERPC协议报文解析。需要其他协议,请查看我发布的其他资源。
在本文中,我们将深入探讨JSON-RPC协议的C语言实现,并对比其与Python的实现方式。 ### JSON-RPC简介 JSON-RPC允许客户端通过HTTP或其他传输协议向服务器发送请求,执行服务器上的方法并接收响应。它支持单个请求/...
LabVIEW XML-RPC 是一种基于XML的远程过程调用(RPC)技术,它允许LabVIEW应用程序与其他支持XML-RPC协议的系统进行通信。这个技术在跨平台交互和分布式系统开发中发挥着重要作用,使得LabVIEW可以与不同编程语言...
RPC协议通常使用TCP或UDP作为底层传输协议,以实现高效的数据交换。由于在传输层工作,RPC通常涉及更少的协议开销,但同时也意味着它需要更多的底层网络知识来正确实现。 **2. HTTP(Hypertext Transfer Protocol)...
【标题】:“35-二进制类RPC协议:还是叫NBA吧,总说全称多费劲1” 【描述】:“第一个参数是2,编码为0x92,第二个参数是3,编码为0x93。一种常见的做法是建立严格的项目管理流程;另一种方法是改用RESTful的方式...
这个zip文件“C语言实现的简单rpc协议”包含了一个用C语言编写的RPC实现,这将帮助我们理解RPC的工作原理以及如何在C语言环境中构建这样的系统。 首先,RPC的核心概念是客户端-服务器模型。在RPC中,客户端发起一个...
【二进制类RPC协议详解】 在互联网应用的架构中,RPC(Remote Procedure Call)协议是一种常见的服务间通信方式,它允许一个程序调用另一个在不同地址空间的程序,通常是通过网络。本讲主要探讨二进制类RPC协议,以...
本文将深入探讨Kryonet在RPC协议中的应用与研究。 首先,我们来理解Kryo序列化机制。Kryo是一个高性能的对象图形序列化库,适用于Java和Scala。它的设计目标是速度和低内存占用,这使得Kryo非常适合在网络传输或...
RPC协议由Sun Microsystems公司制定,并在RFC1057文档中进行了详细描述。这个文档定义了RPC的第二版规范,虽然当时还不是互联网标准,但它为系统间通信提供了基础。 ### 1. 简介 RPC协议的目的是简化分布式计算,...
浅谈微服务的RPC协议
XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用。 它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。
【RPC协议综述】 RPC(Remote Procedure Call)协议是一种分布式计算技术,允许程序在一台计算机上执行远程调用另一台计算机上的函数或方法,就像调用本地函数一样。标题和描述提到的问题,揭示了RPC面临的主要挑战...
在"xml-rpc-2.2.zip"这个压缩包中,可能包含的是XML-RPC协议2.2版本的相关资料和库文件,用于理解和应用XML-RPC技术。 XML-RPC的基本工作原理是这样的: 1. **请求构造**:客户端将方法名和参数封装成一个XML文档...
【跨语言类RPC协议与Protocol Buffers详解】 在IT领域,RPC(Remote Procedure Call)协议是一种常见的用于不同进程间通信的技术,它使得客户端能够像调用本地函数一样调用远程服务器上的服务。随着微服务架构的...
RPC协议解决了本地调用与远程调用之间的巨大鸿沟,使得开发者无需关心底层网络通信的复杂性,只需关注业务逻辑。 在实现RPC时,我们需要解决一系列关键问题: 1. **定义远程调用的语法和语义**:客户端和服务端...
总的来说,Aria2 Tools提供了一整套工具,让下载变得更加高效和便捷,特别是对于需要自动化处理大量下载任务的用户,利用RPC协议可以极大地提升工作效率。同时,用户应确保在使用过程中遵守版权法规,合法使用下载...