RPC

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

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

portmap

portmap端口映射是一个服务器,将RPC程序号转换为DARPA的协议端口号,在使用RPC调用时它必须运行。
portmap进程的主要功能是把RPC程序号转化为Internet的端口号。

当一个RPC服务器启动时,会选择一个空闲的端口号并在上面监听(每次启动后的端口号各不相同),同时它作为一个可用的服务会在portmap进程注册。一个RPC服务器对应惟一一个RPC程序号,RPC服务器告诉portmap进程它在哪个端口号上监听连接请求和为哪个RPC程序号提供服务。经过这个过程,portmap进程就知道了每一个已注册的RPC服务器所用的Internet端口号,而且还知道哪个程序号在这个端口上是可用的。portmap进程维护着一张RPC程序号到Internet端口号之间的映射表,它的字段包括程序号、版本号、所用协议、端口号和服务名,portmap进程通过这张映射表来提供程序号-端口号之间的转化功能

如果portmap进程停止了运行或异常终止,那么该系统上的所有RPC服务器必须重新启动。首先停止NFS服务器上的所有NFS服务进程,然后启动portmap进程,再启动服务器上的NFS进程。

但portmap只在第一次建立连接的时候起作用,帮助网络应用程序找到正确的通讯端口,但是一旦这个双方正确连接,端口和应用就绑定,portmap也就不起作用了。但对其他任何第一次需要找到端口建立通讯的应用仍然有用。

简单的说,portmap就是应用和端口的婚姻介绍人,双方成事了以后,媒婆就没用了。

rpcbind

他是一个RPC服务,主要是在nfs共享时候负责通知客户端,服务器的nfs端口号的。简单理解rpc就是一个中介服务。
功能和portmap类似,是用来替代portmap的(rhel6 和centos6.2使用rpcbind替代了portmap)。

VXI-11

VXI-11规范是VXIbus规范集的一部分,定义了控制器和设备通过TCP/IP网络通信的网络仪器(Network instrument)协议,VXI-11也称为TCP/IP仪器协议,虽然被称为VXI-11,但VXI-11是针对所有基于LAN的测试设备,而不仅仅只是针对VXI的测试设备。
根据已公布的相关规范,VXI-11是基于C/S结构的RPC机制,因此VXI-11客户端(也即测试应用程序)和VXI-11服务器(也即网络仪器服务器)必须同时存在才能进行网络仪器之间的通信。VXI-11客户端可以通过调用VISA库来实现,也可以使用RPC协议来编写VXI-11客户端。

LXI 仪器中VXI-11协议windows和linux系统实现

完成的目的:提供通过VXI-11协议定义的使用TCP/IP网络实现上位机-仪器间的通信,发现仪器并可以程控仪器。

主要功能包括:

1)仪器的查找与识别功能

基于RPC技术的VXI-11协议,实现仪器的查找与识别的功能主要包括在仪器内部实现一个RPC服务器,用户上位机作为RPC客户端,在子网上广播RPC呼叫,仪器接收到RPC消息时,通过RPC服务器给出响应并提供相应的RPC服务。

完成的程序包括端口映射程序和VXI-11服务器程序开发两部份内容。具体需实现的功能包括:在进行仪器发现时,客户端需向网络端口映射器程序发送广播RPC数据包,在该广播RPC数据包中应包含为VXI-11协议分配的核心服务程序号,此时端口映射程序也应接收仪器应用程序发送的RPC数据包,该RPC数据包中应包含仪器应用程序端口地址,之后客户端程序就会与仪器应用程序所在网络端口建立连接,从而完成设备发现过程。同时具备允许终止通道终止核心通道上活动的能力以及从仪器端向上位机发送中断请求的消息。

2) 控制仪器功能

VXI-11协议中规定了三个通道来完成对仪器的控制,由于VXI-11协议底层使用RPC协议,为保持RPC协议功能的独立性,已经将RPC协议功能单独封装成库,包括RPC协议定义的远程过程的格式、参数的格式以及被调用过程返回给调用者的结果的格式等,以与VXI-11协议层规定的实现三个通道的17个网络消息相隔离,便于日后RPC协议库的单独使用,具体包括连接管理、并发控制、读写数据、同步控制等功能。

通过调用符合VXI-11协议的函数,建立连接后,可以向仪器发送SCPI命令或其他非标准命令,同时也可以调用其他函数在上位机接收从仪器端发来的信息,在完成对仪器的操作后再释放该连接,同时该控制功能也应支持大数据传输(1GB字节及以上)。

使用VS软件完成了所有功能的测试,已经在实际仪器中使用。

征求项目合作开发qq 158534731

1.项目简介

本项目完成了VXI-11协议的开发并实现对网络仪器的控制,应用于所有基于LAN的测试设备。软件由VXI-11中转程序、VXI-11应用服务程序以及网络仪器控制网页三部分组成。VXI-11中转程序本身既是服务器也是客户端,起到连接客户端程序与应用服务程序的作用,VXI-11应用服务程序根据客户端发送过来的请求对该请求进行解析处理并将解析结果返回给中转程序。VXI-11中转程序与VXI-11应用服务程序起到服务器端的作用。网络仪器控制网页起到客户端的作用,可以根据用户需要向远程服务器端发起远程调用请求,开始远程过程调用。用户除了可以通过本项目开发网页对仪器进行控制外,还可以选择一些第三方软件对仪器进行控制,例如NI虚拟仪器控制和安捷伦IO Connection Expert。软件最终形态为可执行程序和动态库。此外,ONCRPC库和Portmap端口映射程序是VXI-11服务启动的基础,是本项目重要的依赖项。软件的整体框架如下图所示:

VXI-11协议定义了三个通道:核心通道(Core  Channel)、中止通道(Abort  Channel)和中断通道(Interrupt Channel)。核心通道定义了15个函数,通过这15个函数完成对仪器网络控制的大部分控制任务;中止通道定义了1个函数,用于仪器控制端对仪器优先级较高或紧急的控制任务;中断通道定义了1个函数,用于仪器向控制器反馈信息。所有三个通道函数的调用方式均采用RPC方式进行调用。

2. 项目优势

现在大部分网络仪器控制的项目使用的都是socket,而本项目使用的是RPC(Remote Procedure Call,远程过程调用)。RPC相比socket具有更好的效果,它自带负载均衡策略,性能消耗低,传输效率高,服务治理方便,能提升系统可扩展性、可维护性和持续交付能力。此外,各自模块各自业务隔离开来,满足面向对象思维,各自封装各自的业务逻辑,不会因为不熟悉业务的人的修改而导致系统崩溃。

如果拿RPC与Socket的做类比,可以用以下例子来描述: 
    两个老板手下各有一个负责接通MSN的秘书。这两个秘书就是基于RPC协议建立的会话层通信。基于Socket的通信,需要老板会使用MSN,这样老板需要事先培训一下MSN的简单使用常识。而基于RPC的通信,老板不需要知道怎么使用MSN,只要告诉秘书,秘书就会通过MSN与对方建立会话请求和响应。

此外,本项目提供网页浏览器接口,设计了具有控制功能的网页,即借助一般的网页浏览器即可实现控制仪器。同时该服务器应简单易用,实现基于网页的仪器固件升级。

通过网页控制仪器时,网页可以显示当前仪器的一些基本信息,比如仪器名、ID等等,并且允许用户通过按钮实现对仪器的基本控制,具体功能如下表2所示。

rpc portmap rpcbind vxi11相关推荐

  1. RPC(管理端口的服务)NFS软件 NFS配置文件 简单介绍

    目录: 1什么是RPC(管理端口的服务) 2 NFS软件 3 NFS配置文件 1什么是RPC(管理端口的服务) 因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用 ...

  2. Xenserver上连接NFS服务器时RPC:portmapperfailure;PRC:Unable to recieve

    service端一切配置正常,自检合格,防火墙也关闭 在xenserver上showmount提示rpc:port mapper failure - RPC:Unable to receive rpc ...

  3. LXI 仪器中VXI-11协议windows和linux系统实现

    完成的目的:提供通过VXI-11协议定义的使用TCP/IP网络实现上位机-仪器间的通信,发现仪器并可以程控仪器. 主要功能包括: 1)仪器的查找与识别功能 基于RPC技术的VXI-11协议,实现仪器的 ...

  4. 简单的RPC java实现

    RPC的名声大噪之时是在2003年,那一个"冲击波"病毒(Blaster Worm virus)袭卷全球的一年.而"冲击波"正是用着RPC这把刀来敲开了远程电脑 ...

  5. 端口基础常识大全+常用端口对照

    端口基础常识大全+常用端口对照 [color=Red][size=4][b]端口基础常识大全[/b][/size][/color] [color=Green]1) 公认端口(Well Known Po ...

  6. NFS 安装配置及常见问题

    1,服务器端软件:安装nfs-utils和portmap(rpcbind)  nfs-utils: 提供rpc.nfsd 及 rpc.mountd这两个NFS DAEMONS的套件  portmap: ...

  7. nfp 网络共享服务器 搭建与配置

    NFS服务简介 什么是NFS? NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器.不同的操作系统可以共享彼此的文件. ​ NFS服务器可以让PC将网络 ...

  8. port常用和不常用端口一览表

    1 tcpmux tcp port service multiplexer 传输控制协议端口服务多路开关选择器 2 compressnet management utility compressnet ...

  9. RHEL6基础四十二之RHEL文件共享①NFS

    NFS(Network File System的缩写,即网络文件系统),依赖于RPC协议 (Remote Procedure Cal的缩写,即远程过程调用) 实现文件或信息传送,只要用到NFS的地方都 ...

  10. 鸟哥的Linux私房菜(服务器)- 第十三章、文件服务器之一:NFS 服务器

    第十三章.文件服务器之一:NFS 服务器 最近更新日期:2011/07/27 NFS为 Network FileSystem 的简称,它的目的就是想让不同的机器.不同的操作系统可以彼此分享个别的档案啦 ...

最新文章

  1. 计算机网络运输层习题5-13
  2. ora-01740: 标识符中缺失双引号_sql语句中单引号的使用
  3. 【Liunx】Linux 简介
  4. CentOS6.5 安装ORACLE 安装界面乱码解决方案
  5. 无序数组求第k大的数 python_【python刷题】寻找数组中第K大/小的数
  6. Office web apps 服务器运行一段时间之后CPU就是达到100%
  7. should be mapped with insert=false update=false
  8. java设置小数位数_java设置小数点后位数
  9. android5.1 不生成odex的方法
  10. I.MX6 Parallel RGB LCD Datasheet描述
  11. 推荐5个优秀的Java开源项目,初学者友好
  12. 基于Arduino的智能环境监测与反馈系统
  13. Kindle通过邮箱传文件允许的文件类型。
  14. 相控阵天线(十一):阵列天线有源驻波分析
  15. STM32L151缓慢上断电-电源控制模块的使用(PVD、BOR、POR/PDR)
  16. Elasticity Detection:A Building Block for Internet Congestion Control读后感
  17. linux 查看系统日志
  18. 图数据库的类别有哪些?解读:图数据库分类与原理
  19. 中北大学计算机研究生学院,【计算机考研】院校信息-中北大学
  20. Android开发关键知识点讲解

热门文章

  1. 2021年PMP考试最新通关宝典
  2. 利用getData获取图片中的图表信息数据
  3. 计算机java二级_关于Java计算机二级考试内容。
  4. MATLAB 2020b 中文版安装教程(简洁版)
  5. android设置计算器页面布局,Android计算器界面布局
  6. Microsoft Store 微软应用商店0x80131500解决方案
  7. PS/PR/AE插件免费下载网站整理(附送一键安装包)
  8. 微信小程序获取公众号文章列表及显示文章
  9. 阿里程序员推荐的9款最佳编程字体?
  10. Wordnet 与 Hownet 比较