基于异构操作系统的实时中继传输引擎及方法

文档序号:7861162阅读:110来源:国知局
专利名称:基于异构操作系统的实时中继传输引擎及方法
技术领域
本发明涉及一种基于异构操作系统的实时中继传输引擎及方法。
背景技术
实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。在路由器、交换机领域,实时操作系统得到了广泛应用,因为它在对数据包的快速处理、转发方面有远高于非实时操作系统的性能优势。但实时操作系统无法做到非实时操作系统的复杂的协议栈,即使做到了,性能也较非实时操作系统低。所以需要利用非实时操 作系统的复杂的协议栈和实时操作系统快速的数据包处理能力,以满足高性能路由器和交换机的要求。基于以上的非实时操作系统和实时操作系统的优势互补,这需要在一个计算机上运行两个操作系统。这两个操作系统之间的通信成为了研究的热点。一般的网络处理器由多核组成,通常,非实时操作系统运行在一些核上,实时操作系统运行在其他一些核上。这两个操作系统可以通过核间通信的方式通信。一般上,非实时操作系统运行在控制层,实时操作系统运行在数据层,非实时操作系统收发数据通过实时操作系统完成。对于高性能的数据包转发,必须卸载到实时操作系统,才能获得更高的转发性能。但实时操作系统不能访问非实时操作系统上的路由表等转发数据包必须的信息,所以需要有一种机制在两个操作系统间传递这些信息。

发明内容
本发明的目的是实现在实时操作系统和非实时操作系统间传递需要中继传输的应用层数据的信息,从而使得实时操作系统具有更高的中继传输性能。为实现上述目的,本发明提供了一种基于异构操作系统的实时中继传输引擎。该基于异构操作系统的实时中继传输引擎包括在实时操作系统上的应用层数据实时中继传输引擎,在非实时操作系统上的应用层数据实时中继传输引擎管理器;所述应用层数据实时中继传输引擎包括数据实时中继传输表;所述数据实时中继传输表根据借助所述应用层数据实时中继传输引擎管理器获取的应用层数据中继传输时所需要的信息进行更新,所述应用层数据实时中继传输引擎根据实时中继传输表对所述应用层数据进行中继传输。进一步的,所述应用层数据中继传输时所需要的信息包括应用层数据的目的MAC址、目的IP地址、目的UDP端口信息、源MAC址、源IP地址、源UDP端口信息。进一步的,所述应用层数据实时中继传输引擎管理器包括实时中继传输引擎配置表;所述应用层数据实时中继传输引擎管理器基于所述应用层数据从所述实时中继传输引擎配置表获取所述目的IP地址、源UDP端口信息、目的UDP端口信息,并更新到所述实时中继传输表。
进一步的,所述应用层数据实时中继传输引擎管理器还包括实时中继传输引擎配置模块;所述应用层数据实时中继传输引擎还包括数据实时中继传输表管理模块;所述实时中继传输引擎配置模块用于将获取的所述目的IP地址、源UDP端口信息、目的UDP端口信息发送给所述实时中继传输表管理模块,所述数据实时中继传输表管理模块根据获取的所述目的IP地址、源UDP端口信息、目的UDP端口信息对所述实时中继传输表进行更新。进一步的,所述实时中继传输引擎配置模块还用于对所述实时中继传输引擎配置表进行配置。进一步的,所述应用层数据实时中继传输引擎管理器还包括非实时中继传输数据处理模块,用于查看所述应用层数据的信息,根据查看到的信息从所述实时中继传输引擎配置表中获取所述目的IP地址、源UDP端口信息、目的UDP端口信息。进一步的,所述基于异构操作系统的实时中继传输引擎还包括虚拟网卡驱动和 TCP/IP协议栈;所述应用层数据实时中继传输引擎还包括数据输入模块;所述TCP/IP协议栈根据获取的目的IP地址、源UDP端口信息、目的UDP端口信息建立所述应用层数据对应的以太网帧,并通过虚拟网卡驱动发送给所述数据输入模块,所述数据输入模块从所述以太网帧中提取所述源IP地址、源MAC址、目的MAC址,并更新到所述实时中继传输表中;所述数据输入模块还用于接收网络上网络数据包,从所述网络数据包中提取所述应用层数据。进一步的,所述应用层数据实时中继传输引擎还包括数据处理模块,用于根据所述数据实时中继传输表中应用层数据中继传输所需要的信息,对所述应用层数据进行以太网帧封装;数据输出模块,用于接收从所述数据处理模块发送的封装好的应用层数据,并且通过控制网卡接口将所述应用层数据进行发送。本发明还提供了一种基于异构操作系统的实时中继传输方法。其中,异构操作系统包括非实时操作系统和实时操作系统,该方法包括以下步骤所述实时操作系统借助非实时操作系统获取应用层数据中继传输时所需要的信息;所述实时操作系统根据获取的所述应用层数据中继传输时所需要的信息中继传输所述应用层数据。本发明提供的基于异构操作系统的实时中继传输引擎实现了应用层数据中继传输时所需的信息在实时操作系统和非实时操作系统间的传递,并且其结构简单,大大降低了应用层数据中继传输的复杂度。该基于异构操作系统的实时中继传输引擎对应用层数据的处理能力更高,能够满足高性能路由器和交换机的要求。


图I为本发明基于异构操作系统的实时中继传输引擎的结构示意图;图2为本发明基于异构操作系统的实时中继传输引擎处理应用层数据的流程图;图3为本发明基于异构操作系统的实时中继传输方法的流程图;图4为本发明另一种基于异构操作系统的实时中继传输方法的流程图。
具体实施例方式下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
如图I所示,其为本发明基于异构操作系统的实时中继传输引擎的结构示意图。该基于异构操作系统的实时中继传输引擎包括在实时中继传输系统上的应用层数据实时中继传输引擎110,在非实时操作系统上的应用层数据实时中继传输引擎管理器120,应用层数据实时中继传输引擎110包括数据实时中继传输表112。应用层数据实时中继传输引擎110根据借助应用层数据实时中继传输引擎管理器120获取的应用层数据中继传输时所需的信息,进行应用层数据实时中继传输处理。需要说明的是,应用层数据中继传输时所需的信息包括应用层数据的源UDP端口信息、目的UDP端口信息、源IP地址、目的I P地址、源MAC地址、目的MAC地址。下面具体介绍本实施例中基于异构操作系统的实时中继传输引擎的结构首先需要说明的是,本实施例中,该基于异构操作系统的实时中继传输引擎实现于Cavium公司的OCTEON系列处理器上,其中,非实时操作系统选用Linux操作系统,实时 操作系统选用Cavium公司提供的简单执行环境(Simple Excutive)。因此,应用层数据实时中继传输引擎管理器120运行于Linux操作系统上,应用层数据实时中继传输引擎110运行于简单执行环境上。该基于异构操作系统的实时中继传输引擎还包括虚拟网卡驱动130和TCP/IP协议栈140,利用Cavium公司软件开发包中提供的TCP/IP协议栈和虚拟网卡驱动程序作为该基于异构操作系统的实时中继传输引擎的虚拟网卡驱动130和TCP/IP协议栈140。应用层数据实时中继传输引擎管理器120包括非实时中继传输数据处理模块121,实时中继传输引擎配置表122及实时中继传输引擎配置模块123。实时中继传输引擎配置模块123根据用户要求对实时中继传输引擎配置表122进行配置,实时中继传输引擎配置表122包括接收侧信息,中继传输侧信息及表项状态信息。接收侧信息包括应用层数据的源MAC址、源IP地址、源UDP端口信息;中继传输侧信息包括应用层数据的目的IP地址、目的UDP端口信息、源UDP端口信息;表项状态信息,用于指示接收侧信息和所述中继传输侧信息是否完整,是否需要更新。因此,非实时中继传输数据处理模块121通过查看应用层数据的信息,从实时中继传输引擎配置表122中获取应用层数据的源UDP端口信息、目的UDP端口信息、目的IP地址,并且将这些信息发送给虚拟网卡驱动130和TCP/IP协议栈140。同时,实时中继传输引擎配置模块123将非实时中继传输数据处理模块121获取的应用层数据的源UDP端口信息、目的UDP端口信息、目的IP地址,发送给应用层数据实时中继传输引擎110。TCP/IP协议栈140利用接收到的应用层数据的源UDP端口信息、目的UDP端口信息、目的IP地址建立Socket (网络套接字),然后通过TCP/IP协议栈140构造出对应于该应用层数据的完整的以太网帧,再通过虚拟网卡驱动130发送给应用层数据实时中继传输引擎110。以太网帧包括应用层数据的源IP地址、源MAC地址、目的MAC地址。应用层数据实时中继传输引擎110包括数据输入模块111,实时中继传输表112,实时中继传输表管理模块113。数据输入模块111用于接收经过应用层数据实时中继传输引擎管理器120和TCP/IP协议栈140处理后的应用层数据。实时中继传输表112根据数据实时中继传输表管理模块113接收到的从实时中继传输引擎配置模块123发送的应用层数据的源UDP端口信息、目的UDP端口信息、目的IP地址进行更新。并且,根据从数据输入模块111接收到应用层数据对应的以太网帧中提取的应用层数据的源IP地址、源MAC地址、目的MAC地址进行更新。需要说明的是,实时中继传输表112包括接收侧信息,中继传输侧信息,表项状态信息。其中,接收侧信息,包括应用层数据的源MAC址、源IP地址、源UDP端口信息冲继传输侧信息,包括应用层数据的目的MAC址、目的IP地址、目的UDP端口信息、源MAC址、源IP地址、源UDP端口信息;表项状态信息,用于指示接收侧信息和中继传输侧信息是否完整,是否需要更新。需要说明的是,数据输入模块111还用于接收网络上网络数据包,从接收的网络数据包中提取应用层数据。应用层数据实时中继传输引擎110,还包括数据处理模块114,数据输出模块115。 数据处理模块114用于接收数据输入模块111中的应用层数据,根据数据实时中继传输表112中应用层数据中继传输时多需要的完整的信息,对应用层数据进行以太网帧封装。数据输出模块115用于接收从数据处理模块114发送的需要中继传输的已经封装好的应用层数据,并且通过控制网卡接口将应用层数据以网络数据包的形式进行发送。下面介绍基于异构操作系统的实时中继传输引擎处理应用层数据的流程。如图2所示,其为本发明基于异构操作系统的实时中继传输引擎处理应用层数据的流程图。步骤201,数据输入模块111从网络上接收网络上网络数据包,从接收的网络数据包中提取应用层数据。再提取应用层数据首部的信息。步骤202,将提取的应用层数据首部的信息与实时中继传输表112中的信息进行对比,判断实时中继传输表112中是否具有完整的中继传输表项信息。如果实时中继传输表112中具有完整的中继传输表项信息则直接执行步骤209,在此不做具体说明,后面将进行具体说明。如果实时中继传输表112中不具有完整的中继传输表项信息,则执行步骤203。步骤203,数据输入模块111将应用层数据发送给虚拟网卡驱动130和TCP/IP协议栈140进行处理。步骤204,虚拟网卡驱动130根据实时中继传输表112中的信息,判断应用层数据是否是待中继传输数据。具体的,在数据输入模块111将应用层数据发送给虚拟网卡驱动130和TCP/IP协议栈140后,虚拟网卡驱动130根据在步骤202时应用层数据首部的信息与数据实时中继传输表112中的信息进行的对比结果,判断该应用层数据包是否是待中继传输数据。如果应用层数据不是待中继传输数据,则执行步骤212。步骤212,应用层数据通过虚拟网卡驱动130和TCP/IP协议栈140重新发送回数据输入模块111。步骤213,数据输入模块111将应用层数据经过数据处理模块114发送给数据输出模块115以接收时原本的网络数据包的形式进行发送。此时,数据处理模块114对应用层数据不做任何处理,仅执行传递功能。如果应用层数据是待中继传输数据,则执行步骤205。
步骤205,TCP/IP协议栈140将应用层数据发送给非实时中继传输数据处理模块121。步骤206,非实时中继传输数据处理模块121获取应用层数据的目的IP地址、源UDP端口、目的UDP端口,并通过实时中继传输引擎配置模块123和实时中继传输表管理模块113将这些信息更新到实时中继传输表112中。具体的,实时中继传输引擎配置模块123预先根据用户的需求对实时中继传输引擎配置表122进行配置。非实时中继传输数据处理模块121查看应用层数据的信息,根据查看到的应用层数据的信息从预先配置好的实时中继传输引擎配置表122中获取应用层数据的目的IP地址、源UDP端口信息、目的UDP端口信息。同时,实时中继传输弓丨擎配置模块123将非实时中继传输数据处理模块121获取的这些信息发送给数据实时中继传输表管理模块113,数据实时中继传输表管理模块113根据这些信息更新数据实时中继传输表112。
步骤207,利用步骤206中获取的应用层数据的目的IP地址、源UDP端口信息、目的UDP端口信息建立网络套接字,然后利用TCP/IP协议栈140构造出该应用层数据对应的完整的以太网帧,再通过虚拟网卡驱动130发送给数据输入模块111。具体的,实时中继传输引擎配置模块123将应用层数据及获取的应用层数据的目的IP地址、源UDP端口信息、目的UDP端口信息发送给虚拟网卡驱动130和TCP/IP协议栈140。TCP/IP协议栈140根据该应用层数据的IP地址、源UDP端口信息、目的UDP端口信息建立的网络套接字构造该应用层数据对应的完整的以太网帧。以太网帧中包括应用层数据的源IP地址、源MAC地址、目的MAC地址。然后,虚拟网卡驱动130将构造好的以太网帧发送给数据输入模块111。步骤208,数据输入模块111从接收到的以太网帧中提取应用层数据的源IP地址,源MAC地址和目的MAC地址,并更新到数据实时中继传输表112中。此时,实时中继传输表112中中继传输表项信息的已经更新完整。下面执行步骤209。步骤209,数据输入模块111将应用层数据发送给数据处理模块114。步骤210,数据处理模块114从数据实时中继传输表112中提取网络数据中继传输时所需的完整的信息(即应用层数据的源UDP端口信息、目的UDP端口信息、源IP地址、目的IP地址、源MAC地址、目的MAC地址。),然后进行以太网帧封装,将封装好的应用层数据发送给数据输出模块115。步骤211,数据输出模块115通过控制网卡接口,将封装好的应用层数据以新的网络数据包的形式进行发送。由以上实施例可以看出,本发明提供的基于异构操作系统的实时中继传输引擎实现了应用层数据中继传输时所需的信息在实时操作系统和非实时操作系统间的传递,并且其结构简单,大大降低了应用层数据中继传输的复杂度。如图3所示,其为本发明基于异构操作系统的实时中继传输方法的流程图。首先需要说明的是,异构操作系统包括非实时操作系统和实时操作系统。步骤310,实时操作系统借助非实时操作系统获取应用层数据中继传输时所需要的信息。需要说明的是,应用层数据中继传输时所需要的信息包括应用层数据的目的MAC址、目的I P地址、目的UDP端口信息、源MAC址、源IP地址、源UDP端口信息。步骤320,实时操作系统根据步骤310中获取的应用层数据中继传输时所需要的信息中继传输应用层数据。另一个实施例中,如图4所示,其为本发明另一种基于异构操作系统的实时中继传输方法的流程图。需要说明的是,本实施例中非实时操作系统具有实时中继传输引擎配置表。步骤311,从实时中继传输引擎配置表获取目的IP地址、源UDP端口信息、目的UDP端口信息,作为应用层数据中继传输时所需要的信息。步骤312,非实时操作系统利用获取的目的IP地址、源UDP端口信息、目的UDP端口信息构造以太网帧,实时操作系统从以太网帧中提取源IP地址、源MAC址、目的MAC址, 作为应用层数据中继传输时所需要的信息。步骤320,实时操作系统根据步骤311和步骤312中获取的应用层数据中继传输时所需要的信息中继传输应用层数据。由以上实施例可以看出,本发明提供的基于异构操作系统的实时中继传输方法实现了应用层数据中继传输时所需的信息在实时操作系统和非实时操作系统间的传递。以上所述的具体实施方式
,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式
而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于异构操作系统的实时中继传输引擎,其特征在于,包括在实时操作系统上的应用层数据实时中继传输引擎,在非实时操作系统上的应用层数据实时中继传输引擎管理器;所述应用层数据实时中继传输引擎包括实时中继传输表; 所述数据实时中继传输表根据借助所述应用层数据实时中继传输引擎管理器获取的应用层数据中继传输时所需要的信息进行更新,所述应用层数据实时中继传输引擎根据数据实时中继传输表对所述应用层数据进行中继传输。
2.根据权利要求I所述的基于异构操作系统的实时中继传输引擎,其特征在于,所述应用层数据中继传输时所需要的信息包括应用层数据的目的MAC址、目的IP地址、目的UDP端口信息、源MAC址、源I P地址、源UDP端口信息。
3.根据权利要求2所述的基于异构操作系统的实时中继传输引擎,其特征在于,所述应用层数据实时中继传输引擎管理器包括实时中继传输引擎配置表; 所述应用层数据实时中继传输引擎管理器基于所述应用层数据从所述实时中继传输引擎配置表获取所述目的IP地址、源UDP端口信息、目的UDP端口信息,并更新到所述实时中继传输表。
4.根据权利要求3所述的基于异构操作系统的实时中继传输引擎,其特征在于,所述应用层数据实时中继传输引擎管理器还包括实时中继传输引擎配置模块;所述应用层数据实时中继传输引擎还包括实时中继传输表管理模块; 所述实时中继传输引擎配置模块用于将获取的所述目的I P地址、源UDP端口信息、目的UDP端口信息发送给所述实时中继传输表管理模块,所述数据实时中继传输表管理模块根据获取的所述目的IP地址、源UDP端口信息、目的UDP端口信息对所述实时中继传输表进行更新。
5.根据权利要求3所述的基于异构操作系统的实时中继传输引擎,其特征在于,所述实时中继传输引擎配置模块还用于对所述实时中继传输引擎配置表进行配置。
6.根据权利要求3所述的基于异构操作系统的实时中继传输引擎,其特征在于,所述应用层数据实时中继传输引擎管理器还包括非实时中继传输数据处理模块,用于查看所述应用层数据的信息,根据查看到的信息从所述实时中继传输引擎配置表中获取所述目的IP地址、源UDP端口信息、目的UDP端口信息。
7.根据权利要求3所述的基于异构操作系统的实时中继传输引擎,其特征在于,所述基于异构操作系统的实时中继传输引擎还包括虚拟网卡驱动和TCP/IP协议栈;所述应用层数据实时中继传输引擎还包括数据输入模块; 所述TCP/IP协议栈根据获取的目的IP地址、源UDP端口信息、目的UDP端口信息建立所述应用层数据对应的以太网帧,并通过虚拟网卡驱动发送给所述数据输入模块,所述数据输入模块从所述以太网帧中提取所述源IP地址、源MAC址、目的MAC址,并更新到所述数据实时中继传输表中。
8.根据权利要求7所述的方法,其特征在于,所述数据输入模块还用于接收网络上网络数据包,从所述网络数据包中提取所述应用层数据。
9.根据权利要求2所述的基于异构操作系统的实时中继传输引擎,其特征在于,所述应用层数据实时中继传输引擎还包括 数据处理模块,用于根据所述数据实时中继传输表中应用层数据中继传输所需要的信息,对所述应用层数据进行以太网帧封装; 数据输出模块,用于接收从所述数据处理模块发送的封装好的应用层数据,并将所述应用层数据以网络数据包的形式进行发送。
10.一种基于异构操作系统的实时中继传输方法,异构操作系统包括非实时操作系统和实时操作系统,其特征在于,包括以下步骤 所述实时操作系统借助非实时操作系统获取应用层数据中继传输时所需要的信息; 所述实时操作系统根据获取的所述应用层数据中继传输时所需要的信息中继传输所述应用层数据。
11.根据权利要求10所述的方法,其特征在于,所述非实时操作系统具有实时中继传输引擎配置表;所述实时操作系统借助非实时操作系统获取应用层数据中继传输时所需要 的信息的步骤包括 从所述实时中继传输引擎配置表获取所述目的IP地址、源UDP端口信息、目的UDP端口信息,作为应用层数据中继传输时所需要的信息。
12.根据权利要求11所述的方法,其特征在于,所述实时操作系统借助非实时操作系统获取应用层数据中继传输时所需要的信息的步骤包括 所述非实时操作系统利用所述获取的目的ip地址、源m)P端口信息、目的UDP端口信息构造以太网帧; 所述实时操作系统从所述以太网帧中提取所述源IP地址、源MAC址、目的MAC址,作为应用层数据中继传输时所需要的信息。
全文摘要
本发明涉及一种基于异构操作系统的实时中继传输引擎及方法。该基于异构操作系统的实时中继传输引擎包括在实时操作系统上的应用层数据实时中继传输引擎,在非实时操作系统上的应用层数据实时中继传输引擎管理器;所述应用层数据实时中继传输引擎包括实时中继传输表;所述实时中继传输表根据借助所述实时中继传输表管理模块获取的应用层数据中继传输时所需要的信息进行更新,所述应用层数据实时中继传输引擎根据数据实时中继传输表对所述应用层数据进行中继传输。本发明提供的基于异构操作系统的实时中继传输引擎实现了应用层数据中继传输时所需的信息在实时操作系统和非实时操作系统间的传递,并且其结构简单,大大降低了应用层数据中继传输的复杂度。
文档编号H04L12/56GK102833175SQ20121035663
公开日2012年12月19日 申请日期2012年9月21日 优先权日2012年9月21日
发明者张武, 王劲林, 宋毅, 郭秀岩, 李婷 申请人:中国科学院声学研究所, 北京中科海力技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1