CN103532908A - 一种基于二级决策树的p2p协议识别方法 - Google Patents

一种基于二级决策树的p2p协议识别方法 Download PDF

Info

Publication number
CN103532908A
CN103532908A CN201210228876.2A CN201210228876A CN103532908A CN 103532908 A CN103532908 A CN 103532908A CN 201210228876 A CN201210228876 A CN 201210228876A CN 103532908 A CN103532908 A CN 103532908A
Authority
CN
China
Prior art keywords
network flow
network
level
decision
classification
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
CN201210228876.2A
Other languages
English (en)
Other versions
CN103532908B (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 CN201210228876.2A priority Critical patent/CN103532908B/zh
Publication of CN103532908A publication Critical patent/CN103532908A/zh
Application granted granted Critical
Publication of CN103532908B publication Critical patent/CN103532908B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于二级决策树的P2P协议识别方法,该方法包括步骤:S1.获得纯净的P2P协议流量和非P2P协议流量,并提取指定格式的一级网络流统计特征集;S2.根据所提取的一级网络流统计特征集分别训练一、二级决策树模型集;S3.从网络中提取符合特定触发规则的、网络流五元组中包含待检测IP地址的网络流集合的一级网络流统计特征;S4.利用步骤S2得到的一、二级决策树模型集及步骤S3所提取的一级网络流统计特征识别背景流量中的P2P协议。本发明的方法能有效改善传统P2P协议识别方法的严重误报,可以为高速网络中高性能流量分类系统、内容监控系统的设计和实现提供技术支持。

Description

一种基于二级决策树的P2P协议识别方法
技术领域
本发明涉及P2P协议识别技术领域,尤其涉及一种基于二级决策树的P2P协议识别方法。
背景技术
随着高速网络技术和多媒体技术的飞速发展,业界越来越多地提出了包括多媒体通信在内的综合服务要求。然而,急速增长的用户数量和流量不断降低网络性能,尤其是基于P2P协议的软件(如迅雷、PPTV、BT等)所产生的流量占据了大量带宽,严重影响关键业务的正常使用。P2P协议识别技术能够监控P2P协议使用情况,管理P2P流量,保障关键业务,解决网络拥塞,逐渐成为了国内外的研究热点。
早期的P2P协议识别方法,通常判断所获取的网络流数据包载荷中是否存在能够代表P2P协议的固定关键字,因此,基于数据包载荷的P2P协议识别技术首先需要发现P2P协议中所包含的不变的、具有唯一代表性的关键字,之后利用高效的模式匹配及正则表达式匹配算法识别数据包中的关键字信息,以达到P2P协议识别的目的。然而,随着P2P技术的日益发展,P2P协议的变化也日渐复杂,一方面采用随机端口模式来提高系统效率,逃避检测,另一方面则去掉能够代表P2P协议的固定关键字,以便防止对P2P协议的检测和监控,甚至一些对安全性能要求较高的P2P协议,采用加密协议的方法对通信内容进行加密,进一步阻止了对P2P协议进行发现。在这种情况下,寻找P2P协议的数据包载荷关键字的难度越来越大,最终导致基于数据包载荷的P2P协议识别技术严重失效。
近年来,基于统计特征的P2P协议识别技术逐渐成为业界关注的热点。不同于基于数据包载荷的P2P协议识别技术,基于统计特征的P2P协议识别技术着眼于从网络流中提取的统计特征信息,并利用这些统计特征所代表的内在特性实现P2P协议识别。基于统计特征的P2P协议识别技术利用P2P协议在数据传输过程中存在着其特有的网络流统计特性的特点,以此来识别P2P协议,甚至能够有效区分不同的P2P协议。
然而,随着网络技术的不断发展,采用P2P协议的新型应用层出不穷,主要开始呈现两个方面的变化。
一方面是统计特征的变化。P2P协议通常用于高速网络数据传输,因此流量的统计特征不固定且变化较大,已有的基于统计特征的P2P协议识别方法对P2P协议的识别准确率并不高,识别效率也较差。
另一方面则是流量特性的变化。P2P协议在使用过程中通常会同时产生多个网络流进行数据传输和通信,并且会与多个其他P2P节点互相进行交互,这种情况下,传统的基于单一网络流的协议识别技术已经不能对P2P协议进行有效识别,急需提出一种新的针对P2P协议所产生的多个网络流情况的协议识别方法来提高协议识别的准确性和有效性,避免对网络流的漏识别或错误识别。
合理利用P2P协议所产生的多个网络流统计特征进行协议识别,不仅能够极大地提升基于统计特征的P2P协议识别系统的性能,还能够应对不断增多的P2P协议及应用带来的挑战。然而,目前大多数基于统计特征的P2P协议识别方法仅是简单地将大量的统计特征输入到模型中进行训练和检测,并没有合理的利用统计特征中蕴含的知识,影响了P2P协议识别系统的性能。特别是随着P2P协议的广泛应用,P2P协议识别系统需要处理更多的统计特征,使得基于统计特征的P2P协议识别技术面临更大的挑战。
发明内容
(一)要解决的技术问题
本发明所要解决的技术问题是:提供一种基于统计特征的P2P协议识别方法,能够更好地利用蕴含在大量统计特征中的知识,提升基于统计特征的P2P协议识别系统的性能,应对迅速增多的P2P应用所带来的挑战。
(二)技术方案
为了解决上述问题,本发明提供了一种基于二级决策树的P2P协议识别方法。本方法通过对P2P协议的通信过程及网络流量的大量分析,将P2P协议和应用在使用过程中所产生的网络流依据功能性的差别分成了5种不同的类型,每种类型均表示P2P协议中的一个可能出现的行为特征,利用这种行为特征所产生的统计特征,同时采用二级决策树方法,能够有效的识别P2P协议及应用。该方法首先对网络流统计特征进行分类,然后根据其分类特点,训练二级决策树;在识别阶段,首先利用第一级决策树处理网络流统计特征,然后将处理结果输入到第二级决策树进行处理并输出识别结果。
本发明的基于二级决策树的P2P协议识别方法包括步骤:
S1.获得纯净的P2P协议流量和非P2P协议流量,并从网络流量中提取一级网络流统计特征集作为一级训练集;
S2.根据步骤S1所提取的一级网络流统计特征集分别训练一、二级分类决策树模型集;
S3.从网络中提取符合特定触发规则的、网络流五元组中包含待检测IP地址的网络流集合的一级网络流统计特征作为一级分类特征;
S4.利用步骤S2得到的一、二级分类决策树模型集及步骤S3所提取的一级网络流统计特征识别背景流量中的P2P协议。
其中,步骤S1进一步包括:
S11.获得纯净的P2P协议的网络流量以及非P2P协议的网络流量作为提取训练集特征的基础;
S12.以IP为基本单位,提取最多包含i个trigger的、在网络流的五元组中源IP地址或目的IP地址等同于待检测IP地址的全部网络流,所述五元组即源IP地址、目的IP地址、源端口号、目的端口号、协议号;
S13.将步骤S12提取的全部网络流依照其在P2P协议通信过程中的不同作用和目的归类为5种不同类型的网络流,最终形成5种不同类型的网络流集合;
S14.提取步骤S13中已分好类别的5种不同类型的网络流集合的各自的一级4维统计特征total_ips、total_flows、total_packets、total_bytes。
其中,在步骤S12中,trigger定义为正向的连接失败的TCP流(T1)或反向的UDP流(U1);并且i>0;
在步骤S13中,5种不同类型的网络流分别为:
T1:正向的连接失败的TCP流;
T2:正向的数据包≤15的TCP流;
T3:正向的数据包>15的TCP流;
U1:反向的UDP流;
U2:正向的UDP流。
其中,在步骤S13中,正向网络流的定义为此网络流五元组的源IP地址等于使用P2P协议或待检测的IP地址,反向网络流的定义为此网络流五元组的目的IP地址等于使用P2P协议或待检测的IP地址。
其中,在步骤S14中,一级4维统计特征total_ips、total_flows、total_packets、total_bytes分别为:此种类型下的网络流集合所连接的不同的目的IP地址个数、此种类型下的网络流集合所产生的网络流个数、此种类型下的网络流集合所传输的数据包个数、此种类型下的网络流集合所传输的字节数。
其中,步骤S2进一步包括:
S21.利用步骤S13所获得的5种不同类型的网络流集合的5个一级训练集,采用决策树算法,分别训练对应的5种不同类型的网络流集合的5个一级分类决策树模型,形成一级分类决策树模型集;
S22.将5个一级训练集分别输入5个一级决策树模型,每个一级决策树模型负责处理各自的类别训练集中的统计特征,分别计算得到5种不同类型的网络流集合的每一个统计特征向量的分类结果(r)和错误率(e);
S23.将同一次提取的步骤S22种所得到的5种不同类型的网络流集合的每一个统计特征向量对应的分类结果(r)和错误率(e)进行整合形成二级的10维统计特征
<rT1,eT1,rT2,eT2,rT3,eT3,rU1,eU1,rU2,eU2>,
并进一步形成二级分类特征训练集;
S24.利用步骤S23所得到的二级分类特征训练集,采用决策树算法训练得到二级分类决策树模型。
其中,在步骤S22中,r定义为一个一级决策树模型判定对应类型网络流集合的训练集中一个特征向量所属的协议;e定义为该决策树模型判定对应类型网络流集合的一条特征向量是r的错误率,由下式计算得到:
e r = 1 - N r &Sigma; i = 1 n N i
其中,Nr是训练子集中属于r的特征向量,且被划分到一个叶子结点的个数,Ni是该叶子结点中所有种类的特征向量的个数;
在步骤S23中,二级的10维统计特征分别为:
rT1:T1类型的网络流集合中一个统计特征向量被对应的一级T1决策树模型分类的分类结果;
eT1:T1类型的网络流集合中一个统计特征向量被对应的一级T1决策树模型分类的错误率;
rT2:T2类型的网络流集合中一个统计特征向量被对应的一级T2决策树模型分类的分类结果;
eT2:T2类型的网络流集合中一个统计特征向量被对应的一级T2决策树模型分类的错误率;
rT3:T3类型的网络流集合中一个统计特征向量被对应的一级T3决策树模型分类的分类结果;
eT3:T3类型的网络流集合中一个统计特征向量被对应的一级T3决策树模型分类的错误率;
rU1:U1类型的网络流集合中一个统计特征向量被对应的一级U1决策树模型分类的分类结果;
eU1:U1类型的网络流集合中一个统计特征向量被对应的一级U1决策树模型分类的错误率;
rU2:U2类型的网络流集合中一个统计特征向量被对应的一级U2决策树模型分类的分类结果;
eU2:U2类型的网络流集合中一个统计特征向量被对应的一级U2决策树模型分类的错误率。
其中,步骤S3进一步包括:
S31.从网络中获取所要检测的IP地址的一个网络流;
S32.判断步骤S31所得到的该网络流是否符合trigger的定义,如果符合,则执行步骤S33,否则,则执行步骤S34;
S33.累加符合步骤S32中的触发条件的网络流的数量后,判断已累加的符合步骤S32中的触发条件的网络流的数量是否大于等于步骤S12中所确定的i,如果是,则表示已结束本轮特征统计阶段,则执行步骤S35,否则,执行步骤S36;
S34.判断该IP地址是否还处在本轮特征统计阶段且未结束,如果仍然处在本轮特征统计阶段,则执行步骤S36,否则,执行步骤S31;
S35.结束已进行的特征统计阶段并保存统计特征,建立新的一级统计特征集数据结构,开始新一轮的特征统计阶段;
S36.判断此网络流所属的类别,并提取4维统计特征,将4维统计特征累加入对应类别的网络流集合的一级统计特征集数据结构中,执行步骤S31。
其中,在步骤S32中,trigger定义为正向的连接失败的TCP流(T1)或反向的UDP流(U1)。
其中,步骤S4进一步包括:
S41.判断该IP地址是否已完成一轮特征统计阶段,如果已完成,则执行步骤S42,否则,执行步骤S41;
S42.利用步骤S2所得到的一级分类决策树模型集及步骤S3所得到同一轮特征统计阶段的5个不同类型网络流集合的一级4维统计特征,分别计算得到同一轮特征统计阶段下的对5种不同类型网络流集合的4维统计特征的分类结果(r)和错误率(e),之后,将同一轮特征统计阶段下的5种不同类型网络流集合的4维统计特征的分类结果和错误率整合,形成二级10维统计特征:
<rT1,eT1,rT2,eT2,rT3,eT3,rU1,eU1,rU2,eU2>;
S42.将步骤S41所得到的二级10维统计特征输入到步骤S2所得到的二级分类决策树模型,识别背景流量中的P2P协议。
(三)有益效果
本发明的方法首先根据P2P协议的特点,对大量网络流统计特征进行分类;然后利用分类知识以及统计特征自身的知识训练二级决策树;最后,在协议识别阶段,本方法对提取的符合触发条件的多个网络流的统计特征根据分类进行分级处理,最终获得协议识别结果。这种二级决策树识别方法不仅能够合理地利用统计特征中蕴含的知识,提升协议识别系统的性能,还能够有效应对日益增多的P2P应用带来的挑战。本发明的方法可以为高速网络中的高性能流量分类系统、内容监控系统的设计核实现提供技术支持。
附图说明
图1为依照本发明一种实施方式的基于二级决策树的P2P协议识别方法的流程图。
图2为依照本发明一种实施方式的一、二级分类决策树模型集的训练流程。
图3为依照本发明一种实施方式的网络流量统计特征的获取流程。
图4为依照本发明一种实施方式的基于一、二级分类决策树模型的P2P协议的识别流程。
图5为依照本发明一种实施方式的一、二级分类决策树模型的训练示意图。
图6为依照本发明一种实施方式的基于一、二级分类决策树模型的P2P协议的识别示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式的基于二级决策树的P2P协议识别方法作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
针对目前的基于统计特征的P2P协议识别方法无法合理的利用统计特征中蕴含知识,以及难以应对统计特征波动较大、P2P应用迅速增长带来挑战的问题,本发明提出了一种基于二级决策树的P2P协议识别方法。该方法首先根据需要P2P协议的特点,对大量网络流统计特征进行分类;然后利用分类知识以及统计特征自身的知识训练一、二级决策树;最后,在P2P协议识别阶段,本方法对提取的符合触发条件的网络流特征向量根据分类进行分级处理,最终获得P2P协议识别结果。该方法不仅能够合理地利用统计特征中蕴含的知识,提升协议识别系统的性能,还能够有效应对日益增多的P2P应用带来的挑战。
如图1所示,依照本发明一种实施方式的基于二级决策树的P2P协议识别方法通过如下步骤实施:
S1.获得纯净的P2P协议流量和非P2P协议流量,并从网络流量中提取一级网络流统计特征集作为一级训练集;
S2.根据步骤S1所提取的一级分类训练集分别训练一、二级决策树模型集;
S3.从网络中提取符合特定触发规则的、网络流五元组中包含待检测IP地址的网络流集合的一级网络流统计特征作为一级分类特征;
S4.利用步骤S2得到的一、二级决策树模型集及步骤S3所提取的一级网络流统计特征识别背景流量中的P2P协议。
如图2所示,步骤S1进一步包括:
S11.获得纯净的P2P协议的网络流量以及非P2P协议的网络流量作为提取训练集特征的基础;
S12.以IP为基本单位,提取最多包含i个trigger的、在网络流的五元组<源IP地址、目的IP地址、源端口号、目的端口号、协议号>中源IP地址或目的IP地址等同于待检测IP地址的全部网络流;其中,在步骤S12中,trigger定义为正向连接失败的TCP流(T1)或反向的UDP流(U1);
其中,在步骤S12中,i>0,为自然数;i的大小表示了获取网络流的最大提取范围,依据所要分类的P2P协议的特点选择;
S13.将步骤S12提取的全部网络流依照其在P2P协议通信过程中的不同作用和目的归类为5种不同类型的网络流,每种类型的网络流均代表了P2P协议通信过程的一个独立的特性,最终形成5种不同类型的网络流集合,如表1所示。
表15种网络流类型表
Figure BDA00001842759900101
其中,在步骤S13中,正向网络流的定义为此网络流五元组<源IP、目的IP、源端口号、目的端口号、协议号>的源IP地址等于使用P2P协议或待检测的IP地址,反向网络流的定义为此网络流五元组<源IP、目的IP、源端口号、目的端口号、协议号>的目的IP地址等于使用P2P协议或待检测的IP地址;
其中,在步骤S13中,由于常用的网关及网络防火墙均会对反向TCP协议的网络流进行拦截,因此,在本发明的P2P协议识别的方法中,并不考虑反向的TCP网络流,每种类型的网络流均代表了P2P协议通信过程的一个独立的特性;
S14.提取步骤S13中已分好类别的5种不同类型的网络流集合的各自的一级4维统计特征
<total_ips,total_flows,total_packets,total_bytes>。
执行步骤S12,并进一步形成此P2P协议识别方法中的一级训练特征集。
其中,一级4维统计特征如表2所示。
表2一级4维统计特征表
Figure BDA00001842759900111
在图2中,是以trigger≥5为界限,抽取已分类流量的一级网络流统计特征;采用决策树算法及一级统计特征训练一级分类决策树模型;然后通过一级分类决策树模型及一级网络流统计特征获得二级分类统计特征;再采用决策树算法及二级分类统计特征训练二级分类决策树模型。
其中,步骤S2进一步包括:
S21.利用步骤S1所获得的如表1所示的5种不同类型的网络流集合的5个一级训练集,采用决策树算法,分别训练对应的5种不同类型的网络流集合的5个一级分类决策树模型,形成一级分类决策树模型集;
S22.将5个一级训练集分别输入5个一级决策树模型,每个一级决策树模型负责处理各自的类别训练集中的统计特征,分别计算得到5种不同类型的网络流集合的每一个统计特征向量的分类结果(r)和错误率(e);
其中,在步骤S22中,
r定义为一个一级决策树模型判定对应类型网络流集合的训练集中一个特征向量所属的协议;e定义为该决策树模型判定对应类型网络流集合的一条特征向量是r的错误率,由下式计算得到
e r = 1 - N r &Sigma; i = 1 n N i
其中,Nr是训练子集中属于r的特征向量,且被划分到一个叶子结点的个数,Ni是该叶子结点中所有种类的特征向量的个数。
S23.将同一次提取的步骤S22种所得到的5种不同类型的网络流集合的每一个统计特征向量对应的分类结果(r)和错误率(e)进行整合形成二级的10维统计特征
<rT1,eT1,rT2,eT2,rT3,eT3,rU1,eU1,rU2,eU2>,
并进一步形成二级分类特征训练集;
S24.利用步骤S23所得到的二级分类特征训练集,采用决策树算法训练得到二级分类决策树模型。
其中,二级10维统计特征如表3所示:
表3二级10维统计特征表
Figure BDA00001842759900122
如图3所示,步骤S3进一步包括:
S31.从网络中获取所要检测的IP地址的一个网络流;
S32.判断步骤S31所得到此网络流是否符合trigger的定义,即触发条件,如果符合,则执行步骤S33,否则,则执行步骤S34;
其中,在步骤S32中,trigger定义为正向连接失败的TCP流(T1)或反向的UDP流(U1),具体含义如表1所示;
S33.累加符合步骤S32中的触发条件的网络流的数量后,判断已累加的符合步骤S32中的触发条件的网络流的数量是否大于等于步骤S12中所确定的i,如果是,则表示已结束本轮特征统计阶段,则执行步骤S35,否则,执行步骤S36;
S34.判断此IP地址是否还处在本轮特征统计阶段且未结束,如果仍然处在本轮特征统计阶段,则执行步骤S36,否则,执行步骤S31;
S35.结束已进行的特征统计阶段并保存统计特征,建立新的一级统计特征集数据结构,开始新一轮的特征统计阶段;
S36.判断此网络流所属的如表1所示的类别,并提取表2所示的4维统计特征,将4维统计特征累加入对应类别的网络流集合的一级统计特征集数据结构中,执行步骤S31;
如图4所示,步骤S4进一步包括:
S41.判断此IP地址是否已完成一轮特征统计阶段,如果已完成,则执行步骤S42,否则,执行步骤S41;
S42.利用步骤S2所得到一级分类决策树模型集及步骤S3所得到的同一轮特征统计阶段的5个不同类型网络流集合的一级4维统计特征,分别计算得到同一轮特征统计阶段下的对5种不同类型网络流集合的4维统计特征的分类结果(r)和错误率(e),之后,将同一轮特征统计阶段下的5种不同类型网络流集合的4维统计特征的分类结果和错误率整合,形成二级统计特征:
<rT1,eT1,rT2,eT2,rT3,eT3,rU1,eU1,rU2,eU2>
其中,在步骤S41中,分类结果(r)和错误率(e)的定义符合步骤S22描述;
S42.将步骤S41所得到的二级10维统计特征输入到步骤S2所得到的二级分类决策树模型,识别背景流量中的P2P协议。
实施例1
以下通过具体的实施例来进一步说明本发明的技术方案。本实施例为判断192.168.0.2的IP地址是否使用skype协议,如图5、6所示,具体方法包括如下步骤:
S1.利用封闭操作系统环境,采用多次使用skype协议的方式获得纯净的skype协议流量;利用封闭操作系统环境,采用多次使用非skype协议的任意应用获得非skype协议流量,并从网络流量中提取一级网络流统计特征集作为一级分类训练集;
S2.根据步骤S1所提取的一级分类训练集分别训练一、二级决策树模型;
S3.从网络中提取所要检测的IP地址为192.168.0.2所产生的全部网络流的一级网络流统计特征集作为一级分类特征;
S4.利用步骤S2得到的一、二级决策树模型及步骤S3所提取的一级网络流统计特征集识别192.168.0.2是否使用skype协议。
其中,步骤S1进一步包括:
S11.利用不产生其他干扰流量的操作系统环境,采用多次使用skype协议的方式获得纯净的skype协议流量;利用不产生其他干扰流量的操作系统环境,采用多次使用非skype协议的任意应用获得非skype协议流量,作为提取训练集特征的基础;
S12.以步骤S11中的不产生其他干扰流量的操作系统环境的IP地址为基本单位,提取最多包含5个trigger的、在网络流的五元组<源IP地址、目的IP地址、源端口号、目的端口号、协议号>中源IP地址为步骤S11中的不产生其他干扰流量的操作系统环境的IP地址或目的IP地址为步骤S11中的不产生其他干扰流量的操作系统环境的IP地址的全部网络流集合;
S13.依据网络流在P2P协议中的作用,将提取的网络流分成5种不同类型的网络流,形成5种不同类型的网络流子集合:一级T1子集、一级T2子集、一级T3子集、一级U1子集、一级U2子集。
其中,在步骤S13中,正向网络流的定义为所获取的网络流五元组的源IP地址等于步骤S11中的不产生其他干扰流量的操作系统环境的IP地址,反向网络流的定义为所获得的网络流五元组的目的IP地址等于步骤S11中的不产生其他干扰流量的操作系统环境的IP地址;
S14.提取步骤S13中已分好类别的5种不同类型的网络流集合的各自的一级4维统计特征
<total_ips,total_flows,total_packets,total_bytes>,分别为一级T1特征、一级T2特征、一级T3特征、一级U1特征、一级U2特征。执行步骤S12,并进一步形成此skype协议识别方法中的一级训练特征集。
其中,一级4维统计特征如表2所示。
其中,步骤S2进一步包括:
S21.利用步骤S1所获得的5种不同类型的网络流集合的5个一级训练集,采用C4.5决策树算法,分别训练对应的5种不同类型的网络流集合的5个一级分类决策树模型,分别为一级T1决策树、一级T2决策树、一级T3决策树、一级U1决策树、一级U2决策树,形成一级分类决策树模型集;
S22.将5个一级训练集分别输入5个一级决策树模型,每个一级决策树模型负责处理各自的类别训练集中的统计特征,分别计算得到5种不同类型的网络流集合的每一个统计特征向量的分类结果(r)和错误率(e);
S23.将同一次提取的步骤S22种所得到的5种不同类型的网络流集合的每一个统计特征向量对应的分类结果(r)和错误率(e)进行整合形成二级的10维统计特征
<rT1,eT1,rT2,eT2,rT3,eT3,rU1,eU1,rU2,eU2>,
并进一步形成二级分类特征训练集。
其中,二级10维统计特征如表3所示。
S24.利用步骤S23所得到的二级分类特征训练集,采用C4.5决策树算法训练得到二级分类决策树模型;
其中,步骤S3进一步包括:
S31.从网络中获取所要检测的192.168.0.2的IP地址所产生的一个网络流;
S32.判断步骤S31所得到此网络流是否符合trigger的定义,如果符合,则执行步骤S33,否则,则执行步骤S34;
其中,在步骤S32中,trigger定义为正向连接失败的TCP流(T1)或反向的UDP流(U1),具体含义如表1所示;
S33.累加符合步骤S32中的触发条件的网络流的数量后,判断已累加的符合步骤S32中的触发条件的网络流的数量是否大于等于5,如果是,则表示已结束本轮特征统计阶段,则执行步骤S35,否则,执行步骤S36;
S34.判断此IP地址是否还处在本轮特征统计阶段且未结束,如果仍然处在本轮特征统计阶段,则执行步骤S36,否则,执行步骤S31;
S35.结束已进行的特征统计阶段并保存统计特征,建立新的一级统计特征集数据结构,开始新一轮的特征统计阶段;
S36.判断此网络流所属的如表1所示的类别,并提取表2所示的4维统计特征,将4维统计特征累加入对应类别的网络流集合的一级统计特征集数据结构中,执行步骤S31;
其中,步骤S4进一步包括:
S41.判断192.168.0.2的IP地址是否已完成一轮特征统计阶段,如果已完成,则执行步骤S42,否则,执行步骤S41;
S42.利用步骤S2所得到的一级分类决策树模型集及步骤S3所得到的同一轮特征统计阶段的5个不同类型网络流集合的一级4维统计特征,分别计算得到同一轮特征统计阶段下的对5种不同类型网络流集合的4维统计特征的分类结果(r)和错误率(e),之后,将同一轮特征统计阶段下的5种不同类型网络流集合的4维统计特征的分类结果和错误率整合,形成二级统计特征:
<rT1,eT1,rT2,eT2,rT3,eT3,rU1,eU1,rU2,eU2>
其中,在步骤S41中,分类结果(r)和错误率(e)的定义符合步骤S22描述;
S42.步骤S41所得到的二级10维统计特征输入到步骤S2所得到的二级分类决策树模型中,从背景流量中判断192.168.0.2的IP地址是否使用skype协议。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。

Claims (10)

1.一种基于二级决策树的P2P协议识别方法,其特征在于,该方法包括步骤:
S1.获得纯净的P2P协议流量和非P2P协议流量,并从网络流量中提取一级网络流统计特征集作为一级训练集;
S2.根据步骤S1所提取的一级网络流统计特征集分别训练一、二级分类决策树模型集;
S3.从网络中提取符合特定触发规则的、网络流五元组中包含待检测IP地址的网络流集合的一级网络流统计特征作为一级分类特征;
S4.利用步骤S2得到的一、二级分类决策树模型集及步骤S3所提取的一级网络流统计特征识别背景流量中的P2P协议。
2.如权利要求1所述的基于二级决策树的P2P协议识别方法,其特征在于,步骤S1进一步包括:
S11.获得纯净的P2P协议的网络流量以及非P2P协议的网络流量作为提取训练集特征的基础;
S12.以IP为基本单位,提取最多包含i个trigger的、在网络流的五元组中源IP地址或目的IP地址等同于待检测IP地址的全部网络流,所述五元组即源IP地址、目的IP地址、源端口号、目的端口号、协议号;
S13.将步骤S12提取的全部网络流依照其在P2P协议通信过程中的不同作用和目的归类为5种不同类型的网络流,最终形成5种不同类型的网络流集合;
S14.提取步骤S13中已分好类别的5种不同类型的网络流集合的各自的一级4维统计特征total_ips、total_flows、total_packets、total_bytes。
3.如权利要求2所述的基于二级决策树的P2P协议识别方法,其特征在于,在步骤S12中,trigger定义为正向的连接失败的TCP流(T1)或反向的UDP流(U1);并且i>0;
在步骤S13中,5种不同类型的网络流分别为:
T1:正向的连接失败的TCP流;
T2:正向的数据包≤15的TCP流;
T3:正向的数据包>15的TCP流;
U1:反向的UDP流;
U2:正向的UDP流。
4.如权利要求3所述的基于二级决策树的P2P协议识别方法,其特征在于,在步骤S13中,正向网络流的定义为此网络流五元组的源IP地址等于使用P2P协议或待检测的IP地址,反向网络流的定义为此网络流五元组的目的IP地址等于使用P2P协议或待检测的IP地址。
5.如权利要求2所述的基于二级决策树的P2P协议识别方法,其特征在于,在步骤S14中,一级4维统计特征total_ips、total_flows、total_packets、total_bytes分别为:此种类型下的网络流集合所连接的不同的目的IP地址个数、此种类型下的网络流集合所产生的网络流个数、此种类型下的网络流集合所传输的数据包个数、此种类型下的网络流集合所传输的字节数。
6.如权利要求3所述的基于二级决策树的P2P协议识别方法,其特征在于,步骤S2进一步包括:
S21.利用步骤S13所获得的5种不同类型的网络流集合的5个一级训练集,采用决策树算法,分别训练对应的5种不同类型的网络流集合的5个一级分类决策树模型,形成一级分类决策树模型集;
S22.将5个一级训练集分别输入5个一级决策树模型,每个一级决策树模型负责处理各自的类别训练集中的统计特征,分别计算得到5种不同类型的网络流集合的每一个统计特征向量的分类结果(r)和错误率(e);
S23.将同一次提取的步骤S22种所得到的5种不同类型的网络流集合的每一个统计特征向量对应的分类结果(r)和错误率(e)进行整合形成二级的10维统计特征
<rT1,eT1,rT2,eT2,rT3,eT3,rU1,eU1,rU2,eU2>,
并进一步形成二级分类特征训练集;
S24.利用步骤S23所得到的二级分类特征训练集,采用决策树算法训练得到二级分类决策树模型。
7.如权利要求6所述的基于二级决策树的P2P协议识别方法,其特征在于,
在步骤S22中,r定义为一个一级决策树模型判定对应类型网络流集合的训练集中一个特征向量所属的协议;e定义为该决策树模型判定对应类型网络流集合的一条特征向量是r的错误率,由下式计算得到:
e r = 1 - N r &Sigma; i = 1 n N i
其中,Nr是训练子集中属于r的特征向量,且被划分到一个叶子结点的个数,Ni是该叶子结点中所有种类的特征向量的个数;
在步骤S23中,二级的10维统计特征分别为:
rT1:T1类型的网络流集合中一个统计特征向量被对应的一级T1决策树模型分类的分类结果;
eT1:T1类型的网络流集合中一个统计特征向量被对应的一级T1决策树模型分类的错误率;
rT2:T2类型的网络流集合中一个统计特征向量被对应的一级T2决策树模型分类的分类结果;
eT2:T2类型的网络流集合中一个统计特征向量被对应的一级T2决策树模型分类的错误率;
rT3:T3类型的网络流集合中一个统计特征向量被对应的一级T3决策树模型分类的分类结果;
eT3:T3类型的网络流集合中一个统计特征向量被对应的一级T3决策树模型分类的错误率;
rU1:U1类型的网络流集合中一个统计特征向量被对应的一级U1决策树模型分类的分类结果;
eU1:U1类型的网络流集合中一个统计特征向量被对应的一级U1决策树模型分类的错误率;
rU2:U2类型的网络流集合中一个统计特征向量被对应的一级U2决策树模型分类的分类结果;
eU2:U2类型的网络流集合中一个统计特征向量被对应的一级U2决策树模型分类的错误率。
8.如权利要求1所述的基于二级决策树的P2P协议识别方法,其特征在于,步骤S3进一步包括:
S31.从网络中获取所要检测的I P地址的一个网络流;
S32.判断步骤S31所得到的该网络流是否符合trigger的定义,如果符合,则执行步骤S33,否则,则执行步骤S34;
S33.累加符合步骤S32中的触发条件的网络流的数量后,判断已累加的符合步骤S32中的触发条件的网络流的数量是否大于等于步骤S12中所确定的i,如果是,则表示已结束本轮特征统计阶段,则执行步骤S35,否则,执行步骤S36;
S34.判断该IP地址是否还处在本轮特征统计阶段且未结束,如果仍然处在本轮特征统计阶段,则执行步骤S36,否则,执行步骤S31;
S35.结束已进行的特征统计阶段并保存统计特征,建立新的一级统计特征集数据结构,开始新一轮的特征统计阶段;
S36.判断此网络流所属的类别,并提取4维统计特征,将4维统计特征累加入对应类别的网络流集合的一级统计特征集数据结构中,执行步骤S31。
9.如权利要求8所述的基于二级决策树的P2P协议识别方法,其特征在于,
在步骤S32中,trigger定义为正向的连接失败的TCP流(T1)或反向的UDP流(U1)。
10.如权利要求8所述的基于二级决策树的P2P协议识别方法,其特征在于,步骤S4进一步包括:
S41.判断该IP地址是否已完成一轮特征统计阶段,如果已完成,则执行步骤S42,否则,执行步骤S41;
S42.利用步骤S2所得到的一级分类决策树模型集及步骤S3所得到同一轮特征统计阶段的5个不同类型网络流集合的一级4维统计特征,分别计算得到同一轮特征统计阶段下的对5种不同类型网络流集合的4维统计特征的分类结果(r)和错误率(e),之后,将同一轮特征统计阶段下的5种不同类型网络流集合的4维统计特征的分类结果和错误率整合,形成二级10维统计特征:
<rT1,eT1,rT2,eT2,rT3,eT3,rU1,eU1,rU2,eU2>;
S42.将步骤S41所得到的二级10维统计特征输入到步骤S2所得到的二级分类决策树模型,识别背景流量中的P2P协议。
CN201210228876.2A 2012-07-02 2012-07-02 一种基于二级决策树的p2p协议识别方法 Active CN103532908B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210228876.2A CN103532908B (zh) 2012-07-02 2012-07-02 一种基于二级决策树的p2p协议识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210228876.2A CN103532908B (zh) 2012-07-02 2012-07-02 一种基于二级决策树的p2p协议识别方法

Publications (2)

Publication Number Publication Date
CN103532908A true CN103532908A (zh) 2014-01-22
CN103532908B CN103532908B (zh) 2017-06-16

Family

ID=49934593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210228876.2A Active CN103532908B (zh) 2012-07-02 2012-07-02 一种基于二级决策树的p2p协议识别方法

Country Status (1)

Country Link
CN (1) CN103532908B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104378176A (zh) * 2014-11-24 2015-02-25 哈尔滨工业大学 一种鲁棒通信信号调制识别方法
CN105007194A (zh) * 2015-05-25 2015-10-28 上海南邮实业有限公司 一种自动识别网络协议的方法
CN105516021A (zh) * 2015-12-23 2016-04-20 北京广密华安科技有限公司 规避p2p流量识别的通信方法
CN106133721A (zh) * 2014-03-17 2016-11-16 微软技术许可有限责任公司 并行决策树处理器架构
CN114500688A (zh) * 2022-01-28 2022-05-13 厦门科灿信息技术有限公司 设备协议识别的方法、装置、终端及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101984635A (zh) * 2010-11-23 2011-03-09 清华大学 P2p协议流量识别方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101984635A (zh) * 2010-11-23 2011-03-09 清华大学 P2p协议流量识别方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HE FEI,等: "Accelerating Application Identification with Two—Stage Matching and Pre-Classification", 《TSINGHUA SCIENCE AND TECHNOLOGY》, 31 August 2011 (2011-08-31) *
路遥: "基于复合特征的P2P流媒体识别技术研究", 《中国优秀硕士学位论文全文数据库》, 15 March 2011 (2011-03-15) *
陈云菁,等: "基于决策树模型的P2P流量分类方法", 《计算机应用研究》 *

Cited By (9)

* 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 微软技术许可有限责任公司 并行决策树处理器架构
CN104378176A (zh) * 2014-11-24 2015-02-25 哈尔滨工业大学 一种鲁棒通信信号调制识别方法
CN104378176B (zh) * 2014-11-24 2017-11-03 哈尔滨工业大学 一种鲁棒通信信号调制识别方法
CN105007194A (zh) * 2015-05-25 2015-10-28 上海南邮实业有限公司 一种自动识别网络协议的方法
CN105516021A (zh) * 2015-12-23 2016-04-20 北京广密华安科技有限公司 规避p2p流量识别的通信方法
CN114500688A (zh) * 2022-01-28 2022-05-13 厦门科灿信息技术有限公司 设备协议识别的方法、装置、终端及存储介质
CN114500688B (zh) * 2022-01-28 2023-12-05 厦门科灿信息技术有限公司 设备协议识别的方法、装置、终端及存储介质

Also Published As

Publication number Publication date
CN103532908B (zh) 2017-06-16

Similar Documents

Publication Publication Date Title
CN102271090B (zh) 基于传输层特征的流量分类方法及装置
CN102315974B (zh) 基于层次化特征分析的tcp、udp流量在线识别方法和装置
CN104270392B (zh) 一种基于三分类器协同训练学习的网络协议识别方法及系统
CN101841440B (zh) 基于支持向量机与深层包检测的对等网络流量识别方法
CN105871832A (zh) 一种基于协议属性的网络应用加密流量识别方法及其装置
Xue et al. Traffic classification: Issues and challenges
CN103200133A (zh) 一种基于网络流引力聚类的流量识别方法
CN103532908A (zh) 一种基于二级决策树的p2p协议识别方法
CN101645803B (zh) 点对点业务的识别方法和互联网业务识别系统
Pekár et al. Adaptive aggregation of flow records
CN114513340B (zh) 一种软件定义网络中的两级DDoS攻击检测与防御方法
CN108833430B (zh) 一种软件定义网络的拓扑保护方法
CN101668025A (zh) 一种链路层网络拓扑发现方法及装置
CN102611706A (zh) 一种基于半监督学习的网络协议识别方法及系统
CN108667804B (zh) 一种基于SDN架构的DDoS攻击检测及防护方法和系统
Li et al. High performance flow feature extraction with multi-core processors
CN112291226A (zh) 一种网络流量的异常检测方法及装置
CN101984635B (zh) P2p协议流量识别方法及系统
Sajeev et al. LASER: A novel hybrid peer to peer network traffic classification technique
CN114091087B (zh) 一种基于人工智能算法的加密流量识别方法
CN103546441B (zh) 基于多级决策树的协议识别方法
CN104348675A (zh) 双向业务数据流识别方法及装置
He et al. Fine-grained P2P traffic classification by simply counting flows
Ding et al. Machine learning for cybersecurity: Network-based botnet detection using time-limited flows
Li et al. Traffic classification using cluster analysis

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant