首页> 中国专利> 基于支持向量机的实时多应用网络流量识别方法

基于支持向量机的实时多应用网络流量识别方法

摘要

针对现有网络流量识别方法存在的问题,提供一种基于支持向量机的低复杂度、高识别准确率、可实时的网络流量识别方法。此方法采用“时间窗口法”只从网络流的数据包头获取简单有效的特征,并选用算法复杂度低、运算量小的支持向量机算法,使其不仅能够快速建模生成分类器,而且在小样本情况下就能达到很高的识别准确率,还可以在任何时间点对网络流的多种应用进行测量识别,满足实时多应用的需求。

著录项

  • 公开/公告号CN104052639A

    专利类型发明专利

  • 公开/公告日2014-09-17

    原文格式PDF

  • 申请/专利权人 山东大学;

    申请/专利号CN201410313090.X

  • 申请日2014-07-02

  • 分类号H04L12/26(20060101);

  • 代理机构37221 济南圣达知识产权代理有限公司;

  • 代理人李健康

  • 地址 250100 山东省济南市历城区山大南路27号

  • 入库时间 2023-12-17 01:34:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-22

    授权

    授权

  • 2014-10-22

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

    实质审查的生效

  • 2014-09-17

    公开

    公开

说明书

技术领域

本发明涉及一种网络流量识别方法,属于网络测量技术领域。

背景技术

随着计算机网络技术的飞速发展和信息时代的到来,互联网的不断普及也引发了网络 拥塞、P2P应用大肆抢占带宽和网络安全等问题,网络运营商和网络服务提供商需要采用一 种合适的网络测量方法对网络进行管理。近年来在学术和应用领域越来越关注网络流量识 别方法的研究,也越来越关注流量识别的可行性和有效性,即如何快速地处理海量的数据 和如何正确地识别网络中的各种应用。因此,流量识别方法应该既要简单有效,又要灵活 且应用面广。

现有的网络流量识别方法主要分为四大类:基于端口映射的流量识别方法、基于深度 报文检测的流量识别方法、基于行为特征的流量识别方法和基于机器学习的流量识别方法。 随着网络技术的不断发展和网络应用的不断推陈出新,基于端口映射、深度报文检测、行 为特征的流量识别方法存在越来越多的限制和缺陷。如今学术界将重点放在了基于机器学 习的流量识别方法上,这种方法利用机器学习的数据挖掘能力,从网络流量庞大、复杂的 数据中提取隐含的、潜在的有效特征信息。此类方法的关键是选择合理的流量特征和选择 合适的机器学习算法。然而,研究主要集中在非实时性的流量识别上,即先收集很长一段 时间的网络流数据,再对其进行分类识别,这无法识别出当前用户对网络的使用情况。目 前,实时网络流量识别方法中,有些方案将网络流开始建立时的前若干个数据包作为特征 进行识别,此类方法虽然简单快捷,但需要捕捉网络流开始建立的时间点,如果错过就很 难再识别出结果。还有些方案将从网络流生命周期的不同时间点选择若干个连续的数据包 组(如25个数据包为一组)作为特征进行识别,此类方法需要考虑网络流的生命周期,如 果生命周期很长则识别所需的时间也会增长。这些方案都过于依赖网络流的本身,灵活性 差,有一定的限制。

发明内容

本发明针对现有网络流量识别方法存在的不足,提供一种基于支持向量机(SVM)的可 实时识别网络环境中多种应用类型的方法,此方法采用“时间窗口法”只从网络流的数据 包头获取简单有效的特征,并选用算法复杂度低、运算量小的支持向量机算法,使其不仅 能够快速建模生成分类器,而且在小样本情况下就能达到很高的识别准确率,还可以在任 何时间点对网络流的多种应用进行测量识别,满足实时多应用的需求。“时间窗口法”是指 对网络流连续统计一段时间,并根据此时间段内的网络流量与平均值偏离程度大小划分为 “峰值区”和“稳定区”,由时间窗口内的数据生成识别所需的特征。

本发明提出的基于支持向量机的网络流量识别方法,包括支持向量机的离线训练和支 持向量机的在线实时分类步骤:

支持向量机的离线训练步骤包括:

(1)利用抓包工具从网络线路中抓取数据包;

(2)对数据包进行统计,得到网络流的包数、包长、源地址、目的地址、传输层协议 和上行或下行的流向;

(3)从获取的数据中抽样,选择网络应用正常运行时的样本,分别对样本的应用类别 进行标注;

(4)根据“时间窗口法”,从任意的时间点开始,设定一段时间,根据该段时间内连 续采集的网络流量与平均值的偏离程度,将高于平均值1.6倍的流量称为“峰值区”,处于 平均值0.6~1.4倍区间的流量称为“稳定区”,由此时间段内的网络流量生成多种特征值;

(5)采用支持向量机方法对样本特征值进行训练学习,生成分类规则,构建分类器模 型。

支持向量机的在线实时分类步骤包括:

(1)利用抓包工具从网络线路中抓取数据包;

(2)对数据包进行统计,得到网络流的包数、包长、源地址、目的地址、传输层协议 和上行或下行的流向;

(3)采用支持向量机的离线训练步骤的步骤(4)相同的方法生成多种特征值;

(4)采用支持向量机的离线训练步骤的步骤(5)已经生成的分类规则和分类器模型, 对网络流的特征值进行分类识别,得出识别结果。

所述离线训练步骤中第(4)步和在线实时分类步骤中第(3)步中的多种特征值包括 下行包数,上行包数,下行数据量,上行数据量,下、上行包数比,下、上行数据量比, 下、上行包数方差比,下、上行数据量方差比,下行中大数据量的IP数目,峰值区内数据 量的比重,稳定区内样本数目的比重。

所述支持向量机的离线训练步骤中的步骤(5)中采用交叉验证法获得支持向量机的核 函数参数和惩罚参数。

本发明首先采用“时间窗口法”从网络流的数据包头获取多种特征,然后通过支持向 量机算法对多种网络应用类型的特征值进行训练和识别。“时间窗口法”获取网络流特征的 过程简单;而且可以在任何时间点对网络流进行特征提取。支持向量机是一种针对小样本 的机器学习方法,并且通过内积核函数实现非线性分类,其得到的最优决策函数是只由少 数支持向量构成的分类超平面;此算法简单、运算量少,还具有泛化能力和鲁棒性。本发 明满足实时多应用网络流量识别的需求。

附图说明

图1是实时网络流量识别系统的原理示意框图。

图2(a)是时间窗口示意图;(b)是窗口内流量区间的划分示意图。

图3是调用libpcap函数库的流程示意图。

图4是基于支持向量机的网络流量识别方法的示意图。

图5是网络流量识别方法准确率的展示示意图。

图6是网络流量识别方法生成分类器模型所需时间的展示示意图。

具体实施方式

针对现有网络流量识别方法存在的问题,提供一种基于支持向量机的低复杂度、可实 时的网络流量识别方法,此方法所需训练样本少,计算复杂度比较低,非常适合解决网络 流量识别这种大数据、多样性的非线性多分类问题。

图1给出了本发明的网络流量识别系统离线训练和在线实时分类的原理步骤。图4给 出了基于支持向量机的网络流量识别方法的原理。下面结合附图和实施例对本发明进行进 一步的说明,但不限于此例。

考虑该实时网络流量识别系统存在于家庭局域网中,并将网络流量识别作为家庭网关 的一项功能。网络流数据包的上行或下行是根据源地址确定的。假设以家庭内部局域网作 为本地,外部互联网作为远端,如果源地址是本地的IP则认为数据流向是上行,即上传; 如果源地址是远端的IP则认为数据流向是下行,即下载。

针对家庭局域网中使用频繁的m=6种应用类型:P2P的多媒体或下载、非P2P的多媒 体或下载、WWW(Web浏览)、网络游戏(客户端游戏)、视频通话/会议和文件共享(局域 网内)。从任意时间点开始,以1秒为时间单位,对每一秒内抓取的网络流进行统计,得 到网络流的包数、包长、源地址、目的地址、传输层协议和流向(上行或下行)。连续统计 τ=n(设n=15)秒后得到图2(a)图中一个时间窗口内网络流的变化情况。在图2(b) 图中,根据时间窗口内的流量平均值,将τ时间段内的流量划分为稳定区和峰值区。因此在 这个窗口中既能获取每一秒流量的包数、包长等基本数据,又能分析流量在τ时间段内的爆 发性、平稳性。由τ时间段内统计的网络流数据生成d=11种特征:下行包数,上行包数, 下行数据量,上行数据量,下、上行包数比,下、上行数据量比,下、上行包数方差比, 下、上行数据量方差比,下行中大数据量的IP数目,峰值区内数据量的比重,稳定区内样 本数目的比重。

支持向量机的离线训练步骤如下:

(1)利用Linux系统下的libpcap函数库从网络线路中抓取数据包,调用libpcap各个 函数的流程如图3所示;通过解析各层的数据包头得到开放系统互连参考模型(OSI/RM) 的各层信息,如数据链路层的MAC地址、IP层的源IP与目的IP、传输层的端口号与协议 等;

(2)对数据包进行简单统计,获得数据包的五元组信息:源地址,目的地址,源端口, 目的端口和传输层协议(如TCP/UDP),以及数据包长度和数据包的流向(如上行或下行);

(3)人工从获取的大量数据中抽样选择处于稳定网络环境下的样本,并分别对样本的 应用类别进行标注;m=6种应用类型可以标注编号为1、2、3、4、5、6。

(4)采用“时间窗口法”,由简单统计的数据包信息生成时间窗内的d=11种特征值;

(5)采用支持向量机方法对样本特征值进行训练学习。支持向量机构造了最优分类超 平面,得出决策函数:其中(xi,yi)为训练时选中的样本,αi为拉格朗日乘子,K(xi,x)为内积核函数,选择径向基函数作为核函数,i=1,…,b为分 类超平面偏置量。决策函数就是支持向量机离线训练生成的 分类规则和分类器模型。采用交叉验证法可以获得支持向量机可靠稳定的核函数参数和惩 罚参数,即将训练样本分割成K个子样本,保留其中一个单独的子样本作为验证模型的数 据,其他K-1个样本用来训练;重复K次,每个子样本都被验证一次,最后平均K次的训 练所得结果。

支持向量机的在线实时分类步骤如下:

(1)利用Linux系统下的libpcap函数库从网络线路中抓取数据包,调用libpcap各个 函数的流程如图3所示;通过解析各层的数据包头得到开放系统互连参考模型(OSI/RM) 的各层信息,如数据链路层的MAC地址、IP层的源IP与目的IP、传输层的端口号与协议 等;

(2)对数据包进行简单统计,获得数据包的五元组信息:源地址,目的地址,源端口, 目的端口和传输层协议(如TCP/UDP),以及数据包长度和数据包的流向(如上行或下行);

(3)采用“时间窗口法”,由简单统计的数据包信息生成时间窗内的d=11种特征值;

(4)采用支持向量机的离线训练步骤的步骤(5)已经生成的分类规则和分类模型,即 决策函数对样本特征值进行分类识别,得出识别结果;具 体过程如图4所示,输入网络流的11种特征,输出相应网络应用的类型编号。

图5给出网络流量识别方法的准确率。由附图5可以看出,本发明的方法针对6种网 络应用分别采用支持向量机(SVM)、反向传播(标准BP)神经网络和由粒子群算法优化 的反向传播神经网络(BP-PSO)的三种机器学习算法分别对网络流量进行训练和识别。通 过比较分析可知,三种算法的识别准确率都会随着训练样本数目的增加而增大;SVM和 BP-PSO两者完全优于标准BP,不仅识别准确率高而且稳定;特别是SVM算法的识别准确 率在小样本情况下依然保持98%以上,具有很好的有效性。

图6给出网络流量识别方法的生成分类器模型所需时间。通过分析附图6三种算法生 成分类器模型所需时间可知,BP-PSO建模时间远远大于SVM、标准BP,所需运算量很大; SVM的建模时间是三者中最少的,在0.1s之内完成,具有很好的可行性。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号