一种基于DPI的应用感知方法与流程

文档序号:18630154发布日期:2019-09-06 23:30阅读:508来源:国知局
一种基于DPI的应用感知方法与流程

本发明属于网络服务技术领域,具体涉及一种基于dpi的应用感知方法。



背景技术:

在新颖应用技术不断涌现、网络服务不断增长的网络环境下,个性化、高实时性的网络服务成为了广大网络使用者的日常需求,新的网络架构如sdn的出现也强调了对更灵活、适应性更强,成本代价更优的网络感知策略的需求。

dpi算法通过对数据包的内容分析,具有高分类准确性、较短的处理时间和较细的处理粒度,但dpi分类引擎的使用会占用了大量cpu资源,运行相对较慢。对于基于sdn的多层应用感知方法,如果每台交换机都直接运行dpi作为分类器,显然会消耗太多的控制器资源,并降低控制器的吞吐量。减少已部署的dpi交换机的数量会导致将更多流量重定向到它们,从而增加全网的网络负载和链路利用率。如何对其进行合理的部署,使得在保证应用感知准确率的同时,降低网络负载是基于sdn的应用感知所要面临的问题。

现有中国专利文件公布了一种基于dpi的应用感知方法,其主要技术方案为:

与本发明方案不同。



技术实现要素:

本发明的目的是解决上述问题,提供一种基于dpi的应用感知方法,提出在sdn环境下优化dpi部署,将部署dpi的交换机数量所引起的网络负载和未分析的流量数量减到最小。对于给定的网络基础设施和给定的流量矩阵,可以找到最优dpi部署方案,从而最大限度地降低部署的总体成本。

为实现上述目的,本发明提供如下技术方案:

一种基于dpi的应用感知方法,具体包括以下步骤:

步骤一:问题描述:

对于给定的网络基础设施和给定的流量矩阵,可以找到最优dpi部署方案,从而最大限度地降低部署的总体成本;这个成本是联合优化的结果,包括:

1)部署dpi的交换机数量;

2)通过部署dpi的交换机的流量重定向引起的整个网络负载,所有的流量都必须通过至少一个部署dpi的交换机进行分析;

3)不同的约束操作;

步骤二:问题形式化:

对于n个节点的拓扑结构,x是一个n维矩阵,步骤一中的部署相对应的解决方案是:[0,0,0,0,1,0,0];因为在节点e中只有一个部署了dpi;适应性函数f(x)即全网成本函数最小化,由三个成本函数组成,用以优化以下三个目标:

1)部署dpi的交换机数量fdpi(x);

2)全网的负载fbw(x);

3)无法感应到的流量数量funaware(x);

三个目标的关系为:

f(x)=fdpi(x)+fbw(x)+funaware(x)

拥有最大数量的交换机的约束条件为:

fdpi(x)=ωdpin(x)n(x)≤n

fdpi(x)=∞n(x)φn

fbw(x)包含对阈值bw的强大约束,该阈值bw定义网络的每条链路i上使用的带宽bωi的最大百分比;该阈值用于供网络管理员选择配置速率和网络容量,以适应流量变化或新的需求:

fbw(x)=ωbw×bω(x)

bωi≤bw

代价函数funaware(x)表示惩罚项ωunaware总和:对于无法通过约束分析的u(x)流量具有未分配给dpi交换机的最大u流量:

funaware(x)=ωunaware×u(x)u(x)≤u

funaware(x)=∞u(x)φu;

默认情况下,阈值u等于0,即所有流量都必须进行分析。

步骤三:解决方案:

步骤一、二描述的问题属于uflp问题,包括定位不确定数量的设施,以最小化固定化设置成本和从这些设施服务市场需求的可变成本的总和;ulfp对于一般属于是np-hard问题。然而,现有文献已经表明基于遗传算法(ga)的方法比基于线性规划的方法更好地扩大了解决uflp的方法。本发明使用遗传算法ga,并根据多目标网络问题的具体情况进行调整:

遗传算法ga是基于进化算法原理的搜索过程。它将过去的结果利用与探索搜索领域的新领域结合起来,通过使用适者生存的技术与结构化的随机化信息交换,具体算法流程如下:

1)初始人口:初始人口是随机的一组潜在问题解决方案。根据基因工程的术语,人口也被称为染色体,其元素被称为基因。本发明使用二元基因来表示在网络的不同节点上部署dpi交换机,在初始种群和下一代种群中,选择、交叉和变异遗传算子被迭代应用于遗传算法中;

2)选择:选择操作通过使用适应度函数f(x)在染色体之间选择好的结果,适应度函数用于对染色体的质量进行排序,具有较小值的染色体对下一代中的一个或多个后代贡献的可能性较高;

3)交叉:交叉包括交换一对染色体之间的部分信息以获得新的染色体。我们使用一个简单的交叉。繁殖池中新复制的染色体的第一个成员随机以概率pcrossover繁殖,每对染色体通过包含交换第一染色体的k个第一元素而交叉,k在1和染色体的长度之间随机选择,k与第二染色体的k个第一元素交替,获得两条新染色体;

4)突变:包含轻微随机改变以获得新的染色体,变异算子用于引入新的遗传物质,染色体以概率pmutation进行变异;引入一个特定变异算子:在0个元素中以概率p1变化1个元素,在1个元素中变化为0个元素,概率为p0≤p1;其倾向于增加算法的收敛性,减少dpi引擎的数量(1个元素),同时在1个元素中突变0个元素时探索新的区域;

在每个新一代中,通过使用先前的信息创建一组染色体,在指定次数的迭代后,进化停止;选择具有最小适应值的染色体作为多目标dpi交换机分配问题的解决方案;该算法,更具体地说是负责评估适应值的模块,还提供转发规则以推送到网络设备。

步骤四:适应值的计算:

在遗传算法中,每个染色体的适应值在每次进化迭代中评估以进行排序,染色体的适应度值表示其针对多个目标的质量;适应值越小,染色体的质量越好;染色体x的适应度值的计算包含以下几个步骤:

1)将所有流分配给dpi引擎:计算的输入是:流量矩阵,网络拓扑和每条链路bw上最大使用带宽的限制;考虑到链路的带宽容量,该操作产生了一组通过部署dpi的交换机从源节点到相应目的节点的路径;

2)成本函数的计算:如果包含少于n个部署了dpi的交换机,则其等于部署了dpi的交换机的成本乘以dpi交换机的数量,否则其是无限的,这消除了解决方案;

3)评估成本函数:其等于使用的链路容量单位的成本乘以带宽为单位表示的总体网络负载,在第一步中考虑了每个链路最大使用带宽的约束带宽bw;

4)惩罚成本函数的评估:尚未分配给任何部署dpi交换机的流数从步骤1)中的一组路径中检索;惩罚成本:如果其低于阈值u,乘以这个数量,否则惩罚值是无限的以消除解决方案;

5)通过求和三个成本函数来评估解x的适应值。

进一步的,所述步骤一中实现部署dpi的交换机数量最小化和网络负载最小化这两个目标实际上是正交的;当部署dpi的交换机数量很少时,路径趋于拉长,最小化部署dpi的交换机数量会增加额外使用带宽;相反,最小化使用带宽会增加部署dpi的交换机数量。

进一步的,所述步骤一中约束操作与成本相关,包括网络资源相关成本、与已部署dpi的交换机相关的成本(cpu利用率,能源消耗,许可证费用等)以及由于无法分析流量而导致的处罚成本。

进一步的,所述步骤二中n维矩阵为[0,1,0,0….],其中,0代表i节点不部署dpi,1代表部署;函数fdpi(x)代表部署n(x)个交换机的代价,每个fdpi(x)都有一个单一成本ωdpi;fbw(x)代表随着bω(x)带宽的增加,全网负载成本;bω(x)是部署dpi的交换机的总带宽和没有部署dpi的交换机的总带宽之差。

进一步的,所述步骤四中x是一个n位数组,表示节点中若交换机部署dpi则为1,其缺位为0,n为网络的数量节点能够承载dpi的交换机,基于由表示交换机部署dpi。

本发明的有益效果在于:

本发明对本地应用感知模块进行问题的分析,提出在sdn环境下优化dpi部署,将部署dpi的交换机数量所引起的网络负载和未分析的流量数量减到最小;对于给定的网络基础设施和给定的流量矩阵,可以找到最优dpi部署方案,从而最大限度地降低部署的总体成本;从部署的dpi交换机数量和网络负载两个维度对dpi算法的优越性进行实验论证。本发明方法基于主流dpi部署策略的深度包检测的识别准确率在75%以上,感知时间在正常预测范围内。

附图说明

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

图1为本发明部署dpi的交换机数量与网络负载的正交性示意图;

图2为本发明适应值的确定流程框图;

图3为本发明基于sdn的dpi应用感知架构图;

图4为本发明基于sdn的单层dpi应用感知过程流程图;

图5-7为本发明随机流量矩阵下的对比实验图;

图8为本发明实验拓扑结构图;

图9为本发明应用感知时间图。

具体实施方式

为了使本领域技术人员更好地理解本发明的技术方案能予以实施,下面结合具体实施例对本发明作进一步说明,但所举实施例不作为对本发明的限定。

如图1-4所示的一种基于dpi的应用感知方法,具体包括以下步骤:

步骤一:问题描述:

对于给定的网络基础设施和给定的流量矩阵,可以找到最优dpi部署方案,从而最大限度地降低部署的总体成本。这个成本是联合优化的结果,包括1)部署dpi的交换机数量,2)通过部署dpi的交换机的流量重定向引起的整个网络负载,3)不同的约束操作。这些约束与成本相关,如网络资源相关成本,与已部署dpi的交换机相关的成本(cpu利用率,能源消耗,许可证费用等)以及由于无法分析流量而导致的处罚成本。

实现部署dpi的交换机数量最小化和网络负载最小化这两个目标实际上是正交的。事实上,所有的流量都必须通过至少一个部署dpi的交换机进行分析。当部署dpi的交换机数量很少时,路径趋于拉长,最小化部署dpi的交换机数量会增加额外使用带宽。相反,最小化使用带宽会增加部署dpi的交换机数量。图1说明了目标的正交性。当交换机个数为最佳的部署数量1时,会引发图中黑色流的重定向,从而增加网络使用量。相反,相对于最短路径的最佳网络负载需要部署至少2个dpi交换机,每个dpi交换机在每条最短路径上。

步骤二:问题形式化

对于n个节点的拓扑结构,x是一个n维矩阵([0,1,0,0….]),其中,0代表i节点不部署dpi,1代表部署。图一中的部署相对应的解决方案是:[0,0,0,0,1,0,0]。因为在节点e中只有1个部署了dpi。适应性函数f(x)即全网成本函数最小化,由三个成本函数组成,用以优化以下三个目标:1)部署dpi的交换机数量;2)全网的负载;3)无法感应到的流量数量;

f(x)=fdpi(x)+fbw(x)+funaware(x)

函数fdpi(x)代表部署n(x)个交换机的代价,每个fdpi(x)都有一个单一成本ωdpi。

拥有最大数量的交换机的约束条件为:

fdpi(x)=ωdpin(x)n(x)≤n

fdpi(x)=∞n(x)φn

其中,fbw(x)代表随着bω(x)带宽的增加,全网负载成本,它包含对阈值bw的强大约束,该阈值bw定义网络的每条链路i上使用的带宽bωi的最大百分比。该阈值使网络管理员能够选择配置速率和网络容量,以适应流量变化或新的需求:

fbw(x)=ωbw×bω(x)

bωi≤bw

bω(x)是部署dpi的交换机的总带宽和没有部署dpi的交换机的总带宽之差。最后,代价函数funaware(x)表示惩罚项ωunaware总和:对于无法通过约束分析的u(x)流量具有未分配给dpi交换机的最大u流量:

funaware(x)=ωunaware×u(x)u(x)≤u

funaware(x)=∞u(x)φu

默认情况下,阈值u等于0,即所有流量都必须进行分析。

表1描述符

步骤三:解决方案

上述部分描述的问题属于uflp问题,它们包括定位不确定数量的设施,以最小化固定化设置成本和从这些设施服务市场需求的可变成本的总和。ulfp对于一般属于是np-hard问题。然而,现有技术已经表明基于遗传算法ga的方法比基于线性规划的方法更好地扩大了解决uflp的方法。因此,我们使用ga方法,并根据我们的多目标网络问题的具体情况进行调整。

遗传算法是基于进化算法原理的搜索过程。它将过去的结果利用与探索搜索领域的新领域结合起来,通过使用适者生存的技术与结构化的随机化信息交换,具体算法流程如下:

1)初始人口:初始人口是随机的一组潜在问题解决方案。根据基因工程的术语,人口也被称为染色体,其元素被称为基因。在我们的例子中,我们使用之前定义的二元基因来表示在网络的不同节点上部署dpi交换机。在初始种群和下一代种群中,选择,交叉和变异遗传算子被迭代应用于遗传算法中。

2)选择:选择操作通过使用适应度函数f(x)在染色体之间选择好的结果。基因x的适应度值的计算在第二节中详细描述。适应度函数用于对染色体的质量进行排序。具有较小值的染色体对下一代中的一个或多个后代贡献的可能性较高。

3)交叉:交叉包括交换一对染色体之间的部分信息以获得新的染色体。我们使用一个简单的交叉。繁殖池中新复制的染色体的第一个成员随机以概率pcrossover繁殖。其次,每对染色体通过包含交换第一染色体的k个第一元素而交叉,k在1和染色体的长度之间随机选择,k与第二染色体的k个第一元素交替。因此获得两条新染色体。

4)突变:突变包含轻微随机改变以获得新的染色体。变异算子用于引入新的遗传物质。染色体以概率pmutation进行变异。我们引入了一个特定于我们问题的变异算子。它在0个元素中以概率p1变化1个元素,在1个元素中变化为0个元素,概率为p0≤p1。因此,它倾向于增加算法的收敛性,减少dpi引擎的数量(1个元素),同时在1个元素中突变0个元素时探索新的区域。

在每个新一代中,通过使用先前的信息创建一组染色体。在指定次数的迭代后,进化停止。选择具有最小适应值的染色体作为多目标dpi交换机分配问题的解决方案。该算法,更具体地说是负责评估适应值的模块,还提供转发规则以推送到网络设备。

步骤四:适应值的计算

在遗传算法中,每个染色体的适应值在每次进化迭代中评估以进行排序。染色体的适应度值表示其针对多个目标的质量。适应值越小,染色体的质量越好。如图2,染色体x的适应度值的计算涉及以下几个步骤:

其中,x是一个n位数组,表示节点i中若交换机部署dpi则为1,其缺位为0,n为网络的数量节点能够承载dpi的交换机。

1)基于由表示交换机部署dpi,将所有流分配给dpi引擎:计算的输入是:流量矩阵,网络拓扑和每条链路bw上最大使用带宽的限制;考虑到链路的带宽容量,该操作产生了一组通过部署dpi的交换机从源节点到相应目的节点的路径;

2)成本函数的计算:如果包含少于n个部署了dpi的交换机,则其等于部署了dpi的交换机的成本乘以dpi交换机的数量,否则其是无限的,这消除了解决方案;

3)评估成本函数:其等于使用的链路容量单位的成本乘以带宽为单位表示的总体网络负载,在第一步中考虑了每个链路最大使用带宽的约束带宽bw;

4)惩罚成本函数的评估:尚未分配给任何部署dpi交换机的流数从步骤1)中的一组路径中检索;惩罚成本:如果其低于阈值u,乘以这个数量,否则惩罚值是无限的以消除解决方案;

5)通过求和三个成本函数来评估解x的适应值。

基于matlab的实验验证与对比分析:

为了评估布局算法的性能和行为,本发明实现了多目标遗传算法,并对两种类型的通信量进行仿真。现对模拟设置和实验结果进行介绍。

为了评估布局算法的性能和行为,本发明改变了两个参数,这些参数可以被视为操作约束:i)部署dpi的交换机的成本ωdpi,ii)最大使用带宽每个网络链路上的bw(网络运营商定义其过度配置速率),剩下的参数显示在表2中。最后,使用一个由14个节点组成的网络拓扑结构。它们的连通度等于4,它们的链路具有10个单位的带宽容量。这种拓扑表示覆盖网络,支持服务或信息系统一部分的互连虚拟机,这14个节点也是流量的来源和目的地。

表2参数值

如图5-7,利用异构随机流量矩阵进行对比实验验证多提方法的有效性。每条链路上的带宽限制bw从50%开始。低于这个阈值,结果是不可利用的。事实上,最大的流量对应于4.5单位带宽的带宽,而链路容量设置为10个单位。因此,低于45%的阈值会生成至少一个未分配的流量,从而产生无限的适应值。对于之前的流量矩阵,部署总成本的适应值会下降,而对已使用的链路容量的限制是放松。dpi成本在50%至100%的阈值之间降低41.1%,44.3%和58.0%,ωdpi分别等于200,100和50,流量带宽的异质性导致以下现象。尽管部署dpi的交换机数量随着带宽限制bw的放宽而减少,但是对于几乎所有的情况,额外使用的带宽都减小。这是由于一些流量相对于允许的链路容量bw具有高达4.5单位的大带宽。因此,放宽约束条件可以减少部署dpi的交换机数量,但也可以通过允许多个流共享链路来减少网络负载。对于这种类型的流量,本发明所提算法可以最大限度地减少部署dpi的交换机的使用数量和网络负载。

基于sdn的实验验证与分析:

模拟真实sdn网络环境,对算法的分类准确度和时间损耗进行实验验证。

1、sdn下单层dpi应用感知过程

该组实验首先将dpi部署在sdn仿真平台的控制器端,然后利用真实的网络数据流量进行实验验证,相当于是一个单层的基于sdn的深度包检测实验,所以该感知流程多层应用感知流程有所不同。基于sdn的dpi应用感知方法模型如图3所示。

应用感知模块部署于控制器中,利用深度包检测的方法实现对应用类型的分类,且控制器利用sdn的集中控制机制,实时汇总全网应用感知情况。整个模型使用了sdn的架构思想,采用openflow协议来实现模块间的协调配合、信令交互,数据包感知的具体流程图如图4所示。

数据包的详细感知的过程如下:

1)数据包流经swtich,便自动引发流表匹配操作。交换机所进行数据包识别的端口信息来源于已有的流表项。如果流表匹配失败,交换机将数据包封装在packet_in消息中,然后发送给控制器,而原数据包将缓存在swtich中。如果流表匹配成功,则依据流表中的动作策略信息进行处理,感知识别过程终止。

2)接收收到switch发来的packet_in消息后,控制器将该数据包与自己的全局信息表进行匹配,如果匹配成功,控制器利用flow_mod消息将流表项写入交换机,并修改flow_mod中buffer_id字段,将其修改为与packet_in中的buffer_id值一致,接着按流表项的action列表处理该数据包。如果匹配不成功,则启用控制器应用感知方法。

3)控制器应用感知模块启用后,使用深度包检测方法检测该数据包。如匹配成功,控制器便依据此数据包自身所包含的五元组信息依据控制器中的流表的生成下发规则生成对应的流表项,并将该流表项下发到交换机,本地交换机据此进行数据包匹配与转发。如果匹配不成功,理论上应将此数据包提交到网络管理员处,由专家进行特殊应用的处理,本文中直接返回异常信息,并将该数据包标记为异常流量。

2、实验环境与拓扑设计

实验平台的搭建上,本发明选用兼容openvswitch交换机的minine和floodlight控制器,此外还用到iperf、wireshark等。其中,wireshark是网络抓包工具,iperf是美国illionis大学研发的一种开源网络性能测试工具,主要用于对网络qos的相关指标进行实时的检测与统计。表3为sdn实验环境。

表3实验平台

实验拓扑的设计方面,我们参考借鉴石溪大学zafarqazi的应用感知模型,利用mininet定义了图8所示的网络拓扑结构,其中switch是运行openvswich的虚拟交换机,在它上面部署了基于csae的应用感知模块,controller运用到的是floodlight控制器。

3、实验验证与分析

该组实验通过在sdn模拟仿真平台根控制器部署单一dpi分类感知器,从而得到sdn下dpi的应用感知识别率和感知时间。结果如表4所示。

表4应用感知准确率

从表4和图9实验结果可以看出,基于主流dpi部署策略的深度包检测的识别准确率在75%以上,感知时间在正常预测范围内。

本发明中未做详细描述的内容均为现有技术。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1