基于传输层特征的流量分类方法及装置转让专利

申请号 : CN201110261935.1

文献号 : CN102271090B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钱峰刘萧胡光岷

申请人 : 电子科技大学

摘要 :

本发明涉及互联网应用技术领域,尤其涉及互联网应用中基于传输层特征对流量进行分类的方法。包含如下步骤:采集作为训练数据的数据包,利用从数据包中提取的数据流的传输层特征参数构建一个分类器;利用构建的分类器,实现对后续采集到的数据包中提取的数据流的分类。不需要了解数据包的端口号、特征字段等负载内容,只需要提取出流的传输层特征,就可识别该流的应用类型。不涉及用户的隐私,且使本技术能够识别基于动态端口号的、或已加密的流;而且本发明准确率高、完整性好,可以识别新型应用,还能提醒用户检查那些疑似的病毒攻击流。

权利要求 :

1.基于传输层特征的流量分类方法,其特征在于,包括如下步骤:A、采集作为训练数据的数据包,利用从数据包中提取的数据流的传输层特征参数构建一个分类器,具体步骤为:A1.首先采集一段时间内的所有数据包,并从数据包中提取作为训练数据的数据流;

A2.对数据流进行预处理后,提取数据流的传输层特征参数;所述传输层特征参数包括数据流的平均数据包大小、各数据包之间的到达时间间隔、IP层的数据部分大小的统计特征、数据包的控制字段大小、源端向目的端发送的数据包的数量和目的端向源端发送的数据包的数量;

A3.根据传输层特征参数,对数据流进行手工分类,标记该数据流所属的应用类型;

A4.对经过手工分类的数据流的传输层特征参数进行机器学习,不断得到作为分类器的决策树;A5.继续学习后续产生的数据流,直到决策树达到稳定的状态,即得到了一个有效的分类器;

B、利用构建的分类器,实现对后续采集到的数据包中提取的数据流的分类。

2.根据权利要求1所述的方法,其特征在于,所述步骤B中,利用构建的分类器,实现对后续采集到的数据包中提取的数据流的分类,详细步骤如下:B1、从后续采集到的数据包中提取数据流并进行预处理;

B2、提取所述经过预处理的数据流的传输层特征参数;

B3、将所述数据流的传输层特征参数,传递给分类器,分类器即可通过这些参数确定该数据流的所属应用类型。

3.根据权利要求1所述的方法,其特征在于,所述数据预处理步骤中,对于建立连接标志和拆除连接标志不完整的TCP数据流进行丢弃;并将具有相同五元组的UDP数据包归为一个完整的UDP流。

4.根据权利要求1或3所述的方法,其特征在于,步骤A4中,构建分类器时,采用C4.5决策树分类算法构建一棵决策树作为分类器。

5.根据权利要求4所述的方法,其特征在于,在采用C4.5决策树算法构建分类器过程中,用平滑的方式来填充残缺的数据,即以相邻的、相同属性的若干个值的平均值作为缺失值;对于噪声数据,则采取将该流从数据集中剔除的方式处理。

6.基于传输层特征的流量分类装置,其特征在于,包括:数据采集模块,用于采集作为训练数据的网络数据包以及需要进行流量分量网络数据包;

分类器构建模块,用于利用数据采集模块采集的作为训练数据的数据包,利用从数据包中提取的数据流的传输层特征构建一个分类器;所述传输层特征参数包括数据流的平均数据包大小、各数据包之间的到达时间间隔、IP层的数据部分大小的统计特征、数据包的控制字段大小、源端向目的端发送的数据包的数量和目的端向源端发送的数据包的数量;

分类模块,用于利用生成的分类器对数据采集模块采集到的网络数据进行分类;

所述分类器构建模块包括:

数据流提取单元,用于从训练数据中提取数据流;

预处理单元,用于对数据流进行预处理后,提取数据流的传输层特征;所述预处理是指去掉不完整的数据流;

分类标记单元,用于根据传输层特征,通过从训练数据中提取的数据流进行手工分类,然后根据手工分类结果标记该数据流所属的应用类型;

算法实现单元,用于采用C4.5决策树算法构建分类器对于经过手工分类的流的传输层特征进行机器学习,生成一个分类器;

所述分类模块包括:

数据流提取单元,用于从数据采集模块不断获取需要进行数据流分类的数据包,并从所述数据包中提取数据流;预处理单元,用于对数据流提取单元提取的数据流进行预处理后,提取数据流的传输层特征;所述预处理是指去掉不完整的数据流;

分类实现单元;利用生成的分类器对经过预处理的数据流进行分类。

说明书 :

基于传输层特征的流量分类方法及装置

技术领域

[0001] 本发明涉及互联网应用技术领域,尤其涉及互联网应用中基于传输层特征对流量进行分类的方法及装置。

背景技术

[0002] 近年来,信息技术取得了突飞猛进式的发展,网络带宽迅速提高,网络容量急剧扩大,各种各样的互联网应用也如雨后春笋般地出现,网络结构从传统的客户/服务器(C/S)、浏览器/服务器(B/S)模式,逐渐转向P2P结构的应用模式。传统的WWW、FTP、MAIL业务虽仍然是不可或缺的互联网应用,但已不再占据互联网的统治地位;语音、视频、网络电视等应用迅速流行,并逐渐成为占用网络带宽的主流应用。这些主流应用不仅占用大量带宽资源,容易引起网络拥塞,增加了运营商的运维成本,而且容易传播计算机病毒,对网络安全构成了严重威胁;又由于网络结构日益复杂,传统的网络管理工具已经无法完成网络分析与管理的工作,网络的安全性、可管理性受到严重挑战。尽管网络管理人员及研究人员等提出了容量规划、流量控制等一系列策略来提高网络的运营效率。然而,无论是根据用户需求对网络资源进行QoS调度,还是根据网络应用的发展趋势对现有网络进行扩容改造,都必须对网络流量中各种应用进行准确的分类与识别。因此流分类技术是许多其他网络管理技术的基础。例如网络管理员需要对各种应用类型进行实时的监控和管理,以分析用户上网行为、流量计费或优化网络等。另外,准确的流分类在网络安全、应用趋势分析等研究领域,也具有极其重要的意义。
[0003] 流分类技术的目的就是根据一定的策略和规则,识别数据流属于何种应用类型,从而可以确切的掌握网络中实际运行着何种应用程序,从而为管理、完全、研究等网络相关业务提供前提条件。所谓流即数据流,相同的是指即具有相同源IP、源端口、目的IP、目的端口、传输层协议的所有数据包。如何快速、准确地实现流分类,并不是一个简单的任务。传统的流分类方法主要有以下两种:
[0004] (1)基于端口号的流分类技术:早期的互联网应用较少,且大多都使用固定端口号(特别是一些常用服务,它们甚至使用静态端口)进行数据传输。例如FTP使用端口号21实现文件传输,Telnet使用端口号23实现远程登录,HTTP使用端口号80实现超文本传输等等。通过截获这些应用产生的数据包,将其中的端口号与应用类型一一对应起来即可识别出其应用类型,准确性、实时性都较高。但目前一方面由于许多互联网应用类型已经不再使用固定的、或可预知的端口号作为其通信端口,所以以前常用的基于端口号的分类方法不再适用,另一方面网络地址转换(NAT,Network Addresses Transformation)技术以及代理技术的运用使端口号无法再作为识别流的有效标识。
[0005] (2)基于特征字段的流分类技术:本技术主要应用于识别P2P流。近年来,P2P流占网络总流的比重逐年增加,有很多网络中甚至超过了50%,所以,一旦能准确识别出P2P流,流分类工作就已完成了一大半。主要的实现方案是针对数据流中的TCP流进行了详细分析,在这些数据流的有效载荷中找到了具有代表性的、唯一的特征字段及其位置,然后进一步利用这些特征字段及其位置来判断各数据包是否是P2P流。已经有研究人员总结了当时几种流行P2P协议的特征字段。遗憾的是该实现方案也只能识别特征字段已知的P2P流,不能识别所有流,完整性低。
[0006] 近年来,人们又提出了基于传输层的新型流分类技术,目前已经有一定研究成果的方案有以下两种:
[0007] (1)BLINC(Blind classification)流分类方案:该方案所提首先提出利用主机在传输层表现出的行为模式来实现流分类,该方法又叫BLINC流分类方法,其工作原理如下:首先观察Internet上单个主机的行为特点,例如是否同时与多台主机通信,或者同时扫描另一台主机的多个端口;然后从三个层次对主机行为进行分析,即反映主机连通度的社会层(Social)、反映服务提供者或消费者行为的功能层(Functional)以及表示传输层拓扑连接的应用层(Application);并将观察到的主机群行为模式与已知的应用特征进行匹配,即根据事先构造好的图表进行匹配。最后,利用由统计数据或凭经验得到的启发式进一步完善算法性能。一方面由于该方案利用了网络应用的行为属性,不仅容易随着网络应用自身的改进而失效,也会因为网络环境的不同而导致分类性能出现显著的变化。又由于其分类模型较为复杂,计算量大,较难直接用作流量分类。
[0008] (2)基于统计特征的流分类方法:该方案通过将贝叶斯分类理论引入流分类领域,统计流的各种特征,利用机器学习,对网络上的流进行分类。利用工具根据源IP、目的IP、源Port、目的Port以及传输层协议(TCP或UDP)将数据包划分为不同的流,并分别提取流的各项参数,例如平均包长、平均包间隔时间、流持续时间等流特征。之后,将流的统计数据以及初始的流属性模型用于自分类的机器学习算法,即无人监督的贝叶斯分类方法。机器学习的时间越长,则分类的准确性越高,一旦达到某个标准,就可以对后续的输入数据流自动分类。但是该方案同样存在计算量大和处理速度慢的问题。
[0009] 综上所述,有必要围绕不同应用类型的传输层行为特征进行分析,提出一完整性好、计算简单的基于传输层特征的新型流分类技术。

发明内容

[0010] 本发明针对现有流分类方法的缺陷和通信网络的特点,围绕不同应用类型的传输层行为特征进行分析,提出了一种有监督的、基于传输层特征的流量分类方法。
[0011] 鉴于以上目的,本发明提供了一种基于传输层特征的流量分类方法,包括如下步骤:
[0012] A、采集作为训练数据的数据包,利用从数据包中提取的数据流的传输层特征构建一个分类器;
[0013] B、利用构建的分类器,实现对后续采集到的数据包中提取的数据流的分类。
[0014] 具体的,所述步骤A中,利用从数据包中提取的数据流的传输层特征构建一个分类器的详细步骤如下:
[0015] A1.首先采集一段时间内的所有数据包,并从数据包中提取作为训练数据的数据流;
[0016] A2.对数据流进行预处理后,提取数据流的传输层特征参数;
[0017] A3.根据传输层特征参数,对数据流进行手工分类,标记该数据流所属的应用类型;
[0018] A4.对经过手工分类的数据流的传输层特征参数进行机器学习,不断得到作为分类器的决策树;
[0019] A5.继续学习后续产生的数据流,直到决策树达到稳定的状态,即得到了一个有效的分类器。
[0020] 更进一步的,所述步骤B中,利用构建的分类器,实现对后续采集到的数据包中提取的数据流的分类,详细步骤如下:
[0021] B1、从后续采集到的数据包中提取数据流并进行预处理;
[0022] B2、提取所述经过预处理的数据流的传输层特征;
[0023] B3、将所述数据流的传输层特征作为参数,传递给分类器,分类器即可通过这些参数确定该数据流的所属应用类型。
[0024] 优选的,所述传输层的特征参数包括数据流的平均数据包大小、各数据包之间的到达时间间隔、IP层的数据部分大小的统计特征、数据包的控制字段大小、源端向目的端发送的数据包的数量和目的端向源端发送的数据包的数量。
[0025] 本发明的另一个目的,提供一种基于传输层特征的流量分类装置,包括:
[0026] 数据采集模块,用于采集作为训练数据的网络数据包以及需要进行流量分量网络数据包;
[0027] 分类器构建模块,用于利用数据采集模块采集的作为训练数据的数据包,利用从数据包中提取的数据流的传输层特征构建一个分类器;
[0028] 分类模块,用于利用生成的分类器对数据采集模块采集到的网络数据进行分类。
[0029] 具体的,所述分类器构建模块包括:
[0030] 数据流提取单元,用于从训练数据中提取数据流;
[0031] 预处理单元,用于对数据流进行预处理后,提取数据流的传输层特征;所述预处理是指去掉不完整的数据流;
[0032] 分类标记单元,用于根据传输层特征,通过从训练数据中提取的数据流进行手工分类,然后根据手工分类结果标记该数据流所属的应用类型;
[0033] 算法实现单元,用于采用C4.5决策树算法构建分类器对于经过手工分类的流的传输层特征进行机器学习,生成一个分类器。
[0034] 9.更进一步的,所述分类模块包括:
[0035] 数据流提取单元,用于从数据采集模块不断获取需要进行数据流分类的数据包,并从所述数据包中提取数据流;
[0036] 预处理单元,用于对数据流提取单元提取的数据流进行预处理后,提取数据流的传输层特征;所述预处理是指去掉不完整的数据流;
[0037] 分类实现单元;利用生成的分类器对经过预处理的数据流进行分类。
[0038] 从以上技术方案可以看出,本发明提出了一种有监督的、基于传输层特征的流分类技术,它将流分类问题视作数据挖掘中的分类发现问题,并采用C4.5决策树归纳算法构建分类器,进一步利用该分类器识别流的类型,从而实现流分类,具有以下优点:
[0039] (1)不需要了解数据包的端口号、特征字段等负载内容,只需要提取出流的传输层特征,就可识别该流的应用类型。不涉及用户的隐私,且使本技术能够识别基于动态端口号的、或已加密的流。
[0040] (2)准确率高、完整性好,可以识别新型应用,还能提醒用户检查那些疑似的病毒攻击流。本发明通过分析各应用类型的传输层特征实现流分类,对于同一应用类型,其传输层特征基本上是相似的,因而只要新型应用的传输层特征与训练数据中的应用类型的传输层特征相同,就可识别出该新型应用类型,完整性高。

附图说明

[0041] 图1是本发明提供的一种基于传输层特征的流量分类方法的流程图;
[0042] 图2是本发明实施例提供的一种构建分类器的方法流程图;
[0043] 图3是本发明实施例提供的进行数据采集的网络环境示意图;
[0044] 图4是本发明实施例提供的分类器实现流分类具体的流程图;
[0045] 图5是本发明提出的一种基于传输层特征的流量分类装置的结构框图。

具体实施方式

[0046] 下面结合附图和具体实施例对本发明作进一步说明。
[0047] 对于一个网络,在某一段时间内,各种应用流的传输层特征也是相对稳定的;同一应用类型的流的传输层特征也极其相似;不同应用类型流的传输层特征表现为一定的差异。不同应用产生的数据流在数据链路层、网络层、传输层、应用层都具有其区别于其他应用流的特征;有人总结了可用于流分类的249个流特征。因此,在一个相对稳定的网络环境下,可以通过提取流的传输层特征并学习,了解不同类型的流之间的差异,构建分类器,以实现流分类。
[0048] 本发明围绕流不同应用类型的传输层行为特征进行分析,提出了一种有监督的、基于传输层特征的流分类方法,通过提取并处理流的传输层特征参数,实现网络流的分类与识别,为网络管理提供有效的流分类工具。本发明借助数据挖掘技术,将流分类问题视为数据挖掘中的分类发现问题,采用C4.5决策树归纳分类算法,学习流的传输层特征训练数据,并构建分类器,以识别流的应用类型,实现流分类。
[0049] 如图1所示,为本发明提出的基于传输层特征的流量分类方法的流程图,其解决方案主要分两个步骤进行:
[0050] 步骤101是构建分类器,即采集一段时间内的所有数据包,并从数据包中提取数据流的传输层特征作为训练数据,即通过学习训练数据,得到有效的分类器。
[0051] 首先本发明提取该网络在某一时间段内的所有数据包作为训练数据,按照五元组源IP、目的IP、源端口、目的端口和协议的方式提取出流,并把这些流进行预处理,划分成不同的完整流;然后提取这些流的传输层特征参数,如数据流的平均数据包大小、各数据包之间的到达时间间隔、IP层的数据部分大小的统计特征、数据包的控制字段大小、源端向目的端发送的数据包的数量和目的端向源端发送的数据包的数量等;然后对这些流进行手工分类,标记出这些流的应用类型,这就得到了训练数据;采用C4.5算法学习这些训练数据,构建得到一个稳定、有效的分类器。
[0052] 步骤102是利用构建的分类器实现分类:即利用构建的分类器,实现对后续采集到的数据包中提取的数据流的分类。构建分类器时,本发明采用由C4.5决策树分类算法构建一棵决策树作为分类器,利用该分类器对该网络中后续的流进行分类。由于目前各种应用主要利用TCP、UDP协议实现数据包的传输,因此在本发明中,只针对TCP流和UDP流实现了流分类。
[0053] 如图2所示,是本发明实施例的构建分类器的详细步骤,包括:
[0054] 步骤201,首先采集一段时间内的所有数据包,并从数据包中提取数据流作为训练数据。在获得网络数据时,需要获得丰富的流量相关信息。利用操作系统底层抓包库实现数据采集,能够获得详细的数据包信息,从而能从中获得丰富的流相关信息,是研究流分类的比较理想的流采集方式。常用的抓包库有libpcap,winpcap,bpf等。一种可行的采集数据的网络环境如图3所示。使用网管型交换机连接内网交换机和缺省网关(路由器)。在网管型交换机上做端口镜像,镜像端口上接数据采集终端。通过端口镜像,使得所有进出内网的数据被拷贝到镜像端口,进而被数据采集终端全部采集。
[0055] 步骤202,对步骤201中提取的数据流进行预处理后,不断得到完整的数据流,并提取出该数据流的传输层特征。预处理的目的是提取出完整的数据流,丢弃不完整的数据流,提取出完整数据流的传输层特征,并处理噪声数据和残缺数据。利用TCP协议实现数据传输的过程有三个步骤,即建立连接、传输数据、拆除连接。完整的TCP数据流是指一次具有三个完整的步骤的数据传输过程中产生的所有数据包。按照五元组(源IP、目的IP、源端口、目的端口、传输层协议)提取TCP数据流时,由于TCP数据传输过程有建立连接和拆除连接的过程,其产生的数据包也具有明显的开始和结束标志,所以可以方便地确定出TCP数据流是否完整。由于无法确定UDP数据流的起始和结束,故本发明将具有相同五元组的UDP数据包归为同一个UDP数据流,并认为它是完整的流。
[0056] 由于网络不稳定等各种原因,可能造成数据包在传输过程中被丢弃,并导致TCP连接异常中断,从而形成不完整的TCP数据流。由于不完整的数据流不足以代表该应用类型,此外,不完整数据流的传输层特征变化幅度大,不利于构建稳定的分类器,故本发明只通过完整流的传输层特征来实现流分类,识别出各流的应用类型;对于不完整流采取直接丢弃的处理方式。
[0057] 提取出来的数据流只是一连串的数据包,为了构建基于传输层特征的分类器,还需要提取出这些数据包的传输层特征参数。典型的特征参数有数据流的平均数据包大小、各数据包之间的到达时间间隔、IP层的数据部分大小的统计特征、数据包的控制字段大小、源端向目的端发送的数据包的数量和目的端向源端发送的数据包的数量等,具体可参见表1:
[0058]
[0059] 表1:传输层的特征参数示例表
[0060] 提取得到的特征参数可能不完整,形成残缺数据。有些特征则存在噪声属性,例如一些流的数据包太少,从而导致该流的部分特征参数无效(如数据包的到达时间间隔的FFT)。计算这类流的特征参数时,这部分特征参数是不正常情况下的计算结果,就是噪声数据,需要剔除。本发明采用平滑的方式来填充残缺的数据,即以相邻的、相同属性的若干个值的平均值作为缺失值;对于噪声数据,则采取将该流从数据集中剔除的方式处理。
[0061] 步骤203,根据传输层特征,对流进行手工分类,标记该数据流所属的应用类型。目前互联网上常见的应用类型与对应的典型应用见下表2:
[0062]互联网应用类型 典型应用
BULK FTP
DATABASE Postgres,slqnet,oracle,ingress
INTERACTIVE Ssh,klogin,rlogin,telnet
MAIL Imap,pop2/3,smtp
SERVICES X11,dns,ident,ldap,ntp
WWW www
P2P Xunlei,KaZaA,BitTorrent,GnuTella
ATTACK Worm,virus
GAMES Half-Life,Warcraft
MULTIMEDIA Windows Media Player,Real Player
[0063] 表2:互联网应用类型与对应的典型应用
[0064] 本发明通过手工分类,即标记出数据流的应用类型,如WWW、P2P、FTP等,目的是为构建分类器提供训练数据集。只有正确地标识出数据流的类型,才能构建出识别率高的分类器。其中需要采取多种技术实现手工分类,如通过端口可标识出诸如FTP、Telnet等应用的流;通过应用层特征字段可标识出部分P2P应用的流等。手工分类可精确地标识出流的应用类型,为构建分类器提供良好的训练数据集。但手工分类过程复杂,速度慢,因此仅适用于对训练数据进行流分类,不适用于对大量的数据进行流分类。
[0065] 步骤204,对经过手工分类的数据流的传输层特征进行机器学习,不断得到作为分类器的决策树。本发明采用的是有监督的分类技术,在预处理、手工分类后,就可通过数据挖掘中的基于决策树的分类算法构建分类树。在创建决策树时,由于数据中噪声的影响,许多分枝反映的是训练数据中的异常,需要通过剪枝方法剪去这些不可靠的分枝。剪枝后的树更小,复杂度更低。
[0066] 步骤205,继续学习后续产生的数据流,直到决策树达到稳定的状态,即得到了一个有效的分类器。刚开始得到的决策树是不稳定的,变化幅度较大;继续学习后续产生的流,直到决策树达到稳定的状态,即得到了一个有效的分类器。
[0067] 如图4所示,为本发明实施例的分类器实现流分类具体的流程图。得到分类器后,就可对后续的流进行分类,识别出其应用类型,具体步骤如下:
[0068] 步骤401,从后续采集到的数据包中提取数据流,并进行预处理。
[0069] 步骤402,提取所述经过预处理的数据流的传输层特征。本步骤中,预处理后续数据包后,丢弃不完整的流,不断得到完整的流,并处理噪声数据和残缺数据后,并提取该流的传输层特征。
[0070] 步骤403,将所述数据流的传输层特征作为参数,传递给分类器,分类器即可通过这些参数确定该数据流的所属应用类型。
[0071] 如图5所示,为本发明实施例的基于传输层特征的流量分类装置,该装置实施了上述本发明的传输层特征的流量分类方法。本装置包括:
[0072] 数据采集模块,用于采集作为训练数据的网络数据包以及需要进行流量分量网络数据包;
[0073] 分类器构建模块,用于利用数据采集模块采集的作为训练数据的数据包,利用从数据包中提取的数据流的传输层特征构建一个分类器;
[0074] 分类模块,用于利用生成的分类器对数据采集模块采集到的网络数据进行分类。
[0075] 本发明实施例的分类器构建模块包括:
[0076] 数据流提取单元,用于从训练数据中提取数据流;
[0077] 预处理单元,用于对数据流进行预处理后,提取数据流的传输层特征;所述预处理是指去掉不完整的数据流;
[0078] 分类标记单元,用于根据传输层特征,通过从训练数据中提取的数据流进行手工分类,然后根据手工分类结果标记该数据流所属的应用类型;
[0079] 算法实现单元,用于采用C4.5决策树算法构建分类器对于经过手工分类的流的传输层特征进行机器学习,生成一个分类器。
[0080] 另外,本发明实施例的分类模块包括:
[0081] 数据流提取单元,用于从数据采集模块不断获取需要进行数据流分类的数据包,并从所述数据包中提取数据流;
[0082] 预处理单元,用于对数据流提取单元提取的数据流进行预处理后,提取数据流的传输层特征;所述预处理是指去掉不完整的数据流;
[0083] 分类实现单元;利用生成的分类器对经过预处理的数据流进行分类。
[0084] 本发明提出了一种有监督的、基于传输层特征的流分类技术,它将流分类问题视作数据挖掘中的分类发现问题,并采用C4.5决策树归纳算法构建分类器,进一步利用该分类器识别流的类型,从而实现流分类。
[0085] 本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。