1.1  RAPIDIO高速串行协议RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能、 低引脚数、 基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放式互连技术标准。RapidIO主要应用于嵌入式系统内部互连,支持芯片到芯片、板到板间的通讯,可作为嵌入式设备的背板(Backplane)连接。RapidIO协议由逻辑层、传输层和物理层构成。逻辑层定义了所有协议和包格式。这是对终端进行初始化和完成传送的很有必要的信息。传输层为数据包从一个终端到另一个终端通道的必要信息。物理层描述了设备之间接口协议,例如包传装置,流量控制,电特性及低级错误管理等。Rapid IO分为并行Rapid IO标准和串行Rapid IO标准,串行RapidIO是指物理层采用串行差分模拟信号传输的RapidIO标准。RapidIO行业协会成立于2000年,其宗旨是为嵌入式系统开发可靠的、 高性能、 基于包交换的互连技术,2001 年正式发表其基本的规范。2003 年10 月,国际标准组织(ISO)和国际电工委员会(IEC)一致通过了RapidIO互连规范,即ISO/IEC DIS 18372,这使RapidIO(ISO)成为嵌入式互连技术方面得到授权的唯一标准。RapidIO 的规范发布历史如下:2001年3月,发布RapidIO 1.1规范;2002年6月,发布RapidIO 1.2规范;2005年2月,发布RapidIO 1.3规范;2007年6月,发布RapidIO 2.0规范;2009年8月,发布RapidIO 2.1规范;2011年5月,发布RapidIO 2.2规范。RapidIO 1.x标准支持的信号速率为1.25GHz、2.5GHz和3.125GHz;RapidIO 2.x标准在兼容Rapid IO 1.x标准基础上,增加了支持5GHz和6.25GHz的传输速率 。RapidIO 已有超过10 年的历史,仍然生机勃勃,它还在继续为开发人员提供高速、先进的通讯技术:可对许多集成电路、板卡、背板及计算机系统供应商提供支持,支持RapidIO 标准的厂商有:Mercury Computer Systems、Freescale Semiconductor、Lucent-Alcatel、PMC-Sierra、Texas Instruments、Tundra Semiconductor、WindRiver、AMCC、Curtiss-Wright Controls、GE Fanuc 等,也就是说世界上几乎所有的嵌入式主流厂商都已经支持RapidIO 技术,显然,RapidIO 势在必行。发展至今,开发人员有100 多种基于RapidIO 的产品可供选择,这些产品涵盖了各种开发工具、嵌入式系统、IP、软件、测试与测量设备及半导体(ASIC、DSP、FPGA)等。1.2  什么是RDMA?
1.2.1  https://blog.csdn.net/u011459120/article/details/78469098
1.2.2  概述RDMA是Remote Direct Memory Access的缩写,通俗的说可以看成是远程的DMA技术,为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA允许用户态的应用程序直接读取或写入远程内存,而无内核干预和内存拷贝发生。起初,只应用在高性能计算领域,最近,由于在大规模分布式系统和数据中心中网络瓶颈越来越突出,逐渐走进越来越多人的视野。
1.2.3  分类目前,大致有三类RDMA网络,分别是Infiniband、RoCE、iWARP。其中,Infiniband是一种专为RDMA设计的网络,从硬件级别保证可靠传输 , 而RoCE 和 iWARP都是基于以太网的RDMA技术,支持相应的verbs接口,如图1所示。从图中不难发现,RoCE协议存在RoCEv1和RoCEv2两个版本,主要区别RoCEv1是基于以太网链路层实现的RDMA协议(交换机需要支持PFC等流控技术,在物理层保证可靠传输),而RoCEv2是以太网TCP/IP协议中UDP层实现。从性能上,很明显Infiniband网络最好,但网卡和交换机是价格也很高,然而RoCEv2和iWARP仅需使用特殊的网卡就可以了,价格也相对便宜很多。•Infiniband,支持RDMA的新一代网络协议。 由于这是一种新的网络技术,因此需要支持该技术的NIC和交换机。•RoCE,一个允许在以太网上执行RDMA的网络协议。 其较低的网络标头是以太网标头,其较高的网络标头(包括数据)是InfiniBand标头。 这支持在标准以太网基础设施(交换机)上使用RDMA。 只有网卡应该是特殊的,支持RoCE。•iWARP,一个允许在TCP上执行RDMA的网络协议。 IB和RoCE中存在的功能在iWARP中不受支持。 这支持在标准以太网基础设施(交换机)上使用RDMA。 只有网卡应该是特殊的,并且支持iWARP(如果使用CPU卸载),否则所有iWARP堆栈都可以在SW中实现,并且丧失了大部分RDMA性能优势。图 1 RDMA网络栈
1.2.4  APIs庆幸的是,所有上述RDMA的网络协议都可以使用相同的API(即verbs),使用标准库libverbs。 这里就不展开叙述了,感兴趣的同学可以看参考文献[4][5]。
1.2.5  总结从上面的叙述,RDMA那么好,但是为什么没有普及呢?个人认为,有两方面原因。首先,是因为价格太贵。其次,是其缺乏像TCP/IP协议的灵活性和更高层的抽象,可进一步参考SOSP’17的论文LITE Kernel RDMA Support for Datacenter Applications。
1.3  DPDK原生TCP/IP stack架构
1.3.1  https://blog.csdn.net/bluenet13/article/details/39340635
1.3.2  dpdk介绍dpdk是 intel 公司发布的一款数据包转发处理套件. 它运行于linux userspace。这组套件包括了linux 进程所需要的大部分组件。
但缺少一个传统的tcp/ip 协议栈。其他应用程序没办法方便的通过dpdk对外通信。本文主要介绍如果移植一个TCP/IP协议栈到dpdk。•  device: ethdev, devargs,bond,KNI,PCI,PCI IDs•   memory: memseg, memzone,mempool,malloc,memcpy•  timers: cycles, timer,alarm•    locks: atomic, rwlock,spinlock• CPU arch: branch prediction, cache prefetch, byte order, CPU flags• CPU multicore: interrupts, launch, lcore, per-lcore, power/freq•    layers: ethernet, IP,SCTP,TCP,UDP,frag/reass,LPM route,ACL• QoS: metering, scheduler,RED congestion•    hashes: hash, jhash,FBK hash,CRC hash•  containers: mbuf, ring,distributor,tailq,bitmap•    packet framework:•  port: ethdev, ring, frag, reass, sched, src/sink•   table: lpm IPv4, lpm IPv6, ACL, hash, array, stub•  pipeline•   basic: approx fraction, random, key/value args, string• debug: debug, log,warnings,errno•   misc: EAL config, common,version1.3.3  ANS总体架构ANS(Acceleted Network Stack)是参考freebsd,重新设计实现的dpdk原生的tcp/ip协议栈。ANS架构如下:Ø  DPDK:各种快速包处理库,是ANS加速网络协议栈的运行环境。Ø  ANS:加速网络协议栈,包括以下模块:ethernet:网络数据包二层处理模块。ARP:ARP协议栈处理模块。IPv4 Forwarding: 网络数据包三层处理模块,包括三层转发功能。IPv4 Reassembly:网络数据包分片重组模块。Routing:路由转发表管理模块。ICMP:ICMP协议处理模块。ACL:包过滤模块,通过KNI旁路控制面数据流到linux kernel。UDP Termination:UDP协议栈处理模块。TCP Termination:TCP协议栈处理模块。SOCKET:是ANS和上层应用程序的接口层,和标准linux SOCKET API兼容。配置管理:通过CLI配置Device、IP、Route、Neigh、ACL、Log;从linux kernel同步IP和route到ANS;查看IP统计。1.4  zeroc iceZeroC ICE 是指ZeroC公司的ICE(Internet Communications Engine)中间件平台。
1.4.1  简介ZeroC ICE 是指ZeroC公司的ICE(Internet Communications Engine)中间件平台。对于客户端和服务端程序的开发提供了很大的便利。目前ICE平台中包括Ice,Ice-E,Ice Touch。Ice为主流平台设计,包括Windows和Linux,支持广泛的语言,包括C++,Java,C#(和其他.Net的语言,例如Visual Basic),Python,Ruby,PHP和ActionScript。也包括所有的ICE服务,例如Ice Grid,IceStorm等。Ice-E是Ice在资源受限的平台上的一个实现,支持C++和嵌入式操作系统,例如Windows CE,Linux。Ice-E本身不包含任何服务,但是可以利用在Ice上提供的各种服务。因此,通过Ice-E,移动设备也能无缝的集成到分布式系统中。Ice Touch是为iphone和ipod touch开发的版本,包括Object-C映射,支持Iphone OS,并为MAC OS X开发图形界面应用程序提供完整的Cocoa框架的访问。 [1] 

OpenDDS可扩展协议相关推荐

  1. OAuth 2.0 扩展协议之 PKCE

    前言 阅读本文前需要了解 OAuth 2.0 授权协议的相关内容, 可以参考我的上一篇文章 OAuth 2.0 的探险之旅[1]. PKCE 全称是 Proof Key for Code Exchan ...

  2. 【IOS 开发】Objective - C 面向对象高级特性 - 包装类 | 类处理 | 类别 | 扩展 | 协议 | 委托 | 异常处理 | 反射

    一. Objective-C 对象简单处理 1. 包装类 (1) 包装类简介 NSValue 和 NSNumber : -- 通用包装类 NSValue : NSValue 包装单个 short, i ...

  3. XMPP扩展协议详解

    基本的jabber客户端必须实现以下标准协议(XEP-0211) 1.RFC3920 Core http://tools.ietf.org/html/rfc3920 2.RFC3921 Instant ...

  4. rp_rv1126开发板UVC XU扩展协议功能验证

    enum XuCmd {CMD_TOOLS_CTRL_1 = 0x01, //RK工具通信指令,如loader切换功能 CMD_GET_CAMERA_VERSION , //获取摄像头版本 CMD_S ...

  5. Dubbo源码分析系列-深入RPC协议扩展

    导语   在之前的博客里面提到了关于扩展机制以及SPI的原理,这篇博客主要来讨论一下关于协议的扩展问题,在系统与系统之间通信就需要两个系统之间遵循相同的协议.而现在被熟知的常用的协议有TCP/IP协议 ...

  6. Swift协议与扩展

    转载:http://www.jianshu.com/p/e70bd6645d88 前言 熟悉Objective-C语言的同学们肯定对协议都不陌生,在Swift中苹果将protocol这种语法发扬的更加 ...

  7. X协议调整大小、旋转和反射的扩展(The X Resize, Rotate and Reflect Extension )

    英文源文地址: https://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt ,本文仅做简单翻译,获得对XRandR的大 ...

  8. 什么是OpenDDS???What is OpenDDS???开源项目???

    文章目录 OpenDDS ACE TAO ACE+TAO OpenDDS类型定义 OpenDDS Demo Code OpenDDS 可扩展的传输框架 OpenDDS 发现 利用DCPSInfoRep ...

  9. CoAP 协议解析说明(转)

    CoAP 协议全面分析 HTTP与COAP 请求与响应示例 HTTP请求(文本格式) POST https://getman.cn/echo HTTP/1.1 User-Agent: Fiddler ...

最新文章

  1. 找论文太难?试试这款「文本生成」论文搜索工具丨开源
  2. RESTful API介绍
  3. Java NIO之Channel(通道)
  4. linux内核微妙时,Linux内核模块时间同步函数汇总
  5. 初学Netty(杰哥好久不见)
  6. Oracle RAC安装过程中所使用的一些配置
  7. python中的break+while break+for
  8. 重温设计模式(三)——职责链模式(chain of responsibility)
  9. 第三次spring冲刺1
  10. ZOJ Monthly, November 2012
  11. 读书笔记--模板与泛型编程
  12. 手机自动化测试:Appium源码分析之跟踪代码分析七
  13. Android 存储学习之SQLite数据库的基本操作
  14. s鼠标在计算机哪部分里,罗技 G700s鼠标游戏软件详解
  15. java开发微信公众号(订阅号)
  16. P3376 【模板】网络最大流( Edmonds-krap、Dinic、ISAP 算法)
  17. Vue实例--音乐播放器:歌单数据接口分析
  18. 微信小程序 java音乐播放器系统python php
  19. python生成12点的时钟_Python上24小时时间转换为12小时时钟(ProblemSetQuestion)
  20. 【蒟蒻の笔记】OI中组合数学

热门文章

  1. 云服务器虚拟内存有用吗,云服务器上用虚拟内存有用
  2. InnoDB存储引擎中的各种锁
  3. Ubuntu 安装gcc 9.1 和 C++17
  4. 《Windows办公指南》edge://surf/,让我们网上冲浪吧
  5. YDOOK :Golang 各大操作系统 完全卸载删除 golang 的方法教程
  6. unity||控制代码执行的时间
  7. Kettle 权限问题
  8. 计算机作业我家乡的变化英语作文,家乡的变化英语作文3篇
  9. 微信自动发卡小程序源码+带激励视频
  10. 19部“重构心智”影响你世界观的科幻电影