`
tiandirensoon
  • 浏览: 597146 次
文章分类
社区版块
存档分类
最新评论

Http与RPC通信协议的比较

 
阅读更多

OSI网络结构的七层模型

各层的具体描述如下:

  第七层:应用层 定义了用于在网络中进行通信和数据传输的接口 - 用户程式;提供标准服务,比如虚拟终端、文件以及任务的传输 和处理;
  第六层:表示层 掩盖不同系统间的数据格式的不同性; 指定独立结构的数据传输格式; 数据的编码和解码;加密和解密;压缩和 解压缩
  第五层:会话层 管理用户会话和对话; 控制用户间逻辑连接的建立和挂断;报告上一层发生的错误
  第四层:传输层 管理网络中端到端的信息传送; 通过错误纠正和流控制机制提供可靠且有序的数据包传送; 提供面向无连接的数 据包的传送;
  第三层:网络层 定义网络设备间如何传输数据; 根据唯一的网络设备地址路由数据包;提供流和拥塞控制以防止网络资源的损耗
  第二层:数据链路层 定义操作通信连接的程序; 封装数据包为数据帧; 监测和纠正数据包传输错误
  第一层:物理层 定义通过网络设备发送数据的物理方式; 作为网络媒介和设备间的接口;定义光学、电气以及机械特性。

在上述7层中,http协议是应用层协议。HTTP协议是超文本传送协议(HyperText Transfer Protocol)的缩写,它是万维网(World Wide Web,www,也简称为Web)的基础。HTTP协议设计之初就是为了实现Web的想法。HTTP协议位于TCP/IP协议栈的应用层。基于HTTP协议的客户/服务器模式的信息交换过程,分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。

而关于RPC的基本概念介绍如下:


英文原义:Remote Procedure Call Protocol
中文释义:(RFC-1831)远过程调用协议
   注解:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加轻易。
   RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用过程接收答复信息,获得进程结果,然后调用执行继续进行。
RPC信息协议由两个不同结构组成:调用信息和答复信息。

二者的联系是:


RPC OVER HTTP

Microsoft RPC-over-HTTP 部署(RPC over HTTP)允许RPC 客户端安全和有效地通过Internet 连接到RPC 服务器程序并执行远程过程调用。这是在一个名称为RPC-over-HTTP 代理,或简称为RPC 代理的中间件的帮助下完成的。

  RPC 代理运行在IIS 计算机上。它接受来自Internet 的RPC 请求,在这些请求上执行认证,检验和访问检查,如果请求通过所有的测试,RPC 代理将请求转发给执行真正处理的RPC 服务器。通过RPC over HTTP,RPC 客户端不和服务器直接通信,它们使用RPC 代理作为中间件。


关于xml-rpc

1.xml rpc是什么
1.1. xml rpc简介
xml rpc是使用http协议做为传输协议的rpc机制,使用xml文本的方式传输命令和数据。
一个rpc系统,必然包括2个部分:1.rpc client,用来向rpc server调用方法,并接收方法的返回数据;2.rpc server,用于响应rpc client的请求,执行方法,并回送方法执行结果。
1.2. xml rpc的可用版本
xml rpc client和xml rpc server都有很多版本的实现。一般而言,一个实现版本都会同时实现client/server。但由于都满足xml rpc规范,从理论上讲,任何一个版本的rpc client实现与任何一个版本的rpc server都能配套使用。
更进一步,由于xml rpc以xml文本的方式,使用http协议传输,所以与编程语言无关。例如:rpc client的已实现版本包括了:perl,php,python,c/c++,java,等等;rpc server的实现语言包括perl,java,等。
同一种编程语言所实现的版本也不止一个。例如java版的实现有:Marque的xmlrpc实现(http://xmlrpc.sourceforge.net/),apache的xmlrpc 实现(http://ws.apache.org/xmlrpc/)

1.3.xmlrpc的工作原理
完整的需要参考xmlrpc规范(http://www.xmlrpc.com/spec)
简单描述:
rpcclient的工作原理:rpcclient根据URL找到rpcserver -> 构造命令包,调用rpcserver上的某个服务的某个方法 -> 接收到rpcserver的返回,解析响应包,拿出调用的返回结果。
rpcserver的工作原理:启动一个webserver(在使用内置的webserver的情况下) -> 注册每个能提供的服务,每个服务对应一个Handler类 ->进入服务监听状态。

分享到:
评论

相关推荐

    10丨网络通信优化之通信协议:如何优化RPC网络通信?.html

    10丨网络通信优化之通信协议:如何优化RPC网络通信?.html

    Protobuf RPC是一种基于TCP协议的二进制RPC通信协议的Java实现.zip

    Protobuf RPC是一种基于TCP协议的二进制RPC通信协议的Java实现

    基于TCP协议的二进制RPC通信协议的Java实现源码+项目说明.zip

    基于TCP协议的二进制RPC通信协议的Java实现源码+项目说明.zip 一种基于TCP协议的二进制高性能RPC通信协议实现。它以Protobuf作为基本的数据交换格式,支持完全基于POJO的发布方式,极大的简化了开发复杂性 - 完全...

    从通信协议到Netty RPC框架

    从通信协议到Netty RPC框架

    Netty4.1实战-手写RPC框架.pdf

    RPC是一种远程调用的通信协议,例如dubbo、thrift等,我们在互联网高并发应用开发时候都会使用到类似的服务。本专题主要通过三个章节实现一个rpc通信的基础功能,来学习RPC服务中间件是如何开发和使用。章节内以源码...

    Jprotobuf-rpc-socket:Protobuf RPC是一种基于TCP协议的二进制RPC通信协议的Java实现

    Protobuf RPC是一种基于TCP协议的二进制高性能RPC通信协议实现。它以Protobuf作为基本的数据交换格式,支持完全基于POJO的发布方式,极大的简化了开发复杂性。 Features: 完全支持POJO方式发布,使用非常简单 内置...

    Hadoop的RPC通信程序

    使用Hadoop的RPC机制创建一个协议接口、通信服务端、通信客户端程序 目标:通过该任务,理解分布式系统中远程过程调用协议,掌握分布式系统中客户机与服务器的通信机制。

    XML-RPC.rar_HTTP协议_XML-R_XML-RPC _xml rpc

    简单介绍了XML-RPC这种通过HTTP协议进行RPC通信的规范。 以Apache XML-RPC 3.0为基础,对XML-RPC的基本原理及Apache XML-RPC 3.0的主要特性进行了讨论和分析

    protocol:Grakn核心和群集RPC通信协议(由gRPC支持)

    Grakn客户端RPC(远程过程调用)协议 使用框架以多种流行的编程语言实现Grakn客户端驱动程序的协议。

    RPC那些事儿

    RPC(Remote Procedure Call ...RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

    兆瓦级风电机组通信系统研究.pdf

    本文重点对模块内部的数据通信链路和通信协议...统和基于 ONC/RPC 通信协议的 HMI 系统。本文对上述通信协议进行实现的同 时,在风机模拟环境下进行了相关试验。通过试验表明,系统各部分通讯正常且 能长期稳定运行。

    RPC简单学习文档

    RPC(Remote Procedure Call Protocol)——远程...RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层,RPC使得开发网络分布式多程序更加容易。

    metacom:用于Metarhia堆栈的RPC通信协议:electric_plug:

    Metarhia的Metacom通信协议 Metacom协议规范: : // Load at frontendimport { Metacom } from './metacom.js' ;// Load at backendconst { Metacom } = require ( 'metacom' ) ;// Open connection (both platforms...

    利用RPC远程攻击攻击WINDOWS的源程序

    Remote Procedure Call (RPC)是Windows 操作系统使用的一种远程过程调用协议。RPC提供进程间交互通信机制,允许在某台计算机上运行程序的无缝地在远程系统上执行代码。Microsoft的RPC部分在通过TCP/IP处理信息交换时...

    rpc-tiger:rpc框架

    rpc通信框架一、背景本rpc框架主要用于数据中台的离线调度系统,致力与解决动态定向指定集群中的某台机器问题,并且兼容自动轮询策略。曾支持5w+的生产任务的正常运行。二、项目结构rpc-tigerrpc-commonrpc-thrift...

    java实现rpc框架

    java实现rpc框架,实现序列化、动态代理、多路复用网络通信、高并发、注册中心、负载均衡等功能,支持http协议

    Delphi网络通信协议分析与应用实现pdf清晰

    10.1.1 T.30传真通信协议 10.1.2 HDLC信息包 10.1.3 传真字段 10.1.4 成串信息包 10.1.5 同步线路控制 10.1.6 传真的五个阶段介绍 10.2 传真Modem的分类 10.2.1 传真分类 10.2.2 一类传真Modem 10.2.3 二类...

    附件九-rpc论文译文.pdf

    《Implementing Remote Procedure Calls》译文,了解rpc机制的最佳方案。...构,用于绑定RPC客户端的工具,传输通信层协议,以及一些性能测量。包括用于实现高性能和最小化集群间负载的一些优化的描述。

    远程过程调用RPC生成工具

    RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,它允许一个程序请求另一个地址空间(通常是远程计算机上的程序)执行代码,并等待结果返回。RPC使得程序能够像调用本地函数一样调用位于远程...

    源码-腾讯RPC框架

    Tars是基于名字服务使用Tars协议的高性能RPC开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。 tars协议采用接口描述语言(Interface description ...

Global site tag (gtag.js) - Google Analytics