首页> 中国专利> 一种基于深度学习的SDN流表冲突检测方法

一种基于深度学习的SDN流表冲突检测方法

摘要

本发明公开一种基于深度学习的SDN流表冲突检测方法。该方法采用两级深度学习模型进行冲突检测,第一级深度学习模型检测新的流表策略与已有的流表策略是否存在冲突;第二级深度学习模型确定已有的所有流表策略中与新的流表策略相冲突的具体流表策略。本发明利用了深度学习抽象化高层数据、自动学习的特点,相比于传统的冲突查找算法,在大规模应用部署时能更快速地对超大规模的流表项做出是否冲突的检测。

著录项

  • 公开/公告号CN106453079A

    专利类型发明专利

  • 公开/公告日2017-02-22

    原文格式PDF

  • 申请/专利权人 浙江工商大学;

    申请/专利号CN201610826178.0

  • 申请日2016-09-13

  • 分类号H04L12/721;H04L12/751;H04L12/755;

  • 代理机构杭州求是专利事务所有限公司;

  • 代理人忻明年

  • 地址 310018 浙江省杭州市下沙高教园区学正街18号

  • 入库时间 2023-06-19 01:41:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-07-16

    授权

    授权

  • 2017-03-22

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

    实质审查的生效

  • 2017-02-22

    公开

    公开

说明书

技术领域

本发明涉及网络通信技术和深度学习领域,具体涉及一种基于深度学习的SDN流表冲突检测方法。

背景技术

随着人们对网络应用需求的增加,数据中心的规模不断扩大,在传统网络基础架构的成本、管理、复杂性方面,网络运营商、服务供应商等面临着巨大的挑战。传统网络架构部署的高成本制约了数据中心的建设,而复杂性则推迟了新服务和新应用的上市时间。传统网络架构中不易对网络设备管理的特性进一步增加了企业的运营成本,并且降低了更新网络结构的响应速度。面对传统网络架构暴露出的高成本、高复杂性、低灵活度等问题,越来越多的企业和高校开始着手研究新型网络体系架构。

2006年,美国斯坦福大学Clean Slate课题组提出了软件定义网络(SoftwareDefined Network,SDN)的概念。SDN是一种新型的网络架构,斯坦福大学的研究团队提出的OpenFlow协议就是实现SDN的一种方式。2011年,开放网络基金会(Open NetworkingFoundation,ONF)成立,这极大地推动了SDN和OpenFlow的发展。SDN的主要思想是将网络设备的控制平面和数据平面分离,以实现对网络的灵活控制。SDN网络本身就是一个灵活性的网络,其网络配置和运行都是自动化控制的。基于OpenFlow协议的SDN网络抽象化了路由设备和交换设备的控制面,数据平面的转发设备由OpenFlow控制器进行管理,以便对网络进行集中化管理,从而降低了网络的部署成本,并且提升了整个网络的管理性。

OpenFlow是实现SDN的一种主要方式,利用OpenFlow控制器对OpenFlow交换机下发流表来阻止恶意流量对网络节点攻击的方式是提高基于OpenFlow的SDN网络安全性的一种重要方式。虽然OpenFlow能够实现对网络灵活控制,由于OpenFlow并没有提供流表冲突检测的处理机制,如果要对一个大型的OpenFlow网络中的所有流表进行自动部署和控制,仅仅通过OpenFlow控制器来管理是不够的。如果不对OpenFlow交换机中的流表进行冲突检测,那么OpenFlow控制器对OpenFlow交换机添加的某些安全策略之间存在冲突,这可能会使一些流表项一直不能执行,进而会使某些本来被防火墙阻止的数据包顺利通过,这给基于OpenFlow实现的SDN架构的网络带来了一定安全隐患,也不利于大型网络中SDN业务的自动部署。因此,需要一种用于检测流表冲突的应用来解决这些问题。虽然当前的某些OpenFlow控制器(如:Floodlight)具有简单的流表冲突检测功能,但是其流表冲突检测是功能单一的,而且是基于传统的算法来查找OpenFlow交换机中冲突的流表项。如果OpenFlow交换机中的流表数目非常庞大,那么使用传统的流表冲突检测算法来查找冲突流表项会增加控制器的运行负载、延缓流表的部署。

2006年,Geoffrey Hinton等人提出了深度学习的概念。深度学习是机器学习的一个分支,是机器学习中表征学习方法的一类。通过深度学习模型中的多个处理层,能够对数据进行高层抽象。深度学习网络类似于大脑的神经网络,大脑中的神经网络由数千亿的神经元连接而成,而深度学习网络同样由大量的人工神经元组成。深度学习使用复杂的线性或非线性的模型来表示数据之间的关系,然后训练大量的数据来确定数据之间的关系。目前,深度学习已经被Google、Facebook、Microsoft、百度等公司在语音识别、计算机视觉、自然语言处理等领域广泛应用,由Andrew Ng领导的Google Brain团队已经创建了能够学习后识别高级概念图片的神经网络。然而,目前深度学习并没有在SDN架构下的网络环境中得到广泛应用,尤其是将深度学习应用到SDN的安全领域中。

对流表进行冲突检测是SDN架构下保证网络安全和业务自动部署的一个重要前提,因此本发明将SDN与深度学习结合,提出一种基于深度学习的SDN流表冲突检测方法。该方法利用了深度学习抽象化高层数据、自动学习的特点,能够快速地对大量的流表项做出是否冲突的判断。检测流表冲突的模块独立于控制器,所以该模块还在一定程度上减轻了OpenFlow控制器的运行负载。

发明内容

现有OpenFlow协议本身没有提供流表冲突检测的处理机制,尽管当前的某些OpenFlow交换机具有简单的流表冲突检测功能,但其流表冲突检测功能单一,并且采用了基于传统算法来查找OpenFlow交换机中的冲突的流表项。若是OpenFlow交换机中的流表数目非常庞大的话,那么使用传统的流表冲突检测算法在交换机中查找冲突流表项将会增加交换机的运行负担、延缓流表的部署,影响数据包正常的转发。

本发明为了克服以上不足,提出了一种基于深度学习的SDN流表冲突检测方法。该方法利用了深度学习抽象化高层数据、自动学习的特点,相比于传统的冲突查找算法,在大规模应用部署时能更快速地对超大规模的流表项做出是否冲突的检测。该方法包含如下步骤:

(1)将已有的所有流表信息按照每个窗口固定X条流表策略的大小进行分割,分割成m个窗口;

(2)取其中一个已分割的窗口A,将需要检测的新的流表策略与窗口A的所有流表策略组成一个含X+1条流表策略的新的窗口B,将窗口B的所有数据的信息特征作为第一级深度学习模型的输入;

(3)当第一级深度学习模型对窗口B的所有流表项检测后:如未检测到窗口B内流表策略间存在冲突,且仍有未检测完成的已分割的窗口,则将返回步骤(2);如未检测到冲突,且已检测完所有m个窗口,则进入步骤(6);如检测到窗口内流表项间存在冲突,则进入步骤(4);

(4)取窗口A的一条流表策略flowEntyi,将该流表策略与需要检测的流表策略组成一个只有两条流表策略的窗口C,将窗口C中所有数据的信息特征作为第二级深度学习模型的输入;

(5)当第二级深度学习模型对窗口C的流表项进行检测后,如检测到窗口C内流表策略间存在冲突,记录对应C内的流表策略flowEntyi,同时不管有无检测到冲突,均进行如下判断:如窗口A中仍有未检测完成的流表策略,则返回步骤(4);如窗口A中所有流表策略已检测完成,但未检测完所有m个分割后的窗口,则进入步骤(2);如窗口A中所有流表项已检测完成,且已检测完所有m个分割后的窗口,则进入步骤(6);

(6)汇总所有flowEntyi,这些流表策略即为与需要检测的新的流表策略相冲突的流表策略。

进一步地,所述的步骤(1)中,将已有的所有流表信息按照每个窗口固定X条流表策略的大小进行分割,如需检测的所有流表策略数目不是X的整数倍,则在分割到最后一个窗口时,用无效的填充信息将该窗口填充到X条流表策略。

进一步地,所述第一级深度学习模型的输入层为CNN层,隐藏层由M层CNN层和N层全连接层组成,输出层为只有一个神经元的全连接层;输入层和隐藏层使用的激活函数为ReLU函数。

进一步地,所述第二级深度学习模型分为两类,第一类模型包括CNN层和全连接层,第二类模型只有全连接层。第一类模型的输入层为CNN层,隐藏层均为全连接层,输出层为只有一个神经元的全连接层;输入层和隐藏层的激活函数均为ReLU函数,输出层的激活函数为Sigmoid函数;第二类模型的输入层、隐藏层和输出层均为全连接层,激活函数的分布情况与第一类相同。

本发明的有益效果是:该方法采用两级深度学习模型进行冲突检测,第一级深度学习模型检测新的流表策略与已有的流表策略是否存在冲突;第二级深度学习模型确定已有的所有流表策略中与新的流表策略相冲突的具体流表策略。本发明方法利用了深度学习抽象化高层数据、自动学习的特点,相比于传统的冲突查找算法,在大规模应用部署时能更快速地对超大规模的流表项做出是否冲突的检测。

附图说明

图1是两级深度学习模型下流表冲突检测架构模型图;

图2是第一级深度学习模型总体结构;

图3是第二级深度学习模型总体结构,(a)为第一类模型示意图,(b)为第二类模型示意图。

具体实施方式

下面结合附图详细说明本发明,本发明的目的和效果将更加明显。

本发明提供了一种基于深度学习的SDN流表冲突检测方法。

如图2所示是第一级深度学习模型的总体结构图。第一级深度学习模型的输入层为CNN层,隐藏层由M层CNN层和N层全连接层组成,输出层为只有一个神经元的全连接层。输入层和隐藏层使用的激活函数为ReLU函数。

如图3所示是第二级深度学习模型的总体架构图。为了简化深度学习模型,并取得效果最好的一个模型。本发明将第二级深度学习模型总共分为两类,一类模型包括了CNN层和全连接层,另一类模型只有全连接层。前者的输入层为CNN层,隐藏层都为全连接层,输出层为只有一个神经元的全连接层;输入层和隐藏层的激活函数都为ReLU函数,输出层的激活函数为Sigmoid函数。后者的输入层、隐藏层和输出层都为全连接层,激活函数的分布情况与前者相同。

如图1所示,该方法包含如下步骤:

(1)将已有的所有流表信息按照每个窗口固定X条流表策略的大小进行分割,分割成m个窗口;

(2)取其中一个已分割的窗口A,将需要检测的新的流表策略与窗口A的所有流表策略组成一个含X+1条流表策略的新的窗口B,将窗口B的所有数据的信息特征作为第一级深度学习模型的输入;

(3)当第一级深度学习模型对窗口B的所有流表项检测后:如未检测到窗口B内流表策略间存在冲突,且仍有未检测完成的已分割的窗口,则将返回步骤(2);如未检测到冲突,且已检测完所有m个窗口,则进入步骤(6);如检测到窗口内流表项间存在冲突,则进入步骤(4);

(4)取窗口A的一条流表策略flowEntyi,将该流表策略与需要检测的流表策略组成一个只有两条流表策略的窗口C,将窗口C中所有数据的信息特征作为第二级深度学习模型的输入;

(5)当第二级深度学习模型对窗口C的流表项进行检测后,如检测到窗口C内流表策略间存在冲突,记录对应C内的流表策略flowEntyi,同时不管有无检测到冲突,均进行如下判断:如窗口A中仍有未检测完成的流表策略,则返回步骤(4);如窗口A中所有流表策略已检测完成,但未检测完所有m个分割后的窗口,则进入步骤(2);如窗口A中所有流表项已检测完成,且已检测完所有m个分割后的窗口,则进入步骤(6);

(6)汇总所有flowEntyi,这些流表策略即为与需要检测的新的流表策略相冲突的流表策略。

实施例

下面结合实施例对本发明作进一步说明。

本发明中涉及到的流表冲突具体可以描述如下:

在orchestrator根据某特定业务特征生成特定流表项时,所生成的策略可能与系统内已有的其它业务策略间产生冲突。如在表1中,策略1和4之间,策略2和3之间,以及策略5和6之间都存在重叠内容(overlap),且不同策略的形为互相抵触,所以这些策略间都存在冲突问题。

表1 conflict flow entries

(1)第一级深度学习模型的具体实现

(1.1)第一级深度学习模型的输入输出

某一上层应用产生了某条policy,需要下发到openflow交换机,此时获取这一交换机内的所有流表信息按X条流表项来进行分割。当一条新的流表需要下发时,将这条待下发的流表项与已分割的X条流表项组成一个X+1条流表项的窗口作为第一级深度学习模型的输入数据。其中,第一级深度学习模型的输入数据是X+1条流表项的所有信息特征。

流表项经过第一级深度学习模型学习后,若是检测到冲突了,则将该窗口的每条流表与新下发的流表分别组成一个窗口输出到第二级深度学习模型进行检测。

(1.2)第一级深度学习模型的处理过程

第一级深度学习模型的输入层为CNN层,隐藏层由M层CNN层和N层全连接层组合,输出层为只有一个神经元的全连接层。输入层和隐藏层使用的激活函数为ReLU(RectifiedLinear Units)函数,该函数为非线性函数,函数公式为:

f(x)=max(0,x)

输出层的激活函数为非线性激活函数Sigmoid函数,该函数的公式为:

(2)第二级深度学习模型的具体实现

(2.1)第二级深度学习模型的输入输出

第一级深度学习检测到冲突。检测到冲突的窗口的每条流表与要下发的流表策略组成一个只有两条流表策略的窗口,将这个窗口的所有数据信息特征作为第二级深度学习模型的输入。

(2.2)第二级深度学习模型的处理过程

为了简化第二级深度学习模型,并取效果最好的一个模型,我们将第二级深度学习模型总共分为两类,一类模型包括了CNN层和全连接层,另一类模型只有全连接层。前者的输入层为CNN层,隐藏层都为全连接层,输出层为只有一个神经元的全连接层;输入层和隐藏层的激活函数都为ReLU函数,输出层的激活函数为Sigmoid函数。后者的输入层、隐藏层和输出层都为全连接层,激活函数的分布情况与前者相同。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号