首页> 中国专利> 基于层次化特征分析的TCP、UDP流量在线识别方法和装置

基于层次化特征分析的TCP、UDP流量在线识别方法和装置

摘要

本发明涉及一种基于层次化特征分析的TCP、UDP流量在线识别方法和装置,其中方法包括:离线阶段通过协议分析确定第一层待识别业务类型常用的端口号,以及第二层待识别业务数据流的特征字段,构建端口号及特征字段库,同时采用机器学习的方法训练得到第三层贝叶斯决策树模型。在线分类阶段利用特征库和学习模型完成对流量的业务类型识别。本发明装置包括:数据流分离模块,特征提取模块,特征存储模块,特征匹配模块,属性提取模块,模型构建与分类模块,分类结果显示模块。本发明实例能准确的识别各种基于TCP、UDP的应用层业务,并且识别过程简单高效,适于硬件装置实现,可用于高速骨干网以及接入网中需要在线流量识别的设备和系统。

著录项

  • 公开/公告号CN102315974A

    专利类型发明专利

  • 公开/公告日2012-01-11

    原文格式PDF

  • 申请/专利权人 北京邮电大学;

    申请/专利号CN201110312763.6

  • 发明设计人 顾仁涛;秦军;纪越峰;

    申请日2011-10-17

  • 分类号H04L12/24(20060101);H04L12/26(20060101);

  • 代理机构

  • 代理人

  • 地址 100876 北京市海淀区西土城路10号

  • 入库时间 2023-12-18 04:08:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-08-27

    授权

    授权

  • 2012-03-07

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20111017

    实质审查的生效

  • 2012-01-11

    公开

    公开

说明书

技术领域

本发明涉及计算机网络与通信技术领域,尤其涉及一种流量识别的方法和装置。

背景技术

随着Internet重要性的日益提高和网络结构的日益复杂,网络用户迅猛增加,各种新的网络应用、服 务、标准和协议层出不迭。对网络中的流量进行准确的识别是众多的网络活动的基础,如安全监测、记账, 保证传送业务的QoS、给运营者从长远角度提供有用的预测。同时,网络管理者只有随时了解当前网络的 运行状态,掌握网络中各种流量的情况,才能对网络进行适度的控制,这都涉及到流量识别的技术。因此, 选择合适的方法来研究应用层流量显得尤为重要。

目前国内外使用的流量识别方法主要包括基于传输层端口、应用层协议有效载荷和基于流量统计特征 识别。基于传输层端口号的识别方法,该方法根据数据包首部的源端口号或目的端口号识别常见的流量, 如HTTP,SMTP,TELENT等,该方法原理简单,容易实现。基于应用层签名的识别方法也叫做深度包检 测DPI方法,所谓“深度”是和普通的报文分析层次相比较而言,普通报文检测仅分析IP包的五元组信息 即{源地址目的地址,源端口,目的端口,协议类型},而DPI除了对前面的层次进行分析外,还增加了应 用层协议有效载荷分析,从而识别各种应用业务类型。基于流量统计特征的识别方法基于一系列流量的统 计行为特征,建立流量特征模型,通过分析会活连接流的包长、连接速率、传输字节量、包与包之间的间 隔等信息来与流量模型对比,从而实现对应用业务类型的鉴别。与基于应用层签名的流量识别方法相比, 基于流量统计特征的流量识别方法有以下优点:(1)易于检测加密的流量;(2)易于检测特征有效载荷未 知的应用层流量;适用于对安全和网络性能要求较高的网络。而且由于基于流量特征的流量识别方法一般 都只需要对所关注的流量特征的统计信息,不需要像基于签名特征的流量检测法那样对每个包进行净荷匹 配,所以效率较高,基于DPI的带宽管理系统的处理能力达到线速1Gbps左右,而基于流量统计特征识别的 系统则可以达到线速10Gbps的流量监控能力,完全可以满足运营商需求,不会成为网络的瓶颈;对硬件的 要求相对较低,成本较低。但基于流量特征的检测方法也并非十全十美,它的缺点在于:(1)识别方法较 为复杂;(2)识别精度不如基于应用层签名流量识别方法,并且很难对应用层流量进行准确地实时的分类。 由于DPI采用逐包分析、模式匹配技术,因此,可以对流量中的具体应用类型和协议做到比较准确的识别,而 基于流量统计特征的方法仅对流量行为分析,因此只能对应用类型进行笼统分类。

目前,由于端口号的滥用,尤其是如P2P、被动FTP等类型业务采用动态端口号,使得单纯基于传输层 端口号进行业务识别的方法失去了有效性。而针对载荷特征的方法,由于涉及较为复杂的操作,不适用于 高速骨干网的流量识别。同时采用机器学习方法进行流量识别的方法,由于其计算复杂性和准确率等问题, 不适于网络设备的硬件实现,因而限制了其在高速骨干网的应用。

发明内容

本发明的目的是提供一种基于层次化特征分析的TCP、UDP流量在线识别方法和装置。通过提取TCP、 UDP流中的端口号与特征字段与库中的存储进行匹配同时结合机器学习方法,利用数据流的统计信息,提 取一个数据流中头部若干包的包长、修正的包间隔时间等参数,训练贝叶斯决策树模型,利用得到的模型 对前两个阶段尚未识别的业务进行识别。利用层次化的结构,输出结果为各部分结果的互补。本发明提供 的方法包括以下步骤:

步骤1,前期真实流量数据的获取及梳理:采集多个网络真实流量数据集,这些数据集在不同时间采 自于待部署网络。通过查找数据流的起始数据包,以及{源地址、目的地址、源端口、目的端口、传输层 协议类型}五元组将所得流量数据集分离为不同的TCP、UDP流,使得流量数据集就转换为TCP流与UDP 流的集合。

步骤2,依端口号划分数据流:将步骤1中获得的TCP与UDP流分别按照事先划分的业务类型的常 用端口号进行划分,对于端口号不易确定的常见业务类型以及P2P型业务统一划分到未知端口区。这样 TCP与UDP数据流依照端口号划分成了数据流块。

步骤3,规划层次识别模型下各层需识别的业务类型:本着识别准确率高以及处理高效的原则,对于 第一层采用常用端口号识别的业务类型应具有端口号较为固定且不易被其他业务类型占用,对于此类型的 业务划分到第一层进行识别。第二层采用数据包有效载荷识别的业务类型应具有协议字段较为固定、易于 提取等特点。第三层利用基于数据流头部特征采用机器学习的方法进行业务识别,其识别的业务类型应具 有的特点是第一、二层处理难度较大,如加密、特征字段不明显型以及特征字段难以提取的流量及UDP 型流量等。依照上述原则在对网络中所有流量业务类型划分的基础上对各层待识别的业务类型进行规划。

步骤4,端口号及协议特征字段的提取:对步骤3中第一二层采用基于端口号和有效载荷的方法所要 识别的业务类型的端口号及协议特征字段进行提取,可以采用协议分析法同时结合前人的工作经验,必要 情况下也可以人为在终端上产生流量并在传输路径上加以采集然后做分析。值得一提的是,端口号及协议 特征字段的提取都是在流的基础上的操作,协议类型与特征字段存在一对多的情况,所以应选取有效的特 征字段但其数量可以不定。

步骤5,数据流头部特征提取:在不同时间采集待部署网络真实流量数据集,按照{源地址、目的地址、 源端口、目的端口、传输层协议类型}五元组将采集到的数据集进行分类,分成不同的TCP、UDP流。提 取每条流中关于数据包的统计特征,并按照数据包在该流的先后顺序构建一个特征序列。对于TCP数据流 通过查找数据流的起始数据包,如其Set-up包等确定流的开始,而对于UDP数据流由于其没有明显的起 始数据包,通常通过限定时间的方法获得截取,同样按照五元组将其分为不同的UDP流。

步骤6,端口号、协议特征字段及数据流头部特征存储:步骤4中得到的端口号和协议特征字段按照 与协议相对应的模式进行存储,同时将步骤5中得到的数据流头部特征进行存储以用于后一阶段机器学习 分类器模型的训练。此步骤中可以设置不同的存储模块也可以同一存储模块划分成不同的存储区域。同时 应注意特征字段库的更新。

步骤7,训练机器学习分类模型:利用步骤6中存储的数据流头部特征的数据对贝叶斯决策树分类器 进行训练得到贝叶斯决策树分类模型,由于TCP与UDP数据流的差异性,此时针对TCP流和UDP流分 别构建分类器,后期分别对TCP和UDP进行模型应用。

步骤8,提取待分析数据流的端口号与协议特征字段:按照数据包在该数据流中到达的先后顺序,提 取其端口号与协议特征字段并予以存储,可以采用协议分析手段并结合前人工作经验。

步骤9,端口及协议字段匹配与业务标记:将步骤8中提取到的端口号和特征字段与存储模块进行匹 配,如果发现存在匹配状态则标记为存储模块中相对应的业务类型。如果端口为相应的存储模块中的端口 则标记为其对应业务类型,同样发现匹配的特征字段也标记为相应的业务类型。对于匹配过程采用高效的 匹配机制或算法将有效提高此过程效率。

步骤10,提取待分析数据流统计特征值:此阶段处理的数据流为经过步骤9尚未做出业务类型标记的 数据流。同样按照数据流数据包在该数据流中到达的先后顺序,依次提取这些数据包的统计特征如包长、 到达时间间隔统计属性值等组成一个特征序列,并予以存储。

步骤11,利用学习模型分类:利用步骤7中训练得到的机器学习模型以及步骤10中的数据流的统计 特征值作为输入对尚未识别的数据流进行分类。

步骤12,分类结果汇总输出:将步骤9与步骤11中的结果汇总输出。

本发明还提供了一种基于本方法的流量在线识别装置,其至少包括:

数据流分离模块,完成两方面工作,一从监测流量中按照{源地址、目的地址、源端口、目的端口、 传输层协议类型}五元组对TCP、UDP流进行数据流分离,以便于提取特征和后期的流量管理;二将TCP、 UDP流按照特定的端口号划分成TCP、UDP数据流块。

特征字段及流属性提取模块,从数据流块中提取特征字段以及按顺序提取头部若干个数据包的特征, 组成特征序列;

端口号、特征字段匹配模块,完成提取端口号协议特征字段与存储库的比对;

标记检测模块,检测到达的数据包的业务类型是否已经被标识;

贝叶斯决策树模型分类模块,完成利用流属性值的离线训练生成模型实现实时的在线分类。

端口号协议特征字段及流属性值存储模块,存储通过前期采集数据分析得到的端口号、协议特征,以 及离线训练学习模型所需要的流属性参数值的存储。

分类结果汇总显示模块,将两个阶段的分类结果汇总显示。

附图说明

为了更清楚地说明本发明实施例,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显 然地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳 动前提下,还可以根据这些附图获得的更多的附图。

图1是本发明一个实施例提供的实时在线流量识别方法流程图;

图2是本发明一个实施例提供的流量识别装置的结构示意图;

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所 描述的实例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护范围。

图1为本发明一个实施例提供的流量识别方法的流程图,如图1所示,该方法包括:

S101、收集多个真实网络流量数据集并梳理成TCP与UDP流的集合;

网络流量识别装置一般部署在一定的网络环境中,为了提高协议特征字段库的精确度,需要在待部署 的网络中布置测量设备,从网络中采集真实流量数据集。其中,该流量数据集包括用于通过端口号、有效 载荷检查等方式确定流量协议类型以及提取特征字段所需的信息,同时包含数据包长、包间隔时间等后续 步骤所需的特征参数;显然,S101所述的真实流量数据集可通过探针方式在承载众多用户的网络中获得, 同时也包括其它方式获得的真实流量,如人为在某些终端上产生某种特定业务类型流量并在传输路径上加 以采集。采集完成后把流量按照{源地址、目的地址、源端口、目的端口、传输层协议类型}五元组的形式 将数据集分离为不同的流,即TCP与UDP流,这样流量数据集就变为了TCP与UDP流的集合。

S102、依端口号把数据流划分成数据流块;

经过S101之后数据流为TCP流与UDP流的集合,经过S102将TCP流与UDP流按照约定的端口号 分别划分成TCP流块与UDP流块,以做后续处理。

S103、端口号、协议特征字段提取;

对第一阶段所要识别的业务类型的端口号及协议特征字段进行提取,可以采用协议分析法同时结合前 人的工作经验。同样,必要情况下也可以人为在终端上产生流量并在传输路径上加以采集然后做分析。

S104、数据流头部特征提取;

本流量识别方法中都是针对数据流进行处理,把流量按照{源地址、目的地址、源端口、目的端口、 传输层协议类型}五元组将S101所得流量数据集分离为不同的流,即TCP与UDP流,这样流量数据集就 变为了TCP与UDP流的集合。其中,TCP流的头部的判断依据可以使用但不限于TCP的Setup、Setup/ACK、 ACK数据包,并且一个数据流中数据包必须按照达到观测点的先后顺序排列。而对于UDP数据流由于其 没有明显的起始数据包,通常通过限定时间的方法获得截取,同样按照五元组将其分为不同的UDP流。 在此,利用协议分析法,获得TCP和UDP数据流的业务协议类型,如WWW、MAIL、FTP、P2P、Service、 IM等。然后对于TCP与UDP数据流分别提取每条流中关于数据包的统计特征,并按照数据包在该流的先 后顺序构建一个特征序列。即需要提取每条流头部若干个包的包长、修正包间隔时间以及传送方向等若干 属性对应的参数值,其包数可以根据实际测试情况加以调整,实验可知理想数目为5-10。由于包长和修正 间隔时间范围较大且需要离散化,可能需要数据的归一化处理,如采用Log函数,arctan函数对原始数据 进行处理,并选取合适的离散刻度。同时,由于部分数据包因为丢失和延迟过大引起重传,此部分数据可 以剔除以提高精确度。

S105、端口号、协议特征字段及数据流头部特征存储;

此发明实例中需要提取第一层识别中需要识别的业务协议类型对应的端口号及第二层待识别业务特 征字段以及第三层机器学习构建分类模型过程中需要输入的数据流的属性对应的参数值,此过程有S103 及S104完成;S104过程中,每一条流可以获得如下的特征序列:{{第一个包长,第一个修正包间隔时间, 第一个包传送方向},{第二个包长,第二个修正包间隔时间,第二个包传送方向},{第三个包长,第三个 修正包间隔时间,第三个包传送方向},……,{第n个包长,第n个修正包间隔时间,第n个包传送方向}}, 其中,n为使用的数据流头部数据包的数目。对于所用的数据流的属性的选择依据是有模型训练阶段利用 某些属性进行训练得到的分类准确率的大小。将S103过程获得的协议特征序列及S104获得的属性对应的 如上的特征序列进行存储。需要注意的是,此时的数据流的业务类型已有前续过程识别完成,从而可作为 下一步中机器学习模型训练的输入。

S106、训练机器学习分类模型;

机器学习方法从思考问题的一般性角度出发,完成从获取信息,提取特征建立模型和使用模型的完整 过程。机器学习算法性能的好坏决定了模型的分类效果的差异。本发明中采用的贝叶斯决策树算法结合了 贝叶斯与决策树两大经典理论的优点,采用混合式的分类算法。利用S104部分提取的训练所需属性的参 数值及其对应的业务的类型作为训练过程输入,输出贝叶斯决策树分类模型。

S107,提取待分析数据流的端口号并与存储库匹配;

按照数据包在该数据流中到达的先后顺序,采用协议分析方法提取数据包端口号同时与存储库进行匹 配,如果有匹配项则标记为相应的业务类型。

S108、提取待分析数据流数据包的特征字段并与已知的协议特征库进行匹配,确定其业务类型;

按照数据包在该数据流中到达的先后顺序,采用协议分析方法提取数据包特征字段同时与存储库进行 匹配,如果有匹配项则标记为相应的业务类型。

S109、对于经过S107、S108后尚未确定其业务类型的数据流,提取该数据流的数据包特征;

对于到达的一个未知业务类型TCP或UDP数据流,从到达的第一个数据包开始分析,提取这个流的 属性值,数据包长,到达间隔时间,传送方向以及平均包长等。如果S104中使用了前n个包的特征,那 么S109也将提取该数据流前n个包的特征,组成一个特征序列:{{第一个包长,第一个修正包间隔时间, 第一个包传送方向},{第二个包长,第二个修正包间隔时间,第二个包传送方向},{第三个包长,第三个 修正包间隔时间,第三个包传送方向},……,{第n个包长,第n个修正包间隔时间,第n个包传送方向}}, 其中,n为使用的数据流头部数据包的数目。

S110、利用机器学习获得的模型进行分类;

利用S106中训练得到的机器学习模型以及S109中的数据流的统计特征值作为输入对尚未识别的数据 流进行分类,最后输出得到尚未识别数据流的业务类型。对于经过机器学习类算法训练得到的模型,由于 最终的类别的化属是基于概率型的,具有最大概率的类别即作为其输出,因此总会存在一定的误差。

S111、分类结果输出;

将S107、S108与S110中的结果汇总输出。

图2提供了本发明一个实施例提供的流量识别装置的结构示意图。从功能上看,可以分为在线和离线 两个部分。离线部分主要完成端口号、协议特征字段库以及机器学习分类模型的构造;在线部分主要负责 识别未知数据流的业务类型。其中,前期数据流量采集211、数据流分离212、数据流端口号及特征字段 提取存储213、214以及TCP、UDP分类模型的构建可在装置部署前完成,因此不是使用流量识别的装置 或者系统的必要组成部分。而数据流分离模块221、端口号提取及匹配模块222、特征字段提取及匹配模 块223,业务类型标记检测模块224,数据流属性提取模块225、贝叶斯决策树模型分类模块226及结果输 出模块227一般应在使用流量识别的装置或系统中出现。

每一模块具体功能和处理流程如下:在带有流量识别的装置或系统使用前,需要使用探针等手段进行 前期数据采集211,数据流分离212,数据流端口号与特征字段及流属性提取213,以及构建端口号、协议 特征字段库与业务类型匹配的存储模块214(包含215过程训练的输入数据流的属性的参数值)和贝叶斯 决策树机器学习模型的训练模块215。其中,端口号、协议特征字段库及的存储模块214一般可以置于装 置中的存储器如ROM,FLASN等。当未知业务类型的流量进入流量识别装置后,数据流分离模块221按 照{源地址、目的地址、源端口、目的端口、传输层协议类型}五元组将流量按照数据流分离开来,进而把 TCP流与UDP流分别按照事先划分的业务类型的常用端口号将其划分成数据流块。端口号、特征字段提 取模块222、223按数据包先后顺序,依次提取端口号、特征字段并完成相应的匹配过程,同时对识别的 流量进行业务标记。数据流属性提取模块225提取尚未识别业务类型数据流的包长、修正包间隔时间、传 送方向等流统计参数,形成特征序列,待分析的数据包的个数即为前面所提到的n值。然后将数据流送入 下一层利用贝叶斯决策树模型进行分类。完成图1中S110部分的工作。最后将综合三个层次的分类结果 进行显示输出。

本实施例提供的方法和装置,采用基于端口号、有效载荷和机器学习相结合的方法,采用层次化的分 类结构,可以有效的识别UDP与TCP流的业务类型,同时保证了准确率。贝叶斯决策树算法克服了贝叶 斯和决策树单一分类模型的缺陷,采用混合分类模型,结合了决策树与贝叶斯理论的优点,很好的提升了 学习模型的分类性能。训练属性的选择上使用了数据包本身的基于流的属性;使用修正包间隔时间,增强 了协议特征的显著性,避免了往返时延对于结果的影响。仅使用数据流头部若干个包的特征,不需要数据 流整体信息,因此可以方便的实现流量的在线识别。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对 本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方 案进行修改,或者对其中技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离 本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号