python html5 bootstrap 视频教程

德云社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4005|回复: 0

PRC - 客户服务器 Remote Procedure Call远程过程调用 网络通信协议

[复制链接]

96

主题

98

帖子

579

积分

高级技师

Rank: 4

金钱
373
金币
11
威望
0
贡献
0
发表于 2018-6-23 10:18:00 | 显示全部楼层 |阅读模式
AI人工智能 语音助理 人工翻译 教程
PRC - 客户服务器 Remote Procedure Call远程过程调用 网络通信协议

RPC 是 Remote Procedure Call 的缩写,中文译为 "远程过程调用",是通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的一种 "网络通信协议"。


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


RPC 协议会先假定某些网络传输协议 (如 TCP 或 UDP) 已存在,再为通信程序之间携带信息数据。在 OSI 网络通信模型中,RPC 跨越了传输层和应用层,使开发 "网络分布式" 应用变得更容易。


RPC 采用 "客户端 + 服务器" 模式,请求程序为 "客户端",服务提供程序为 "服务器"。首先,"客户端" 调用进程发送一个带进程参数的信息给服务进程,然后等待 "服务器" 应答信息。"服务器" 进程一般会保持睡眠状态,直到 "客户端" 调用信息到达停止睡眠。当一个调用信息到达 "服务器" 端,"服务器" 会获得进程参数,然后计算、发送答复信息,然后再等待下一个调用信息;最后,"客户端" 调用过程接收答复信息,获得进程结果。


18d8bc3eb13533fadd93e964a9d3fd1f41345b56副本.jpg


高效智能 所见即所得的 "HTML5 Bootstrap4 网页 IDE" 网站站群 集成开发环境

http://ideweb.digitser.cn/

http://forum.digitser.cn/thread-2322-1-1.html


百度网盘

https://pan.baidu.com/s/1i5tKlZB


软件仓库

https://github.com/digitser

https://digitser.sourceforge.io/

https://pan.baidu.com/s/1TV70__Be1ta0ney1-tudFQ


工作原理

RPC "客户端" 对 "服务器" 的调用,大致分以下 10 步:

0
1、调用 "客户端" 句柄,传送参数



02、调用 "客户端" 本地系统内核,发送网络消息


0
3、消息被传送到远程 "服务器" 主机


0
4、"服务器" 句柄获取消息,及相关参数



0
5、执行 "服务器" 远程过程




06、调用 "服务器" 句柄



07、"服务器" 句柄计算,调用 "服务器" 远程系统内核



08、"服务器" 将消息传回 "客户端" 本地主机


0
9、"客户端" 句柄内核接收消息



10、"客户端" 接收句柄获取数据


PRC 同步-异步调用

同步 RPC 调用就是客户端等待调用执行完成,并返回结果。


异步 RPC 调用就是客户端不等待调用执行完成返回结果,不过依然可通过回调函数等接收到返回结果的通知。若客户端并不关心结果,则还可变成一种单向调用。


这个过程有点类似于 Java 中的 callable 和 runnable 接口,异步执行时,如需要知道执行结果,就可使用 callable 接口,且可通过 Future 类获取到异步执行的结果信息。如不关心执行结果,直接使用 runnable 接口就可以了,因为它不会返回结果,当然,callable 也是可以,不去获取 Future 就行了。


RPC over HTTP

Microsoft  RPC over HTTP 允许 RPC "客户端" 安全-有效地通过 Internet 连接到 RPC "服务器" 程序,执行远程过程调用。


Microsoft RPC 代理运行在 IIS 计算机之上,接受来自 Internet 的 RPC 请求,并在这些请求之上执行 "认证-校验-访问"。若请求通过所有测试,RPC 代理将请求转发给真正执行处理的 RPC 服务器。


通过 RPC over HTTP,RPC 客户端不会和服务器直接通信,它们使用 RPC 代理作为中间件。


详细开启方法:开始 --> 控制面板 --> 系统和安全 --> 管理工具 --> 服务 --> Remote Procedure Call (RPC) --> 双击打开 --> 启动


RPC vs HTTP

RPC 主要基于 TCP/IP 协议,而 HTTP 是建立在 TCP 网络传输层协议之上,所以,RPC 更胜一筹。


OSI 七层网络结构模型 (虽然实际应用中基本上都是 5 层,没有表示层和会话层,被合并到了应用层),从上至下:

01、应用层

定义用于网络中,进行通信和传输数据的接口


02、表示层

定义不同系统中数据的传输格式,编码和解码规范等


03、会话层

管理用户会话,控制用户间逻辑连接的建立和中断


04、传输层

管理网络中"端到端" 的数据传输


05、网络层

定义网络设备间如何传输数据


06、链路层

将上面网络层的数据封装成数据帧,便于物理层传输


07、物理层

传输二进制数据


OSI 网络结构模型的重点是 "应用层" 和 "传输层";因为,HTTP 是应用层协议,而 TCP 是传输层协议。


"长按二维码" 或 "扫一扫" 关注 "德云社区" 微信公众号

版权声明:
本文为独家编译稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。


AI人工智能 语音助理 人工翻译 教程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|Sitemap|小黑屋|德云社区 |网站地图  

GMT+8, 2024-3-19 14:55 , Processed in 0.033674 second(s), 30 queries .

工业和信息化部: 粤ICP备14079481号-2

技术支持 乐数软件     版权所有 © 2014-2021 德云社区    

快速回复 返回顶部 返回列表