一种多域网包分类处理方法及装置

文档序号:30068386发布日期:2022-05-18 01:30阅读:87来源:国知局
一种多域网包分类处理方法及装置

1.本发明涉及网络数据处理技术领域,具体涉及一种多域网包分类处理方法及装置。另外,还涉及一种电子设备及处理器可读存储介质。


背景技术:

2.多域网包分类是网络设备中的基本功能。基于分类规则集,网络设备能够通过检查流经自身的网包中分类规则集定义的相关域,确定网包匹配的分类规则集中的目标分类规则,以实现多域网包分类处理。其中,多域网包分类方式将直接影响了网络设备的性能。目前,对于多域网包匹配问题,大多采用tcam(ternary content addressable memory)硬件方案和决策树软件方案来实现。然而,该类多域网包分类方法,受技术限制,无法同时实现高吞吐、低时延、高规则容量和支持规则更新的需求,查找引擎只能使用单一查找算法实现,无法综合多种算法优势,无法根据规则集特点灵活选用网包查找方案。因此,如何提高多域网包分类性能以实现海量规则场景下的网包分类的高吞吐、低时延和规则更新的需求成为亟待解决的难题。


技术实现要素:

3.为此,本发明提供一种多域网包分类处理方法及装置,以解决现有技术中存在的多域网包分类处理方案局限性较高,从而导致网络设备的多域网包分类性能和稳定性较差的缺陷。
4.第一方面,本发明提供一种多域网包分类处理方法,包括:基于预设的多域网包分类规则集确定查找引擎的配置信息,并将所述配置信息配置到所述查找引擎中;
5.将待处理的多域网包输入到所述查找引擎中,得到相应的分类规则匹配结果,以完成基于所述分类规则匹配结果对所述多域网包的分类处理;其中,所述查找引擎为顶层查找模块和执行查找模块连接到片上网络得到的电路结构模型。
6.进一步的,所述将待处理的多域网包输入到所述查找引擎中,得到相应的分类规则匹配结果,具体包括:
7.将获取的所述多域网包的网包信息输入到顶层查找模块中,基于所述顶层查找模块将处理后的信息发送到片上网络,以通过所述片上网络根据所述信息确定相应的执行查找模块;其中,所述执行查找模块包括决策树查找模块、线性查找模块、神经网络查找模块或者乱序重排模块;
8.当所述执行查找模块为决策树查找模块时,基于所述网包信息和所述决策树查找模块的多级流水线结构在相应的配置信息中进行逐级匹配,以确定相应的分类规则匹配结果;或者,
9.当所述执行查找模块为线性查找模块时,基于所述网包信息和所述线性查找模块的线性查找策略在相应的配置信息中进行匹配,以确定相应的分类规则匹配结果;或者,
10.当所述执行查找模块为神经网络查找模块时,基于所述网包信息和所述神经网络
查找模块的网络查找策略在相应的配置信息中进行匹配,以确定相应的分类规则匹配结果;或者,
11.当所述执行查找模块为乱序重排模块时,基于所述乱序重排模块将所述多域网包的分类规则匹配结果进行重排,以使得分类规则匹配结果与多域网包的输入顺序相同,输出重排后的分类规则匹配结果。
12.进一步的,所述决策树查找模块是将决策树查找过程映射为多级流水线结构得到的,以实现将所述网包信息在所述多级流水线结构中根据对应的配置信息进行逐级匹配确定相应的分类规则匹配结果;其中,所述多级流水线结构中的每一级流水线结构用于处理决策树查找过程中对应的一层;在各级流水线之间传递的信息包括网包信息、下一级流水线结构的标识信息、下一级流水线结构要读取节点信息对应的地址线信息以及每一级流水线结构用于是否已经完成匹配处理任务的标识信息。
13.进一步的,所述乱序重排模块基于go-back-n机制或者selective ack机制进行拥塞控制,以实现乱序重排处理。
14.进一步的,所述基于预设的多域网包分类规则集确定查找引擎的配置信息,并将所述配置信息配置到所述查找引擎中,具体包括:
15.针对所述查找引擎对所述多域网包分类规则集进行编译,将编译结果对应的配置信息配置到查找引擎中,以使所述查找引擎根据配置信息对输入的所述多域网包进行分析处理。
16.进一步的,所述的多域网包分类处理方法,还包括:当所述多域网包分类规则集中的分类规则更新时,对所述查找引擎执行相应的更新操作。
17.第二方面,本发明还提供一种多域网包分类处理装置,包括:
18.信息配置单元,用于基于预设的多域网包分类规则集确定查找引擎的配置信息,并将所述配置信息配置到所述查找引擎中;
19.多域网包分类单元,用于将待处理的多域网包输入到所述查找引擎中,得到相应的分类规则匹配结果,以完成基于所述分类规则匹配结果对所述多域网包的分类处理;其中,所述查找引擎为顶层查找模块和执行查找模块连接到片上网络得到的电路结构模型。
20.进一步的,所述多域网包分类单元,具体用于:
21.将获取的所述多域网包的网包信息输入到顶层查找模块中,基于所述顶层查找模块将处理后的信息发送到片上网络,以通过所述片上网络根据所述信息确定相应的执行查找模块;
22.其中,所述执行查找模块为决策树查找模块、线性查找模块、神经网络查找模块或者乱序重排模块;
23.当所述执行查找模块为决策树查找模块时,基于所述网包信息和所述决策树查找模块的多级流水线结构在相应的配置信息中进行逐级匹配,以确定相应的分类规则匹配结果;或者,
24.当所述执行查找模块为线性查找模块时,基于所述网包信息和所述线性查找模块的线性查找策略在所述配置信息中进行匹配,以确定相应的分类规则匹配结果;或者,
25.当所述执行查找模块为神经网络查找模块时,基于所述网包信息和所述神经网络查找模块的网络查找策略在所述配置信息中进行匹配,以确定相应的分类规则匹配结果;
或者,
26.当所述执行查找模块为乱序重排模块时,基于所述乱序重排模块中预设的拥塞控制机制对所述分类规则匹配结果进行重排,以使得所述分类规则匹配结果与所述多域网包的输入顺序相同,输出重排后的分类规则匹配结果。
27.进一步的,所述决策树查找模块是将决策树查找过程映射为多级流水线结构得到的,以实现将所述网包信息在所述多级流水线结构中根据对应的配置信息进行逐级匹配确定相应的分类规则匹配结果;其中,所述多级流水线结构中的每一级流水线结构用于处理决策树查找过程中对应的一层;在各级流水线之间传递的信息包括网包信息、下一级流水线结构的标识信息、下一级流水线结构要读取节点信息对应的地址线信息以及每一级流水线结构用于是否已经完成匹配处理任务的标识信息。
28.进一步的,所述乱序重排模块基于go-back-n机制或者selective ack机制进行拥塞控制,以实现乱序重排处理。
29.进一步的,所述信息配置单元,具体用于:
30.针对所述查找引擎对所述多域网包分类规则集进行编译,将编译结果对应的配置信息配置到查找引擎中,以使所述查找引擎根据配置信息对输入的所述多域网包进行分析处理。
31.进一步的,所述的多域网包分类处理装置,还包括:规则更新处理模块,用于当所述多域网包分类规则集中的分类规则更新时,对所述查找引擎执行相应的更新操作。
32.第三方面,本发明还提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述计算机程序时实现如上述任意一项所述的多域网包分类处理方法的步骤。
33.第四方面,本发明还提供一种处理器可读存储介质,所述处理器可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述任意一项所述的多域网包分类处理方法的步骤。
34.本发明提供的多域网包分类处理方法,通过查找引擎对输入的多域网包进行分类处理,降低了分类的时延,提高网包分类的吞吐速度,同时能够根据片上网络进行查找引擎模块的自由配置,以适应不同的网包分类需求,从而提供稳定、高吞吐、低时延的多域网包分类能力。
附图说明
35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
36.图1是本发明实施例提供的多域网包分类处理方法的流程示意图;
37.图2是本发明实施例提供的多域网包分类处理方法的应用架构示意图;
38.图3是本发明实施例提供的查找引擎的电路结构模型的示意图;
39.图4是本发明实施例提供的决策树查找模块的电路结构的示意图;
40.图5是本发明实施例提供的乱序重排模块的电路结构的示意图;
41.图6是本发明实施例提供的针对多域网包分类规则集的一种决策树形态的示意图;
42.图7是本发明实施例提供的多域网包分类处理装置的结构示意图;
43.图8是本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
44.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
45.本发明所述的多域网包分类处理方法可应用于访问控制(acl,access list)规则匹配、服务质量(qos,quality of service)规则匹配、防火墙(fw,firewall)规则匹配、服务链(ipc,ip chain)规则匹配等各种网络策略匹配,也可应用于软件定义网络中的(open flow)包头匹配,以及现代可编程交换机中的自定义包头匹配引擎。需要说明的是,多域网包分类问题,通常是指查找引擎从预设的规则集所有规则中选择匹配输入的多域网包对应的具有最高优先级的分类规则。比如,典型的多域网包分类规则集如表1所示,表格的每一行代表一条分类规则,以分类规则r3为例,分类规则r3表示的多域网包集合为源ip地址在95.105.142.0/23该子网中、目的ip地址在193.4.164.231/32、源端口号在0-65535之间(即任意的16bit端口号)、目的端口号在0-65535之间、协议号为6(tcp协议号)。如果输入多域网包x为源ip地址95.105.142.3、目的ip地址193.4.164.231、源端口号1000、目的端口号32、tcp协议(如表2所示),即表示该多域网包在分类规则r3所表示的区域内,也就是多域网包x匹配到分类规则r3。同理,可知多域网包x不匹配分类规则r1,也不匹配分类规则r2。因此,在匹配多域网包x的最高优先级的分类规则为r3,即多域网包x在该多域网包分类规则集上对应的最终分类规则匹配结果为r3。
46.表1:典型的多域网包分类规则集
[0047][0048]
表2:网包包头示例
[0049][0050][0051]
下面基于本发明所述的多域网包分类处理方法,对其实施例进行详细描述。如图1所示,其为本发明实施例提供的多域网包分类处理方法的流程示意图,具体实现过程包括以下步骤:
[0052]
步骤101:基于预设的多域网包分类规则集确定查找引擎的配置信息,并将所述配置信息配置到所述查找引擎中。
[0053]
在本发明实施例中,执行本步骤之前需要预先确定查找引擎的电路结构模型,该查找引擎可由fpga(field programmable gate array)或者asic(application specific integrated circuit)实现,其设计架构如图3所示。电路结构模型的核心部分为片上网络。顶层查找模块、决策树查找模块、线性查找模块连接到该片上网络得到电路结构模型。
[0054]
如图2所示,在本发明具体实施过程中,可由处理器、查找引擎、系统总线组成的系统实现。其中处理器用于将多域网包分类规则集编译成查找引擎的配置信息,通过系统总线下发至查找引擎,查找引擎读取网包包头等网包信息、基于所述配置信息输出多域网包对应的分类规则匹配结果。当出现规则更新时,处理器还可获取规则更新的情况,并指导查找引擎进行相应的更新操作。通过将规则处理过程交由处理器进行,能够直接指导硬件模块的更新,查找引擎对应的硬件模块不需要用于分类规则更新的处理,从而降低了硬件模块的复杂度。系统总线可以是常见的现有标准(pcie)总线,在此不做具体限定。
[0055]
在本步骤中,可针对所述查找引擎对所述多域网包分类规则集进行编译,将编译结果对应的配置信息配置到查找引擎中,以使所述查找引擎能够根据配置信息对输入的所述多域网包进行分析处理。其中,所述多域网包分类规则集可以包含访问控制规则、服务质量规则、防火墙规则以及服务链规则等。
[0056]
步骤102:将待处理的多域网包输入到所述查找引擎中,得到相应的分类规则匹配结果,以完成基于所述分类规则匹配结果对所述多域网包的分类处理;其中,所述查找引擎为顶层查找模块和执行查找模块连接到片上网络得到的电路结构模型。所述查找引擎用于基于从所述多域网包读取的网包信息及所述配置信息进行规则匹配得到分类规则匹配结果,对所述多域网包进行分类处理。
[0057]
在本发明实施过程中,可将获取的所述多域网包的网包信息输入到顶层查找模块中,并基于所述顶层查找模块将处理后的信息发送到片上网络,以通过所述片上网络根据所述信息确定相应的执行查找模块。其中,所述执行查找模块可包括决策树查找模块、线性查找模块或者神经网络查找模块,以及乱序重排模块;当所述执行查找模块为决策树查找模块时,基于所述网包信息和所述决策树查找模块的多级流水线结构在相应的配置信息中进行逐级匹配,以确定相应的分类规则匹配结果;或者,当所述执行查找模块为线性查找模块时,基于所述网包信息和所述决策树查找模块的线性查找策略在所述配置信息中进行匹配,以确定相应的分类规则匹配结果;或者,当所述执行查找模块为神经网络查找模块时,基于所述网包信息和所述决策树查找模块的网络查找策略在所述配置信息中进行匹配,以确定相应的分类规则匹配结果;或者,当所述执行查找模块为乱序重排模块时,基于所述乱序重排模块将所述多域网包的分类规则匹配结果进行重排,以使得分类规则匹配结果与多域网包的输入顺序相同,输出重排后的分类规则匹配结果。
[0058]
具体的,通过查找引擎基于决策树查找模块对于读取的所述多域网包的网包信息(即网包包头信息)的分类处理过程为:(1)将所述网包信息输入顶层查找模块,由顶层模块进行处理后得到信息,将信息发送到片上网络(片上交换网络)。(2)由片上网络根据顶层查找模块的信息,确定该网包信息的后续处理模块a1。a1可以为决策树查找模块、神经网络查找模块、线性查找模块或乱序重排模块。(3)如果确定a1不是乱序重排模块,当网包信息离开a1时,会再指定下一个前往的处理模块a2;该网包信息转发过程由片上网络完成。a2也可以为决策树查找模块、神经网络查找模块、线性查找模块或乱序重排模块。(4)如果确定a2不是乱序重排模块,则重复步骤(3)。(5)如果a2是乱序重排模块,通过乱序重排模块将多域网包对应的分类规则匹配结果进行重排,以使得多域网包对应的分类规则匹配结果和多域网包输入顺序一致;最后将多域网包和分类规则匹配结果从乱序重排模块输出。通过利用片上网络连接各种查找模块(比如决策树查找模块、线性查找模块、神经网络查找模块以及
乱序重排模块),能够实现更加自由灵活的查找处理过程。其中,线性查找模块和神经网络查找模块可用现有技术中的树状标签分类管理器(tabtree)对应的电路设计及其查找策略实现。
[0059]
针对决策树查找模块,本发明做了额外的电路设计。所述决策树查找模块是将决策树查找过程映射为多级流水线结构得到的,以实现将所述网包信息在所述多级流水线结构中根据对应的配置信息进行逐级匹配确定相应的分类规则匹配结果。其中,所述多级流水线结构中的每一级流水线结构用于处理决策树查找过程中对应的一层;在各级流水线之间传递的信息包括网包信息、下一级流水线结构的标识信息、下一级流水线结构要读取节点信息对应的地址线信息以及每一级流水线结构用于是否已经完成匹配处理任务的标识信息。
[0060]
具体的,如图4所示,其为本发明所述的决策树查找模块的电路结构。其将决策树查找过程映射为多级流水线结构(图4中layer0、layer1
……
layerd分别代表了一级流水结构),其中每一级流水线结构用于处理决策树查找中的一级。在各级流水结构之间传递有四种信息:pkt_header、layer_id、ram_id以及found_in。使用流水线架构,能够提高硬件执行的灵活性,从而更加匹配各种决策树形态。其中,pkt_header为网包信息,比如:多域网包的源ip(internet protocol)地址、协议号、vlan(virtual local area network)号、网包id(identity document)等用于规则查找的必要网包信息。layer_id为下一级流水线结构的标识信息(即layer的id)。ram_id为下一级流水线结构要读取节点信息对应的地址线信息(即layer要读取节点信息的地址线)。found_in为每一级流水线结构用于是否已经完成匹配处理任务的标识信息,用于判断是否该决策树查找模块已经完成处理。
[0061]
在每一级流水线layer中,决策树查找模块(决策树查找引擎)的处理过程包括:(1)判断输入layer_id和该layer的id是否相等,如果不相等,则表示传入的网包信息不是该layer处理的,将输入的网包信息复制到输出,向后一级layer传输,并结束本级计算。(2)判断found_in信号是否为true,如果为true,则表示在决策树查找模块内的查找任务已经完成,直接把输入的网包信息复制到输出并继续往后传输。(3)如果判断输入layer_id为本级的id、found_in信号为false,则决策树查找模块从指定的地址(输入的ram_id信号)读取节点信息,并利用节点信息和相应的网包信息计算得出相应的处理结果:是否结束在决策树查找模块中的查找(found_in)、得到下一个要读取的节点的位置(位于哪一个layer和该layer中的哪一个地址)。其中利用节点信息和网包信息进行计算的模块为node engine模块,其可以根据不同类型的决策树算法自由配置。在具体实施过程中,该决策树查找引擎实际上可通过增加nop操作(空操作),使得网包信息处理能够流水化计算过程的同时,选择下一次操作执行的位置。
[0062]
另外,本发明所述的乱序重排模块基于go-back-n机制或者selective ack机制进行拥塞控制,以实现乱序重排处理。具体的,如图5所示,该乱序重排模块使用ram存储元素,每个元素存储在ram的某个地址上。当元素插入时,直接写入对应地址位置(push in)。对于元素的顺序输出,使用电路进行循环依次读取;考虑到布线等带来的数据读取的额外时延,本发明采用go-back-n的方式进行读取来消除该时延的影响。其读取步骤包括:(1)确定已经成功离开队列的所有元素中的最高序号,indm;发送给ram的上一个地址命令ind
l
;(2)当从ram返回了indr的元素,如果indr=indm+1且该元素读取成功(元素非空);换而言之,输出
的下一个元素恰好为indr;则更新indm=indm+1、ind
l
=ind
l
+1,发送新的ind
l
给ram、继续向后读取。如果失败(indr≠indm+1)、或者元素为空,则比较indr和ind
l
,如果indr≥indm+时延时钟数,则更新ind
l
=indm+1,否则更新ind
l
=ind
l
+1,发送新的ind
l
给ram。需要说明的是,所述的乱序重排模块是把发出读信号视为sender端,ram视为receiver端;元素读取成功视为对应序号的ack。由此实现接近满时钟频率的读取速度。该乱序重排模块设计使用的是go-back-n机制;如果时延不大,且电路结果中存在足够register空间,也可以使用selective ack机制,在此不做具体限定。利用go-back-n或者selective ack的拥塞控制机制,能够实现高速率的保序读取,从而实现快速的乱序重排处理。
[0063]
下面以智能网卡为例,对本发明的具体实施方式做进一步详细描述。智能网卡(比如alevo)上存在可配置的fpga作为加速模块,可插入服务器的标准(pcie)总线插槽中以和服务器的cpu完成通信。
[0064]
对于上述表1所示的多域网包分类规则集,可以构建出图6所示的决策树。使用不同的算法可以构建出不同的决策树,决策树的内部结点和叶子节点处规则数量都有所不同。下面以图5的决策树为例。该决策树有4个内部节点和7个叶子节点。其中,叶子节点存在单独一个分类规则r7的情况,该叶子节点不需要对网包进行进一步的线性匹配查找,而可以直接输出结果为分类规则r7(因为分类规则r7可以匹配任意多域网包)。
[0065]
如表3所示,其中模块名称对应图3和图4示意图中的名称。以表2的多域网包作为输入,当查找多域网包x时,其具体查找步骤为:(1)多域网包x进入layer0,直接读取地位为0位置的node,根据node信息和网包信息,计算输出的layer_id(下一个layer的id)和ram_id(下一个node地址的id)。由于多域网包x的srcip[0]=0,其输出为《l1,0》。(2)多域网包随着时钟移动向后一级流水线结构前进,到达layer1。此时输入layer_id为l1,ram_id为0。layer1上的node engine计算,发现layer_id正是本级的id,则从0地址读取node,即:t2。根据t2的信息和多域网包x的网包信息,由于多域网包x的协议号为6,不等于1,因此输出为《l2,1》。结束在layer1该级流水上的处理。(3)多域网包继续进入layer2,同理读取地址为1的node,即t5。由于多域网包x的dstip[14:15]=0,因此输出《线性查找,3》。(4)多域网包x进入layer3,判断发现不等于本级id,不处理多域网包x,保持输出为《线性查找,3》。(4)由此多域网包x在后续的决策树查找模块的各个layer(即各级流水结构)中都直接把输入拷贝到输出,直到抵达片上网络。(5)通过片上网络根据其地址要求,将网包信息转发到线性查找模块。(6)基于线性查找模块读取地址为3的叶子节点,即n4;然后在{r3,r7}规则上并行查找,发现同时匹配r3和r7。结合优先级要求,最终得到匹配结果为r3,并把结果发到乱序重排模块。
[0066]
下面以上述表2中的多域网包y为例进行说明,该多域网包y的具体查找步骤包括:(1)多域网包y进入layer0,根据t1的信息和多域网包y的srcip为1,计算得到输出《l1,1》。(2)多域网包y进入layer1,根据t3信息和y的协议号为6,计算得到输出《线性查找,1》。(3)多域网包y进入layer2,若确定线性查找模块与当前layer的id不匹配,则保持原有输入到输出。(4)多域网包y在后续的决策树查找模块的各个layer(即各级流水结构)都把输入拷贝到输出,直到输出到片上网络。(5)通过片上网络根据地址要求,将网包信息转发到线性查找模块。(6)基于线性查找模块读取n2信息,在{r1,r6,r7}规则中进行并行比较,并结合优先级计算出最终的匹配结果为r1。
[0067]
表3:硬件分类模块的一种配置
[0068][0069]
下面再以表4中的配置和表2中的多域网包z为例进行说明,该多域网包z的具体查找步骤包括:(1)多域网包z进入layer0,根据t1的信息和多域网包z的srcip为1,计算得到输出《l1,1》。(2)多域网包z进入layer1,根据t3信息和多域网包z的协议号为0x11,计算得到输出《l2,2》。(3)多域网包z进入layer2,根据t6信息,直接得到匹配结果为r7。(4)多域网包y在后续的决策树查找模块的各个layer(即各级流水结构)都把输入拷贝到输出,直到输出到片上网络。(5)通过片上网络根据地址要求,直接将网包信息转发到乱序重排模块,而不需要经过线性查找模块。
[0070]
表4:硬件分类模块的另一种配置
[0071][0072][0073]
本发明实施例基于硬件卸载技术,将多域网包分类规则集分析编译与网包分类查找过程分离,提出基于分类结构解耦和子结构灵活调度的硬件电路结构模型,该电路结构模型可自由组合的查找模块(比如顶层查找模块、决策树查找模块、线性查找模块、神经网络查找模块以及乱序重排模块),自由灵活搭配多种算法以实现网包分类功能。本发明方法不仅可以应用于运营商网络、数据中心网络及企业网中,以应用于硬件交换机、硬件防火墙、硬件入侵检测系统等网络中间设备,也可以应用在智能网卡协同的端侧服务器上,为用
户提供稳定、高吞吐、低时延的多域网包分类功能,节约引擎的硬件开销。
[0074]
采用本发明实施例所述的多域网包分类处理方法,通过查找引擎对输入的多域网包进行分类处理,降低了分类的时延,提高网包分类的吞吐速度,同时能够根据片上网络进行查找引擎模块的自由配置,以适应不同的网包分类需求,从而提供稳定、高吞吐、低时延的多域网包分类能力。
[0075]
与上述提供的一种多域网包分类处理方法相对应,本发明还提供一种多域网包分类处理装置。由于该装置的实施例相似于上述方法实施例,所以描述得比较简单,相关之处请参见上述方法实施例部分的说明即可,下面描述的多域网包分类处理装置的实施例仅是示意性的。请参考图7所示,其为本发明实施例提供的一种多域网包分类处理装置的结构示意图。
[0076]
本发明所述的多域网包分类处理装置,具体包括如下部分:
[0077]
信息配置单元701,用于基于预设的多域网包分类规则集确定查找引擎的配置信息,并将所述配置信息配置到所述查找引擎中;
[0078]
多域网包分类单元702,用于将待处理的多域网包输入到所述查找引擎中,得到相应的分类规则匹配结果,以完成基于所述分类规则匹配结果对所述多域网包的分类处理;其中,所述查找引擎为顶层查找模块和执行查找模块连接到片上网络得到的电路结构模型。
[0079]
进一步的,所述多域网包分类单元,具体用于:
[0080]
将获取的所述多域网包的网包信息输入到顶层查找模块中,基于所述顶层查找模块将处理后的信息发送到片上网络,以通过所述片上网络根据所述信息确定相应的执行查找模块;
[0081]
其中,所述执行查找模块可为决策树查找模块、线性查找模块、神经网络查找模块或者乱序重排模块;
[0082]
当所述执行查找模块为决策树查找模块时,基于所述网包信息和所述决策树查找模块的多级流水线结构在相应的配置信息中进行逐级匹配,以确定相应的分类规则匹配结果;或者,
[0083]
当所述执行查找模块为线性查找模块时,基于所述网包信息和所述线性查找模块的线性查找策略在所述配置信息中进行匹配,以确定相应的分类规则匹配结果;或者,
[0084]
当所述执行查找模块为神经网络查找模块时,基于所述网包信息和所述神经网络查找模块的网络查找策略在所述配置信息中进行匹配,以确定相应的分类规则匹配结果;或者,
[0085]
当所述执行查找模块为乱序重排模块时,基于所述乱序重排模块将所述多域网包的分类规则匹配结果进行重排,以使得分类规则匹配结果与多域网包的输入顺序相同,输出重排后的分类规则匹配结果。
[0086]
进一步的,所述决策树查找模块是将决策树查找过程映射为多级流水线结构得到的;其中,所述多级流水线结构中的每一级流水线结构用于处理决策树查找过程中对应的一层;在各级流水线之间传递的信息包括网包信息、下一级流水线结构的标识信息、下一级流水线结构要读取节点信息对应的地址线信息以及每一级流水线结构用于是否已经完成匹配处理任务的标识信息。
[0087]
进一步的,所述乱序重排模块基于go-back-n机制或者selectiveack机制进行拥塞控制,以实现乱序重排处理。
[0088]
进一步的,所述信息配置单元,具体用于:
[0089]
针对所述查找引擎对所述多域网包分类规则集进行编译,将编译结果对应的配置信息配置到查找引擎中,以使所述查找引擎根据配置信息对输入的所述多域网包进行分析处理。
[0090]
进一步的,所述查找引擎用于基于从所述多域网包读取的网包信息以及所述配置信息进行规则匹配得到分类规则匹配结果,对所述多域网包进行分类处理。
[0091]
进一步的,所述的多域网包分类处理装置,还包括:规则更新处理模块,用于当所述多域网包分类规则集中的分类规则更新时,对所述查找引擎执行相应的更新操作。
[0092]
采用本发明实施例所述的多域网包分类处理装置,通过查找引擎对输入的多域网包进行分类处理,降低了分类的时延,提高网包分类的吞吐速度,同时能够根据片上网络进行查找引擎模块的自由配置,以适应不同的网包分类需求,从而提供稳定、高吞吐、低时延的多域网包分类能力。
[0093]
与上述提供的多域网包分类处理方法相对应,本发明还提供一种电子设备。由于该电子设备的实施例相似于上述方法实施例,所以描述得比较简单,相关之处请参见上述方法实施例部分的说明即可,下面描述的电子设备仅是示意性的。如图8所示,其为本发明实施例公开的一种电子设备的实体结构示意图。该电子设备可以包括:处理器(processor)801、存储器(memory)802和通信总线803(即上述系统总线)以及查找引擎805,其中,处理器801,存储器802通过通信总线803完成相互间的通信,通过通信接口804与外部进行通信。处理器801可以调用存储器802中的逻辑指令,以执行多域网包分类处理方法,该方法包括:基于预设的多域网包分类规则集确定查找引擎的配置信息,并将所述配置信息配置到所述查找引擎中;将待处理的多域网包输入到所述查找引擎中,得到相应的分类规则匹配结果,以完成基于所述分类规则匹配结果对所述多域网包的分类处理;其中,所述查找引擎为顶层查找模块和执行查找模块连接到片上网络得到的电路结构模型。
[0094]
此外,上述的存储器802中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:存储芯片、u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0095]
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在处理器可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的多域网包分类处理方法。该方法包括:基于预设的多域网包分类规则集确定查找引擎的配置信息,并将所述配置信息配置到所述查找引擎中;将待处理的多域网包输入到所述查找引擎中,得到相应的分类规则匹配结果,以完成基于所述分类规则匹配结果对所述多域网包的分类处理;其中,所
述查找引擎为顶层查找模块和执行查找模块连接到片上网络得到的电路结构模型。
[0096]
又一方面,本发明实施例还提供一种处理器可读存储介质,所述处理器可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的多域网包分类处理方法。该方法包括:基于预设的多域网包分类规则集确定查找引擎的配置信息,并将所述配置信息配置到所述查找引擎中;将待处理的多域网包输入到所述查找引擎中,得到相应的分类规则匹配结果,以完成基于所述分类规则匹配结果对所述多域网包的分类处理;其中,所述查找引擎为顶层查找模块和执行查找模块连接到片上网络得到的电路结构模型。
[0097]
所述处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等。
[0098]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0099]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0100]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1