CN117131400A - 一种面向数据包分类的元组选择模型及分类方法 - Google Patents
一种面向数据包分类的元组选择模型及分类方法 Download PDFInfo
- Publication number
- CN117131400A CN117131400A CN202310885132.6A CN202310885132A CN117131400A CN 117131400 A CN117131400 A CN 117131400A CN 202310885132 A CN202310885132 A CN 202310885132A CN 117131400 A CN117131400 A CN 117131400A
- Authority
- CN
- China
- Prior art keywords
- tuple
- data packet
- rule
- model
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 239000013598 vector Substances 0.000 claims abstract description 39
- 238000012549 training Methods 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 15
- 230000006978 adaptation Effects 0.000 claims abstract description 10
- 230000009466 transformation Effects 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 10
- 238000003062 neural network model Methods 0.000 claims description 8
- 210000002569 neuron Anatomy 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 230000004913 activation Effects 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims description 3
- 238000010801 machine learning Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Biology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种面向数据包分类的元组选择模型及分类方法,包括输入向量生成单元、元组选择模型单元和规则查找匹配单元。输入向量生成单元将用于转换数据包包头的路由标识为多维输入向量;元组选择模型单元用于训练与元组选择,对输入特征进行任意复杂的非线性变换转换为易分类特征。在实施数据包分类的阶段,元组选择模型单元将输出数据包适配概率最大的元组编号。规则查找匹配单元将用于查询概率最大元组对应的哈希表中对应匹配规则的存储位置,进而获取数据包的处理方式。
Description
技术领域
本发明属于数据包分类方案的设计领域,特别针对基于元组空间搜索类方案中元组选择及高效分类的问题。
背景技术
随着网络架构的不断革新,出现了软件定义网络(Software Defined Network,SDN)等创新型的网络架构。Open vSwitch是该网络功能的核心组件,数据包分类技术是其性能的瓶颈。数据包分类技术的作用是根据网络中数据包包头所携带的信息(如源地址、目的地址、源端口号、目的端口号和协议等)在一套规则集中按照最高优先级匹配的原则,找到该数据包待执行的操作或任务(转发、丢弃等)。当前应用的是元组空间搜索(TupleSpace Search,TSS)算法,该算法需要顺序检索每个元组以实现规则的匹配,不仅查找速度慢、存储消耗大,而且易受到攻击。因此,设计一种高性能的、可扩展的、通用的分类算法来提升该算法性能是非常重要的。
近年来,机器学习因其在预测分析方面具有速度快、成本更低等特点被广泛应用于各个行业。特别是在静态规则系统下,机器学习模型可以智能地学习数据的分布规律,其性能表现良好。而当数据不断变化或添加时,其可以不断调整系统仍旧保持出色的表现。上述机器学习的特点很符合当前数据包分类技术的需求,因此,亟需将机器学习技术与数据包分类技术相结合,以提升数据包分类性能。
发明内容
针对上述问题及现有技术,本发明提出了一种面向数据包分类的元组选择模型及分类方法。该方法结合了现有的基于元组空间搜索类方案,通过构建、训练机器学习模型,使得数据包在规则匹配过程中能快速对应至唯一正确的元组,以提升基于元组空间搜索类的数据包分类方案的高效性。
针对上述整体运行过程,本发明中提出了一种面向数据包分类的元组选择模型及分类方法,其结构主要包括输入向量生成单元、元组选择模型单元和规则查找匹配单元。所述输入向量生成单元将用于转换数据包包头的路由标识为多维向量,得到索引该数据包对应的输入向量。所述元组选择模型单元将用于训练与元组选择,将输入特征进行任意复杂的非线性变换转换为易分类特征。在实施数据包分类的阶段,元组选择模型单元将输出数据包适配概率最大的元组编号。所述规则查找匹配单元将用于查询概率最大元组对应的哈希表中对应匹配规则的存储位置,进而获取数据包的处理方式。元组选择模型单元中的模型训练步骤如下:
步骤一、构建训练数据集:
1-1)划分规则集:利用合并元组空间搜索方案对规则集进行元组划分。
1-2)根据优先级加链:依据规则的优先级,将不同元组内的相似规则按其优先级高低进行连接。
1-3)生成数据包数据集:为每个元组生成相同数量的符合元组结构的数据包。
1-4)处理数据包包头标识:将数据包包头中的路由标识转换为十进制数字形式的向量,形成向量集合。
1-5)构建训练集:将每个数据包用其所对应的元组编号作为其标签进行标定。
步骤二、设计与训练模型:设定初始神经元数量与激活函数,利用1-4)中生成的训练集训练元组选择模型单元中的神经网络模型,学习出一个可实现多分类任务的函数。
步骤三、调整模型参数:通过测试模型训练的准确率、误差等,调整模型输入层及隐藏层的神经元的个数、激活函数等参数。
步骤四、训练过程结束:训练完成后,元组选择模型单元中的神经网络模型可以提供输入向量在每个类别中的概率。
同时,本发明还提出了基于上述元组选择模型的面向数据包分类的分类方法,即利用训练后的神经网络模型实现基于元组空间搜索类方案的数据包分类,具体步骤如下:
步骤一、处理数据包包头标识:将需要分类的数据包输入至输入向量生成单元,将其包头的路由标识转换为向量。
步骤二、输入模型中得到概率:将步骤一所得的向量输入至元组选择模型单元中,已训练好的模型将输出该数据包与各个元组之间的适配概率。
步骤三、选择元组编号:比较所有输出的适配概率,选出应查询的概率最大的元组编号。
步骤四、查询匹配规则:在规则查找匹配单元中,按照步骤三中所选元组的结构,截取出对应长度的数据包路由标识前缀并连接,形成哈希键值。利用哈希后所得索引值即可得到与数据包匹配的规则在表中的位置,有链则查链所指位置,进而获取数据包的处理方式。
与现有技术相比,本发明的有益效果是:
评价数据包分类技术的性能指标主要为数据包分类时间与存储结构消耗两个方面。分类时间方面,基于机器学习技术,模型可以智能地学习出符合元组分组规律的数据包特征,使得分类时元组检索的时间复杂度由O(n)提升至O(1)。存储结构消耗方面,模型部分相当于现有元组空间类方案中元组线性存储的部分,经实验结果表明,其内存消耗与现有此类方案所需要的存储消耗相差不大。同时,该分类方法由于采用哈希表存储规则,能够满足快速更新性。
附图说明
图1为本发明一种面向数据包分类的元组选择模型及分类方法的训练方法的流程框图;
图2为本发明一种面向数据包分类的元组选择模型及分类方法的分类方法的流程框图;
图3为本发明一种面向数据包分类的元组选择模型及分类方法的结构图。
图4为本发明一种面向数据包分类的元组选择模型及分类方法的实例图。
具体实施方式
下面结合附图及具体实施例对本发明做进一步的说明,但下述实施例绝非对本发明有任何限制。
本发明提出的一种面向数据包分类的元组选择模型及分类方法,其结构主要包含输入向量生成单元、元组选择模型单元和规则查找匹配单元。所述输入向量生成单元将用于转换数据包包头的路由标识为多维向量,得到索引该数据包对应的输入向量。所述元组选择模型单元将用于训练与元组选择,该部分设计为三层结构,每层设计若干个神经元,将输入特征进行任意复杂的非线性变换转换为易分类特征。在实施数据包分类的阶段,元组选择模型单元将输出数据包适配概率最大的元组编号。所述规则查找匹配单元将用于查询概率最大元组对应的哈希表中对应匹配规则的存储位置,进而获取数据包的处理方式。
同时,本发明还提出了基于该元组选择模型的面向数据包分类的分类方法,即利用训练后的神经网络模型实现基于元组空间搜索类方案的数据包分类,分类方法如图2所示。首先,处理数据包包头标识,将需要分类的数据包输入至输入向量生成单元,将其包头的路由标识转换为向量;随后,将所得的向量输入至元组选择模型单元中,已训练好的模型将输出该数据包与各个元组之间的适配概率,比较所有输出的适配概率后,选出应查询的概率最大的元组编号。最后,在规则查找匹配单元中,按照所选元组的结构,截取出对应长度的数据包路由标识前缀并连接,形成哈希键值。利用哈希后所得索引值即可得到与数据包匹配的规则在表中的位置,进而获取数据包的处理方式。
如图1所示,针对上述面向数据包分类的元组选择模型的训练方法,具体步骤如下:
步骤一、构建训练数据集:
1-1)划分规则集:利用合并元组空间搜索方案对规则集进行元组划分。
1-2)根据优先级加链:依据规则的优先级,将不同元组内的相似规则按其优先级高低进行连接。
1-3)生成数据包数据集:为每个元组生成相同数量的符合元组结构的数据包。
1-4)处理数据包包头标识:将数据包包头中的路由标识转换为十进制数字形式的向量,形成向量集合。
1-5)构建训练集:将每个数据包用其所对应的元组编号作为其标签进行标定。
步骤二、设计与训练模型:设定初始神经元数量与激活函数,利用1-4)中生成的训练集训练元组选择模型单元中的神经网络模型,学习出一个可实现多分类任务的函数。
步骤三、调整模型参数:通过测试模型训练的准确率、误差等,调整模型输入层及隐藏层的神经元的个数、激活函数等参数。
步骤四、训练过程结束:训练完成后,元组选择模型单元中的神经网络模型可以提供输入向量在每个类别中的概率。
实施例1:
本发明中,训练完成后基于该元组选择模型进行数据包分类的一个实例如图3所示,其中箭头线标示了一个实际数据包匹配规则实现分类的过程。先将包头标识为(2839616511,4097389783)的数据包输入至输入向量生成单元,包头标识将被转换为二进制形式(10101001010000010001101111111111,11110100001110010011010011010111),再进行分割,转化为八个十进制数字,获得对应的输入向量(169,65,27,255,244,57,52,215)。之后,将输入向量输入至元组选择模型单元中。假设模型输出每个元组的概率分别为(0.811,0.101,...,0.002)(概率之和为1),即第一个元组适配概率最大,则依据第一个元组结构即前缀组合为(32,32),处理数据包包头标识,形成哈希键值,在规则查找匹配单元中执行哈希操作,查询元组对应的哈希表匹配至规则R2,该规则内存中不存在链结构,则直接获取R2的数据包处理方式。
实施例2:
本发明中,训练完成后基于该元组选择模型进行数据包分类的另一个实例如图4所示,其中箭头线标示了一个实际数据包匹配规则实现分类的过程。先将包头标识为(2670103552,1402282866)的数据包输入至输入向量生成单元,包头标识将被转换为二进制形式(10011111001001101000110000000000,01010011100101010010001101110010),再进行分割,转化为八个十进制数字,获得对应的输入向量(159,38,140,0,83,149,35,114)。之后,将输入向量输入至元组选择模型单元中。假设模型输出每个元组的概率分别为(0.921,0.010,...,0.001)(概率之和为1),即第一个元组适配概率最大,则依据第一个元组结构即前缀组合为(32,32),处理数据包包头标识,形成哈希键值,在规则查找匹配单元中执行哈希操作,查询元组对应的哈希表匹配至规则R5,该规则内存中存在链结构,依据链结构所指规则,进而获取规则R4的数据包处理方式。
尽管上面结合附图对本发明进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨的情况下,还可以做出很多变形,这些均属于本发明的保护之内。
Claims (3)
1.一种面向数据包分类的元组选择模型及分类方法,包括输入向量生成单元、元组选择模型单元和规则查找匹配单元,其特征在于,
所述输入向量生成单元将用于转换数据包包头的路由标识为多维向量,得到索引该数据包对应的输入向量。所述元组选择模型单元将用于训练与元组选择,将输入特征进行任意复杂的非线性变换转换为易分类特征。在实施数据包分类的阶段,元组选择模型单元将输出数据包适配概率最大的元组编号。所述规则查找匹配单元将用于查询概率最大元组对应的哈希表中对应匹配规则的存储位置,进而获取数据包的处理方式。
2.根据权利要求1所述的元组选择模型单元,其特征在于,
步骤一、构建训练数据集:
1-1)划分规则集:利用合并元组空间搜索方案对规则集进行元组划分。
1-2)根据优先级加链:依据规则的优先级,将不同元组内的相似规则按其优先级高低进行连接。
1-3)生成数据包数据集:为每个元组生成相同数量的符合元组结构的数据包。
1-4)处理数据包包头标识:将数据包包头中的路由标识转换为十进制数字形式的向量,形成向量集合。
1-5)构建训练集:将每个数据包用其所对应的元组编号作为其标签进行标定。
步骤二、设计与训练模型:设定初始神经元数量与激活函数,利用1-4)中生成的训练集训练元组选择模型单元中的神经网络模型,学习出一个可实现多分类任务的函数。
步骤三、调整模型参数:通过测试模型训练的准确率、误差等,调整模型输入层及隐藏层的神经元的个数、激活函数等参数。
步骤四、训练过程结束:训练完成后,元组选择模型单元中的神经网络模型可以提供输入向量在每个类别中的概率。
3.根据权利要求1所述的一种面向数据包分类的分类方法,其特征在于,
步骤一、处理数据包包头标识:将需要分类的数据包输入至输入向量生成单元,将其包头的路由标识转换为向量。
步骤二、输入模型中得到概率:将步骤一所得的向量输入至元组选择模型单元中,已训练好的模型将输出该数据包与各个元组之间的适配概率。
步骤三、选择元组编号:比较所有输出的适配概率,选出应查询的概率最大的元组编号。
步骤四、查询匹配规则:在规则查找匹配单元中,按照步骤三中所选元组的结构,截取出对应长度的数据包路由标识前缀并连接,形成哈希键值。利用哈希后所得索引值即可得到与数据包匹配的规则在表中的位置,有链则查链所指位置,进而获取数据包的处理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310885132.6A CN117131400A (zh) | 2023-07-19 | 2023-07-19 | 一种面向数据包分类的元组选择模型及分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310885132.6A CN117131400A (zh) | 2023-07-19 | 2023-07-19 | 一种面向数据包分类的元组选择模型及分类方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117131400A true CN117131400A (zh) | 2023-11-28 |
Family
ID=88851780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310885132.6A Pending CN117131400A (zh) | 2023-07-19 | 2023-07-19 | 一种面向数据包分类的元组选择模型及分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117131400A (zh) |
-
2023
- 2023-07-19 CN CN202310885132.6A patent/CN117131400A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6957215B2 (en) | Multi-dimensional associative search engine | |
Abbasi et al. | Enhancing the performance of flow classification in SDN-based intelligent vehicular networks | |
CN103248573A (zh) | 面向OpenFlow的集中管理交换机及其数据处理方法 | |
CN108875064A (zh) | 基于FPGA的OpenFlow多维数据匹配查找方法 | |
Yang et al. | Fast OpenFlow table lookup with fast update | |
Abbasi et al. | MBitCuts: optimal bit-level cutting in geometric space packet classification | |
CN107704868A (zh) | 基于移动应用使用行为的用户分群聚类方法 | |
CN101500012B (zh) | 一种报文分类方法和系统 | |
CN107943826A (zh) | 一种适用于多类字段的高速数据流分类装置及方法 | |
US11301751B2 (en) | Using programmable switching chips as artificial neural networks engines | |
US20130268729A1 (en) | Scalable packet classification using associative memory | |
CN106020724A (zh) | 一种基于数据映射算法的近邻存储方法 | |
CN117131400A (zh) | 一种面向数据包分类的元组选择模型及分类方法 | |
Xu et al. | Soda: Similar 3d object detection accelerator at network edge for autonomous driving | |
Ying et al. | Self-optimizing feature generation via categorical hashing representation and hierarchical reinforcement crossing | |
CN111163077A (zh) | 一种基于网络处理器实现多维连续掩码的系统和方法 | |
CN109086815B (zh) | 基于fpga的决策树模型中的浮点数离散化方法 | |
Alimohammadi et al. | Clustering-based many-field packet classification in software-defined networking | |
Soylu et al. | Bit vector-coded simple CART structure for low latency traffic classification on FPGAs | |
Srinivasavarma et al. | Hardware-based multi-match packet classification in NIDS: an overview and novel extensions for improving the energy efficiency of TCAM-based classifiers | |
Srinivasan et al. | Scalable and parallel aggregated bit vector packet classification using prefix computation model | |
CN112769703A (zh) | 一种高效的基于sram的tcam实现方法 | |
Jiang et al. | Scalable packet classification: Cutting or merging? | |
Soylu et al. | Real-time traffic classification using simple CART forest on FPGAs | |
Li et al. | Packet classification using community detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |