一种基于DPI和机器学习算法进行流量分类的SDN控制器制造技术

技术编号:20549991 阅读:155 留言:0更新日期:2019-03-09 22:17
本发明专利技术公开了一种基于DPI和机器学习算法进行流量分类的SDN控制器,在现有的控制器模块中通过添加自设模块实现DPI机制与机器学习算法相结合进行流量数据包的应用请求分类功能,自设模块主要包含三部分:数据流特征构建模块;特征提取及分类器训练模块;分类器进行流量分类模块。首先使用K均值聚类算法进行信息特征库的构建,再利用DPI技术提取特征形成训练模块,最后运用朴素贝叶斯算法对于数据包进行详细的流量分类。本发明专利技术设计的基于DPI和机器学习算法进行流量分类的SDN控制器具有较高的分类精度,且具有较好地灵活性。

【技术实现步骤摘要】
一种基于DPI和机器学习算法进行流量分类的SDN控制器
本专利技术涉及一种SDN控制器,特别涉及一种结合深度包检测技术和机器学习算法进行网络流量分类的SDN控制器。
技术介绍
SDN(SoftwareDefinedNetworking,软件定义网络)是一种新型的计算机网络模式,与传统的网络架构体系相比,SDN将网络控制层与数据层进行解耦,打破了OSI模型的垂直框架,图1展示了SDN网络的架构体系图。OpenFlow(OF)协议是一种重要的的通信协议,控制器和网络交换机通过这种协议进行交互,OpenFlow也是SDN中最常用的南向接口协议。OF交换机包含单一或多级流表。流表是由流信息组成的。每一条流表包含了一些规则和要执行的动作。SDN被认为是一种未来的网络范式,可以显著的简化网络的操作和维护,提高网络资源的利用率。然而,目前SDN控制流量的粒度还不够完善。OpenFlow是数据平面和控制平面之间最常用的接口,但它只能处理OSI模型中从第一层到第四层的信息,而不能感知应用层信息的形成,因此面对不同的应用请求不同的服务质量需求,控制器并不能提供不同的服务,在此基础上重新思考和重新设计SDN流量工程具有重要的意义。在SDN中为了实现细粒度的流量保证,对于网络流量进行分类是必不可少的一步。现在已有的应对方法有很多种,大体可以分为三类:a)基于深度包检测(DPI)技术的流量分类方法。DPI技术可以准确的检测出数据包的有效载荷,对于应用层协议进行切分识别出不同的应用请求。然而DPI技术受限于加密流以及一些私有协议,而且在现有的多个应用请求相似服务的情况下DPI并不能提供一个准确的分类结果;b)基于机器学习算法的流量分类方法。机器学习算法的出现为流量分类提供了新的思路,与DPI技术相比较,机器学习算法仅仅需要流表信息中的某些主要特征项并不需要去检测数据包的有效载荷所以可对加密流进行分类。然而基于机器学习算法的流量分类方法也有其缺点存在,如无监督式机器学习算法的分类精度低且算法实施的复杂度高、监督式机器学习算法要求所有标签都已被标记这在现实网络环境中无疑是不可能实现的、而不对解耦控制和数据平面进行挖掘和协调,半监督式机器学习算法无法直接用于SDN中。c)基于多种分类器机制的流量分类方法。这种方法结合了几种不同的流量分类方法的优点进行流量的分类,然而现有的技术中无论是将DPI和端口号识别机制相结合进行流量分类的方法还是利用不同的机器学习算法进行流量分类都有着两方面的限制,其一是精确度不高,其二是实现方法不够灵活。
技术实现思路
为了解决现有的流量分类方法的缺点,本专利技术设计了一种基于DPI和机器学习算法进行流量分类的SDN控制器。本专利技术的目的是在SDN控制器中通过自设模块进行实时和自适应的进行流量分类已达到细粒度的流量保证。本专利技术所采用的技术方案如下:一种基于DPI和机器学习算法进行流量分类的SDN控制器,为了应对网络需求的灵活性,本专利技术设计的SDN控制器框架结构如图2,在现有的控制器的基础中可以添加并行的流量分类机制模块,具体包括以下模块:A、数据流信息特征库构建模块B、特征提取和分类器训练模块C、分类器进行流量分类模块模块A的功能是为不同应用的数据包建立一个分类。模块A中,当控制器通过Packet_in操作从交换机中获取流表信息后利用机器学习算法中的无监督聚类算法对于请求的数据流进行应用的聚类操作,具体实现算法使用的是K均值聚类算法通过选取数据包大小(64,128,256,512,1024,2000)为算法初始值,针对聚类所得簇C={C1,C2,C3,C4,C5,C6},每轮迭代过程中选用最小化平方误差:其中是簇Ci的均值向量。将数据包按照初始值大小经过迭代后分为大致6类,并将每一类的五元组特征(源IP地址、源端口、目的IP地址、目的端口、应用层协议)保存在各自的数据库表格中,以便模块B使用。模块B的功能是利用现有的比较成熟的DPI软件进行协议确认、协议切分、协议域切分等各种手段提取特征并构建分类器训练模块。模块C的功能是使用机器学习中的半监督式分类算法(朴素贝叶斯算法)进行流量分类,在模块B中假设通过DPI软件引擎进行特征提取后组成的分类器训练模块中的数据包标记为:CL={y1,y2,y3,…,yn},当控制器接收到一条新的数据包假设为:x={a1,a2,a3,...am},其中每个a为x的一个属性。通过DPI进行分类器训练模块特征的提取后,我们可以得到的是CL,通过计算P(y1|x),P(y2|x),P(y3|x),…,P(yn|x),并找出所有概率中的最大的那一项,即如果:P(yk|x)=max{P(y1|x),P(y2|x),P(y3|x),...,P(yn|x)},则我们认为这条刚接收到的数据包为x∈yk,并且在特征训练数据库中添加这条数据包的特征,作为新的训练数据库。本专利技术的优点:①本专利技术通过结合DPI技术以及机器学习算法中的无监督式聚类算法以及半监督式分类算法的优点,利用各自的特点部署在不同的模块中,共同协作完成流量分类的任务,即可以保证准确率又能够避免过度消耗控制器的计算资源。②本专利技术利用并行模块思想及API接口技术,在现有SDN控制器中添加自设模块完成流量分类工作,避免了硬件资源的浪费以及保证了流量分类模块的灵活性和可嫁接性。③本专利技术使用了更优化的半监督式分类算法,根据前期所做的大量工作及阅读到的大量文献得知朴素贝叶斯算法的分类精度最高,并且本专利技术提出朴素贝叶斯算法中的训练库模块的数据库更新技术,保证了训练数据集特征的丰富性,从而保证分类精度。附图说明为了更清楚地说明本专利技术的技术方案,下面将对
技术实现思路
中所需要使用的附图作简要地介绍。图1为SDN网络的架构体系图。图2为本专利技术的一种基于DPI和机器学习算法进行流量分类的SDN控制器中的SDN控制器的框架结构图。图3为本专利技术的一种基于DPI和机器学习算法进行流量分类的SDN控制器中的模块A使用的K均值聚类算法的实现流程图。图4为本专利技术的一种基于DPI和机器学习算法进行流量分类的SDN控制器中的模块B中使用的DPI技术来进行特征提取的实现流程图。图5为本专利技术的一种基于DPI和机器学习算法进行流量分类的SDN控制器中的模块C使用的朴素贝叶斯算法和训练数据库维护的实现流程图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。参见图1所示,本专利技术是一种基于DPI和机器学习算法进行流量分类的SDN控制器,该SDN控制器是在现有控制器的框架中自设模块完成流量分类任务,自设模块就有并行处理的能力,其中又分为三个子模块,分别是通过使用无监督聚类算法进行特征库的构建,通过使用DPI技术进行特征的提取以构成训练数据库,通过使用半监督分类算法进行流量分类并实时更新训练数据库保证分类的精度。参见图2所示,在本专利技术中将主要分为数据流信息特征库构建模块、特征提取和分类器训练模块、分类器进行流量分类模块。参见图3所示,在数据流信息特征库构建模块中使用K均值聚类算法进行聚类操作,每当控制器通过Packet_in操作从交换机获取数据包后控制器现有功能模块可以计算出每个数据包的大小xi,以数据包的大小的不同当作聚类中的主要分析元素本文档来自技高网
...

【技术保护点】
1.一种基于DPI和机器学习算法进行流量分类的SDN控制器,是在现有SDN控制器的基础上自设模块完成控制器对网络流量的分类,其特征包括以下部分:A、数据流信息特征库构建模块B、特征提取和分类器训练模块C、分类器进行流量分类模块。

【技术特征摘要】
1.一种基于DPI和机器学习算法进行流量分类的SDN控制器,是在现有SDN控制器的基础上自设模块完成控制器对网络流量的分类,其特征包括以下部分:A、数据流信息特征库构建模块B、特征提取和分类器训练模块C、分类器进行流量分类模块。2.根据权利要求1所述的一种基于DPI和机器学习算法进行流量分类的SDN控制器,其特征在于由模块A采用的无监督聚类算法中的K均值聚类算法实现对于数据包的聚类,形成数据流信息特征库,模块B根据模块A构建的特征库进行基于DPI技术的特征提取并将由DPI技术分类出的数据流标记为训练数据流模块存入训练数据库中,模块C根据训练数据库中的数据流特征和未被标记的数据流特征做朴素贝叶斯算法的分类,将DPI未识别的数据流进行详细的流量分类。3.根据权利要求2所述的一种基于DPI和机器学习算法进行流量分类的SDN控制器,其特征在于模块A的关于数据流信息特征库构建模块的具体步骤如下:SA01步骤:控制器通过Packet_in操作从交换机获取数据包后控制器现有功能模块可以计算出每个数据包的大小xiSA02步骤:以数据包的大小的不同当作聚类中的主要分析元素,首先在算法开始前选择初始值为64,128,256,512,1024,2000作为初始均值向量μ。SA03步骤:通过计算获取的数据包的大小与各均值向量的欧式距离di=||xi-μ||2,选取其中距离最近的的均值向量确定xi的簇标记。SA04步骤:根据新划分的簇计算新的均值向量SA0...

【专利技术属性】
技术研发人员:李道全王雪于波黄泰铭
申请(专利权)人:青岛理工大学
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1