RapidIO网络通用套接字的实现系统及方法技术方案

技术编号:14892749 阅读:177 留言:0更新日期:2017-03-29 01:55
本发明专利技术提供了一种RapidIO网络通用套接字的实现系统及方法,该系统包括:通用接口层,应用层将使用socket接口来进行RapidIO网络通信;命令行,用户对RapidIO网络的设备、拓扑关系以及协议栈参数查看和配置;BSD接口层,利用BSD接口层提供的内核函数创建一个新的RapidIO网络协议栈。本发明专利技术为用户提供一套类TCP/UDP的编程接口,实现基于数据流和数据报的应用协议,以直接I/O通信和消息传输作为网络驱动,实现高速通信。

【技术实现步骤摘要】

本专利技术涉及一种通用套接字的实现系统及方法,具体地,涉及一种RapidIO网络通用套接字的实现系统及方法
技术介绍
RapidIO是面向系统互连和交换结构的开放标准,满足了嵌入式基础设施在应用方面的广泛需求。可行的应用包括连接多处理器、串行背板互连、DSP阵列组、存储子系统、无线基站、容错系统等领域。这一技术将主要作为系统内部互连,支持芯片到芯片和板到板通信,可以实现从1Gbps到10Gbps的性能水平。然而,必须看到即使有高速的硬件互连协议支持,要想给终端用户提供高速的通信接口还是非常困难的。冗余的内存拷贝和繁重的通信开销越来越成为影响多处理器间通信性能的瓶颈,例如,Linux内核下公开的利用以太网模拟器实现的RapidIO通信接口仅仅发挥了RapidIO通信性能的10%左右,主要是因为其上层的TCP/IP软件协议的开销太大导致。另外,目前各厂商自主开发的裸驱动接口没有统一标准,往往不一致,不方便现有的基于以太网的应用软件利用RapidIO网络通信,且用户也担心产品软件和硬件厂家绑定。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种RapidIO网络通用套接字的实现系统及方法,其为用户提供一套类TCP/UDP的编程接口,实现基于数据流和数据报的应用协议,以直接I/O通信和消息传输作为网络驱动,实现高速通信。根据本专利技术的一个方面,提供一种RapidIO网络通用套接字的实现系统,其特征在于,包括:通用接口层,应用层将使用socket接口来进行RapidIO网络通信;命令行,用户对RapidIO网络的设备、拓扑关系以及协议栈参数查看和配置;BSD接口层,利用BSD接口层提供的内核函数创建一个新的RapidIO网络协议栈;类TCP-UDP模块,初始化完成之后,就需要在BSD层对类UDP的rapidio_dgram_prot和类TCP的rapidio_stream_prot结构体函数指针成员分别实现;分片重组模块,在收发网络包过程中按照自定义的帧格式进行解析报文,数据负载大于12KB的需要进行分片重组,根据协议类型判断是类UDP还是类TCP数据包,递交给不同的网络接收函数处理;帧头解析模块,用于对帧头进行解析;组播模块,RapidIO交换机支持组播功能,交换机创建多播组,添加成员节点,当成员利用组ID进行通信时候,交换机将其转发到该组其他成员;拓扑管理模块,host节点枚举整个网络,就会产生一张拓扑表,其他端点设备可以和host节点通信,从而获得这样拓扑图,可用于显示、查找和监控网络动态变化的目的;网卡驱动模块,底层驱动采用I/O方式,;针对多对一的客户端/服务器模式,采取Nread主动读取数据的方式。优选地,所述通用接口层、命令行、类TCP-UDP模块、组播模块、拓扑管理模块都与BSD接口层连接,类TCP-UDP模块、分片重组模块、帧头解析模块依次连接,帧头解析模块、拓扑管理模块都与网卡驱动模块连接。本专利技术还提供一种RapidIO网络通用套接字的实现方法,其特征在于,包括如下步骤:步骤一,系统中的交换机设备作为网络管理节点负责对RapidIO网络环境初始化,扫描系统中所有设备并为它们分配设备ID,维护设备的路由表,并监控网络中所有设备的状态,对网络环境的变化做出响应;步骤二,端点设备是PCIE-RapidIO接口卡,在Linux中为RapidIO设备创建网络驱动,负责配置和收发操作;利用内核提供的BSD接口层,创建新的网络协议,屏蔽了底层实现的差异,为上层应用提供了简洁、统一的应用接口;步骤三,应用层将使用socket接口来进行RapidIO网络通信,其编程模式和以太网TCP/IP整体一致。与现有技术相比,本专利技术具有如下的有益效果:本专利技术为用户提供一套类TCP/UDP的编程接口,便于应用软件的移植和开发。本专利技术只需占用少量系统开销,实现基于数据流的数据报的通信。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为本专利技术RapidIO网络通用套接字的实现系统的原理框图。图2为协议帧格式定义的结构示意图。图3为RapidIO网络系统框图。具体实施方式下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变形和改进。这些都属于本专利技术的保护范围。图1为本专利技术RapidIO网络通用套接字的实现系统的原理框图。如图1所示,该实例包括通用接口层110、命令行120、BSD接口层210、类TCP220、类UDP230、分片重组240、帧头解析250、组播模块310、拓扑管理模块320以及网卡驱动模块410等,其中:通用接口层110,应用层将使用socket接口来进行RapidIO网络通信,类UDP为用户提供socket、bind、sendto、recvfrom、close等接口;类TCP为用户提供socket、bind、connect、listen、accept、send/write、recv/read、close等接口;附加功能函数如select、getsockopt、setsockopt也实现了。其编程模式和以太网TCP/IP整体一致。命令行120,用户对RapidIO网络的设备、拓扑关系以及协议栈参数查看和配置等功能,这就需要使用和内核通信的Netlink套接字接口实现。用户在rio可执行文件的main函数中通过调用Netlink接口访问和配置内核协议栈的参数,然后把rio可执行文件拷贝到bin目录下就可以像使用ifconfig命令那样查看和配置网络了。rio-show命令用于查看显示;rio-ioctl命令用于添加删除;rio-ping命令用于连通性测试。BSD接口层210,利用BSD接口层提供的内核函数可以创建一个新的RapidIO网络协议栈,协议为了避免和已经注册的协议冲突,自定义协议类型为AF_RIO=40。在加载驱动模块的初始化函数中,利用proto_register函数分别注册类UDP和类TCP网络协议函数接口族,sock_register函数是将类型为AF_RIO的协议注册到内核,dev_add_pack函数为该协议指定了网络数据接收处理程序。类TCP-UDP模块220,初始化完成之后,就需要在BSD层对类UDP的rapidio_dgram_prot和类TCP的rapidio_stream_prot结构体函数指针成员分别实现。应用程序接口在内核里会调用相应操作成员。socket函数指定期望的通信协议类型和传输方式;bind函数把一个本地协议地址赋予一个套接字,对于RapidIO网络,协议地址和以太网使用相同的结构体,都是32位的IPv4地址和16位端口号的组合;connect函数是TCP客户用来建立与TCP服务器的连接,调用该函数将触发TCP的三路握手过程,而且仅在连接建立成功或者出错时候才返回;listen函数把一个未连接的套接字转换成一个被动套接字,指示内核应该接受指向该套接字的连接请求;accept函数由TCP服务器调用,用于从已完成连接队列头返回一个本文档来自技高网...
RapidIO网络通用套接字的实现系统及方法

【技术保护点】
一种RapidIO网络通用套接字的实现系统,其特征在于,包括:通用接口层,应用层将使用socket接口来进行RapidIO网络通信;命令行,用户对RapidIO网络的设备、拓扑关系以及协议栈参数查看和配置;BSD接口层,利用BSD接口层提供的内核函数创建一个新的RapidIO网络协议栈;类TCP‑UDP模块,初始化完成之后,就需要在BSD层对类UDP的rapidio_dgram_prot和类TCP的rapidio_stream_prot结构体函数指针成员分别实现;分片重组模块,在收发网络包过程中按照自定义的帧格式进行解析报文,数据负载大于12KB的需要进行分片重组,根据协议类型判断是类UDP还是类TCP数据包,递交给不同的网络接收函数处理;帧头解析模块,用于对帧头进行解析;组播模块,RapidIO交换机支持组播功能,交换机创建多播组,添加成员节点,当成员利用组ID进行通信时候,交换机将其转发到该组其他成员;拓扑管理模块,host节点枚举整个网络,就会产生一张拓扑表,其他端点设备可以和host节点通信,从而获得这样拓扑图,可用于显示、查找和监控网络动态变化的目的;网卡驱动模块,底层驱动采用I/O方式,;针对多对一的客户端/服务器模式,采取Nread主动读取数据的方式。...

【技术特征摘要】
1.一种RapidIO网络通用套接字的实现系统,其特征在于,包括:通用接口层,应用层将使用socket接口来进行RapidIO网络通信;命令行,用户对RapidIO网络的设备、拓扑关系以及协议栈参数查看和配置;BSD接口层,利用BSD接口层提供的内核函数创建一个新的RapidIO网络协议栈;类TCP-UDP模块,初始化完成之后,就需要在BSD层对类UDP的rapidio_dgram_prot和类TCP的rapidio_stream_prot结构体函数指针成员分别实现;分片重组模块,在收发网络包过程中按照自定义的帧格式进行解析报文,数据负载大于12KB的需要进行分片重组,根据协议类型判断是类UDP还是类TCP数据包,递交给不同的网络接收函数处理;帧头解析模块,用于对帧头进行解析;组播模块,RapidIO交换机支持组播功能,交换机创建多播组,添加成员节点,当成员利用组ID进行通信时候,交换机将其转发到该组其他成员;拓扑管理模块,host节点枚举整个网络,就会产生一张拓扑表,其他端点设备可以和host节点通信,从而获得这样拓扑图,可用于显示、查找和监控网络动态变化的目的...

【专利技术属性】
技术研发人员:王浩黄振中张庆松
申请(专利权)人:中国电子科技集团公司第三十二研究所
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1