基于决策树高速并行处理的网络流量在线分类方法及装置的制作方法

文档序号:7886939阅读:227来源:国知局
专利名称:基于决策树高速并行处理的网络流量在线分类方法及装置的制作方法
技术领域
本发明涉及一种网络流量在线分类的方法及装置,尤其涉及一种基于决策树高速并行处理策略实现TCP流量在线分类的方法及装置,属于通信技术领域。
背景技术
如今,网络技术的发展越来越迅速,基于网络的应用越来越多、越来越复杂。各种各样的应用不但抢占着越来越多的网络资源,而且也对QoS和网络安全带来了巨大的威胁。在这样的背景下,如何给广大的互联网用户提供一个安全、可靠、高效的使用环境,如何发现并避免网络的异常流量,是网络管理领域需要解决的重要问题。为了解决上述这些问题,网络研究人员提出了流量调度、容量规划等一系列策略来提高网络的运营效率。然而, 无论是对现有网络进行扩容改造,还是进行QoS调度,都必须对网络流量中的各种应用(如 P2P、ffeb、IM、视频流量等)进行准确的分类与识别。此外,在网络安全、流量计费、应用趋势分析等研究领域,准确的流量分类也具有极其重要的意义。有线宽带和3G/4G的迅速推广, 使得流量分类这一有效进行网络精细化管理的工具更有广阔的应用前景。
传统的流量分类技术主要基于传输层的端口信息,然而近年来,在互联网网络带宽不断提高以及应用层协议逐渐复杂多样的趋势下,许多网络应用与端口的相关性越来越小,伪装端口以及动态端口等情况使得上述方法已经很难适应技术和应用的发展与需求, 这就迫切需要引入新的理论和技术,深层次挖掘网络应用的内在特征。为了适应hternet 流量数据庞大、应用属性动态变化的特点,利用机器学习方法处理流量分类问题成为当前网络测量领域内一个新兴的研究热点。例如朴素贝叶斯算法、改进贝叶斯算法、决策树算法、KNN算法、支持向量机算法、神经网络算法以及各种聚类算法等等。基于机器学习的流量分类技术不依赖于传输层端口号或解析有效负载来识别网络应用,而是利用流量在传输过程中表现出来的流的各种统计特征如包长、包间隔时间等来识别网络应用,方法本身不受伪装端口、动态端口、有效负载加密甚至网络地址转换的影响,在分类性能和灵活性方面, 较之前述各种方法都有所突破。
然而,目前业界对流量分类技术的研究还远远无法满足业务发展的需求,主要体现在目前大多数技术都采用离线分类的手段,无法实现实时在线的分类。这就限制了流量分类技术在高速骨干网中的应用。
为了满足目前和未来高速骨干网的需要,流量分类技术迫切需要满足以下几点要求1)分类准确性较高,避免采用端口或者净荷作为主要识别特征;幻算法复杂度较低,具体实现设计上要有并行化处理的特性,易于硬件实现(如FPGA、CPLD、ASIC等),保证网络流量的高速在线分类;幻分类稳定性较好,能够适用于复杂多变的网络环境。发明内容
本发明提供了一种基于决策树高速并行处理策略实现TCP流量在线分类的方法及装置,能够实现网络流量的高速实时在线分类,稳定性好,准确性高。
为实现上述的发明目的,本发明采用下述的技术方案
一种基于决策树高速并行处理策略实现TCP流量在线分类的方法,其特征在于包括以下步骤
步骤1,前期真实流量数据的采集、分流及手工分类采集网络真实流量数据集, 利用五元组将数据集分离为不同的TCP流,对TCP流的集合进行手工分类,使每一条TCP流都与一种协议类型相对应。
步骤2,提取前期TCP流集合的若干个包特征提取每一条TCP流中关于数据包的特征,并按照数据包在该TCP流的先后顺序构建初步特征序列,然后根据特征选择算法对初步提取的包特征进行处理,筛选出最能体现流类别特性的包特征并形成最终特征序列。
步骤3,决策树分类模型的建立对步骤2构成的最终特征序列,利用决策树算法进行建树。
步骤4,对步骤3中建立的决策树进行数据结构转换并存储到硬件设备(如FPGA、 CPLD、ASIC等)的存储设备(如RAM、R0M、FLASH等)中通过对决策树的遍历,一方面提取决策树的中间节点值,对同一属性的各中间节点值进行从小到大的排序,然后对所有属性的各个中间节点值按顺序进行从小到大的编码,另一方面提取决策树的边缘节点值,对边缘节点值同样也进行编码,边缘节点值的编码是一个范围,取决于到达该边缘节点所经历的各中间节点的编码值。中间节点值及其编码以及边缘节点值及其编码分别存储在两块分离的存储设备(如RAM、R0M、FLASH等)中。其中在流量分类装置用于网络流量在线分类之前,以离线处理的方式建立决策树并对决策树进行数据结构转换。
步骤5,对待分类的数据包进行分流及类别判断根据五元组将数据包划分到不同的流并查找流信息表获取分类信息,流信息表用于记录流的五元组信息以及该条流的类别。流信息表仅需要保存已分类的流的记录,不需要保存未分类的流的记录,因此对流信息表进行查找时,若不存在记录则可以立即判断为未分类,从而节省查找时间。
步骤6,对当前数据包进行打标签处理并提取待分类TCP流的包特征利用步骤5 提取的类别信息对所有经过的数据包进行打标签处理,若数据包所属的流已经被分类,则打上相应的类别标签,若未分类,则按照一定的原则标记一个默认的标签,然后判断该数据包是否需要被提取包特征并做相应处理。在这里,包特征的提取与步骤2中采用的最终特征序列相对应,需要按包到达顺序进行提取,并构建待分类流的特征序列,包的顺序信息按照到达观测点的时间顺序进行排列,取三次握手的第一个请求包即Setup包作为该流的第一个包。待分类流的特征序列存储在参数表中,参数表的一条记录包括五元组、各个包特征值以及参数是否满的标志。已分类被打上正确标签的包与未分类打上默认标签且需要进行参数提取的包需要进行时钟同步处理,即插入相应级别的流水线以保证数据包传输路线上的FIFO不会出现溢出现象。
步骤7,决策树查找利用步骤6所得的待分类流的特征序列对步骤4所得的两块存储设备(如RAM、ROM、FLASH等)进行查找,判断该TCP流的类别值并更新流信息表。在查找过程中采用并行处理策略,仅需要两个时钟周期即可完成决策树的查找过程。即第一个时钟周期并行比较所有属性的所有中间节点值,确定该流所属的所有中间节点编码值并合并为一个数据,第二个时钟周期利用前一个时钟周期的结果数据并行比较所有边缘节点的编码值,从而确定该流的类别。
一种基于硬件设备(如FPGA、CPLD、ASIC等)的流量在线分类装置,用于实现上述的利用决策树高速并行处理策略实现TCP流量在线分类的装置包括在线部分和离线部分, 其中离线部分具有决策树建树模块、决策树结构转换模块、分类结果处理模块;在线部分包括顺序连接的MAC层处理模块一、数据包轮询管理模块、分流判断模块、流量信息提取及打标签模块、决策树查找模块、MAC层处理模块二。其中,离线部分的决策树结构转换模块与在线部分的决策树查找模块相连接,离线部分的分类结果处理模块与在线部分的决策树查找模块通过一个流信息表间接连接。在线部分采用流水线处理技术。
决策树建树模块,用于根据前期真实网络数据流量建立决策树模型。
决策树结构转换模块,用于将决策树模型的结构进行转换,使之成为易于硬件实现的另一种数据结构并存储到硬件设备(如FPGA、CPLD、ASIC等)的存储设备(如RAM、 ROM、FLASH等)中通过对决策树的遍历,一方面提取决策树的中间节点值,对同一属性的各中间节点值进行从小到大的排序,然后对所有属性的各个中间节点值按顺序进行从小到大的编码,另一方面提取决策树的边缘节点值,对边缘节点值同样也进行编码,边缘节点值的编码是一个范围,取决于到达该边缘节点所经历的各中间节点的编码值。中间节点值及其编码以及边缘节点值及其编码分别存储在两块分离的存储设备(如RAM、R0M、FLASH等) 中。
MAC层处理模块如今有许多现成的IP核可以采用。
数据包轮询管理模块,用于从N个数据包缓冲队列中读取数据包,此处采用轮询式访问每个输入队列,直到从一个队列读完一个完整的数据包才转到下一个队列。
分流判断模块,用于根据五元组将数据包划分到不同的流,判断该条流是否被分类,如果被分类,类别值是多少,并维护流信息表。流信息表用于记录流的五元组信息以及该条流的类别。流信息表仅由决策树查找模块进行更新处理,其他模块均不能对流信息表进行写操作。
流量信息提取及打标签模块,用于对未分类的数据包进行流特征提取并对所有数据包进行打标签处理。该模块需要维护一张参数表,参数表记录各条流的五元组信息、特征值以及特征值是否满的标志。特征值满的流的参数信息被发送到决策树查找模块。
决策树查找模块,用于利用流量信息提取及打标签模块发送的待分类流的特征序列对决策树结构转换模块所得的两块存储设备(如RAM、ROM、FLASH等)进行查找,判断该 TCP流的类别值并更新流信息表。在查找过程中采用并行处理策略,仅需要两个时钟周期即可完成决策树的查找过程。即第一个时钟周期并行查找所有属性的所有中间节点值,确定该流所属的所有中间节点编码值并合并为一个数据,第二个时钟周期利用前一个时钟周期的结果数据并行查找所有边缘节点的编码值,从而确定该流的类别,并将分类结果发送至流信息表以对流信息表中的记录进行更新。
分类结果处理模块,用于对流量分类的结果进行汇总、处理及界面显示。
因此,本发明提供的流量分类方法和装置,具有以下优点对决策树的结构进行了转换,使之转换成一种易于硬件实现的数据结构,降低了算法本身的复杂度;决策树查找过程中使用了并行查找和流水线技术,提高了处理速度;选取的包特征提取过程简单,易于在线完成;利用了决策树本身所具有的准确度高、稳定性好的特点。总之,较低的算法复杂度、 高效的硬件在线实现方式、准确稳定的流量分类结果构成了本发明的最大特色。


为了更清楚地说明本发明,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显然地,下面描述中的附图仅仅是本发明的流量分类方法流程图、流量分类装置的结构示意图,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得的更多的附图。
图1是本发明一个实施例提供的流量分类方法流程图2是本发明一个实施例提供的流量分类装置的结构示意图;具体实施方式
下面将结合本发明实施例的附图,对本发明实施例中的技术方案和装置进行清楚、完整地描述。此具体实施方式
以决策树中C4. 5算法为例进行详细描述,但是此方法同样适适用于其它决策树算法。此实施例基于FPGA实现,采用的存储设备是RAM,同样适用于其他硬件设备(如FPGA、CPLD、ASIC等)及存储设备(如RAM、R0M、FLASH等)。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
图1为本发明一个实施例提供的流量分类方法的流程图,该方法包括
SlOl 在不同时间从不同地点收集多个网络流量数据集,并对数据集进行分流和手工分类。
网络流量分类装置一般部署在一定的网络中。决策树算法需要利用网络中的真实流量进行训练,以构建决策树分类模型,因此需要在准备部署的网络中设置网络探针,以便从网络中采集真实流量。上述的真实流量数据集包括用于手工分类确定流量协议类型所需的信息,以及数据包长、包间隔时间、包方向等后续步骤所需的特征参数;从传输层协议上看,数据流中至少包含TCP流和UDP流。需要把流量数据集按照{源地址、目的地址、源端口、目的端口、传输层协议类型}五元组将所得流量数据集分离为不同的TCP流,这样流量数据集就变为了 TCP流的集合;其中,TCP流的头部的判断依据可以使用但不限于TCP流中的ktUp、ktUp/ACK、ACK数据包;并且一个数据流中数据包必须按照达到观测点的先后顺序排列。采用载荷分析等方法,以离线方式获得TCP数据流的协议类型,如WffW、MAIL、FTP、 P2P 等。
S102 提取前期TCP流集合的若干个包特征。
提取每一条TCP流中关于数据包的特征,即提取每条流头部10个包的包长、包间隔时间以及包传送方向。在本步骤,提取的每条流的包特征有三大类,一类是包长属性,一类是包间隔属性、另一类是包方向。也就是第一个包的包长、第二个包的包长、第三个包的包长……第十个包的包长;第一个包与第零个包的间隔时间(为0)、第二个包与第一个包的间隔时间、第三个包与第二个包的间隔时间…….第十个包与第九个包的间隔时间;第一个包的方向、第二个包的方向、第三个包的方向……第十个包的方向。并按照数据包在该 TCP流的先后顺序构建初步特征序列,然后利用特征选择算法对包特征进行筛选,得到最终特征序列。8
S103 建立决策树分类模型。
利用高级编程语言如JaviMatlab等或直接利用机器学习Weka软件,根据前期真实网络数据流量,基于经典的C4. 5算法建立决策树模型。
S104 对决策树进行结构转换并存储到FPGA的RAM中。
通过对决策树的遍历,一方面提取决策树的中间节点值,即对所有的路径进行从上到下的遍历及中间节点值的提取。一条路径上可能有基于不同属性的中间节点,同一种属性的中间节点也可能存在于不同的路径上。对一棵树的所有中间节点值进行提取后汇总结果,然后对同一属性的各中间节点值进行从小到大的排序,然后对所有属性的各个中间节点值按顺序进行从小到大的编码。例如,若包长属性的中间节点值从小到大分别为70、 80、90、100、110,编码位数为3,则中间节点值70编码为000,中间节点值80编码为001,中间节点值90编码为010,中间节点值100编码为011,中间节点值110编码为100 ;包间隔属性及包方向属性中间节点值的编码与此类似。另一方面提取决策树的边缘节点值,对边缘节点值同样也进行编码,边缘节点值的编码是一个范围,取决于到达该边缘节点的路径所经历的各中间节点的编码值。中间节点值及其编码以及边缘节点值及其编码分别存储在两块分离的RAM中。其中在流量分类装置用于网络流量在线分类之前,以离线处理的方式建立决策树并对决策树进行数据结构转换。
两块RAM的存储结构如表1、表2所示。表中一行为一个记录,每一个记录存储一个中间节点值及该中间节点值的编码值。其中,nl表示第1个属性的中间节点总数,n2表示第2个属性的中间节点总数,nk表示第k个属性的中间节点总数,m表示协议类型的总数。
表1中间节点值及其编码值在RAM中的存储方式
权利要求
1.一种基于决策树高速并行处理策略实现TCP流量在线分类的方法,其特征在于包括以下步骤步骤1,前期真实流量数据的采集、分流及手工分类采集网络真实流量数据集,利用五元组将数据集分离为不同的TCP流,对TCP流的集合进行手工分类,使每一条TCP流都与一种协议类型相对应。步骤2,提取前期TCP流集合的若干个包特征提取每一条TCP流中关于数据包的特征,并按照数据包在该TCP流的先后顺序构建初步特征序列,然后对包特征进行筛选,得到最终特征序列。步骤3,决策树分类模型的建立对步骤2构成的最终特征序列,利用决策树算法进行建树。步骤4,对步骤3中建立的决策树进行数据结构转换并存储到硬件设备(如FPGA、 CPLD、ASIC等)的存储设备(如RAM、R0M、FLASH等)中通过对决策树的遍历,一方面提取决策树的中间节点值,对同一属性的各中间节点值进行从小到大的排序,然后对所有属性的各个中间节点值按顺序进行从小到大的编码,另一方面提取决策树的边缘节点值,对边缘节点值同样也进行编码,边缘节点值的编码是一个范围,取决于到达该边缘节点所经历的各中间节点的编码值。中间节点值及其编码以及边缘节点值及其编码分别存储在两块分离的存储设备(如RAM、ROM、FLASH等)中。步骤5,对待分类的数据包进行分流及类别判断根据五元组将数据包划分到不同的流并查找流信息表获取分类信息,流信息表用于记录流的五元组信息以及该条流的类别。步骤6,对当前数据包进行打标签处理并提取待分类TCP流的包特征利用步骤5提取的类别信息对所有经过的数据包进行打标签处理,若数据包所属的流已经被分类,则打上相应的类别标签,若未分类,则按照一定的原则标记一个默认的标签,然后判断该数据包是否需要被提取包特征并做相应处理。在这里,包特征的提取与步骤2中采用的最终特征序列相对应,需要按包到达顺序进行提取,并构建待分类流的特征序列,待分类流的特征序列存储在参数表中,参数表的一条记录包括五元组、各个包特征值以及参数是否满的标志。步骤7,决策树查找利用步骤6所得的待分类流的特征序列对步骤4所得的两块存储设备(如RAM、ROM、FLASH等)进行查找,判断该TCP流的类别值并更新流信息表。
2.根据权利要求1所述的TCP流量在线分类方法,其特征在于其中在流量分类装置用于网络流量在线分类之前,以离线处理的方式建立决策树并对决策树进行数据结构转换。
3.根据权利要求1所述的TCP流量在线分类方法,其特征在于所述步骤2中,需根据特征选择算法对初步提取的若干个包特征进行处理,筛选出最能体现流类别特性的包特征。
4.根据权利要求1所述的TCP流量在线分类方法,其特征在于所述步骤5中,流信息表仅需要保存已分类的流的记录,不需要保存未分类的流的记录,因此对流信息表进行查找时,若不存在记录则可以立即判断为未分类,从而节省查找时间。
5.根据权利要求1所述的TCP流量在线分类方法,其特征在于所述步骤6中,包的顺序信息按照到达观测点的时间顺序进行排列,取三次握手的第一个请求包即Setup包作为该流的第一个包。
6.根据权利要求1所述的TCP流量在线分类方法,其特征在于所述步骤6中,已分类被打上正确标签的包与未分类打上默认标签且需要进行参数提取的包需要进行时钟同步处理,即插入相应级别的流水线以保证数据包传输路线上的FIFO 不会出现溢出现象。
7.根据权利要求1所述的TCP流量在线分类方法,其特征在于所述步骤7中,采用并行查找的方式及流水线的结构以提高查找速度,在不考虑其他读写信号及时钟同步处理的情况下,仅需要两个时钟周期即可完成决策树的查找过程。即第一个时钟周期并行比较所有属性的所有中间节点值,确定该流所属的所有中间节点编码值并合并为一个数据,第二个时钟周期利用前一个时钟周期的结果数据并行比较所有边缘节点的编码值,从而确定该流的类别。
8.一种基于硬件设备(如FPGA、CPLD、ASIC等)的流量在线分类装置,用于实现如权利要求1所述的利用决策树高速并行处理策略实现TCP流量在线分类的装置包括在线部分和离线部分,其中离线部分具有决策树建树模块、决策树结构转换模块、分类结果处理模块;在线部分包括顺序连接的MAC层处理模块一、数据包轮询管理模块、分流判断模块、流量信息提取及打标签模块、决策树查找模块、MAC层处理模块二。在线部分采用流水线处理技术。决策树建树模块,用于根据前期真实网络数据流量建立决策树模型。决策树结构转换模块,用于将决策树模型的结构进行转换,使之成为易于硬件实现的另一种数据结构并存储到硬件设备(如FPGA、CPLD、ASIC等)的存储设备(如RAM、ROM、 FLASH等)中通过对决策树的遍历,一方面提取决策树的中间节点值,对同一属性的各中间节点值进行从小到大的排序,然后对所有属性的各个中间节点值按顺序进行从小到大的编码,另一方面提取决策树的边缘节点值,对边缘节点值同样也进行编码,边缘节点值的编码是一个范围,取决于到达该边缘节点所经历的各中间节点的编码值。中间节点值及其编码以及边缘节点值及其编码分别存储在两块分离的存储设备(如RAM、ROM、FLASH等)中。MAC层处理模块如今有许多现成的IP核可以采用。数据包轮询管理模块,用于从N个数据包缓冲队列中读取数据包,此处采用轮询式访问每个输入队列,直到从一个队列读完一个完整的数据包才转到下一个队列。分流判断模块,用于根据五元组将数据包划分到不同的流,判断该条流是否被分类,如果被分类类别值是多少,并维护流信息表,流信息表用于记录流的五元组信息以及该条流的类别。流量信息提取及打标签模块,用于对未分类的数据包进行流特征提取并对所有数据包进行打标签处理。该模块需要维护一张参数表,参数表记录各条流的五元组信息、特征值以及特征值是否满的标志。特征值满的流的参数信息被发送到决策树查找模块。决策树查找模块,用于利用流量信息提取及打标签模块发送的待分类流的特征序列对决策树结构转换模块所得的两块存储设备(如RAM、ROM、FLASH等)进行查找,判断该TCP 流的类别值并更新流信息表。在查找过程中采用并行处理策略,仅需要两个时钟周期即可完成决策树的查找过程。即第一个时钟周期并行比较所有属性的所有中间节点值,确定该流所属的所有中间节点编码值并合并为一个数据,第二个时钟周期利用前一个时钟周期的结果数据并行比较所有边缘节点的编码值,从而确定该流的类别,并将分类结果发送至流信息表以对流信息表中的记录进行更新。分类结果处理模块,用于对流量分类的结果进行汇总、处理及界面显示。
9.根据权利要求8所述的TCP流量在线分类装置,其特征在于离线部分的决策树结构转换模块与在线部分的决策树查找模块相连接,离线部分的分类结果处理模块与在线部分的决策树查找模块通过一个流信息表间接连接。
10.根据权利要求8所述的TCP流量在线分类装置,其特征在于所述离线部分还具有前期数据流量采集模块、前期数据流分流模块、前期数据流人工分类模块、前期数据流特征提取模块。
全文摘要
本发明涉及一种基于决策树高速并行处理策略实现TCP流量在线分类的方法及装置,其中该方法包括对前期真实流量数据的采集、分流及手工分类,提取前期TCP流集合包特征,建立决策树分类模型及转换数据结构,对待分类数据包进行分流及类别判断,对当前数据包进行打标签处理并提取待分类TCP流包特征,查找决策树;该装置包括决策树建树模块,结构转换模块,分类结果处理模块,MAC层处理模块,数据包轮询管理模块,分流判断模块,流量信息提取及打标签模块,决策树查找模块。本发明的算法复杂度低,具有较高的处理速度,能够完成在线分类,分类准确度高、稳定性好,可用于高速骨干网中需要在线流量分类的设备和系统中。
文档编号H04L29/06GK102523241SQ201210006268
公开日2012年6月27日 申请日期2012年1月9日 优先权日2012年1月9日
发明者纪越峰, 许艳红, 顾仁涛 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1