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,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成 ...
随机推荐
- 深入理解css 笔记(完)
一个网站,从看起来还可以,到看起来非常棒,差别在于细节.在实现了页面里 某个组件的布局并写完样式之后,不要急着继续,有意识地训练自己,以挑剔的眼光审视刚刚完成的代码.如果增加或者减少一点内边距是不是看 ...
- LockSupport实现线程同步
public class LockSupport01 { static Thread t1 = null, t2 = null; public static void main(String[] ar ...
- 打印机出现错误0x00000709要如何解决
就是微软2021年10月更新的这个补丁导致的 要卸载KB5006670. 原文:https://www.zhihu.com/question/298855357/answer/514515054 微软 ...
- python-GUI-tkinter之excel密码破解工具
python gui 之熟悉tkinter部分控件使用.一个简单的excel暴力密码破解,核心很简单,基本就是一个函数外面加了GUI,写的很啰嗦,希望大家可以在优化改良下,主要是为了再熟悉下tkint ...
- Conda 创建、激活、克隆、删除虚拟环境 - 搬运
Conda 创建.激活.克隆.删除虚拟环境 转自 :https://zhuanlan.zhihu.com/p/547724114 风影忍着 通常来说,对于每一个新的项目,我们都需要创建一个新的环境 ...
- java 程序运行机制
java 程序运行同时拥有 编译型语言和解释型语言的特点 程序运行流程: 源程序 .java文件 --> Java 编译器--> 字节码 .class 文件 --> 类装饰器 --& ...
- Harmonic Number 调和级数(欧拉常数)或者分块暴力
给你个n让你求 Memory limit 32768 kB 输出误差不超过1e-8 思路:做之前不知都调和级数不知道欧拉常数没问题,肯定能先想到暴力打标,打完发现数组内存太大,那么问题就是怎么能让内存 ...
- 63.C++类型转换
类型转换(cast)是将一种数据类型转换成另一种数据类型.例如,如果将一个整型值赋给一个浮点类型的变量,编译器会暗地里将其转换成浮点类型. 转换是非常有用的,但是它也会带来一些问题,比如在转换 ...
- RunnerGo相较于Jmeter优劣势分析
RunnerGo是一款基于go语言研发的开源测试平台.在这里我想从性能测试方面.结构方面以及功能方面对比两款产品. 性能方面: Runner基于go语言研发,相对于jmeter来说更轻量级.所以性能测 ...
- 虚拟办公、虚拟展会、虚拟偶像,RTE+XR 还能做什么?
2021年6月10日,HTC VIVE 在北京举办以"融合·至界"为主题的新品体验会暨开发者客户大会.近 300 位 XR 行业精英齐聚一堂,共同见证了 HTC VIVE 全能 V ...