本发明属于计算机技术领域,具体涉及基于硬件加速的以太网应用层协议控制系统及方法。
背景技术:
传统cpu对接收到的应用层网络协议包执行的数据处理包括协议包的解析,控制操作等。其中协议包的解析,控制操作等处理均是通过cpu进行操作,而cpu只能采用串行识别、串行控制的方式逐个处理协议包。这种处理方式不仅处理效率非常低,而且给cpu带来了巨大的运行负担,cpu长期的高负荷运转也会导致系统不稳定,且也容易因此而遭到攻击;一旦cpu出现故障,就会直接导致系统崩溃、数据也会被损坏,因而存在不可靠,不安全且无法恢复的问题。
技术实现要素:
针对现有技术中的缺陷,本发明提供基于硬件加速的以太网应用层协议控制系统及方法,极大的减轻cpu的负担,提高以太网应用层协议控制效率,实现cpu加速。
第一方面,一种基于硬件加速的以太网应用层协议控制系统,
包括与cpu电连接的fpga;
所述fpga设置有多个处理引擎,实现应用层网络协议包的并行处理;所述fpga用于接收应用层网络协议包,对所述应用层网络协议包进行协议解析,并利用多种并行的协议识别算法对解析结果进行匹配,根据匹配结果执行相应的控制操作;所述控制操作包括丢弃或转发不需要进行深度处理的应用层网络协议包、以及将需要进行深度处理的应用层网络协议包传输给所述cpu进行处理;
fpga还用于接收到cpu对该应用层网络协议包处理后返回的处理结果,转发该处理结果,实现应用层的协议控制。
第二方面,一种基于硬件加速的以太网应用层协议控制方法,包括以下步骤:
fpga接收应用层网络协议包,对所述应用层网络协议包进行协议解析,并利用多种并行的协议识别算法对解析结果进行匹配,根据匹配结果执行相应的控制操作;所述控制操作包括丢弃或转发不需要进行深度处理的应用层网络协议包、以及将需要进行深度处理的应用层网络协议包传输给所述cpu进行处理;
fpga接收到cpu对该应用层网络协议包处理后返回的处理结果,转发该处理结果,实现应用层的协议控制。
由上述技术方案可知,本发明提供的基于硬件加速的以太网应用层协议控制系统及方法,采用软硬件结合的方式,增加fpga与cpu之间的通信连接,将现有技术中在cpu内对应用层网络协议包进行解析和处理的过程转移到fpga内实现,通过fpga设置多个处理引擎,并行处理应用层网络协议包,根据软件的配置预先过滤及转发不需要处理的多个应用层网络协议包,之后再将需要cpu处理的应用层网络协议包回传给cpu进行处理,从而极大的减轻cpu的负担,提高以太网应用层协议控制效率,实现cpu加速。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明实施例一提供的以太网应用层协议控制系统的模块框图。
图2为本发明实施例二提供的以太网应用层协议控制方法的流程图。
图3为本发明实施例二提供的方法中fpga进行控制操作识别的流程图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
实施例一:
一种基于硬件加速的以太网应用层协议控制系统,参见图1,
包括与cpu电连接的fpga;
所述fpga设置有多个处理引擎,实现应用层网络协议包的并行处理;所述fpga用于接收应用层网络协议包,对所述应用层网络协议包进行协议解析,并利用多种并行的协议识别算法对解析结果进行匹配,根据匹配结果执行相应的控制操作;所述控制操作包括丢弃或转发不需要进行深度处理的应用层网络协议包、以及将需要进行深度处理的应用层网络协议包传输给所述cpu进行处理;
fpga还用于接收到cpu对该应用层网络协议包处理后返回的处理结果,转发该处理结果,实现应用层的协议控制。
具体地,该系统还可以在fpga中固化处理逻辑建立防护墙,与cpu进行隔离,提高了系统的安全可靠性,不易被攻破。另外,fpga具备故障恢复机制,能够实时监测cpu是否正常,若不正常,可对cpu进行重启恢复。
该基于硬件加速的以太网应用层协议控制系统,采用软硬件结合的方式,增加fpga与cpu之间的通信连接,将现有技术中在cpu内对应用层网络协议包进行解析和处理的过程转移到fpga内实现,通过fpga设置多个处理引擎,并行处理应用层网络协议包,根据软件的配置预先过滤及转发不需要处理的多个应用层网络协议包,之后再将需要cpu处理的应用层网络协议包回传给cpu进行处理,从而极大的减轻cpu的负担,提高以太网应用层协议控制效率,实现cpu加速。
优选地,所述多种并行的协议识别算法包括二分法排序查找、多重hash散列算法、带掩码的正则特征字搜索算法、直接搜索和比较法。
具体地,该系统根据从应用层网络协议包中解析到的多种数据和关键字,采用二分法排序查找、多重hash散列算法、带掩码的正则特征字搜索算法、直接搜索和比较法(采用内容可寻址单元模块、寄存器整列(ra),memory串行读取直接比较)等多种方法进行匹配。这多种方法并行进行比较,每种比较模块也有多个并行引擎,可以实现快速、大容量、高性能的精准匹配。
优选地,所述fpga具体用于:
根据预设的网络协议并行对所有应用层网络协议包进行逐层协议解析,拆解并获得应用层网络协议包中各层结构的数据;
其中应用层网络协议包中层结构包括mac层、ip层、udp/tcp端口层和http/udp/tcp内容层。
具体地,fpga在进行协议解析时,采用并行的方式,根据网络协议对所有应用层网络协议包分别同时进行逐层解析,拆解成mac层、ip层、udp/tcp端口层和http/udp/tcp内容层等等,提取出各层结构的数据。
优选地,所述fpga具体用于:
创建包括多个预设的控制条件的控制表;所述引用表中包括各个匹配结果对应的所述控制操作;
具体地,例如创建多层多类别的控制表,控制条件包括需要提取的数据,例如提取mac、ip、tcp端口等等。控制表可以由cpu配置的,也可以通过网页/app应用/命令行方式进行下发。
利用多种并行的协议识别算法,从所述解析获得的各层结构的数据中按照控制表中控制条件同时搜索对应的数据,将搜索到的数据和所述控制条件合并形成所述匹配结果;
根据所述匹配结果在所述引用表中匹配相应的控制操作,执行匹配到的控制操作。
具体地,所述控制操作包括过滤,二层/三层/四层/加密/解密/镜像/标签/vlan操作,以及送cpu进行深度处理等。
fpga通过对大量的应用层网络协议包进行处理后,将需要过滤的应用层网络协议包直接丢弃,将需要直接进行转发的应用层网络协议包直接转发,将需要直接镜像、存储的应用层网络协议包直接硬件转发及处理等。例如常规的不改变报文内容的二层透明转发需要进行内容替换的包括三层路由转发、四层地址转换、嵌入及剥离二层vlan头、报文数据加密/解密等应用层网络协议包。这样通过预设的控制操作,fpga就可以处理大量的应用层网络协议包的业务,不需要再送cpu进行处理,从而极大的减轻了cpu的负荷。
除此以外,fpga还对需要进行深度处理的应用层网络协议包进行精确选择,以便进一步减轻cpu的负荷。具体包括fpga对需要进行深度处理的应用层网络协议包进行精细识别,并将识别的应用层网络协议包送指定软件,软件处理完成后将报文回送给fpga进行转发的同时,可以设置后续处理的命令,实现后续的数据包硬件处理的进一步数据加速过程;典型的应用场景包括基于应用层的管控和应用层网关加速等。
具体地,fpga利用多种并行的协议识别算法,将协议解析提取到的每层的数据分别同时对应匹配控制表。然后,根据控制表的匹配结果通过预设的引用表对行为进行控制操作。
例如:引用表中的控制操作设置为丢弃mac地址为张三的数据包,转发mac地址为李四的数据包,控制表中控制条件设置为提取用户的名称和mac地址。则fpga首先应用层网络协议包进行逐层拆解,然后将拆解出来的各层结构的数据与控制条件进行匹配,提取出控制条件要求的数据,例如提取出张三的mac地址、李四的mac地址。最后当控制表匹配完成后,根据匹配结果与控制操作进行控制操作,例如当控制表匹配出张三的mac地址时,丢弃该数据包。当控制表匹配出李四的mac地址时,转发该数据包。
再例如:引用表中的控制操作设置为禁止在上班时间段访问网页游戏和访问炒股网站,允许其它的常规的http访问,则控制表中设置的控制条件包含网页的关键字(站点名称)、炒股网站名、dns站点/httpurl站点、登陆网站的关键字等内容,则fpga会对大量的应用层网络协议进行逐层拆解,并根据udp/tcp/http等协议得到站点、dns地址、payload层等,并通过hash/特征字识别等多种算法进行匹配,当从数据包中提取到的相应内容和配置的内容一致时,将匹配的数据报文直接丢弃,对未匹配的数据报文进行转发。
具体地,引用表在对用户的配置使用上可以体现为一个app或网页配置界面等。引用表可以基于不同的时间、不同业务场景设置不同的配置功能。引用表的控制操作还可以根据时间进行控制,例如控制操作可以设置上班不能上网,下班可以上网,什么时段上网流量不能超过预设的速度等等。
优选地,所述fpga还用于:
根据所述协议解析和控制操作的过程生成并存储相应的历史日志。
具体地,该系统可以根据协议解析和控制操作识别的过程生成历史日志,实现处理过程的可追溯性。
实施例二:
一种基于硬件加速的以太网应用层协议控制方法,参见图2,包括以下步骤:
s1:fpga接收应用层网络协议包,对所述应用层网络协议包进行协议解析;
s2:fpga利用多种并行的协议识别算法对解析结果进行匹配,根据匹配结果执行相应的控制操作;所述控制操作包括丢弃或转发不需要进行深度处理的应用层网络协议包、以及将需要进行深度处理的应用层网络协议包传输给所述cpu进行处理;
s3:fpga接收到cpu对该应用层网络协议包处理后返回的处理结果,转发该处理结果,实现应用层的协议控制。
优选地,所述多种并行的协议识别算法包括二分法排序查找、多重hash散列算法、带掩码的正则特征字搜索算法、直接搜索和比较法。
优选地,所述fpga对所述应用层网络协议包进行协议解析具体包括:
fpga根据预设的网络协议并行对所有应用层网络协议包进行逐层协议解析,拆解并获得应用层网络协议包中各层结构的数据;
其中应用层网络协议包中层结构包括mac层、ip层、udp/tcp端口层和http/udp/tp内容层。
参见图3,所述fpga根据解析结果执行相应的控制操作具体包括:
s11:fpga创建包括多个预设的控制条件的控制表;
s12:fpga利用多种并行的协议识别算法,从所述解析获得的各层结构的数据中按照控制表中控制条件同时搜索对应的数据,将搜索到的数据和所述控制条件合并形成所述匹配结果;
s13:fpga根据所述匹配结果在所述引用表中匹配相应的控制操作,执行匹配到的控制操作。
优选地,该方法在所述fpga转发处理结果之后,还包括:
fpga根据所述协议解析和控制操作的过程生成并存储相应的历史日志。
该方法采用软硬件结合的方式,增加fpga与cpu之间的通信连接,将现有技术中在cpu内对应用层网络协议包进行解析和处理的过程转移到fpga内实现,通过fpga设置多个处理引擎,并行处理应用层网络协议包,根据软件的配置预先过滤及转发不需要处理的多个应用层网络协议包,之后再将需要cpu处理的应用层网络协议包回传给cpu进行处理,从而极大的减轻cpu的负担,提高以太网应用层协议控制效率,实现cpu加速。
本发明实施例所提供的方法,为简要描述,实施例部分未提及之处,可参考前述系统实施例中相应内容。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
1.一种基于硬件加速的以太网应用层协议控制系统,其特征在于,
包括与cpu电连接的fpga;
所述fpga设置有多个处理引擎,实现应用层网络协议包的并行处理;所述fpga用于接收应用层网络协议包,对所述应用层网络协议包进行协议解析,并利用多种并行的协议识别算法对解析结果进行匹配,根据匹配结果执行相应的控制操作;所述控制操作包括丢弃或转发不需要进行深度处理的应用层网络协议包、以及将需要进行深度处理的应用层网络协议包传输给所述cpu进行处理;
fpga还用于接收到cpu对该应用层网络协议包处理后返回的处理结果,转发该处理结果,实现应用层的协议控制。
2.根据权利要求1所述基于硬件加速的以太网应用层协议控制系统,其特征在于,
所述多种并行的协议识别算法包括二分法排序查找、多重hash散列算法、带掩码的正则特征字搜索算法、直接搜索和比较法。
3.根据权利要求1所述基于硬件加速的以太网应用层协议控制系统,其特征在于,所述fpga具体用于:
根据预设的网络协议并行对所有应用层网络协议包进行逐层协议解析,拆解并获得应用层网络协议包中各层结构的数据;
其中应用层网络协议包中层结构包括mac层、ip层、udp/tcp端口层和http/udp/tcp内容层。
4.根据权利要求3所述基于硬件加速的以太网应用层协议控制系统,其特征在于,所述fpga具体用于:
创建包括多个预设的控制条件的控制表;所述引用表中包括各个匹配结果对应的所述控制操作;
利用多种并行的协议识别算法,从所述解析获得的各层结构的数据中按照控制表中控制条件同时搜索对应的数据,将搜索到的数据和所述控制条件合并形成所述匹配结果;
根据所述匹配结果在所述引用表中匹配相应的控制操作,执行匹配到的控制操作。
5.根据权利要求1-4中任一所述基于硬件加速的以太网应用层协议控制系统,其特征在于,所述fpga还用于:
根据所述协议解析和控制操作的过程生成并存储相应的历史日志。
6.一种基于硬件加速的以太网应用层协议控制方法,其特征在于,包括以下步骤:
fpga接收应用层网络协议包,对所述应用层网络协议包进行协议解析,并利用多种并行的协议识别算法对解析结果进行匹配,根据匹配结果执行相应的控制操作;所述控制操作包括丢弃或转发不需要进行深度处理的应用层网络协议包、以及将需要进行深度处理的应用层网络协议包传输给所述cpu进行处理;
fpga接收到cpu对该应用层网络协议包处理后返回的处理结果,转发该处理结果,实现应用层的协议控制。
7.根据权利要求6所述基于硬件加速的以太网应用层协议控制方法,其特征在于,
所述多种并行的协议识别算法包括二分法排序查找、多重hash散列算法、带掩码的正则特征字搜索算法、直接搜索和比较法。
8.根据权利要求6所述基于硬件加速的以太网应用层协议控制方法,其特征在于,所述fpga对所述应用层网络协议包进行协议解析具体包括:
fpga根据预设的网络协议并行对所有应用层网络协议包进行逐层协议解析,拆解并获得应用层网络协议包中各层结构的数据;
其中应用层网络协议包中层结构包括mac层、ip层、udp/tcp端口层和http/udp/tcp内容层。
9.根据权利要求8所述基于硬件加速的以太网应用层协议控制方法,其特征在于,所述fpga根据解析结果执行相应的控制操作具体包括:
fpga创建包括多个预设的控制条件的控制表;所述引用表中包括各个匹配结果对应的所述控制操作;
fpga利用多种并行的协议识别算法,从所述解析获得的各层结构的数据中按照控制表中控制条件同时搜索对应的数据,将搜索到的数据和所述控制条件合并形成所述匹配结果;
fpga根据所述匹配结果在所述引用表中匹配相应的控制操作,执行匹配到的控制操作。
10.根据权利要求6-9中任一所述基于硬件加速的以太网应用层协议控制方法,其特征在于,该方法在所述fpga转发处理结果之后,还包括:
fpga根据所述协议解析和控制操作的过程生成并存储相应的历史日志。
技术总结