GE反射内存实时通讯网络解决方案
时通讯网络是用于需要较高实时性要求的应用领域的专用网络通讯技术,一般采用基于高速网络的共享存储器技术实现。它除了具有严格的传输确定性和可预测性外,还具有速度高、通信协议简单、宿主机负载轻、软硬件平台适应性强、可靠的传输纠错能力、支持中断信号的传输等特点。 本方案选用 GE FANUC 公司的反射内存卡构建实时反射内存网络。该实时网络除具有一般共享内存网络的优点外,还具有网络延迟小、技术成熟、可靠性高、集成简单、扩展方便等优势。 反射内存卡连接方式分为单向环形连接和星形连接两种,单向环形网络结构具有先天的“无冲突”、“全负载”、自然排序和严格确定传输延迟功能。这种网络结构下,所有的节点无论以何种方式,同时以的速率突发或持续传送数据,环形网络都可以借助物理结构自然的实现无冲突的排序和传播,不会对网络实时性能和传输性能构成任何不利影响。网络一旦构成,任意两点间的传输延迟都是严格确定的。不仅如此,数据发送方还能利用环形回路,实时可靠的计算传输延迟和接收确认,具有极高的容错性和可靠性。但是单向环形连接方法存在一个弊病,就是传输时所有的板卡必须加电才可以连通工作。解决此弊病的方法是采用星形连接,通过反射内存 HUB 来旁路损坏或者掉电的板卡,构成更稳定的网路结构。反射内存是一种强实时高带宽局域网技术,在互连的计算机间提供高效的数据传输。强实时网络应用领域已经越来越广泛的采用这种技术。 反射内存网络在所有互连的节点中虚拟出一段全局共享的网络内存,在分布系统中实现内存至内存的通信,因此应用程序没有软件开销。每台结点机上插一块反射内存卡,卡上带有双端口内存。每个节点机的各层应用软件可以直接读写反射内存卡上的内存。当数据被写入一台机器的反射内存卡的内存中后,反射内存卡自动通过光纤传输到所有其他连在网络上的反射内存卡的内存里相应的位置,传输延迟只有几百纳秒。即,所有反射内存卡上的内存总是同步更新为完全相同的内容,就像虚拟出一段全局共享内存一样。而各节点机在访问数据时,只要访问本地的反射内存卡内存即可,无需设备驱动程序和网络协议。反射内存网络具有以下主要特点高速度和高性能 由于反射内存网络可以大幅度的提高集群系统之间的通讯速度,因此特别适合替代传统的 LANs 、总线转发器和 DMA 不能满足需求的应用。 GE FUNAC 新推出的 5565 系列反射内存卡,其传输速度已达到 174M 字节 / 秒。使用光纤,不仅可以连接更多的节点(到 256 个节点),而且具有很高的抗冲击、抗干扰性能。反射内存卡是完全的物理通讯,不需要任何软件协议开销,这是其他局域网传输无法相比的。测试结果表明,从数据写入 RAM 到传到另一个结点的反射内存卡上,只有不到 400 纳秒的时延。使用方便 在使用全局共享内存时,由于对内存的访问是独占型的,所以存在仲裁问题。而反射内存通过向每个节点机提供一套相同的数据备份来避免这一问题,这使得各节点可以并发的访问相同的内容,不再需要考虑仲裁的问题,访问反射内存卡的内存与访问自身的内存没有差别。各节点间的数据一致性是由反射内存保证的,对应用软件是透明的。另外,反射内存卡的安装也十分简单,只需将反射内存卡插在机器主板的一个可用槽口上,再将各台计算机通过光纤网或扁平数据线连接在一起就可以了。不需要额外的驱动程序。独立于操作系统和处理机 反射内存卡初是在 VME 总线上使用的,现在已经可以在 PCI 、 PMC 、 Compact PCI 、等多种总线上使用了,这就可以将 ALPHA 、 Power PC 、 Macintosh 、奔腾等计算机通过反射内存实时网络连接在一起,组成一个集群系统,而不需考虑操作系统和处理机的问题。 这样做的为一问题是 不同计算机的字节排序可能会不同,不同的机器间通讯时,需要作字节排序的转换工作,在 GE FUNAC 的反射内存中,这一转换由反射内存板自动完成,不需要软件开销。确定的数据传输时间 当数据被写入本地的反射内存卡的内存中时,就被同时传输到其他相连的计算机上,没有软件延迟,硬件延迟固定且极小。 5565 系列反射内存卡在节点间传输数据时只需 400 纳秒。这种确定的时间延迟为设计实时应用提供了有效的保证。经济、高效 许多系统设计人员往往希望在较短的时间内,花费尽量少的开销实现一个集群系统,而大部分时间和开销有花费在系统互连的软件和硬件上。在这种情况下,反射内存卡是一种非常好的选择。首先,反射内存卡的数据传输速率是非常吸引人的,而且不需要象以太网样需要多层协议。其次,反射内存卡使用简单,不需要开发额外的通讯软件,这有利于提高系统的可靠性,另外,也节省了软件的开发费用。
GE反射内存实时通讯网络解决方案的更多相关文章
- B/S(Web)实时通讯解决方案
B/S的实时通讯实现起来比较麻烦,因为http协议是无状态的,导致一些实时消息通知和聊天等功能比较难以实现,本文主要简述几种自己之前常用的几种方式. 1.传统的HTTP协议是无状态的 传统的HTTP协 ...
- [渣译文] SignalR 2.0 系列:SignalR的高频实时通讯
原文:[渣译文] SignalR 2.0 系列:SignalR的高频实时通讯 英文渣水平,大伙凑合着看吧…… 这是微软官方SignalR 2.0教程Getting Started with ASP.N ...
- C/C++ 用libcurl库进行http通讯网络编程
C/C++ 用libcurl库进行http通讯网络编程 目录索引: 一.LibCurl基本编程框架 二.一些基本的函数 三.curl_easy_setopt函数部分选项介绍 四.curl_easy_p ...
- [转]linux下iftop工具的安装与使用详解(图文)——实时的网络流量,监控TCP/IP连接(单机)
原文链接:http://www.jbxue.com/LINUXjishu/10735.html 在linux中监控系统资源.进程.内存占用等信息,可以使用top命令.查看网络状态可以使用netstat ...
- (二): 基于ZeroMQ的实时通讯平台
基于ZeroMQ的实时通讯平台 上篇:C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework)----(一):整体介绍 通讯平台作为 ...
- 实时通讯系列目录篇之SignalR详解
一. 简单说几句 最早使用SignalR的时候大约是两年前了,记得当时是一个OA中消息的实时提醒,轮询的方式有点耗资源,WebSocket写起来又比较麻烦,最终选择了SignalR,当时是什么版本已经 ...
- WebSocke实时通讯协议
WebSocket 是什么? WebSocket 是一种网络通信协议.RFC6455 定义了它的通信标准. WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议 ...
- 前端实现实时通讯-----ajax长连接
因为web运行模式为请求-响应,服务端无法主动发起通讯,所以通讯实时性存在各种问题,ajax轮询可以模拟及时通讯,但连接太频繁将给服务端带来很大压力,不频繁则实时性很差. 下面介绍在web上真正实现实 ...
- C++ 用libcurl库进行http通讯网络编程 【转】
http://www.cnblogs.com/moodlxs/archive/2012/10/15/2724318.html C++ 用libcurl库进行http通讯网络编程 目录索引: 一.Lib ...
- 实时通讯之Socket.io
WebSocket WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术.使用WebSocket,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成 ...
随机推荐
- 记录一次MySQL主从同步
主库配置 server-id=1log-bin=mysql-binbinlog_format=ROWbinlog_row_image=minimalbinlog-do-db=yjtb-cloud 解释 ...
- Word 给公式添加题注解决交叉引用中包含公式
简记:回车,然后 Ctrl +Alt+Enter https://blog.csdn.net/wsj_jerry521/article/details/115163456
- Nginx lavarel框架伪静态配置
location / { try_files $uri $uri/ /index.php$is_args$query_string; }
- 远程云服务器上docker安装redis的过程
首先明确一点,云服务环境你已经安装好了docker 1.进入docker hub官网查看你所需要的redis的版本信息 https://registry.hub.docker.com/
- Spring--注解开发定义Bean
注解开发 先看一看之前的bean的做法: 所谓注解开发,当然就要用到注解啊,就是在BookDao接口的实现类里面进行注解的定义 如图所示: 而在.xml文件里面,就需要进行这样一个操作: 注解当然不会 ...
- RTC月度小报6月丨编程挑战赛圆满收官;声网上市1周年回顾...
本月亮点速览 产品与技术: 声网Agora 实时音视频服务正式上线 HTC VIVE Sync App,支持非 VR 用户 「灵动课堂」发布 1.1.2 版本 「互动直播」6 月共发布两个版,最新版本 ...
- Mybatis分页插件PageHelper的配置及使用方法
尊重人家的知识成果 推荐 该作者总结的不错! --->> --->> @author 扎心了老铁 Mybatis分页插件PageHelper的配置及使用方法
- CPU内部的奥秘:代码是如何被执行的?
我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:景明 我们以一段 C 代码为例,来看一下代码被编译成二进制 ...
- day3 函数的定义和调用,练习编写简单的程序(记录2)
一.值传递.指针传递.引用传递 值传递: 在值传递中,函数的形参是由实参的副本初始化的,也就是说,函数内部操作的是实参的一个拷贝.值传递适用于传递简单数据类型(如整数.浮点数.字符等)以及小型结构体等 ...
- 自用纯C语言实现任务调度(可用于STM32、C51等单片机)
前言 这个任务调度模块的实现是形成于毕设项目中的,用在STM32中,断断续续跨度2个月实现了一些基本功能,可能后面再做其他项目时会一点点完善起来,也会多学习相关知识来强化模块的实用性和高效性,毕竟 ...