CN114900474B - 针对可编程交换机的数据包分类方法、系统及相关设备 - Google Patents
针对可编程交换机的数据包分类方法、系统及相关设备 Download PDFInfo
- Publication number
- CN114900474B CN114900474B CN202210480817.8A CN202210480817A CN114900474B CN 114900474 B CN114900474 B CN 114900474B CN 202210480817 A CN202210480817 A CN 202210480817A CN 114900474 B CN114900474 B CN 114900474B
- Authority
- CN
- China
- Prior art keywords
- decision tree
- optimal
- programmable switch
- node
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了针对可编程交换机的数据包分类方法、系统及相关设备,其中,上述方法包括:获取预先训练完成的待优化决策树模型,并将上述待优化决策树模型发送到可编程交换机;根据可编程交换机的流水线阶段数以及接收的待优化决策树模型获取最优决策树优化方案,最优决策树优化方案包括最优剪枝方案,最优剪枝方案用于根据可编程交换机的流水线阶段数限定决策树的层数并去除决策树的冗余叶子节点;根据最优决策树优化方案对待优化决策树模型进行优化获得目标决策树模型,将目标决策树模型部署到可编程交换机中获得目标可编程交换机;根据目标可编程交换机对待分类数据包进行分类。与现有技术相比,本发明方案有利于提高数据包分类效率。
Description
技术领域
本发明涉及数据包分类技术领域,尤其涉及的是一种针对可编程交换机的数据包分类方法、系统及相关设备。
背景技术
随着科学技术的发展,数据处理技术也得到迅速发展和广泛应用,同时,交换机、计算机等设备需要处理的数据量也越来越大。在实际使用过程中,通常需要先对数据包执行分类任务(如流量类型分类,异常检测等),然后根据分类结果进行后续的数据处理过程。
现有技术中,通常通过交换机来执行数据包分类任务,具体的,由于每一个交换机的编程资源(如流水线阶段数目、每阶段的规则容量等)是不同的,因此需要分别在每一个交换机中针对该交换机进行模型训练,每一个交换机都需要获取大量的训练数据包并进行针对性的模型训练,数据包传输量大,且多次进行模型训练的过程需要耗费大量的时间,不利于提高数据包分类的效率。
因此,现有技术还有待改进和发展。
发明内容
本发明的主要目的在于提供一种针对可编程交换机的数据包分类方法、系统及相关设备,旨在解决现有技术中需要分别在每一个交换机中针对该交换机进行模型训练,每一个交换机都需要获取大量的训练数据包并进行针对性的模型训练,数据包传输量大,且多次进行模型训练的过程需要耗费大量的时间,不利于提高数据包分类的效率的问题。
为了实现上述目的,本发明第一方面提供一种针对可编程交换机的数据包分类方法,其中,上述方法包括:
获取预先训练完成的待优化决策树模型,并将上述待优化决策树模型发送到可编程交换机,其中,上述待优化决策树模型是根据预先设置的训练数据集获得的决策树;
根据上述可编程交换机的流水线阶段数以及接收的上述待优化决策树模型获取上述可编程交换机对应的最优决策树优化方案,上述最优决策树优化方案包括最优剪枝方案,上述最优剪枝方案用于根据上述可编程交换机的流水线阶段数限定上述决策树的层数并去除上述决策树的冗余叶子节点,其中,一个冗余叶子节点与其同源叶子节点具有相同的节点类别,上述同源叶子节点是与该冗余叶子节点具有相同父节点的叶子节点;
根据上述最优决策树优化方案对上述待优化决策树模型进行优化并获得上述可编程交换机对应的目标决策树模型,将上述目标决策树模型部署到上述可编程交换机中并获得目标可编程交换机;
根据上述目标可编程交换机对待分类数据包进行分类。
本发明第二方面提供一种针对可编程交换机的数据包分类系统,其中,上述系统包括:
待优化决策树模型获取模块,用于获取预先训练完成的待优化决策树模型,并将上述待优化决策树模型发送到可编程交换机,其中,上述待优化决策树模型是根据预先设置的训练数据集获得的决策树;
最优决策树优化方案获取模块,用于根据上述可编程交换机的流水线阶段数以及接收的上述待优化决策树模型获取上述可编程交换机对应的最优决策树优化方案,上述最优决策树优化方案包括最优剪枝方案,上述最优剪枝方案用于根据上述可编程交换机的流水线阶段数限定上述决策树的层数并去除上述决策树的冗余叶子节点;
模型优化部署模块,用于根据上述最优决策树优化方案对上述待优化决策树模型进行优化并获得上述可编程交换机对应的目标决策树模型,将上述目标决策树模型部署到上述可编程交换机中并获得目标可编程交换机;
数据包分类模块,用于根据上述目标可编程交换机对待分类数据包进行分类。
本发明第三方面提供一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的针对可编程交换机的数据包分类程序,上述针对可编程交换机的数据包分类程序被上述处理器执行时实现任意一项上述针对可编程交换机的数据包分类方法的步骤。
本发明第四方面提供一种计算机可读存储介质,上述计算机可读存储介质上存储有针对可编程交换机的数据包分类程序,上述针对可编程交换机的数据包分类程序被处理器执行时实现任意一项上述针对可编程交换机的数据包分类方法的步骤。
由上可见,本发明方案中,获取预先训练完成的待优化决策树模型,并将上述待优化决策树模型发送到可编程交换机,其中,上述待优化决策树模型是根据预先设置的训练数据集获得的决策树;根据上述可编程交换机的流水线阶段数以及接收的上述待优化决策树模型获取上述可编程交换机对应的最优决策树优化方案,上述最优决策树优化方案包括最优剪枝方案,上述最优剪枝方案用于根据上述可编程交换机的流水线阶段数限定上述决策树的层数并去除上述决策树的冗余叶子节点,其中,一个冗余叶子节点与其同源叶子节点具有相同的节点类别,上述同源叶子节点是与该冗余叶子节点具有相同父节点的叶子节点;根据上述最优决策树优化方案对上述待优化决策树模型进行优化并获得上述可编程交换机对应的目标决策树模型,将上述目标决策树模型部署到上述可编程交换机中并获得目标可编程交换机;根据上述目标可编程交换机对待分类数据包进行分类。与现有技术中需要分别在每一个交换机中针对该交换机进行模型训练的方案相比,本发明方案中只需要预先进行一次模型的训练,即可以应用到任意一个可编程交换机中,无需进行多次决策树模型的训练,且无需在可编程交换机处进行决策树模型的训练。同时,根据可编程交换机的流水线阶段数以及对应的待优化决策树模型获得该可编程交换机对应的最优决策树优化方案,通过其中的最优剪枝方案限定决策树的层数以确保优化后的目标决策树模型的层数符合对应的可编程交换机的要求,可以成功部署。同时,还可以去除冗余叶子节点,提升数据包分类效果。通过可编程交换机中部署优化后的决策树模型即可以实现数据包分类,可编程交换机只需要进行模型的优化(例如剪枝)而不需要进行模型训练,因此可编程交换机也不需要获取训练数据包,有利于减少耗费的时间,且有利于提高数据包分类的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种针对可编程交换机的数据包分类方法的流程示意图;
图2是本发明实施例提供的一种训练获取待优化决策树模型的流程示意图;
图3是本发明实施例提供的一种决策树训练伪代码示意图;
图4是本发明实施例提供的一种将范围匹配方式转换为三元匹配方式的伪代码示意图;
图5是本发明实施例提供的一种将范围表示转换为三元表示的具体掩码和值的示意图;
图6是本发明实施例提供的一种可编程交换机的三种流表放置方式示意图;
图7是本发明实施例提供的软剪枝和硬剪枝的具体实现方式示意图;
图8是本发明实施例提供的一种渐进式搜索算法的伪代码示意图;
图9是本发明实施例提供的一种训练决策树模型并部署的具体流程示意图;
图10是本发明实施例提供的一种针对可编程交换机的数据包分类系统的结构示意图;
图11是本发明实施例提供的一种智能终端的内部结构原理框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
随着科学技术的发展,数据处理技术也得到迅速发展和广泛应用,同时,交换机、计算机等设备需要处理的数据量也越来越大。在实际使用过程中,通常需要先对数据包执行分类任务(如流量类型分类,异常检测等),然后根据分类结果进行后续的数据处理过程。
现有技术中,通常通过交换机来执行数据包分类任务,具体的,由于每一个交换机的编程资源(如流水线阶段数目、每阶段的规则容量等)是不同的,因此需要分别在每一个交换机中针对该交换机进行模型训练,每一个交换机都需要获取大量的训练数据包并进行针对性的模型训练,数据包传输量大,且多次进行模型训练的过程需要耗费大量的时间,不利于提高数据包分类的效率。
在一种应用场景中,具体可以使用可编程交换机(即P4交换机)来进行数据包的分类。具体的,可编程交换机可以通过编程来定义数据包处理方式,性能优越(低延迟、高吞吐),但是编程资源(如流水线阶段数目、每阶段的规则容量)稀缺,如果可编程交换机还需要承担模型训练的任务,则会极大的影响其对数据包的分类效率。
同时,本发明中使用决策树来作为数据包分类的模型,决策树具有简单、高效的特点,在可编程交换机中部署决策树(模型)可以执行各种对数据包的分类任务,即实现网络内智能。
然而,在实际网络中,可编程交换机的可用资源是有限的,并且在不同的交换机之间会有所不同,例如,两个不同的可编程交换机的流水线阶段数目通常是不同的。而现有的方法只能针对各个特定的可编程交换机进行对应的模型训练,不能针对不同的资源预算训练一个具有适应性的模型,因此在每一个可编程交换机中,都需要对应进行模型训练,极大的占据了可编程交换机的资源且影响了数据包分类的效率。
为了解决上述多个问题中的至少一个问题,本发明方案中,获取预先训练完成的待优化决策树模型,并将上述待优化决策树模型发送到可编程交换机,其中,上述待优化决策树模型是根据预先设置的训练数据集获得的决策树;根据上述可编程交换机的流水线阶段数以及接收的上述待优化决策树模型获取上述可编程交换机对应的最优决策树优化方案,上述最优决策树优化方案包括最优剪枝方案,上述最优剪枝方案用于根据上述可编程交换机的流水线阶段数限定上述决策树的层数并去除上述决策树的冗余叶子节点,其中,一个冗余叶子节点与其同源叶子节点具有相同的节点类别,上述同源叶子节点是与该冗余叶子节点具有相同父节点的叶子节点;根据上述最优决策树优化方案对上述待优化决策树模型进行优化并获得上述可编程交换机对应的目标决策树模型,将上述目标决策树模型部署到上述可编程交换机中并获得目标可编程交换机;根据上述目标可编程交换机对待分类数据包进行分类。
与现有技术中需要分别在每一个交换机中针对该交换机进行模型训练的方案相比,本发明方案中只需要预先进行一次模型的训练,即可以应用到任意一个可编程交换机中,无需进行多次决策树模型的训练,且无需在可编程交换机处进行决策树模型的训练。同时,根据可编程交换机的流水线阶段数以及对应的待优化决策树模型获得该可编程交换机对应的最优决策树优化方案,通过其中的最优剪枝方案限定决策树的层数以确保优化后的目标决策树模型的层数符合对应的可编程交换机的要求,可以成功部署。同时,还可以去除冗余叶子节点,提升数据包分类效果。通过可编程交换机中部署优化后的决策树模型即可以实现数据包分类,可编程交换机只需要进行模型的优化(例如剪枝)而不需要进行模型训练,因此可编程交换机也不需要获取训练数据包,有利于减少耗费的时间,且有利于提高数据包分类的效率。
如此,基于本发明方案可以实现自适应的决策树部署,可以预先通过其它控制设备(例如中央控制器)训练一个大而准确的“一次性训练”决策树(ODT,即待优化决策树模型),在不同的交换机中逐步寻找对应的交换机资源预算内最佳的ODT优化方案(即最优决策树优化方案),根据其中对应的剪枝方案对待优化决策树模型按需裁剪后部署到可编程交换机中,从而实现数据包的分类,并提高交换机资源利用率。从而实现将一个训练后的决策树按需部署到不同的资源各异的交换机上,实现“一次训练,到处部署”的目标,使得不同的可编程交换机可以共用一个待优化决策树模型并获得适用于自身的目标决策树模型,不需要进行多次模型训练,有利于提高数据包的分类效率。
示例性方法
如图1所示,本发明实施例提供一种针对可编程交换机的数据包分类方法,具体的,上述方法包括如下步骤:
步骤S100,获取预先训练完成的待优化决策树模型,并将上述待优化决策树模型发送到可编程交换机,其中,上述待优化决策树模型是根据预先设置的训练数据集获得的决策树。
其中,上述待优化决策树模型可以预先在某一个可编程交换机中构建,也可以在预设的其它具有模型构建(或训练)功能的设备中,例如,本实施例中,在中央控制器中预先使用训练数据集进行特征选择后训练获得一个大而准确的“一次性训练”决策树(即待优化决策树模型),该决策树只需要进行一次训练,即可以适用于不同的多个可编程交换机中。需要说明的是,本实施例中,上述决策树是二叉树的结构。
具体的,本实施例中,需要预先训练获得待优化决策树模型,因此,如图2所示,在上述获取预先训练完成的待优化决策树模型之前,上述方法还包括如下步骤:
步骤A100,获取训练数据集以及上述训练数据集对应的目标特征,其中,上述训练数据集中包括多个数据包样本,每一个上述数据包样本包括所有上述目标特征、各上述目标特征对应的特征值以及上述数据包样本的类别标签。
具体的,上述训练数据集是预先采集或通过公开数据集获得的用于训练的流量数据,其中包括多个IP数据包(即数据包样本),且每一个IP数据包中包括各种特征,例如IP数据包头、TCP包头域等。同时,预先对于每一个IP数据包进行了类别标记,即每一个数据包样本都有对应的类别标签,本实施例中,可以直接将类别标签写入对应的数据包样本中,便于实现决策树模型的训练。
其中,上述目标特征是从上述样本数据包中包括的所有特征(即待选特征)中根据重要性值选取出来的。具体的,本实施例中,上述获取训练数据集以及上述训练数据集对应的目标特征,包括:
获取训练数据集,并获取上述训练数据集中各上述数据包样本对应的所有IP数据包特征,作为待选特征;
根据各上述待选特征对应的重要性值和预设的目标特征数目获取上述目标特征。
上述待选特征是训练数据集中的IP数据包所包含的特征,每个IP数据包都包含IP包头域、TCP或者UDP包头域,而UDP只有源端口和目的端口,所以也可以将UDP当作TCP进行处理(保留UDP端口,剩余属于TCP才有的包头域置0即可)。
需要说明的是,上述训练数据集对应有大量的待选特征,为了提高模型训练的效率并且提高训练获得的模型的分类精度,可以从待选特征中选择部分重要的特征进行决策树模型的构建(或训练)。本实施例中,预先设置有目标特征数目,以限定选取的目标特征的个数,上述目标特征数目也可以根据实际需求进行调整,在此不作具体限定。
本实施例中,根据各个待选特征对应的重要性值来选取对应的目标特征,其中,上述重要性值可以体现各个待选特征的重要程度。在一种应用场景中,可以预先设置各个待选特征对应的重要性值,例如,通过一个数字标记各个待选特征对应的重要性,数字越大代表重要性值越大。
在本实施例中,根据基尼重要性来衡量各个待选特征的重要性,具体的,根据基尼重要性公式计算获取各个待选特征对应的重要性值,然后从中选择对应的重要性值较大的前几个目标特征。
优选的,本实施例中,上述目标特征数目为8,根据上述重要性值选择出来的上述目标特征包括:IP不分片标志位、源端口、目的端口、数据包总长度、生存时间、TCP同步标志位、IP协议号位以及TCP重置位。如此,将上述8个目标特征作为决策树的输入特征进行训练。
步骤A200,从根节点开始,根据上述训练数据集和上述目标特征依次获取决策树每一层的各个非叶子节点对应的最优特征和最优特征阈值,并根据上述决策树的每一层的各个非叶子节点对所有上述数据包样本进行划分,直到将所有上述数据包样本都划分到叶子节点中并获得所有的叶子节点。
其中,一个上述叶子节点对应的所有数据包样本满足第一预设条件或第二预设条件,上述第一预设条件为所有上述数据包样本的类别标签都相同,上述第二预设条件为所有上述数据包样本中相同的目标特征对应的特征值相同。
需要说明的是,在进行本实施例中的待优化决策树模型的训练的过程中,初始时是没有决策树的,从根节点开始,一边训练一边进行决策树的生长。上述叶子节点是不存在子节点的节点,非叶子节点则是除叶子节点以外的节点。本实施例中,叶子节点具有类别划分的功能,即叶子节点对应有节点类别,一个数据包可以根据决策树的每一个非叶子节点进行对应的特征值比较,逐层划分直到划分到一个叶子节点中,将叶子节点对应的节点类别作为该数据包对应的类别。
具体的,本实施例中,上述根据上述训练数据集和上述目标特征依次获取决策树每一层的各个非叶子节点对应的最优特征和最优特征阈值,并根据上述决策树的每一层的各个非叶子节点对所有上述数据包样本进行划分,具体包括如下步骤:
根据所有上述目标特征和上述训练数据集中各上述目标特征对应的取值范围构建待判断节点特征数据集,上述待判断节点特征数据集中包括多个待判断节点特征数据,一个上述待判断节点特征数据由一个目标特征以及该目标特征对应的一个取值构成;
对于任意一个当前节点,分别根据各上述待判断节点特征数据对上述当前节点对应的数据包样本进行划分,并根据划分结果分别计算各上述待判断节点特征数据对应的基尼不纯度,将上述基尼不纯度最小的一个待判断节点特征数据作为最优节点特征数据;
将上述最优节点特征数据对应的目标特征作为上述当前节点的最优特征,将上述最优节点特征数据对应的目标特征的取值作为上述当前节点的最优特征阈值;
根据上述当前节点的最优特征和最优特征阈值对上述当前节点对应的数据包样本进行划分,获得上述当前节点的子节点以及上述子节点对应的数据包样本;
其中,上述当前节点为任意一个上述非叶子节点,上述根节点对应的数据包样本为上述训练数据集中的所有数据包样本。
本实施例中,决策树可以使用基尼不纯度(即基尼指数,Gini index)来划分属性。具体的,对于每一个节点,分别计算当其选择一个目标特征以及该特征对应的一个值作为数据划分的条件时,划分后的数据对应的基尼不纯度,从而获得划分效果最好(即基尼不纯度最小)的一个目标特征及其对应的特征值(即最优特征及其对应的最优特征阈值)并作为当前节点的数据划分依据,当前节点即完成训练。
在使用训练好的决策树进行待分类数据包的分类时,待分类数据包被输入决策树后会根据决策树的各个节点依次进行判断。例如,一个节点对应的最优特征为源端口,对应的最优特征阈值为200时,经过该节点的一个待分类数据包,若其源端口对应的值小于200,则被划分到该节点的左边子节点中,反之则被划分到该节点对应的右边子节点中,依此类推,直到该待分类数据包被划分到一个叶子节点,该叶子节点对应的节点类别即为该待分类数据包对应的类别。
而在使用数据包样本进行生成树训练的过程中,通过所有的数据包样本逐层构建对应的用于判断的节点,当一组数据包样本满足第一预设条件或第二预设条件时,该组数据包样本不再进行划分,将该组数据包样本对应的当前节点作为一个叶子节点,叶子节点的节点类别可以根据其对应的数据包样本确定。
步骤A300,获取各上述叶子节点对应的节点类别。
需要说明的是,本实施例中,上述训练数据集中的各个数据包样本对应的类别标签分别为IP包包含恶意流量或IP包包含良性流量中的任意一种,对应的,各个叶子节点的节点类别也为IP包包含恶意流量或IP包包含良性流量中的任意一种,即本实施例中的一个叶子节点可以用于判断待处理数据包中是否包含恶意流量。在一种应用场景中,还可以根据叶子节点进行其它分类,对应的训练数据集中的数据包样本的类别标签也为其它标签,例如IP包完整或IP数据包不完整。
具体的,本实施例中,上述步骤A300具体包括如下步骤:当上述叶子节点对应的所有数据包样本满足上述第一预设条件时,将上述叶子节点的所有数据包样本对应的类别标签作为上述叶子节点的节点类别;当上述叶子节点对应的所有数据包样本满足上述第二预设条件时,将上述叶子节点对应的最大占比标签作为上述叶子节点的节点类别,其中,上述最大占比标签是上述叶子节点对应的所有类别标签中占据数据包样本的数量最多的类别标签。
如此,当一个节点对应的所有数据包样本的类别标签都相同时,不需要再进行进一步划分,将当前节点作为一个叶子节点,且设置当前的该叶子节点的节点类别为其对应的任意一个数据包样本的类别标签。当一个节点对应的所有数据包样本的类别标签虽然不同,但是对于其中的任意两个数据包样本,选择其中的一个目标特征,例如IP不分片标志位,任意两个数据包样本中的IP不分片标志位都相同,说明已经无法根据各个目标特征以及目标特征的值对该组数据包样本进行划分,此时,将当前节点作为一个叶子节点,并选择该叶子节点对应的数据包样本的所有类别标签中,占据最多数据包样本的类别标签(即对应有最多数据包样本的类别标签)作为该叶子节点的节点类别。
步骤A400,根据各上述非叶子节点对应的最优特征、各上述非叶子节点对应的最优特征阈值以及各上述叶子节点对应的节点类别获得训练完成的待优化决策树模型。
根据上述步骤,将训练数据集中的所有数据包样本逐层划分,并逐层构建节点,直到所有的数据包样本都无法继续划分(满足第一预设条件或第二预设条件),从而获得所有的叶子节点,并获得一个由根节点到各个叶子节点的二叉树结构,其中的每一个非叶子节点都具有对应的最优特征以及最优特征阈值作为数据包划分依据。将获得的上述二叉树作为训练完成的待优化决策树模型。
优选的,本实施例中,可以通过预设的算法程序训练获得上述待优化决策树模型,图3是本发明实施例提供的一种决策树训练伪代码示意图,其中,xi为决策树的第i个输入,即IP数据包的部分包头(本实施例中,可以在确定目标特征之后只输入目标特征对应的数据进行训练,实际使用过程中,也可以输入所有的包头,但只根据其中的部分包头进行数据划分),yi为xi对应的类别标签,yi的值可以为IP包包含恶意流量或者IP包包含良性流量,以区分不同的样本数据包的类型。F代表对应的8个目标特征的集合,即xi中IP数据包包头的每一位的名称,具体的,本实施例中,F={IP不分片标志位,源端口,目的端口,数据包总长度,生存时间,TCP同步标志位,IP协议号位,TCP重置位}。
图3所示的伪代码中,第2行示出了本实施例中还使用类别数记录值values记录下当前节点分配到的所有数据包样本中,各个类别标签对应的数据包样本的个数,例如,某一个节点分配到10个数据包样本,其中8个数据包样本的类别标签为IP包包含恶意流量,2个数据包样本的类别标签为IP包包含良性流量,则通过values记录IP包包含恶意流量这一标签对应的数据包样本的数目为8,记录IP包包含良性意流量这一标签对应的数据包样本的数目为2,如此,可以方便的获知各个节点对应的数据包样本的情况,也可以方便的获取叶子节点的节点类别。
图3中伪代码的第3行到第5行示出了当一个节点对应的所有数据包样本满足第一预设条件时将当前节点作为叶子节点,将该叶子节点对应的节点类别设置为上述叶子节点的所有数据包样本对应的类别标签;第6行到第8行则示出了当一个节点对应的所有数据包样本满足第二预设条件时将当前节点作为叶子节点,并将该叶子节点对应的节点类别设置为MajorVote函数的返回值,其中,MajorVote函数用于选出对应的最大占比标签,即根据该节点对应的所有数据包样本的类别标签选出占据数据包样本数量最多的类别,优选的,MajorVote函数可以根据values记录的值来快速获取对应的最大占比标签,从而确定当前节点的节点类别。需要说明的是,为了获得最准确的决策树,本实施例中在训练阶段不会限制树的深度d,所以第6行的i=d不会为真。
进一步的,图3中的伪代码的其它行则表示获取最优特征以及对应的最优特征阈值的过程,具体的,对于一个节点,根据目标特征的集合F中目标特征,以及各个目标特征的取值范围,获取目标特征中一个对应的基尼不纯度最小的目标特征及其目标特征阈值,作为最优特征以及对应的最优特征阈值。例如,在一种应用场景中,只包括两种目标特征(源端口和目的端口),其可能的取值都为1或2,则分别根据源端口=1,源端口=2,目的端口=1以及目的端口=2这四种不同的区分标准对当前节点的所有数据包样本进行划分,并计算对应的基尼不纯度,将基尼不纯度最小的一组(例如源端口=2,此时最优特征为源端口,最优特征阈值为2)作为对应的最优特征和最优特征阈值,本实施例中,将一组最优特征及其最优特征阈值记为该节点对应的最优选择,用f*代表最优特征,用ft *代表最优特征阈值,由此,在使用该节点进行数据包划分的过程中,当一个数据包中的特征f*(例如源端口)对应的值小于或等于ft *时(例如源端口值为1,ft *=2),将该数据包划分到当前节点的左边子节点对应的数据包集合中,反之,当一个数据包中的特征f*对应的值大于ft *时,将该数据包划分到当前节点的右边子节点对应的数据包的集合中。需要说明的是,图3中,定义了ODTGENERRATE函数来对当前的一个节点进行最优特征和最优特征阈值的获取,并根据获取结果将当前节点的数据包的集合进行分裂,对于划分获得的子节点,如果其对应的数据包集合不为空,则可以进一步调用ODTGENERRATE函数对该子节点进行处理,直到获得所有的叶子节点。
优选的,本实施例中,当划分到叶子节点后停止划分,停止条件为第一预设条件或第二预设条件。第一预设条件为当前节点的所有数据包样本的类别标签都为同一个,此时令当前节点为叶子节点,该叶子节点对应的节点类别是所有的数据包样本对应的类别标签。第二预设条件是当前节点的所有数据包样本中相同的目标特征对应的值都相同,例如,所有数据包样本的源端口的值都相同、目的端口的值都相同、IP不分片标志位的值都相同等,此时令当前节点为叶子节点,该叶子节点对应的节点类别是MajorVote函数的返回值,MajorVote函数用于选取占据数据包样本数量最多的类别标签,其采用的是大多数投票法,少数服从多数。需要说明的是,本是实施例中使用了values记录当前节点中各个类别标签对应的数据包样本的个数,因此MajorVote函数可以根据values确定最大占比标签。
进一步的,本实施例中,获得上述待优化决策树模型之后,将上述待优化决策树模型发送到各个可编程交换机中,如此,在各个可编程交换机中不需要再进行模型的训练,只需要对待优化决策树模型进行优化调整,使其能够适用于对应的可编程交换机即可。需要说明的是,上述训练获得的待优化决策树模型可以发送到多个不同的可编程交换机中使用,本实施例中仅以发送到某一个可编程交换机中为例进行具体说明,在发送到其它可编程交换机中时也进行相似的处理,在此不再赘述。
步骤S200,根据上述可编程交换机的流水线阶段数以及接收的上述待优化决策树模型获取上述可编程交换机对应的最优决策树优化方案,上述最优决策树优化方案包括最优剪枝方案,上述最优剪枝方案用于根据上述可编程交换机的流水线阶段数限定上述决策树的层数并去除上述决策树的冗余叶子节点。
具体的,本实施例中,训练获得的待优化决策树模型的层数较多,对应的可编程交换机可能无法完全部署,因此需要进行剪枝,使其能够适用于对应的可编程交换机,同时,剪枝过程中可能会出现冗余叶子节点,因此还需要去除对应的冗余叶子节点,从而提高模型的分类判断效率。需要说明的是,上述最优决策树优化方案还可以包括其它方案,例如匹配方式上的限定方案等,以更好地利用可编程交换机的性能,提高数据包分类效率。
本实施例中,上述最优决策树优化方案还包括最优匹配方式转换方案和最优流表布置方案。
上述最优匹配方式转换方案用于从特征比特位范围中限定一个最优比特位阈值,并限定位数大于上述最优比特位阈值的特征值在进行比较时使用范围匹配方式,限定位数不大于上述最优比特位阈值的特征值在进行比较时使用三元匹配方式。
具体的,在可编程交换机接收到中央控制器分发的训练好的ODT模型后,部署过程可以在不同的可编程交换机上自动完成。在上述可编程交换机中可以设置优化器,由优化器确定对应的最优决策树优化方案。优化器从两个方面来适配ODT的部署,一方面,使用剪枝方案,减少ODT的资源需求;另一方面,使用匹配方式转换方案和流表布置方案等P4编程技术,提升交换机中现有资源预算的利用率。需要说明的是,这些优化过程由渐进式搜索算法来选取最优组合。
其中,匹配方式转换是指在对于决策树内部的特征值比较(一个数据包的特征值与对应的最优特征阈值ft *的比较)过程中,确定需要采用何种匹配方式。在一种应用场景中,上述特征比特位范围是需要处理的数据包(可以是待处理数据包)在当前节点处,对应的最优特征f*的特征值的比特位数范围,其由1到最优特征f*的特征值的最大比特位数确定,对于当前节点,若最优特征f*为源端口,而数据包中源端口对应值的比特位数为8,则特征比特位范围为1到8。在另一种应用场景中,上述特征比特位范围也可以是需要处理的数据包中所有目标特征的值对应的最大比特位数。在另一种应用场景中,还可以预先设置对应的特征比特位范围,并根据实际需求进行调整。需要说明的是,也可以为上述可编程交换机中的每一个节点都设置相同的特征比特位范围。
具体的,为了将数据包的特征值与对应的ft *进行比较,最直接的方式范围匹配方式,即使用P4中的内置函数范围匹配函数(range match),范围匹配函数可以定义区间左值和区间右值,数值落在该区间即匹配。但是范围匹配函数会消耗大量的存储资源,因此,本实施例中,将范围匹配方式与三元匹配方式混用,有利于降低存储资源的消耗,提高资源利用率。三元匹配方式是P4中的另一种匹配方式,具体为用一个掩码与输入做“与”操作,结果与特定值做比较,相等则匹配,三元匹配方式在低比特位数字上存储开销小。因此本实施例中对于高比特(例如大于8比特)的特征使用范围匹配方式,对于低比特(例如1~8比特)的特征使用三元匹配的方式,以更好的使用交换机的存储资源。因此,本实施例中,提出了一种将大小比较的方式转换为三元匹配方式的方法。其中,低比特/高比特就是指一个数字能用多少比特位编码成计算机二进制的形式。
图4是本发明实施例提供的一种将范围匹配方式转换为三元匹配方式的伪代码示意图,具体的,如图4所示,本实施例中定义转换函数RANGE2TERNARY来进行对应的转换,将给定的范围匹配的范围区间(由左区间端点left和右区间端点right限定)分成几个子区间,直到位于同一子区间内的所有整数在高位上都有共同的比特串。在三元匹配的方式中,给定一个输入K,它会先与掩码M做与操作,然后将结果与一个值V进行比较,相等则表示匹配,反之则不匹配。图5是本发明实施例提供的一种将范围表示转换为三元表示的具体掩码和值的示意图,如图4和图5所示,将一个输入范围区间拆分为几个用含有最长公共bit的小区间,例如原始区间为[2,7],拆分为[2,3]和[4,7],区间[2,3]内的数字的最高3位都是001,在划分的过程中可以产生多对M(即图5中的“掩码”)和V(即图5中的“值”)。在对应的三元匹配中,落入前一个子区间(子区间1)的所有整数都有公共位串“001*”,它们和掩码M“1110”做“与”操作都得到同一个值V(即“0010”)。落入后一个子区间(子区间2)的所有整数都有公共位串“01*”,它们和掩码M“1100”做“与”操作都等于对应的V(即“0100”)。在ODT里把与ft *作比较的操作都拆成了与两个子区间[0,ft *]与[ft *,+∞]的匹配过程,两个子区间都可以转换为三元匹配,不匹配就说明不落在这个区间。需要说明的是,图4中,tmpright表示与left在一个子区间的右端点(left~tmpright,该区间具有相同的公共位串);ignore表示left到tmpright的范围,tmpright=left+ignore;w表示left~right的二进制串宽度;mask是子区间left~tmpright使用的掩码,left~tmpright中任意数与该掩码进行“与操作”之后等于left;M是所有mask的集合;RANGE2TERNARY的输入是待拆分区间left~right,该区间二进制串宽度,对应的输出是拆分后的子区间,以及每个子区间的掩码集合M和在与这些掩码进行“与”操作之后的值V。
上述最优流表布置方案用于从预设流表布置方式中限定一种最优流表布置方式,上述预设流表布置方式包括正常布置方式、再提交布置方式和再循环布置方式,上述正常布置方式对应的最大决策树深度等于上述可编程交换机的流水线阶段数,上述再提交布置方式对应的最大决策树深度是上述可编程交换机的流水线阶段数的2倍,上述再循环布置方式对应的最大决策树深度等于预先设置的循环次数与上述可编程交换机的流水线阶段数的乘积,上述循环次数大于2。
具体的,在可编辑交换机中,将决策树的每一层当做一个流表分配给一个流水线阶段执行比较操作,如果决策树的层数超出了流水线,则需要考虑重新循环防止剩余的流表(在对应的循环模式下也放不下则需要进行剪枝,删除剩余的层数)。流水线是交换机芯片的一部分,流表是运行在P4程序的规则集合,对应的一个流表包括8个目标特征以及对应的动作(动作包括划分到左边子节点、划分到右边子节点以及返回分类值)。图6是本发明实施例提供的一种可编程交换机的三种流表放置方式示意图,如图6所示,可编程交换机的流表布置方式(即预设流表布置方式)包括正常布置方式(Norm)、再提交布置方式(Resub)和再循环布置方式(Recir),需要说明的是,图6中从流量入端口到解析器、进行存储、匹配(M)、操作(A),然后进入反解析器、流量管理器,直到从流量出端口输出,是对应的交换机进行数据包处理的过程,其中一个包括存储、匹配(M)过程和操作(A)过程的模块代表一个流水线阶段,存储(memory)用于存ODT规则,匹配(M)过程用于执行规则并进行匹配判断,操作(A)过程用于执行定义的ODT动作(向左节点移动/向右节点移动/返回分类值)。如图6所示,Norm代表数据包不会返回并循环处理,因此此时要求最大决策树深度等于上述可编程交换机的流水线阶段数,即带有存储、匹配(M)过程和操作(A)过程的流水线阶段能够放置完决策树,Resub表示需要且只能循环放置一次(因此最大决策树深度是上述可编程交换机的流水线阶段数的2倍),Recir表示在流水线每阶段资源足够的情况下可以循环放置ODT层多次(具体循环次数可以预先设置,也可以根据实际需求进行设置和调整,此时最大决策树深度等于预先设置的循环次数与上述可编程交换机的流水线阶段数的乘积)。
在P4交换机硬件上,当数据包到达时,如果是Resub,流量管理器会将其送回解析器并再走一次流水线做ODT的流表查找;如果是Recir,数据包经过出端口后会再被送回入端口,继续经过流水线。基于P4交换机硬件内部实现,Resub会比Recir耗时少但是数据包只能折返一次。需要说明的是,实际使用过程中,最大决策树深度越大,则对应剪枝后保留获得的目标决策树的判断精度越高,但需要使用的计算资源和花费的时间也越高,因此本实施例中需要根据实际需求确定一个合适的决策树深度,即最优决策树深度。
对应的,本实施例中的剪枝方案包括硬剪枝方案和软剪枝方案,硬剪枝方案用于限定决策树的层数,具体的,删除上述待优化决策树模型中层数大于流水线放置方式对应的最大决策树深度的所有节点并获得硬剪枝决策树;软剪枝方案用于删除硬剪枝决策树中的冗余叶子节点。
进一步的,本实施例中,为了根据硬剪枝、软剪枝、匹配方式转换、流表布置等优化方式,结合交换机资源选择适合的优化组合,提出渐进式搜索算法。其中,渐进式搜索算法即通过嵌套的循环语句,逐个遍历可能的优化方式的组合(即候选优化组合),并计算各个组合对应的奖励值,从而选择出一个最优的组合(即最优组合)。
具体的,上述根据上述可编程交换机的流水线阶段数以及接收的上述待优化决策树模型获取上述可编程交换机对应的最优决策树优化方案,包括:
根据上述可编程交换机的流水线阶段数以及接收的上述待优化决策树模型,通过预设的渐进式搜索算法获取上述最优比特位阈值、上述最优流表布置方式和最优决策树深度,根据上述最优决策树深度获取上述可编程交换机对应的最优剪枝方案,根据上述最优比特位阈值获取上述可编程交换机对应的最优匹配方式转换方案,根据上述最优流表布置方式获取上述可编程交换机对应的最优流表布置方案;
其中,上述渐进式搜索算法用于依次遍历候选优化组合集中的每一个候选优化组合,根据每一个候选优化组合对应的决策树放置精度和数据包处理延迟分别计算获取各上述候选优化组合对应的评价值,将评价值最高的候选优化组合作为最优组合,将上述最优组合中的比特位阈值、流表布置方式和决策树深度分别作为上述最优比特位阈值、上述最优流表布置方式和上述最优决策树深度,上述候选优化组合集由决策树深度范围中的值、上述特征比特位范围中的值和上述预设流表布置方式对应的所有组合方式构成,上述决策树深度范围由上述最大决策树深度确定。
具体的,上述最优剪枝方案包括最优硬剪枝方案和最优软剪枝方案;对于上述候选优化组合集中的任意一个候选优化组合,上述最优硬剪枝方案包括:删除上述待优化决策树模型中层数大于上述候选优化组合中决策树深度的所有节点并获得硬剪枝决策树;上述最优软剪枝方案包括:获取上述硬剪枝决策树中的目标父节点,将上述目标父节点的节点类别设置为上述目标父节点的任意一个子节点对应的节点类别,其中,上述目标父节点的所有子节点都为上述冗余叶子节点;删除上述目标父节点的所有子节点。
图7是本发明实施例提供的软剪枝和硬剪枝的具体实现方式示意图,图7中,有类别预测功能的叶子节点被标记为灰色,其中带有横线的叶子节点的节点类别相同(例如为IP包包含良性流量),不带有横线的叶子节点的节点类别相同(例如为IP包包含恶性流量),且带有横线的叶子节点的节点类别与不带有横线的叶子节点的节点类别不同,且图7中左边方框内代表软剪枝,右边方框内代表硬剪枝,两个方框内左侧代表剪枝前,右侧代表剪枝后。对于训练好的决策树,给定一个待分类数据包,决策树会从根节点开始,用内部各个节点的最优特征及其对应的最优特征值来决定待分类数据包的下一个节点的走向,直到到达叶子节点,并根据叶子节点的节点类别进行分类。硬剪枝是为了消除溢出硬件资源限制的ODT枝叶,如图7所示,如果当前限制的深度为2,当ODT的深度超出硬件限制时,超出限制的所有枝叶都会被去除,新的叶子节点将由MajorVote函数给出(类似图3中代码第7行),具体的,对于一个节点,如果其所有的子节点都被删除,该节点作为新的叶子节点,则该节点对应的节点类别由该节点对应的所有叶子节点的数据包样本确定,选择占据数据包样本数量最多的类别标签作为该节点的节点类别。软剪枝的目的是消除冗余节点,例如,对于硬剪枝处理后的决策树,可能出现两个同源叶子节点(即两个属于同一个父节点的叶子节点)的节点类别相同,此时两者即为冗余叶子节点(是不必要的,可以删除),如图7所示,如果同一父节点(即目标父节点)的叶子节点类别完全一致,那么它将变成叶子节点替代它的所有叶子节点
图8是本发明实施例提供的一种渐进式搜索算法的伪代码示意图,图8中,stage是可编程交换机的流水线阶段数(即资源预算),k表示流表放置最大的循环次数;因为流表循环放置越多会得到越深的ODT,但是数据包处理耗时会增加,所以本实施例中用系数α去考虑二者的影响,具体的,α是预先设置的权重系数,α的取值范围为0到1之间。需要说明的是,上述流表放置最大的循环次数也可以根据实际需求预先设定。
图8中,通过三层循环来确定最优比特位阈值、上述最优流表布置方式和最优决策树深度,并确定对应的最优剪枝方案。位于最外面的循环(即代码第3行的循环)逐个枚举考虑不同的P4表循环放置次数,round表示数据包在管道中的循环次数,round=1表示Norm方式,round=2表示Resub方式,round≥3表示Recir方式,round的最大值k预先设置。位于中间层的循环(即代码第5行的循环)则用于估计当前流表放置方式下,最大到最小的决策树深度,并使用剪枝方法修剪ODT到指定深度。具体的,决策树的每一层需要被分别放置到一个流水线阶段,所以该深度的可能取值(即一个候选组合中的决策树深度estdepth)应当位于区间[1,round×stages]之间,即遍历区间[1,round×stages]中的取值。具体的,位于中间的循环可以搜索硬剪枝的限制深度estdepth的所有可行值,然后ODT将首先被硬剪枝到指定的深度estdepth,再被软剪枝去除冗余的叶子节点,以进入下一个循环。位于最内层的循环(即代码第7行的循环)则是在考虑应当将哪些比特位数的特征匹配转换成三元匹配方式(ternary),具体的,最内层的循环遍历bit的值,这是在范围匹配方式和三元匹配方式之间进行选择的决策阈值(对应的最优的bit值为最优比特位阈值),即本实施例中对具有大于bit的特征使用范围匹配的方式进行比较,对具有小于或等于bit的特征使用三元匹配的方式进行比较。将三种循环获得的每一种组合方案作为一种候选优化组合,计算其能放置的ODT的精度,以及数据包处理的延迟,得到该候选优化组合对应的奖励值,返回奖励值最大的方案(即最优组合)。
需要说明的是,图8中,tree代表拷贝后的ODT,deepcopy表示拷贝操作,Soft表示软剪枝,Hard表示硬剪枝,rulecap表示如果比特小于等于bit的特征使用三元匹配时每个流水线阶段的规则容量(rule capacity),RuleEst表示估计规则数的函数,real_depth表示每阶段的规则容量为rulecap时能部署的最大树深度,Encode表示把树转换成三元规则的函数,reward的具体计算公式为reward=αMetricEst(tree,real_depth)+(1-α)1/LatencyEst(round),MetricEst表示树的精度估计函数,LatencyEst表示延迟估计函数,S存放所有奖励值,S[round]表示当前流表排列方式的存储,strategy表示存放所有策略的列表。
步骤S300,根据上述最优决策树优化方案对上述待优化决策树模型进行优化并获得上述可编程交换机对应的目标决策树模型,将上述目标决策树模型部署到上述可编程交换机中并获得目标可编程交换机。
其中,上述目标决策树模型是优化之后需要部署到对应的可编程交换机上的模型,将部署以后的可编程交换机作为目标可编程交换机。
图9是本发明实施例提供的一种训练决策树模型并部署的具体流程示意图,如图9所示,本实施例中,在中央控制器使用训练数据集并进行特征选择后训练了一颗大而准确的“一次性训练”决策树(ODT),并将其分发到不同的交换机上。接着,对于每一台交换机的部署资源预算,交换机的CPU模块运行一个优化器,该优化器会自动搜索出合适的适配方案,包括ODT的硬剪枝和软剪枝压缩,流表使用的匹配方式(范围/三元)以及流表的布置方法。然后该适配和ODT会被送到ODT编译器,ODT编译器执行适配过程并把适配后的ODT转换为交换机程序(即P4程序,包含多张流表来执行Match-Action),最后安装到交换机的流水线中。其中Match-Action即匹配-动作,匹配某一条规则就会触发相应的动作。如此,提出ODT机器学习模型,在每一个交换机中可以不进行决策树模型的训练,直接做压缩调整即可,实现网内智能“一次训练,到处部署”的目标。同时,使用硬剪枝和软剪枝算法,可以以最小的性能损失压缩ODT,使用P4范围-三元匹配转换和流表布置方法,可以提高交换机的资源利用率,为不同交换机的资源预算提供灵活的ODT调整策略。
步骤S400,根据上述目标可编程交换机对待分类数据包进行分类。
其中,上述待分类数据包是需要进行分类的数据包。本实施例中,上述根据上述目标可编程交换机对待分类数据包进行分类,包括:获取待分类数据包并输入上述目标可编程交换机;根据上述目标决策树模型对上述待分类数据包进行分类,将上述目标决策树模型中与上述待分类数据包对应的叶子节点的节点类别作为上述待分类数据包的数据包类别。
如此,可以为不同交换机定制化网内智能方案,且利用可编程交换机对数据包处理的优越性能(高吞吐、低延迟等)实现对数据包的高效分类)。
由上可见,本发明实施例提供的针对可编程交换机的数据包分类方法中,获取预先训练完成的待优化决策树模型,并将上述待优化决策树模型发送到可编程交换机,其中,上述待优化决策树模型是根据预先设置的训练数据集获得的决策树;根据上述可编程交换机的流水线阶段数以及接收的上述待优化决策树模型获取上述可编程交换机对应的最优决策树优化方案,上述最优决策树优化方案包括最优剪枝方案,上述最优剪枝方案用于根据上述可编程交换机的流水线阶段数限定上述决策树的层数并去除上述决策树的冗余叶子节点,其中,一个冗余叶子节点与其同源叶子节点具有相同的节点类别,上述同源叶子节点是与该冗余叶子节点具有相同父节点的叶子节点;根据上述最优决策树优化方案对上述待优化决策树模型进行优化并获得上述可编程交换机对应的目标决策树模型,将上述目标决策树模型部署到上述可编程交换机中并获得目标可编程交换机;根据上述目标可编程交换机对待分类数据包进行分类。
与现有技术中需要分别在每一个交换机中针对该交换机进行模型训练的方案相比,本发明方案中只需要预先进行一次模型的训练,即可以应用到任意一个可编程交换机中,无需进行多次决策树模型的训练,且无需在可编程交换机处进行决策树模型的训练。同时,根据可编程交换机的流水线阶段数以及对应的待优化决策树模型获得该可编程交换机对应的最优决策树优化方案,通过其中的最优剪枝方案限定决策树的层数以确保优化后的目标决策树模型的层数符合对应的可编程交换机的要求,可以成功部署。同时,还可以去除冗余叶子节点,提升数据包分类效果。通过可编程交换机中部署优化后的决策树模型即可以实现数据包分类,可编程交换机只需要进行模型的优化(例如剪枝)而不需要进行模型训练,因此可编程交换机也不需要获取训练数据包,有利于减少耗费的时间,且有利于提高数据包分类的效率。
示例性设备
如图10中所示,对应于上述针对可编程交换机的数据包分类方法,本发明实施例还提供一种针对可编程交换机的数据包分类系统,上述针对可编程交换机的数据包分类系统包括:
待优化决策树模型获取模块510,用于获取预先训练完成的待优化决策树模型,并将上述待优化决策树模型发送到可编程交换机,其中,上述待优化决策树模型是根据预先设置的训练数据集获得的决策树。
其中,上述待优化决策树模型可以预先在某一个可编程交换机中构建,也可以在预设的其它具有模型构建(或训练)功能的设备中,例如,本实施例中,在中央控制器中预先使用训练数据集进行特征选择后训练获得一个大而准确的“一次性训练”决策树(即待优化决策树模型),该决策树只需要进行一次训练,即可以适用于不同的多个可编程交换机中。需要说明的是,本实施例中,上述决策树是二叉树的结构。
最优决策树优化方案获取模块520,用于根据上述可编程交换机的流水线阶段数以及接收的上述待优化决策树模型获取上述可编程交换机对应的最优决策树优化方案,上述最优决策树优化方案包括最优剪枝方案,上述最优剪枝方案用于根据上述可编程交换机的流水线阶段数限定上述决策树的层数并去除上述决策树的冗余叶子节点。
具体的,本实施例中,训练获得的待优化决策树模型的层数较多,对应的可编程交换机可能无法完全部署,因此需要进行剪枝,使其能够适用于对应的可编程交换机,同时,剪枝过程中可能会出现冗余叶子节点,因此还需要去除对应的冗余叶子节点,从而提高模型的分类判断效率。需要说明的是,上述最优决策树优化方案还可以包括其它方案,例如匹配方式上的限定方案等,以更好地利用可编程交换机的性能,提高数据包分类效率。
模型优化部署模块530,用于根据上述最优决策树优化方案对上述待优化决策树模型进行优化并获得上述可编程交换机对应的目标决策树模型,将上述目标决策树模型部署到上述可编程交换机中并获得目标可编程交换机。
其中,上述目标决策树模型是优化之后需要部署到对应的可编程交换机上的模型,将部署以后的可编程交换机作为目标可编程交换机。
数据包分类模块540,用于根据上述目标可编程交换机对待分类数据包进行分类。
其中,上述待分类数据包是需要进行分类的数据包。本实施例中,上述根据上述目标可编程交换机对待分类数据包进行分类,包括:获取待分类数据包并输入上述目标可编程交换机;根据上述目标决策树模型对上述待分类数据包进行分类,将上述目标决策树模型中与上述待分类数据包对应的叶子节点的节点类别作为上述待分类数据包的数据包类别。
如此,可以为不同交换机定制化网内智能方案,且利用可编程交换机对数据包处理的优越性能(高吞吐、低延迟等)实现对数据包的高效分类)。
具体的,本实施例中,上述针对可编程交换机的数据包分类系统及其各模块的具体功能可以参照上述针对可编程交换机的数据包分类方法中的对应描述,在此不再赘述。
需要说明的是,上述针对可编程交换机的数据包分类系统的各个模块的划分方式并不唯一,在此也不作为具体限定。
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图11所示。上述智能终端包括通过系统总线连接的处理器、存储器、网络接口以及显示屏。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和针对可编程交换机的数据包分类程序。该内存储器为非易失性存储介质中的操作系统和针对可编程交换机的数据包分类程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该针对可编程交换机的数据包分类程序被处理器执行时实现上述任意一种针对可编程交换机的数据包分类方法的步骤。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏。
本领域技术人员可以理解,图11中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的针对可编程交换机的数据包分类程序,上述针对可编程交换机的数据包分类程序被上述处理器执行时进行以下操作指令:
获取预先训练完成的待优化决策树模型,并将上述待优化决策树模型发送到可编程交换机,其中,上述待优化决策树模型是根据预先设置的训练数据集获得的决策树;
根据上述可编程交换机的流水线阶段数以及接收的上述待优化决策树模型获取上述可编程交换机对应的最优决策树优化方案,上述最优决策树优化方案包括最优剪枝方案,上述最优剪枝方案用于根据上述可编程交换机的流水线阶段数限定上述决策树的层数并去除上述决策树的冗余叶子节点,其中,一个冗余叶子节点与其同源叶子节点具有相同的节点类别,上述同源叶子节点是与该冗余叶子节点具有相同父节点的叶子节点;
根据上述最优决策树优化方案对上述待优化决策树模型进行优化并获得上述可编程交换机对应的目标决策树模型,将上述目标决策树模型部署到上述可编程交换机中并获得目标可编程交换机;
根据上述目标可编程交换机对待分类数据包进行分类。
本发明实施例还提供一种计算机可读存储介质,上述计算机可读存储介质上存储有针对可编程交换机的数据包分类程序,上述针对可编程交换机的数据包分类程序被处理器执行时实现本发明实施例提供的任意一种针对可编程交换机的数据包分类方法的步骤。
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的系统/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的系统/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种针对可编程交换机的数据包分类方法,其特征在于,所述方法包括:
获取预先训练完成的待优化决策树模型,并将所述待优化决策树模型发送到可编程交换机,其中,所述待优化决策树模型是根据预先设置的训练数据集获得的决策树;
根据所述可编程交换机的流水线阶段数以及接收的所述待优化决策树模型获取所述可编程交换机对应的最优决策树优化方案,所述最优决策树优化方案包括最优剪枝方案,所述最优剪枝方案用于根据所述可编程交换机的流水线阶段数限定所述决策树的层数并去除所述决策树的冗余叶子节点,其中,一个冗余叶子节点与其同源叶子节点具有相同的节点类别,所述同源叶子节点是与该冗余叶子节点具有相同父节点的叶子节点;
根据所述最优决策树优化方案对所述待优化决策树模型进行优化并获得所述可编程交换机对应的目标决策树模型,将所述目标决策树模型部署到所述可编程交换机中并获得目标可编程交换机;
根据所述目标可编程交换机对待分类数据包进行分类;
在所述获取预先训练完成的待优化决策树模型之前,所述方法还包括:获取训练数据集以及所述训练数据集对应的目标特征,其中,所述训练数据集中包括多个数据包样本,每一个所述数据包样本包括所有所述目标特征、各所述目标特征对应的特征值以及所述数据包样本的类别标签;从根节点开始,根据所述训练数据集和所述目标特征依次获取决策树每一层的各个非叶子节点对应的最优特征和最优特征阈值,并根据所述决策树的每一层的各个非叶子节点对所有所述数据包样本进行划分,直到将所有所述数据包样本都划分到叶子节点中并获得所有的叶子节点,其中,一个所述叶子节点对应的所有数据包样本满足第一预设条件或第二预设条件,所述第一预设条件为所有所述数据包样本的类别标签都相同,所述第二预设条件为所有所述数据包样本中相同的目标特征对应的特征值相同;获取各所述叶子节点对应的节点类别;根据各所述非叶子节点对应的最优特征、各所述非叶子节点对应的最优特征阈值以及各所述叶子节点对应的节点类别获得训练完成的待优化决策树模型;
所述最优决策树优化方案还包括最优匹配方式转换方案和最优流表布置方案;所述最优匹配方式转换方案用于从特征比特位范围中限定一个最优比特位阈值,并限定位数大于所述最优比特位阈值的特征值在进行比较时使用范围匹配方式,限定位数不大于所述最优比特位阈值的特征值在进行比较时使用三元匹配方式;所述最优流表布置方案用于从预设流表布置方式中限定一种最优流表布置方式,所述预设流表布置方式包括正常布置方式、再提交布置方式和再循环布置方式,所述正常布置方式对应的最大决策树深度等于所述可编程交换机的流水线阶段数,所述再提交布置方式对应的最大决策树深度是所述可编程交换机的流水线阶段数的2倍,所述再循环布置方式对应的最大决策树深度等于预先设置的循环次数与所述可编程交换机的流水线阶段数的乘积,所述循环次数大于2;
所述根据所述可编程交换机的流水线阶段数以及接收的所述待优化决策树模型获取所述可编程交换机对应的最优决策树优化方案,包括:根据所述可编程交换机的流水线阶段数以及接收的所述待优化决策树模型,通过预设的渐进式搜索算法获取所述最优比特位阈值、所述最优流表布置方式和最优决策树深度,根据所述最优决策树深度获取所述可编程交换机对应的最优剪枝方案,根据所述最优比特位阈值获取所述可编程交换机对应的最优匹配方式转换方案,根据所述最优流表布置方式获取所述可编程交换机对应的最优流表布置方案;其中,所述渐进式搜索算法用于依次遍历候选优化组合集中的每一个候选优化组合,根据每一个候选优化组合对应的决策树放置精度和数据包处理延迟分别计算获取各所述候选优化组合对应的评价值,将评价值最高的候选优化组合作为最优组合,将所述最优组合中的比特位阈值、流表布置方式和决策树深度分别作为所述最优比特位阈值、所述最优流表布置方式和所述最优决策树深度,所述候选优化组合集由决策树深度范围中的值、所述特征比特位范围中的值和所述预设流表布置方式对应的所有组合方式构成,所述决策树深度范围由所述最大决策树深度确定。
2.根据权利要求1所述的针对可编程交换机的数据包分类方法,其特征在于,所述获取训练数据集以及所述训练数据集对应的目标特征,包括:
获取训练数据集,并获取所述训练数据集中各所述数据包样本对应的所有IP数据包特征,作为待选特征;
根据各所述待选特征对应的重要性值和预设的目标特征数目获取所述目标特征。
3.根据权利要求2所述的针对可编程交换机的数据包分类方法,其特征在于,所述目标特征数目为8,所述目标特征包括:IP不分片标志位、源端口、目的端口、数据包总长度、生存时间、TCP同步标志位、IP协议号位以及TCP重置位。
4.根据权利要求1所述的针对可编程交换机的数据包分类方法,其特征在于,所述根据所述训练数据集和所述目标特征依次获取决策树每一层的各个非叶子节点对应的最优特征和最优特征阈值,并根据所述决策树的每一层的各个非叶子节点对所有所述数据包样本进行划分,包括:
根据所有所述目标特征和所述训练数据集中各所述目标特征对应的取值范围构建待判断节点特征数据集,所述待判断节点特征数据集中包括多个待判断节点特征数据,一个所述待判断节点特征数据由一个目标特征以及该目标特征对应的一个取值构成;
对于任意一个当前节点,分别根据各所述待判断节点特征数据对所述当前节点对应的数据包样本进行划分,并根据划分结果分别计算各所述待判断节点特征数据对应的基尼不纯度,将所述基尼不纯度最小的一个待判断节点特征数据作为最优节点特征数据;
将所述最优节点特征数据对应的目标特征作为所述当前节点的最优特征,将所述最优节点特征数据对应的目标特征的取值作为所述当前节点的最优特征阈值;
根据所述当前节点的最优特征和最优特征阈值对所述当前节点对应的数据包样本进行划分,获得所述当前节点的子节点以及所述子节点对应的数据包样本;
其中,所述当前节点为任意一个所述非叶子节点,所述根节点对应的数据包样本为所述训练数据集中的所有数据包样本。
5.根据权利要求1所述的针对可编程交换机的数据包分类方法,其特征在于,所述获取各所述叶子节点对应的节点类别,包括:
当所述叶子节点对应的所有数据包样本满足所述第一预设条件时,将所述叶子节点的所有数据包样本对应的类别标签作为所述叶子节点的节点类别;
当所述叶子节点对应的所有数据包样本满足所述第二预设条件时,将所述叶子节点对应的最大占比标签作为所述叶子节点的节点类别,其中,所述最大占比标签是所述叶子节点对应的所有类别标签中占据数据包样本的数量最多的类别标签。
6.根据权利要求1所述的针对可编程交换机的数据包分类方法,其特征在于,所述最优剪枝方案包括最优硬剪枝方案和最优软剪枝方案;
对于所述候选优化组合集中的任意一个候选优化组合,所述最优硬剪枝方案包括:删除所述待优化决策树模型中层数大于所述候选优化组合中决策树深度的所有节点并获得硬剪枝决策树;
所述最优软剪枝方案包括:获取所述硬剪枝决策树中的目标父节点,将所述目标父节点的节点类别设置为所述目标父节点的任意一个子节点对应的节点类别,其中,所述目标父节点的所有子节点都为所述冗余叶子节点;删除所述目标父节点的所有子节点。
7.根据权利要求1所述的针对可编程交换机的数据包分类方法,其特征在于,所述根据所述目标可编程交换机对待分类数据包进行分类,包括:
获取待分类数据包并输入所述目标可编程交换机;
根据所述目标决策树模型对所述待分类数据包进行分类,将所述目标决策树模型中与所述待分类数据包对应的叶子节点的节点类别作为所述待分类数据包的数据包类别。
8.一种针对可编程交换机的数据包分类系统,其特征在于,所述系统包括:
待优化决策树模型获取模块,用于获取预先训练完成的待优化决策树模型,并将所述待优化决策树模型发送到可编程交换机,其中,所述待优化决策树模型是根据预先设置的训练数据集获得的决策树;
最优决策树优化方案获取模块,用于根据所述可编程交换机的流水线阶段数以及接收的所述待优化决策树模型获取所述可编程交换机对应的最优决策树优化方案,所述最优决策树优化方案包括最优剪枝方案,所述最优剪枝方案用于根据所述可编程交换机的流水线阶段数限定所述决策树的层数并去除所述决策树的冗余叶子节点;
模型优化部署模块,用于根据所述最优决策树优化方案对所述待优化决策树模型进行优化并获得所述可编程交换机对应的目标决策树模型,将所述目标决策树模型部署到所述可编程交换机中并获得目标可编程交换机;
数据包分类模块,用于根据所述目标可编程交换机对待分类数据包进行分类;
在所述待优化决策树模型获取所述预先训练完成的待优化决策树模型之前,所述系统还用于:获取训练数据集以及所述训练数据集对应的目标特征,其中,所述训练数据集中包括多个数据包样本,每一个所述数据包样本包括所有所述目标特征、各所述目标特征对应的特征值以及所述数据包样本的类别标签;从根节点开始,根据所述训练数据集和所述目标特征依次获取决策树每一层的各个非叶子节点对应的最优特征和最优特征阈值,并根据所述决策树的每一层的各个非叶子节点对所有所述数据包样本进行划分,直到将所有所述数据包样本都划分到叶子节点中并获得所有的叶子节点,其中,一个所述叶子节点对应的所有数据包样本满足第一预设条件或第二预设条件,所述第一预设条件为所有所述数据包样本的类别标签都相同,所述第二预设条件为所有所述数据包样本中相同的目标特征对应的特征值相同;获取各所述叶子节点对应的节点类别;根据各所述非叶子节点对应的最优特征、各所述非叶子节点对应的最优特征阈值以及各所述叶子节点对应的节点类别获得训练完成的待优化决策树模型;
所述最优决策树优化方案还包括最优匹配方式转换方案和最优流表布置方案;所述最优匹配方式转换方案用于从特征比特位范围中限定一个最优比特位阈值,并限定位数大于所述最优比特位阈值的特征值在进行比较时使用范围匹配方式,限定位数不大于所述最优比特位阈值的特征值在进行比较时使用三元匹配方式;所述最优流表布置方案用于从预设流表布置方式中限定一种最优流表布置方式,所述预设流表布置方式包括正常布置方式、再提交布置方式和再循环布置方式,所述正常布置方式对应的最大决策树深度等于所述可编程交换机的流水线阶段数,所述再提交布置方式对应的最大决策树深度是所述可编程交换机的流水线阶段数的2倍,所述再循环布置方式对应的最大决策树深度等于预先设置的循环次数与所述可编程交换机的流水线阶段数的乘积,所述循环次数大于2;
所述根据所述可编程交换机的流水线阶段数以及接收的所述待优化决策树模型获取所述可编程交换机对应的最优决策树优化方案,包括:根据所述可编程交换机的流水线阶段数以及接收的所述待优化决策树模型,通过预设的渐进式搜索算法获取所述最优比特位阈值、所述最优流表布置方式和最优决策树深度,根据所述最优决策树深度获取所述可编程交换机对应的最优剪枝方案,根据所述最优比特位阈值获取所述可编程交换机对应的最优匹配方式转换方案,根据所述最优流表布置方式获取所述可编程交换机对应的最优流表布置方案;其中,所述渐进式搜索算法用于依次遍历候选优化组合集中的每一个候选优化组合,根据每一个候选优化组合对应的决策树放置精度和数据包处理延迟分别计算获取各所述候选优化组合对应的评价值,将评价值最高的候选优化组合作为最优组合,将所述最优组合中的比特位阈值、流表布置方式和决策树深度分别作为所述最优比特位阈值、所述最优流表布置方式和所述最优决策树深度,所述候选优化组合集由决策树深度范围中的值、所述特征比特位范围中的值和所述预设流表布置方式对应的所有组合方式构成,所述决策树深度范围由所述最大决策树深度确定。
9.一种智能终端,其特征在于,所述智能终端包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的针对可编程交换机的数据包分类程序,所述针对可编程交换机的数据包分类程序被所述处理器执行时实现如权利要求1-7任意一项所述针对可编程交换机的数据包分类方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有针对可编程交换机的数据包分类程序,所述针对可编程交换机的数据包分类程序被处理器执行时实现如权利要求1-7任意一项所述针对可编程交换机的数据包分类方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210480817.8A CN114900474B (zh) | 2022-05-05 | 2022-05-05 | 针对可编程交换机的数据包分类方法、系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210480817.8A CN114900474B (zh) | 2022-05-05 | 2022-05-05 | 针对可编程交换机的数据包分类方法、系统及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114900474A CN114900474A (zh) | 2022-08-12 |
CN114900474B true CN114900474B (zh) | 2023-08-22 |
Family
ID=82718862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210480817.8A Active CN114900474B (zh) | 2022-05-05 | 2022-05-05 | 针对可编程交换机的数据包分类方法、系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114900474B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115484157B (zh) * | 2022-09-14 | 2023-06-02 | 浙江大学 | 一种基于可编程交换机的sketch通用配置方法 |
CN117792661A (zh) * | 2022-09-20 | 2024-03-29 | 中兴通讯股份有限公司 | 数据流量的访问控制方法、装置、电子设备及存储介质 |
CN116304920B (zh) * | 2023-02-13 | 2023-10-20 | 中国地质大学(武汉) | 一种流数据分类模型的优化方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523241A (zh) * | 2012-01-09 | 2012-06-27 | 北京邮电大学 | 基于决策树高速并行处理的网络流量在线分类方法及装置 |
CN111222556A (zh) * | 2019-12-31 | 2020-06-02 | 中国南方电网有限责任公司 | 一种基于决策树算法识别用电类别的方法及系统 |
CN111783840A (zh) * | 2020-06-09 | 2020-10-16 | 苏宁金融科技(南京)有限公司 | 一种随机森林模型的可视化方法、装置及存储介质 |
CN114422620A (zh) * | 2021-12-20 | 2022-04-29 | 鹏城实验室 | 一种基于知识蒸馏的数据包分类方法及相关装置 |
-
2022
- 2022-05-05 CN CN202210480817.8A patent/CN114900474B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523241A (zh) * | 2012-01-09 | 2012-06-27 | 北京邮电大学 | 基于决策树高速并行处理的网络流量在线分类方法及装置 |
CN111222556A (zh) * | 2019-12-31 | 2020-06-02 | 中国南方电网有限责任公司 | 一种基于决策树算法识别用电类别的方法及系统 |
CN111783840A (zh) * | 2020-06-09 | 2020-10-16 | 苏宁金融科技(南京)有限公司 | 一种随机森林模型的可视化方法、装置及存储介质 |
CN114422620A (zh) * | 2021-12-20 | 2022-04-29 | 鹏城实验室 | 一种基于知识蒸馏的数据包分类方法及相关装置 |
Non-Patent Citations (1)
Title |
---|
决策树网包分类算法综述;井丽南;叶晓舟;陈晓;;网络新媒体技术(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114900474A (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114900474B (zh) | 针对可编程交换机的数据包分类方法、系统及相关设备 | |
US20200272909A1 (en) | Systems and methods for operating a data center based on a generated machine learning pipeline | |
US9058564B2 (en) | Controlling quarantining and biasing in cataclysms for optimization simulations | |
US9208438B2 (en) | Duplication in decision trees | |
US7353214B2 (en) | Outlier determination rule generation device and outlier detection device, and outlier determination rule generation method and outlier detection method thereof | |
CN106789359B (zh) | 一种基于灰狼算法的网络流量分类方法及装置 | |
CN109961098B (zh) | 一种机器学习的训练数据选择方法 | |
US20150117461A1 (en) | Packet Classification | |
CN110460605B (zh) | 一种基于自动编码的异常网络流量检测方法 | |
CN109388565B (zh) | 基于生成式对抗网络的软件系统性能优化方法 | |
Kirsopp et al. | Case and feature subset selection in case-based software project effort prediction | |
CN114513470B (zh) | 网络流量控制方法、装置、设备及计算机可读存储介质 | |
CN110135603B (zh) | 一种基于改进熵权法的电力网络告警空间特征分析方法 | |
CN116402117B (zh) | 图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法 | |
WO2020024444A1 (zh) | 人群绩效等级识别方法、装置、存储介质及计算机设备 | |
US11570069B2 (en) | Network traffic classification method and system based on improved K-means algorithm | |
TW202001611A (zh) | 多元流動網路之可靠度計算方法及其系統 | |
Xiong et al. | Learning premises of fuzzy rules for knowledge acquisition in classification problems | |
CN115984946A (zh) | 一种基于集成学习的人脸识别模型遗忘方法及系统 | |
Delaplace et al. | Two evolutionary methods for learning bayesian network structures | |
CN106888237B (zh) | 一种数据调度方法及系统 | |
CN111369010B (zh) | 一种信息资产类别识别方法、装置、介质和设备 | |
CN116823699A (zh) | 一种图像的质量评价方法及装置 | |
CN115982634A (zh) | 应用程序分类方法、装置、电子设备及计算机程序产品 | |
Adeke et al. | An efficient approach based on parameter optimization for network traffic classification using machine learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |