基于多核处理器的报文分发方法、装置、设备及介质与流程

文档序号:29944752发布日期:2022-05-07 15:44阅读:88来源:国知局
1.本技术涉及通信
技术领域
:,具体涉及一种基于多核处理器的报文分发方法、装置、设备及介质。
背景技术
::2.随着中央处理器(centralprocessingunit,简称cpu)技术的不断发展,越来越多的网络设备使用多核处理器,将各个报文分发到多核处理器中不同的处理核进行处理,可以提高报文的处理效率。3.目前,主要采用哈希(hash)算法对每个报文的地址、端口号等报文信息进行计算,得到该报文的哈希值,将该报文分发到该哈希值对应的处理核进行处理。然而当所有报文的地址、端口号等报文信息相同时,采用hash算法得到的hash值也会相同,进而基于hash值会将所有报文分发到同一个处理核,出现其他处理核空闲的情况,无法充分发挥多核处理器的多核性能,报文的处理效率较低。技术实现要素:4.本技术实施例提供一种基于多核处理器的报文分发方法、装置、设备及介质,用于提高多核处理器处理报文的效率。5.第一方面,本技术提供一种基于多核处理器的报文分发方法,包括:6.接收当前周期内的第一全部报文;7.根据所述第一全部报文中的样本报文的各多元组的信息增益,构建决策树;8.根据所述第一全部报文的各多元组的第一信息增益和上一周期内的第二全部报文的各多元组的第二信息增益,依次遍历所述决策树,确定所述第一全部报文的分发策略;9.根据所述分发策略,将所述第一全部报文分发到所述多核处理器中的各个处理核,其中,若所述各多元组中任一多元组的第一信息增益等于所述任一多元组的第二信息增益,则所述分发策略为将所述第一全部报文平均分发到所述多核处理器中的各个处理核。10.在一种可能的实施例中,根据所述第一全部报文中的样本报文的各多元组的信息增益,构建决策树,包括:11.根据所述样本报文包含的报文信息的类别和数量,将所述样本报文划分为不同的多元组,其中,所述不同的多元组包括二元组、三元组和五元组;12.计算每个多元组的信息增益;13.根据各个多元组的信息增益的大小,依次构建所述决策树各层的节点,其中,所述决策树的根节点为信息增益最大的多元组。14.在一种可能的实施例中,计算每个多元组的信息增益,包括:15.在所述当前周期的多个时刻,对所述当前周期的全部报文连续采样,获得多个报文集合,其中,所述多个报文集合包括相同数量的报文;16.计算所述多个报文集合属于每个多元组的各个趋势的占比,其中,所述各个趋势包括增多、减少和不变;17.根据所述占比,计算所述多个报文集合属于每个多元组的各个趋势的信息熵,其中,所述占比与所述信息熵负相关;18.根据所述信息熵,计算每个多元组的信息增益,其中,所述信息熵与所述信息增益负相关。19.在一种可能的实施例中,计算所述多个报文集合属于每个多元组的各个趋势的占比,包括:20.对所述多个报文集合中任一报文集合和相邻报文集合进行分类,将每个多元组的属性信息相同的报文分为一类,获得所述任一报文集合的分类数和所述相邻报文集合的分类数,其中,所述相邻报文集合是在所述任一报文集合的上一个时刻采样的;21.根据所述任一报文集合的分类数和所述相邻报文集合的分类数的大小,确定所述任一报文集合属于每个多元组的趋势,其中,所述任一报文集合属于每个多元组的趋势为增多、减少和不变中的一种;22.将所述多个报文集合属于每个多元组的各个趋势的数量与所述多个报文集合的数量之间的比例,确定为所述多个报文集合属于每个多元组的各个趋势的占比。23.第二方面,本技术提供一种基于多核处理器的报文分发装置,包括:24.接收模块,用于接收当前周期内的第一全部报文;25.构建模块,用于根据所述第一全部报文中的样本报文的各多元组的信息增益,构建决策树;26.确定模块,用于根据所述第一全部报文的各多元组的第一信息增益和上一周期内的第二全部报文的各多元组的第二信息增益,依次遍历所述决策树,确定所述第一全部报文的分发策略;27.分发模块,用于根据所述分发策略,将所述第一全部报文分发到所述多核处理器中的各个处理核,其中,若所述各多元组中任一多元组的第一信息增益等于所述任一多元组的第二信息增益,则所述分发策略为将所述第一全部报文平均分发到所述多核处理器中的各个处理核。28.在一种可能的实施例中,所述构建模块具体用于:29.根据所述样本报文包含的报文信息的类别和数量,将所述样本报文划分为不同的多元组,其中,所述不同的多元组包括二元组、三元组和五元组;30.计算每个多元组的信息增益;31.根据各个多元组的信息增益的大小,依次构建所述决策树各层的节点,其中,所述决策树的根节点为信息增益最大的多元组。32.在一种可能的实施例中,所述构建模块具体用于:33.在所述当前周期的多个时刻,对所述当前周期的全部报文连续采样,获得多个报文集合,其中,所述多个报文集合包括相同数量的报文;34.计算所述多个报文集合属于每个多元组的各个趋势的占比,其中,所述各个趋势包括增多、减少和不变;35.根据所述占比,计算所述多个报文集合属于每个多元组的各个趋势的信息熵,其中,所述占比与所述信息熵负相关;36.根据所述信息熵,计算每个多元组的信息增益,其中,所述信息熵与所述信息增益负相关。37.在一种可能的实施例中,所述构建模块具体用于:38.对所述多个报文集合中任一报文集合和相邻报文集合进行分类,将每个多元组的属性信息相同的报文分为一类,获得所述任一报文集合的分类数和所述相邻报文集合的分类数,其中,所述相邻报文集合是在所述任一报文集合的上一个时刻采样的;39.根据所述任一报文集合的分类数和所述相邻报文集合的分类数的大小,确定所述任一报文集合属于每个多元组的趋势,其中,所述任一报文集合属于每个多元组的趋势为增多、减少和不变中的一种;40.将所述多个报文集合属于每个多元组的各个趋势的数量与所述多个报文集合的数量之间的比例,确定为所述多个报文集合属于每个多元组的各个趋势的占比。41.第三方面,本技术提供一种电子设备,包括:42.存储器,用于存储程序指令;43.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中任一项所述的方法。44.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中任一项所述的方法。45.在本技术实施例中,根据当前周期的样本报文的各多元组的信息增益,构建决策树,根据当前周期的第一全部报文的各多元组的第一信息增益和上一周期内的第二全部报文的各多元组的第二信息增益,依次遍历决策树,确定第一全部报文的分发策略,根据分发策略,将第一全部报文分发到多核处理器中的各个处理核。多元组的信息增益越大,表示该多元组进行划分所获得的“纯度提升”越大,若各多元组中任一多元组的第一信息增益等于任一多元组的第二信息增益,则分发策略为将第一全部报文平均分发到多核处理器中的各个处理核,即使当前周期内的所有报文的报文信息相同,也能避免将所有报文分发到同一个处理核,从而充分发挥多核处理器的多核性能,提高多核处理器处理报文的效率。附图说明46.为了更清楚地说明本技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。47.图1为本技术实施例提供的一种基于多核处理器的报文分发方法的应用场景示意图;48.图2为本技术实施例提供的一种基于多核处理器的报文分发方法的流程图;49.图3为本技术实施例提供的一种决策树的结构示意图;50.图4为本技术实施例提供的一种基于多核处理器的报文分发装置的结构图;51.图5为本技术实施例提供的一种电子设备的结构图。具体实施方式52.为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以按不同于此处的顺序执行所示出或描述的步骤。53.本技术的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。54.本技术实施例中,“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本技术实施例不做限制。55.在介绍本技术实施例所提供的基于多核处理器的报文分发方法之前,为了便于理解,首先对本技术的
背景技术
:进行详细介绍。56.接收端缩放(receivesidescaling,rss)是一种能够在多处理器系统下使接收到的多个报文在多个cpu之间高效分发的网卡驱动技术。网卡通过rss实现报文分发的流程如下:57.s1.1、对接收到的报文进行解析,获取该报文的报文信息。58.报文信息包括源网际互连协议(internetprotocol,ip)地址、目的ip地址、源端口号、目的端口号和协议等信息中的一种或多种。59.s1.2、对报文信息进行哈希运算,获得该报文的hash值。60.网卡采用预先配置的hash函数对报文信息进行计算,获得该报文的hash值。61.s1.3、确定该报文的hash值对应的标识。62.网卡中预存有重定向表(redirectiontable,reta),reta包括各个hash值和各个标识的对应关系,可以取该报文的hash值的最低有效位作为reta的索引,不同的网卡取的hash值的最低有效位可能不同。例如取该报文的hash值的最后两位值作为reta的索引,确定该报文的hash值的最后两位值对应的标识。63.s1.4、将该报文分发到该标识对应的处理核进行处理。64.多核处理器的每个处理核均具有对应的标识,网卡确定该报文的hash值对应的标识之后,该报文分发到该标识对应的处理核。65.如上介绍了现有的报文分发方式,然而实际的流量场景有多种,现有的报文分发方式不适合复杂多变的流量场景,下面分别进行介绍几种流量场景。66.第一种场景为随机流量场景。随机流量场景中各个报文的报文信息是随机变化的,例如园区网出口。67.第二种场景为固定流量场景,固定流量场景中各个报文的报文信息是固定不变的,常用于测试场景或者单一业务场景。68.第三种场景为流量规律变化场景,流量规律变化场景是指在特定时间段运行特定业务,即在特定时间段内接收到的所有报文的报文信息固定不变,其余时间段内接收到的所有报文的报文信息随机变化,一般为特定行业用户场景。69.目前通过哈希算法的报文分发方式虽然理论上可以将报文分发到不同的处理核,在固定流量场景下,所有报文的报文信息是相同的,基于哈希算法的计算得到所有报文的哈希值也相同,会将所有报文分发到同一个处理核,可能出现多核处理器的一个处理核繁忙,而其他处理核空闲的情况,不能发挥多核处理器的多核性能,因此采用固定的报文分发方式导致多核处理器处理报文的效率较低。70.鉴于此,本技术实施例提供一种基于多核处理器的报文分发方法,根据当前周期的样本报文的各多元组的信息增益,动态构建决策树,再根据当前周期的全部报文的各多元组的第一信息增益和上一周期内的全部报文的各多元组的第二信息增益,依次遍历决策树,若各多元组中任一多元组的第一信息增益等于任一多元组的第二信息增益,则决策树输出的分发策略为将当前周期的全部报文平均分发到多核处理器中的各个处理核,即使报文信息相同,也能避免将所有报文分发到同一个处理核,从而提高多核处理器处理报文的效率。71.如上介绍了本技术的设计思想,下面对本技术实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本技术实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本技术实施例提供的技术方案。72.请参照图1,为本技术实施例提供的基于多核处理器的报文分发方法的应用场景示意图。该应用场景包括网关设备110和多核处理器120,多核处理器120集成有多个单核cpu,每个单核cpu可以称为一个处理核。网关设备110例如网卡、路由器等。图1中的箭头表示报文的传输方向。73.作为一种实施例,本技术实施例提供的报文分发方法可以由网关设备110执行,网关设备110接收到多个报文,可以在确定该多个报文的分发策略之后,按照分发策略将这多个报文分发到多核处理器120中对应的处理核。其中,具体如何确定报文的分发策略的过程将在下文进行详细介绍。74.作为一种实施例,本技术实施例提供的报文分发方法也可以由多核处理器120执行,网关设备110接收到多个报文,直接将多个报文发送给多核处理器120,由多核处理器120确定多个报文的分发策略之后,按照分发策略将这多个报文分发到对应的处理核。其中,具体如何确定报文的分发策略的过程将在下文进行详细介绍。75.基于图1论述的应用场景,下面以图1中的多核处理器120执行报文分发方法为例,对本技术实施例提供的基于多核处理器的报文分发方法进行介绍。请参照图2,为本技术实施例提供的一种基于多核处理器的报文分发方法的流程图。76.s201、接收当前周期内的第一全部报文。77.当前周期的初始时刻到来时,多核处理器开始接收报文,直到当前周期的最后时刻,将当前周期内接收的所有报文称为第一全部报文。78.s202、根据第一全部报文中的样本报文的各多元组的信息增益,构建决策树。79.多核处理器从当前周期内的第一全部报文中采样,获得样本报文之后,根据样本报文包含的报文信息的类别和数量,将样本报文划分为不同的多元组,计算每个多元组的信息增益,根据各个多元组的信息增益的大小,依次构建决策树各层的节点。80.其中,报文信息包括源ip地址、目的ip地址、源端口号、目的端口号、协议号等,不同的多元组包括二元组、三元组和五元组。例如tcp/udp报文的报文信息包括源ip地址、目的ip地址、源端口号、目的端口号和协议号,可以划分到五元组,icmp报文的报文信息包括源ip地址、目的ip地址和协议号,可以划分到三元组,其他rawip的报文信息包括源ip地址和目的ip地址,可以划分到二元组。81.其中涉及到如何计算每个多元组的信息增益,下面介绍如何计算每个多元组的信息增益的过程,具体步骤如s2.1-s2.4所述。82.s2.1、在当前周期的多个时刻,对第一全部报文连续采样,获得多个报文集合。83.其中,多个报文集合包括相同数量的报文。例如采样n次,每次采样m个报文,获得n个报文集合,每个报文集合包括m个报文,n和m为大于1的正整数。84.s2.2、计算多个报文集合属于每个多元组的各个趋势的占比。85.多核处理器可以对多个报文集合中任一报文集合和相邻报文集合进行分类,将每个多元组的属性信息相同的报文分为一类,获得任一报文集合的分类数和相邻报文集合的分类数。其中,相邻报文集合是在任一报文集合的上一个时刻采样的,例如任一报文集合为当前周期内第t次采样的报文集合,相邻报文集合为当前周期内第t-1次采样的报文集合。若任一报文集合为当前周期内第1次采样的报文集合,则相邻报文集合为上一周期内最后一次采样的报文集合。86.其中,二元组的属性信息包括源ip地址和目的ip地址,也就是说,将任一报文集合中源ip地址和目的ip地址相同的报文分为一类。三元组的属性信息包括源ip地址、目的ip地址和协议号,也就是说,将任一报文集合中源ip地址、目的ip地址和协议号均相同的报文分为一类。五元组的属性信息包括源ip地址、目的ip地址、源端口号、目的端口号和协议号,也就是说,将任一报文集合中源ip地址、目的ip地址、源端口号、目的端口号和协议号均相同的报文分为一类。87.多核处理器在获得任一报文集合和相邻报文集合的分类数之后,可以根据任一报文集合的分类数和相邻报文集合的分类数的大小,确定任一报文集合所属多元组的趋势。将多个报文集合属于每个多元组的各个趋势的数量与多个报文集合的数量之间的比例,确定为多个报文集合属于每个多元组的各个趋势的占比。88.具体的,若任一报文集合的分类数大于相邻报文集合的分类数,则确定任一报文集合所属多元组的趋势为增加,若任一报文集合的分类数小于相邻报文集合的分类数,则确定任一报文集合所属多元组的趋势为减少,若任一报文集合的分类数等于相邻报文集合的分类数,则确定任一报文集合所属多元组的趋势为不变。因此,任一报文集合所属多元组的趋势为增多、减少和不变中的一种。89.例如,以二元组为例,将任一报文集合中源ip地址和目的ip地址相同的报文划分为一类,可以得到5类,将任一该报文集合的相邻报文集合中源ip地址和目的ip地址相同的报文划分为一类,可以得到3类,因此该任一报文集合所属多元组的趋势为增多。以此类推,各个报文集合与相邻报文集合的分类数比较后,可以得到各个报文集合所属多元组的趋势。90.请参照表1,为本技术实施例提供的n个报文集合分别属于二元组、三元组和五元组的趋势。下面以表1中的二元组为例,介绍如何计算n个报文集合属于二元组的各个趋势的占比。91.表192.编号二元组三元组五元组1增多增多增多2增多增多增多3不变增多增多4减少增多增多5增多增多增多6减少减少增多7减少增多增多…………n不变减少增多93.其中,编号n表示第n次采样的第n个报文集合。当n为8,表示一共有8个报文集合,二元组所在的列即8个报文集合所属二元组的趋势分别为增多、增多、不变、减少、增多、减少、减少、不变,则8个报文集合属于二元组的增多趋势的数量为3个,减少趋势的数量为3个,不变趋势的数量为2个。因此,8个报文集合属于二元组的增多趋势的占比为3/8,8个报文集合属于二元组的减少趋势的占比为3/8,8个报文集合属于二元组的不变趋势的占比为2/8=1/4。94.s2.3、根据占比,计算多个报文集合属于每个多元组的各个趋势的信息熵。95.其中,占比与信息熵负相关,信息熵(informationentropy)是度量样本集合纯度最常用的一种指标。继续以二元组为例,各个趋势的信息熵的计算公式如下:[0096][0097][0098][0099]其中,n表示多个报文集合的总数量,x1表示属于增多趋势的报文集合的数量,ent(d1)表示多个报文集合属于二元组的增多趋势的信息熵,x2表示属于不变趋势的报文集合的数量,ent(d2)表示多个报文集合属于二元组的不变趋势的信息熵,x3表示属于减少趋势的报文集合的数量,ent(d3)表示多个报文集合属于二元组的减少趋势的信息熵。[0100]s2.4、根据信息熵,计算每个多元组的信息增益。[0101]其中,信息熵与信息增益负相关。继续以二元组为例,二元组的信息增益公式如下:[0102][0103]其中,ent(dv)表示多个报文集合属于二元组的各个趋势的信息熵,具体可参照上文论述的ent(d1)、ent(d2)、ent(d3),|d|表示多个报文集合的总数量,将多个报文集合按增多趋势、不变趋势、减少趋势划分为三个分支节点,|dv|表示第v个分支节点的报文集合数量,ent(d)表示多个报文集合即为样本报文的信息熵。[0104]ent(d)的具体公式如下:[0105][0106][0107][0108][0109]其中,p1表示多个报文集合属于二元组的增多趋势的占比,p2表示多个报文集合属于二元组的减少趋势的占比,p3表示多个报文集合属于二元组的不变趋势的占比,x1表示属于增多趋势的报文集合的数量,x2表示属于不变趋势的报文集合的数量,x3表示属于减少趋势的报文集合的数量,n表示多个报文集合的数量。[0110]类似的,多核处理器可以计算得到三元组的信息增益gain(d,三元组)和五元组的信息增益gain(d,五元组)。[0111]进一步,多核处理器获得每个多元组的信息增益之后,可以根据各个多元组的信息增益的大小,依次构建决策树各层的节点。[0112]具体的,决策树为一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶子节点代表一种分类结果。多核处理器根据各个多元组的信息增益的大小,从根节点开始,从上到下依次构建决策树各层的内部节点,也就是说,决策树的根节点为信息增益最大的多元组。[0113]例如各多元组的信息增益的大小排序为:gain(d,二元组)》gain(d,三元组)》gain(d,五元组),则将二元组的信息增益最大,因此二元组作为决策树的根节点,三元组作为二元组的下一层的内部节点,五元组作为三元组的下一层的内部节点。[0114]请参照图3,为本技术实施例提供的决策树的结果示意图。该决策树从上到下的每一层的内部节点分别为二元组、三元组和五元组,说明样本报文的各元组的信息增益大小为:gain(d,二元组)》gain(d,三元组)》gain(d,五元组)。[0115]s203、根据第一全部报文的各多元组的第一信息增益和上一周期内的第二全部报文的各多元组的第二信息增益,依次遍历决策树,确定第一全部报文的分发策略。[0116]具体的,多核处理器根据样本报文构建好决策树之后,分别计算当前周期的第一全部报文的各多元组的第一信息增益、以及上一周期内的第二全部报文的各多元组的第二信息增益,从根节点开始,从上到下依次遍历决策树的各个节点,直到决策树的叶子节点输出第一全部报文的分发策略。[0117]若任一多元组的第一信息增益大于任一多元组的第二信息增益,则增多分支对应的叶子节点为散列到多核,即计算第一全部报文中各个报文的哈希值,将各个报文分发到多核处理器中该哈希值对应的处理核。若任一多元组的第一信息增益等于任一多元组的第二信息增益,则不变分支的叶子节点为负载均衡到多核,即第一全部报文平均分发到多核处理器中的各个处理核。若任一多元组的第一信息增益小于任一多元组的第二信息增益,则继续遍历减少分支对应的内部节点。[0118]由于多元组的信息增益越大,意味着使用该多元组进行划分所获得的“纯度提升”越大。固定流量场景下,所有报文的报文信息相同时,计算出的信息增益是最小的,在任一多元组的第一信息增益大于任一多元组的第二信息增益的情况下,因为第一信息增益不是最小的,因此当前周期的第一全部报文的报文信息不可能均相同,此时可以采用散列到多核的策略,不会出现分发到同一处理核的情况。在任一多元组的第一信息增益等于任一多元组的第二信息增益的情况下,采用平均分发的方式,即使当前周期的第一全部报文的报文信息均相同,也不会出现分发到同一处理核的情况。[0119]本技术实施例中,基于实际流量情况动态自适应调整多核处理器下的报文分发方式,无论哪种流量场景下,都不会出现将所有报文分发到同一处理核的情况,从而提高报文处理效率,提升业务处理性能。[0120]请继续参照图3,下面结合图3对遍历决策树的过程进行详细介绍。[0121]决策树的根节点为二元组,多核处理器可以比较第一全部报文的二元组的第一信息增益和第二全部报文的二元组的第二信息增益,三种比较结果对应三个分支。第一种比较结果,若二元组的第一信息增益大于二元组的第二信息增益,则增多分支对应的叶子节点为散列到多核。第二种比较结果,若二元组的第一信息增益等于二元组的第二信息增益,则不变分支对应的叶子节点为负载均衡到多核。第三种比较结果,若二元组的第一信息增益小于二元组的第二信息增益,则不变分支对应的节点为三元组,继续比较第一全部报文的三元组的第一信息增益和第二全部报文的三元组的第二信息增益。[0122]以此类推,直到第一全部报文的五元组的第一信息增益大于第二全部报文的五元组的第二信息增益,则增多分支对应的叶子节点为散列到多核,或者第一全部报文的五元组的第一信息增益小于或等于第二全部报文的五元组的第二信息增益,则减少/不变分支对应的叶子节点为负载均衡到多核。[0123]s204、根据分发策略,将第一全部报文分发到多核处理器中的各个处理核。[0124]决策树输出的分发策略可能有两种情况,下面分别进行介绍。[0125]第一种情况,若任一多元组的第一信息增益大于任一多元组的第二信息增益,则决策树的叶子节点输出的分发策略为散列到多核。[0126]具体的,散列到多核的分发策略为:多核处理器根据任一多元组的属性信息,计算第一全部报文中各个报文的哈希值,将各个报文分发到多核处理器中该哈希值对应的处理核。[0127]例如,若二元组的第一信息增益大于二元组的第二信息增益,则增多分支对应的叶子节点为散列到多核,此时根据每个报文的源ip地址和目的ip地址计算每个报文的哈希值。若三元组的第一信息增益大于三元组的第二信息增益,则增多分支对应的叶子节点为散列到多核,此时根据每个报文的源ip地址、目的ip地址和协议号计算每个报文的哈希值。若五元组的第一信息增益大于五元组的第二信息增益,则增多分支对应的叶子节点为散列到多核,此时根据每个报文的源ip地址、目的ip地址、源端口号、目的端口号和协议号计算每个报文的哈希值,进而将各个报文分发到各个报文的哈希值对应的处理核。[0128]第二种情况,若任一多元组的第一信息增益等于任一多元组的第二信息增益,或者任一多元组的第一信息增益小于任一多元组的第二信息增益且该任一多元组为决策树的最后一个内部节点,则决策树的叶子节点输出的分发策略为负载均衡到多核。[0129]具体的,负载均衡到多核的分发策略为:多核处理器将第一全部报文平均分发给到多核处理器中的各个处理核。[0130]例如,多核处理器有4个处理核,若第一全部报文有100个,100/4=25,则给每个处理核分配25个报文。若第一全部报文有150个,150/4=37……2,则先给每个处理核分配37个报文,剩下2个报文可以分配给其中任意两个处理核。[0131]应当说明的是,s201-s204为确定一个周期的第一全部报文的分发策略的过程,当下一个周期来临时,继续执行s201-s204,调整决策树,根据调整后的决策树重新确定下一个周期的第三全部报文的分发策略。如果第三全部报文的各多元组的信息增益大小顺序与第一全部报文的各多元组的信息增益大小顺序相同,则不用调整决策树,从而达到动态自适应的效果。[0132]基于同一发明构思,本技术实施例提供一种基于是多核处理器的报文分发装置,请参照图4,该装置包括:[0133]接收模块401,用于接收当前周期内的第一全部报文;[0134]构建模块402,用于根据第一全部报文中的样本报文的各多元组的信息增益,构建决策树;[0135]确定模块403,用于根据第一全部报文的各多元组的第一信息增益和上一周期内的第二全部报文的各多元组的第二信息增益,依次遍历决策树,确定第一全部报文的分发策略;[0136]分发模块404,用于根据分发策略,将第一全部报文分发到多核处理器中的各个处理核,其中,若各多元组中任一多元组的第一信息增益等于任一多元组的第二信息增益,则分发策略为将第一全部报文平均分发到多核处理器中的各个处理核。[0137]在一种可能的实施例中,构建模块402具体用于:[0138]根据样本报文包含的报文信息的类别和数量,将样本报文划分为不同的多元组,其中,不同的多元组包括二元组、三元组和五元组;[0139]计算每个多元组的信息增益;[0140]根据各个多元组的信息增益的大小,依次构建决策树各层的节点,其中,决策树的根节点为信息增益最大的多元组。[0141]在一种可能的实施例中,构建模块402具体用于:[0142]在当前周期的多个时刻,对当前周期的全部报文连续采样,获得多个报文集合,其中,多个报文集合包括相同数量的报文;[0143]计算多个报文集合属于每个多元组的各个趋势的占比,其中,各个趋势包括增多、减少和不变;[0144]根据占比,计算多个报文集合属于每个多元组的各个趋势的信息熵,其中,占比与信息熵负相关;[0145]根据信息熵,计算每个多元组的信息增益,其中,信息熵与信息增益负相关。[0146]在一种可能的实施例中,构建模块402具体用于:[0147]对多个报文集合中任一报文集合和相邻报文集合进行分类,将每个多元组的属性信息相同的报文分为一类,获得任一报文集合的分类数和相邻报文集合的分类数,其中,相邻报文集合是在任一报文集合的上一个时刻采样的;[0148]根据任一报文集合的分类数和相邻报文集合的分类数的大小,确定任一报文集合属于每个多元组的趋势,其中,任一报文集合属于每个多元组的趋势为增多、减少和不变中的一种;[0149]将多个报文集合属于每个多元组的各个趋势的数量与多个报文集合的数量之间的比例,确定为多个报文集合属于每个多元组的各个趋势的占比。[0150]作为一种实施例,图4论述的装置可以用于执行图2所示的实施例中所述的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图2所示的实施例的描述,此处不再赘述。[0151]应当注意,尽管在上文详细描述中提及了装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。[0152]基于同一发明构思,本技术实施例提供一种电子设备,该设备可以实现前文论述的报文分发设备的功能,请参照图5,该设备包括:至少一个处理器51,以及与至少一个处理器51连接的存储器52,本技术实施例中不限定处理器51与存储器52之间的具体连接介质,图5中是以处理器51和存储器52之间通过总线50连接为例。总线50在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线50可以分为地址总线、数据总线、控制总线等,为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器51也可以称为控制器,对于名称不做限制。[0153]在本技术实施例中,存储器52存储有可被至少一个处理器51执行的指令,至少一个处理器51通过执行存储器52存储的指令,可以执行前文论述基于多核处理器的报文分发方法。处理器51可以实现图4所示的装置中各个模块的功能。[0154]其中,处理器51是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器52内的指令以及调用存储在存储器52内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。[0155]在一种可能的设计中,处理器51可包括一个或多个处理单元,处理器51可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器51中。在一些实施例中,处理器51和存储器52可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。[0156]处理器51可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的基于多核处理器的报文分发方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。[0157]存储器52作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器52可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(randomaccessmemory,ram)、静态随机访问存储器(staticrandomaccessmemory,sram)、可编程只读存储器(programmablereadonlymemory,prom)、只读存储器(readonlymemory,rom)、带电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、磁性存储器、磁盘、光盘等。存储器52是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器52还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。[0158]通过对处理器51进行设计编程,可以将前述实施例中介绍的基于多核处理器的报文分发方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1所示的实施例的基于多核处理器的报文分发方法的步骤。如何对处理器51进行设计编程为本领域技术人员所公知的技术,这里不再赘述。[0159]基于同一发明构思,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被计算机执行时,使计算机执行如前文论述任一的基于多核处理器的报文分发方法。由于上述计算机可读存储介质解决问题的原理与基于多核处理器的报文分发方法相似,因此上述计算机可读存储介质的实施可以参见方法的实施,重复之处不再赘述。[0160]本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。[0161]本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0162]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0163]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0164]显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1