CN103546441A - 基于多级决策树的协议识别方法 - Google Patents

基于多级决策树的协议识别方法 Download PDF

Info

Publication number
CN103546441A
CN103546441A CN201210246438.9A CN201210246438A CN103546441A CN 103546441 A CN103546441 A CN 103546441A CN 201210246438 A CN201210246438 A CN 201210246438A CN 103546441 A CN103546441 A CN 103546441A
Authority
CN
China
Prior art keywords
level
classification
decision tree
training
protocol
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.)
Granted
Application number
CN201210246438.9A
Other languages
English (en)
Other versions
CN103546441B (zh
Inventor
薛一波
王大伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201210246438.9A priority Critical patent/CN103546441B/zh
Publication of CN103546441A publication Critical patent/CN103546441A/zh
Application granted granted Critical
Publication of CN103546441B publication Critical patent/CN103546441B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于多级决策树的协议识别方法,其特征在于,包括步骤:S1.对网络流统计特征进行l级分类;S2.根据所提取的网络流统计特征自身的分类特点,训练l级决策树;S3.利用训练得到的l级决策树识别背景流量中的协议。本发明的方法不仅能够合理地利用统计特征中蕴含的知识,提升协议识别系统的性能,还能够有效应对日益增多的网络协议带来的挑战,特别是对日益流行的交互式协议识别具有较好的效果。本发明的方法可以为高速网络中高性能流量分类系统、内容监控系统的设计和实现提供技术支持。

Description

基于多级决策树的协议识别方法
技术领域
本发明属于网络技术中协议识别技术领域,尤其涉及一种基于多级决策树的协议识别方法。
背景技术
随着高速网络技术和多媒体技术的飞速发展,业界越来越多地提出了包括多媒体通信在内的综合服务要求。然而,急速增长的用户数量和网络流量不断降低网络性能,尤其是一些非商务应用(例如:P2P、多媒体和网络游戏)占据了大量带宽,严重影响了关键业务的正常使用。网络协议识别技术能够保障关键业务,解决网络拥塞,逐渐成为了国内外的研究热点。
最早出现的协议识别技术是基于端口映射的协议识别技术。该技术利用端口号对协议进行识别,方法简单,所需信息少,时空复杂度低。但由于新出现的协议都不在IANA中注册其端口号,算法所能识别的协议在总协议数量中所占的比重越来越少。此外,网络中的很多协议使用动态端口,也是导致该方法失效的原因。
针对基于端口映射的协议识别技术的问题,业界提出了利用数据包的载荷部分对协议进行识别的技术。基于数据包载荷的协议识别技术首先利用逆向工程将协议或软件分解或者解析,解明它们的结构、使用方法及目的、组成部件与要素技术的原理,并从中找出能够识别协议的数据包载荷关键字。之后,利用高效的模式匹配及正则表达式匹配算法,在背景流量中寻找关键字,以达到协议识别的目的。然而,随着网络环境的日益复杂,越来越多的应用层协议采用加密协议加密数据包载荷。在这种情况下,寻找数据包载荷关键的难度越来越大,最终导致基于数据包载荷的协议识别技术严重失效。此外,由于该技术需要第三方监听网络载荷内容,在被政府的隐私保护法规限制时,监听方法的功能和作用会被大大减弱。
近年来,基于统计特征的协议识别技术逐渐成为业界关注的热点。不同于基于数据包载荷的协议识别技术,基于统计特征的协议识别技术着眼于网络流,从网络流中提取大量统计特征,并利用这些统计特征实现协议识别。传统上把网络流定义为具有相同五元组(<源地址,目的地址,源端口,目的端口,协议>)的数据包的集合。基于统计特征的协议识别技术的假设前提是不同协议会有其特有的网络流统计特性,并以此来识别不同的加密协议。由于该技术引入了大量的统计信息作为基本参考因素,所以它不可避免地将机器学习的方法结合到了识别中,期望取得更好的协议识别性能。机器学习方法使计算机能够模拟人类的学习活动,识别和获取已有知识,建立和不断完善学习模型,并且能够根据已有知识对新的信息进行处理。机器学习方法于2004年被引入到协议识别技术中,根据流量具有的统计特性对协议进行识别。例如,网络流持续时间的分布特性,流空闲时间,包间隔时间,包长度等信息,对于协议识别来说,是特有的信息。它们都可以作为判别式的特征被机器学习模型利用进行协议识别。
随着网络技术的不断发展,新型应用层协议层出不穷,而不同的协议在不同的统计特征上体现不同。一方面,为了更好地识别协议,越来越多的网络流统计特征被提出来用于训练机器学习模型;另一方面,越来越多的统计特征也对机器学习模型提出了新的要求:首先,越来越多的统计特征势必会造成机器学习模型所处空间维数的增大,而多数机器学习算法都易受到空间维数的影响,在高维空间中的识别效果较差;其次,虽然统计特征均是从网络流中提取,这些特征本身也存在一定的分类。例如,对于某些交互式协议,我们可以按照协议所处的阶段对提取的统计特征进行分类。这些分类本身蕴含的知识能够进一步提升机器学习模型的性能。
合理利用大量的网络流统计特征进行协议识别,不仅能够极大地提升基于统计特征的协议识别系统的性能,还能够应对不断增多的协议带来的挑战。然而,目前大多数基于统计特征的协议识别方法仅是简单地将大量的统计特征输入到模型中进行训练和检测,并没有合理的利用统计特征中蕴含的知识,影响了协议识别系统的性能。特别是随着网络协议越来越丰富,协议识别系统需要处理更多的统计特征,使得基于统计特征的协议识别技术面临更大的挑战。
 发明内容
(一)要解决的技术问题
本发明所要解决的技术问题是:如何提供一种基于统计特征的协议识别方法,能够更好地利用蕴含在大量统计特征中的知识,提升基于统计特征的协议识别系统的性能,以应对迅速增多的协议所带来的挑战。
(二)技术方案
为了解决上述问题,本发明提供了一种基于多级决策树的协议识别方法,其特征在于,包括步骤:S1.对网络流统计特征进行l级分类;S2.根据所提取的网络流统计特征自身的分类特点,训练l级决策树;S3.利用训练得到的l级决策树识别背景流量中的协议。
优选地,步骤S1包括:S1.1将未分类的网络流特征定为类别数为ci的第i级分类;S1.2将第i级分类中的每一个类别继续分类,分类后,对于第i级分类的第j个类别得到
Figure BDA00001894220300031
个分类;S1.3i加1,若i>l,则执行步骤S2,否则,返回执行步骤S1.2;其中,变量i表示分类的级数,变量ci表示第i级分类的类别数。
优选地,i=1,且ci=1。
优选地,步骤S2包括:S2.1从训练集中提取网络流统计特征构造初始训练特征集;S2.2根据网络流统计特征的l级分类,使用初始训练特征集训练多级决策树。
优选地,训练集是一组包含需要识别协议流量的集合。
优选地,步骤S2.2包括:S2.21根据第l级分类,将初始训练特征集划分成若干个第l级训练子集;S2.22利用划分得到的第l级训练子集训练第l级决策树集;S2.23将第l级训练子集输入第l级决策树集,每个决策树负责处理各自的类别中的统计特征,计算得到该类别每一个统计特征向量的protocol和errate;S2.24初始化计数变量k=1;S2.25若l>k,则根据第l-k级分类,将第l-k+1级决策树集处理结果划分成若干个第l-k级训练子集,否则,执行步骤S3;S2.26利用划分得到的第l-k级训练子集训练第l-k级决策树集;S2.27若l>k+1,则将第l-k级训练子集输入第l-k级决策树集,每个决策树负责处理各自的类别中的特征向量,计算得到该类别每一个特征向量的protocol和errate,否则,执行步骤S3;S2.28k加1,返回执行S2.25。
优选地,在步骤S2.21中,每个子集包含第l级分类中一个类别的统计特征,以及该特征对应网络流所属的协议。
优选地,在步骤S2.22中,每一个第l级训练子集训练一个第l级决策树,训练得到的决策树构成第l级决策树集。
优选地,在步骤S2.23中,protocol是一个第l级决策树判定该类别的一个特征向量所属的协议;errate是该决策树判定该特征向量是protocol的错误率,由下式计算得到
errate protocol = 1 - N protocol &Sigma; i = 1 n N i
其中,Nprotocol是训练子集中属于protocol的特征向量,且被划分到一个叶子结点的个数,是该叶子结点中所有种类的特征向量的个数。
优选地,步骤S3包括:S3.1提取背景流量中一个网络流的统计特征;S3.2初始化计数变量k=1;S3.3根据第l级分类,将该网络流的统计特征进行分类,得到第l级统计特征向量子集;S3.4将第l级统计特征向量子集输入到第l级决策树集,若l>k,则计算每类的protocol和errate,否则,输出第l级决策树集的识别结果,并返回执行S3.1;S3.5根据第l-k级分类,将第l-k+1级识别结果进行分类,得到第l-k级特征向量子集;S3.6将第l-k级特征向量子集输入到第l-k级决策树集,若l>k+1,则计算每类的protocol和errate,否则,输出第l-k级决策树集的识别结果,并返回执行S3.1;S3.7k加1,返回执行S3.5。
(三)有益效果
本发明的方法首先根据需要识别协议的特点,对大量网络流统计特征进行分类;然后利用分类知识以及统计特征自身的知识训练多级决策树;最后,在协议识别阶段,本方法对提取的网络流特征向量根据分类进行分级处理,最终获得协议识别结果。这种多级决策树识别方法不仅能够合理地利用统计特征中蕴含的知识,提升协议识别系统的性能,还能够有效应对日益增多的网络协议带来的挑战,特别是对日益流行的交互式协议识别具有较好的效果。本发明的方法可以为高速网络中高性能流量分类系统、内容监控系统的设计和实现提供技术支持。
附图说明
下面参照附图并结合实例来进一步描述本发明。其中:
图1为根据本发明实施例的基于多级决策树的协议识别方法的总流程图。
图2为根据本发明实施例的基于多级决策树的协议识别方法的具体流程图。
图3为根据本发明实施例的2级决策树的训练过程示意图。
图4为根据本发明实施例的2级决策树的识别过程示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
针对目前的基于统计特征的协议识别方法无法合理地利用统计特征中蕴含知识的问题,以及难以应对越来越多的网络协议带来的挑战,本发明提出了一种基于多级决策树的协议识别方法。该方法首先根据需要识别协议的特点,对大量网络流统计特征进行分类;然后利用分类知识以及统计特征自身的知识训练多级决策树;最后,在协议识别阶段,本方法对提取的网络流特征向量根据分类进行分级处理,最终获得协议识别结果。该方法不仅能够合理地利用统计特征中蕴含的知识,提升协议识别系统的性能,还能够有效应对日益增多的网络协议带来的挑战,特别是对日益流行的交互式协议识别具有很好的效果。
如图1所示,依照本发明一种实施方式的基于多级决策树的协议识别方法进行如下步骤,
S1.对网络流统计特征进行2级分类,其中网络流统计特征如表1所示;
表1网络流统计特征
Figure BDA00001894220300061
其中,步骤S1进一步包括:
S1.1将未分类的网络流特征定为类别数为1的第1级分类;
S1.2将第1级分类中的每一个类别继续分类,得到三个2级分类,如表2所示;
表2 2级分类
Figure BDA00001894220300072
S2.根据所提取的网络流统计特征自身的分类特点,训练2级决策树,如图2所示;
其中,步骤S2进一步包括:
S2.1从训练集中提取网络流统计特征构造初始训练特征集;
其中,在步骤S2.1中,训练集是一组包含需要识别协议流量的集合;
S2.2根据网络流统计特征的2级分类训练多级决策树;
其中,步骤S2.2进一步包括:
S2.21根据第2级分类,将初始训练特征集划分成3个第2级训练子集;
其中,在步骤S2.21中,
每个子集包含第2级分类中一个类别的统计特征,以及该特征对应网络流所属的协议;
S2.22利用划分得到的第2级训练子集训练第2级决策树集;
其中,在步骤S2.22中,每一个第l级训练子集训练一个第l级决策树,训练得到的决策树构成第l级决策树集;
S2.23将第2级训练子集输入第2级决策树集,每个决策树负责处理各自的类别中的统计特征,计算得到该类别每一个统计特征向量的protocol和errate;
其中,在步骤S2.23中,protocol是一个第l级决策树判定该类别的一个特征向量所属的协议;errate是该决策树判定该特征向量是protocol的错误率,由下式计算得到
errate protocol = 1 - N protocol &Sigma; i = 1 n N i
其中,Nprotocol是训练子集中属于protocol的特征向量,且被划分到一个叶子结点的个数,
Figure BDA00001894220300082
是该叶子结点中所有种类的特征向量的个数;
S2.24则根据第1级分类,将第2级决策树集处理结果划分成1个第1级训练子集,初始化计数变量k=1;
S2.25若l>k,则根据第l-k级分类,将第l-k+1级决策树集处理结果划分成若干个第l-k级训练子集,否则,执行步骤S3;
S2.26利用划分得到的第1级训练子集训练第1级决策树集;
S2.27若l>k+1,则将第l-k级训练子集输入第l-k级决策树集,每个决策树负责处理各自的类别中的特征向量,计算得到该类别每一个特征向量的protocol和errate,否则,执行步骤S3;
S2.28k加1,返回执行S2.25;
S3利用训练得到的2级决策树识别背景流量中的协议,如图3所示;
其中,步骤S3中进一步包括:
S3.1提取背景流量中一个网络流的统计特征;
S3.2根据第2级分类,将该网络流的统计特征进行分类,得到第2级统计特征向量子集;
S3.3将第2级统计特征向量子集输入到第2级决策树集,并计算每类的protocol和errate;
S3.4根据第1级分类,将第2级识别结果进行分类,得到第1级特征向量子集;
S3.5将第1级特征向量子集输入到第1级决策树集,输出第1级决策树集的识别结果,并返回执行S3.1;
S3.6将第l-k级特征向量子集输入到第l-k级决策树集,若l>k+1,则计算每类的protocol和errate,否则,输出第l-k级决策树集的识别结果,并返回执行S3.1;
S3.7k加1,返回执行S3.5。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

Claims (10)

1.一种基于多级决策树的协议识别方法,其特征在于,包括步骤:
S1.对网络流统计特征进行l级分类;
S2.根据所提取的网络流统计特征自身的分类特点,训练l级决策树;
S3.利用训练得到的l级决策树识别背景流量中的协议。
2.如权利要求1所述的方法,其特征在于,步骤S1包括:
S1.1将未分类的网络流特征定为类别数为ci的第i级分类;
S1.2将第i级分类中的每一个类别继续分类,分类后,对于第i级分类的第j个类别得到
Figure FDA00001894220200011
个分类;
S1.3i加1,若i>l,则执行步骤S2,否则,返回执行步骤S1.2;
其中,变量i表示分类的级数,变量ci表示第i级分类的类别数。
3.如权利要求2所述的方法,其特征在于:
i=1,且ci=1。
4.如权利要求1所述的方法,其特征在于,步骤S2包括:
S2.1从训练集中提取网络流统计特征构造初始训练特征集;
S2.2根据网络流统计特征的l级分类,使用初始训练特征集训练多级决策树。
5.如权利要求4所述的方法,其特征在于:
训练集是一组包含需要识别协议流量的集合。
6.如权利要求4所述的方法,其特征在于,步骤S2.2包括:
S2.21根据第l级分类,将初始训练特征集划分成若干个第l级训练子集;
S2.22利用划分得到的第l级训练子集训练第l级决策树集;
S2.23将第l级训练子集输入第l级决策树集,每个决策树负责处理各自的类别中的统计特征,计算得到该类别每一个统计特征向量的protocol和errate;
S2.24初始化计数变量k=1;
S2.25若l>k,则根据第l-k级分类,将第l-k+1级决策树集处理结果划分成若干个第l-k级训练子集,否则,执行步骤S3;
S2.26利用划分得到的第l-k级训练子集训练第l-k级决策树集;
S2.27若l>k+1,则将第l-k级训练子集输入第l-k级决策树集,每个决策树负责处理各自的类别中的特征向量,计算得到该类别每一个特征向量的protocol和errate,否则,执行步骤S3;
S2.28k加1,返回执行S2.25。
7.如权利要求6所述的方法,其特征在于:
在步骤S2.21中,每个子集包含第l级分类中一个类别的统计特征,以及该特征对应网络流所属的协议。
8.如权利要求6所述的方法,其特征在于:
在步骤S2.22中,每一个第l级训练子集训练一个第l级决策树,训练得到的决策树构成第l级决策树集。
9.如权利要求6所述的方法,其特征在于:
在步骤S2.23中,protocol是一个第l级决策树判定该类别的一个特征向量所属的协议;errate是该决策树判定该特征向量是protocol的错误率,由下式计算得到
errate protocol = 1 - N protocol &Sigma; i = 1 n N i
其中,Nprotocol是训练子集中属于protocol的特征向量,且被划分到一个叶子结点的个数,
Figure FDA00001894220200022
是该叶子结点中所有种类的特征向量的个数。
10.如权利要求1所述的方法,其特征在于,步骤S3包括:
S3.1提取背景流量中一个网络流的统计特征;
S3.2初始化计数变量k=1;
S3.3根据第l级分类,将该网络流的统计特征进行分类,得到第l级统计特征向量子集;
S3.4将第l级统计特征向量子集输入到第l级决策树集,若l>k,则计算每类的protocol和errate,否则,输出第l级决策树集的识别结果,并返回执行S3.1;
S3.5根据第l-k级分类,将第l-k+1级识别结果进行分类,得到第l-k级特征向量子集;
S3.6将第l-k级特征向量子集输入到第l-k级决策树集,若l>k+1,则计算每类的protocol和errate,否则,输出第l-k级决策树集的识别结果,并返回执行S3.1;
S3.7k加1,返回执行S3.5。
CN201210246438.9A 2012-07-16 2012-07-16 基于多级决策树的协议识别方法 Active CN103546441B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210246438.9A CN103546441B (zh) 2012-07-16 2012-07-16 基于多级决策树的协议识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210246438.9A CN103546441B (zh) 2012-07-16 2012-07-16 基于多级决策树的协议识别方法

Publications (2)

Publication Number Publication Date
CN103546441A true CN103546441A (zh) 2014-01-29
CN103546441B CN103546441B (zh) 2016-12-21

Family

ID=49969497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210246438.9A Active CN103546441B (zh) 2012-07-16 2012-07-16 基于多级决策树的协议识别方法

Country Status (1)

Country Link
CN (1) CN103546441B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106133721A (zh) * 2014-03-17 2016-11-16 微软技术许可有限责任公司 并行决策树处理器架构
CN111431929A (zh) * 2020-04-08 2020-07-17 清华大学 软件定义网络多协议区分流表构建方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706996A (zh) * 2009-11-12 2010-05-12 北京交通大学 一种基于信息融合的高速公路交通状态识别方法
CN101984635A (zh) * 2010-11-23 2011-03-09 清华大学 P2p协议流量识别方法及系统
CN102468987A (zh) * 2010-11-08 2012-05-23 清华大学 网络流特征向量提取方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706996A (zh) * 2009-11-12 2010-05-12 北京交通大学 一种基于信息融合的高速公路交通状态识别方法
CN102468987A (zh) * 2010-11-08 2012-05-23 清华大学 网络流特征向量提取方法
CN101984635A (zh) * 2010-11-23 2011-03-09 清华大学 P2p协议流量识别方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHENGLONG LI, YIBO XUE, YINGFEI DONG, DONGSHENG WANG: "HMC: A Novel Mechanism for Identifying Encrypted", 《GLOBAL TELECOMMUNICATIONS CONFERENCE(GLOBECOM2010)》, 10 December 2010 (2010-12-10) *
邸明星: "多决策树算法在P2P网络流量检测的应用", 《中国优秀硕士学位论文全文数据库》, no. 6, 15 June 2011 (2011-06-15) *
霍建兵: "基于类间最大间隔理论的多级决策树归纳算法", 《中国优秀硕士学位论文全文数据库》, no. 1, 15 December 2011 (2011-12-15) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106133721A (zh) * 2014-03-17 2016-11-16 微软技术许可有限责任公司 并行决策树处理器架构
US10332008B2 (en) 2014-03-17 2019-06-25 Microsoft Technology Licensing, Llc Parallel decision tree processor architecture
CN106133721B (zh) * 2014-03-17 2019-10-01 微软技术许可有限责任公司 并行决策树处理器架构
CN111431929A (zh) * 2020-04-08 2020-07-17 清华大学 软件定义网络多协议区分流表构建方法和系统

Also Published As

Publication number Publication date
CN103546441B (zh) 2016-12-21

Similar Documents

Publication Publication Date Title
Liu et al. Effective and real-time in-app activity analysis in encrypted internet traffic streams
Ertam et al. A new approach for internet traffic classification: GA-WK-ELM
Mohrehkesh et al. Demographic prediction of mobile user from phone usage
CN104244035B (zh) 基于多层聚类的网络视频流分类方法
CN106936667A (zh) 一种基于应用程序流量分布式分析的主机实时识别方法
CN105871832A (zh) 一种基于协议属性的网络应用加密流量识别方法及其装置
CN109726735A (zh) 一种基于K-means聚类和随机森林算法的移动应用程序识别方法
CN110414987A (zh) 账户集合的识别方法、装置和计算机系统
CN103200133A (zh) 一种基于网络流引力聚类的流量识别方法
CN109299742A (zh) 自动发现未知网络流的方法、装置、设备及存储介质
CN104135385A (zh) Tor匿名通信流量应用分类的方法
CN103136476A (zh) 移动智能终端恶意软件分析系统
Ko et al. Network prediction with traffic gradient classification using convolutional neural networks
CN104731811B (zh) 一种面向大规模动态短文本的聚类信息演化分析方法
Hu et al. BTG: A Bridge to Graph machine learning in telecommunications fraud detection
CN102902674B (zh) 服务群组分类方法和系统
Graham et al. Finding and visualizing graph clusters using pagerank optimization
CN116150688A (zh) 智能家居中轻量级的物联网设备识别方法与装置
CN112019500A (zh) 一种基于深度学习的加密流量识别方法及电子装置
CN103532908A (zh) 一种基于二级决策树的p2p协议识别方法
CN103546441A (zh) 基于多级决策树的协议识别方法
CN101764754B (zh) 基于dpi和dfi的业务识别系统中的样本获取方法
CN102984131A (zh) 一种信息识别方法和装置
CN109858510A (zh) 一种针对HTTP协议ETag值隐蔽通信的检测方法
CN114124565B (zh) 一种基于图嵌入的网络入侵检测方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant