首页> 中国专利> 一种面向软件定义网络的协作式大流检测方法及系统

一种面向软件定义网络的协作式大流检测方法及系统

摘要

本发明属于通信技术领域,公开了一种面向软件定义网络的协作式大流检测方法及系统,设置多个边缘交换机,部署大流检测节点,并记录每个流标识对应的本地计数值、本地阈值;若某个流标识对应的本地计数值大于本地阈值,则判断为当前可能大流,对应边缘交换机向中心控制器发送报告;中心控制器获取所有的边缘交换机中对应流标识的全局估计值;若全局估计值大于等于全局阈值,则中心控制器获取所有未触发报告机制的边缘交换机中对应流标识的本地计数值,并结合触发报告机制的边缘交换机的本地计数值,得到流标识对应的全局真实值;若全局真实值大于等于全局阈值,则判断为大流。本发明在通信代价和资源受限的情况下,能够更好地提升检测性能。

著录项

  • 公开/公告号CN112367217A

    专利类型发明专利

  • 公开/公告日2021-02-12

    原文格式PDF

  • 申请/专利权人 武汉大学;

    申请/专利号CN202011125528.3

  • 申请日2020-10-20

  • 分类号H04L12/26(20060101);H04L12/931(20130101);

  • 代理机构42222 武汉科皓知识产权代理事务所(特殊普通合伙);

  • 代理人胡琦旖

  • 地址 430072 湖北省武汉市武昌区珞珈山武汉大学

  • 入库时间 2023-06-19 09:52:39

说明书

技术领域

本发明涉及通信技术领域,尤其涉及一种面向软件定义网络的协作式大流检测方法及系统。

背景技术

随着流量的激增,云计算和大数据等新兴业务的出现,云计算数据中心面临着各种各样的挑战。在网络服务提供商(ISP)和企业核心网的云计算和数据网络管理中心中,网络测量所起的作用必不可少。目前的问题是,面对大规模的网络流量和网络部署时,无差错的监测需要追踪海量流信息。如今的数据中心可以在短时间内拥有数万个并发流,对每条流进行跟踪这将消耗大量的资源,传统网络以TCP/IP为核心的架构难以对网络中海量数据进行实时精细化的管理、度量和统计。

为了解决传统数据中心以TCP/IP为核心的架构的不足,一种通过将控制和转发进行解耦的新型网络架构SDN近年来得到了工业界和学术界的广泛关注。其通过对下层基础网络转发设备的逻辑功能进行抽象、剥离,集中到上层的统一的控制器中,使下层基础网络转发设备为只具有转发功能的白盒设备,利用控制器对外界提供的南北向可编程接口,集中统一管理网络设备,并与NFV、云计算等技术相结合,实现对网络资源的弹性调度,划片管理,对网络设备进行快速配合部署,加快了网络应用的创新过程,减少了网络部署的时间成本和人力消耗。控制器作为网络的核心,需要满足数据中心对流量实时精细化的管理,基于全局视图的管控机制对于网络设备和网络流量的监控具有良好的优势。如何在不增加控制器消耗的前提下,对网络进行全局的监测具备较大的意义。

网络运营商通常需要识别网络流量中的异常值,以检测攻击或诊断性能问题。检测异常流量的一种常见方法是执行“大流”检测,根据某些度量来识别top-k流(或超过预先确定的阈值的流)。在网络测量领域,大流是指占据了网络大部分流量的流,具体可定义为在测量周期内传输报文数或字节数超过当前链路上实际传输流量的一定比例。大流被调度到同一链路上发生碰撞,会长期占用链路带宽,导致出口端队列中其他小流排队等待,造成网络延时高的问题。如何对大流进行有效识别成为一个热点问题。

企业和网络运营商的管理员需要监控整个网络的大流情况。如果只在一个位置单个节点上部署大流检测,很有可能造成一些网络问题无法被检测出来,例如端口扫描或者super spreader,从而造成检测盲点。因此,在全网范围内,能够产生大型流量的流,很可能在个别交换机上并不明显,因而逃离检测。

发明内容

本发明通过提供一种面向软件定义网络的协作式大流检测方法及系统,解决了现有技术中大流检测的通信代价过大、检测效果较差的问题。

本发明提供一种面向软件定义网络的协作式大流检测方法,包括以下步骤:

步骤1、设置n个边缘交换机,在每个所述边缘交换机上部署一个大流检测节点;针对每个所述边缘交换机,所述边缘交换机记录每个流标识对应的本地计数值、本地阈值;

步骤2、若第s个边缘交换机中标识符为f的流对应的本地计数值大于标识符为f的流对应的本地阈值,则将标识符为f的流判断为当前可能大流,所述第s个边缘交换机触发报告机制,向中心控制器发送报告;所述报告包括当前可能大流的标识符及其对应的本地计数值;

步骤3、所述中心控制器获取所有的边缘交换机中标识符为f的流对应的计数值,并得到标识符为f的流对应的全局估计值;所述计数值包括触发报告机制的边缘交换机记录的本地计数值、未触发报告机制的边缘交换机记录的估计计数值;

步骤4、若所述标识符为f的流对应的全局估计值大于等于全局阈值,则所述中心控制器获取所有未触发报告机制的边缘交换机中标识符为f的流对应的本地计数值,并结合触发报告机制的边缘交换机中标识符为f的流对应的本地计数值,得到标识符为f的流对应的全局真实值;

若所述标识符为f的流对应的全局真实值大于等于所述全局阈值,则将标识符为f的流判断为大流;若所述标识符为f的流对应的全局真实值小于所述全局阈值则,则将标识符为f的流判断为非大流;

若所述标识符为f的流对应的全局估计值小于所述全局阈值,则将标识符为f的流判断为非大流。

优选的,在所述边缘交换机未向中心控制器发送报告的情况下,所述中心控制器下发初始本地阈值至所述边缘交换机,所述边缘交换机中流标识对应的本地阈值采用所述初始本地阈值;

在所述边缘交换机向中心控制器发送过报告的情况下,所述中心控制器根据历史报告对所述边缘交换机中流标识对应的本地阈值进行动态调整,流标识对应的本地阈值采用动态调整后的本地阈值。

优选的,所述初始本地阈值表示为:

T

其中,T

优选的,所述中心控制器根据历史报告对所述边缘交换机中流标识对应的本地阈值进行动态调整的具体实现方式为:

所述中心控制器采用本地计数值和全局真实值的指数加权移动平均EWMA来动态调节本地阈值。

优选的,所述未触发报告机制的边缘交换机的估计计数值通过下式得到:

其中,value表示估计计数值,C

另一方面,本发明提供一种面向软件定义网络的协作式大流检测系统,包括:n个边缘交换机、一个中心控制器;

所述面向软件定义网络的协作式大流检测系统用于实现上述面向软件定义网络的协作式大流检测方法中的步骤。

优选的,所述边缘交换机进入网络的相同流的标识符通过源地址、源目地址对或者五元组的形式来判断。

优选的,所述中心控制器中创建有映射数据结构MAP,通过所述映射数据结构MAP维护流标识与边缘交换机ID之间的映射关系。

优选的,若一个新流或者意外流进入所述边缘交换机,则所述边缘交换机发送询问信息至所述中心控制器;所述中心控制器从所述询问信息中提取流标识、边缘交换机的ID,并判断该提取的标识是否在所述映射数据结构MAP里;若提取的流标识在所述映射数据结构MAP里,则在所述映射数据结构MAP中的提取的流标识的路径里添加边缘交换机的ID;若提取的流标识不在所述映射数据结构MAP里,则在所述映射数据结构MAP中添加提取的流标识的映射。

本发明中提供的一个或多个技术方案,至少具有如下技术效果或优点:

在发明中,设置n个边缘交换机,在每个边缘交换机上部署一个大流检测节点;针对每个边缘交换机,边缘交换机记录每个流标识对应的本地计数值、本地阈值;若第s个边缘交换机中标识符为f的流对应的本地计数值大于标识符为f的流对应的本地阈值,则将标识符为f的流判断为当前可能大流,第s个边缘交换机触发报告机制,向中心控制器发送报告;报告包括当前可能大流的标识符及其对应的本地计数值;中心控制器获取所有的边缘交换机中标识符为f的流对应的计数值,并得到标识符为f的流对应的全局估计值;计数值包括触发报告机制的边缘交换机记录的本地计数值、未触发报告机制的边缘交换机记录的估计计数值;若标识符为f的流对应的全局估计值大于等于全局阈值,则中心控制器获取所有未触发报告机制的边缘交换机中标识符为f的流对应的本地计数值,并结合触发报告机制的边缘交换机中标识符为f的流对应的本地计数值,得到标识符为f的流对应的全局真实值;若标识符为f的流对应的全局真实值大于等于全局阈值,则将标识符为f的流判断为大流;若标识符为f的流对应的全局真实值小于全局阈值则,则将标识符为f的流判断为非大流;若标识符为f的流对应的全局估计值小于全局阈值,则将标识符为f的流判断为非大流。本发明解决了多个节点进行的大流检测问题,对网络的各个部分多个位置进行监视,基于软件定义网络中拓扑结构和大流阈值自设定的检测方法,在通信代价和资源受限的情况下,更好地提升检测性能。

附图说明

图1为本发明实施例提供的一种面向软件定义网络的协作式大流检测系统中中心控制器维护边缘交换机ID与流标识映射的流程图;

图2为本发明实施例提供的一种面向软件定义网络的协作式大流检测方法、轮询法、估计法这三种方法下的精确度对比示意图;

图3为本发明实施例提供的一种面向软件定义网络的协作式大流检测方法、轮询法、估计法这三种方法下的通信量对比示意图;

图4为本发明实施例提供的一种面向软件定义网络的协作式大流检测方法、轮询法、估计法这三种方法对应的节点数目对于通信量的影响对比示意图;

图5为本发明实施例提供的一种面向软件定义网络的协作式大流检测方法对应的α系数对于通信量的影响示意图。

具体实施方式

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。

本实施例提供了一种面向软件定义网络的协作式大流检测方法,包括以下步骤:

步骤1、设置n个边缘交换机,在每个所述边缘交换机上部署一个大流检测节点;针对每个所述边缘交换机,所述边缘交换机记录每个流标识对应的本地计数值、本地阈值;

步骤2、若第s个边缘交换机中标识符为f的流对应的本地计数值大于标识符为f的流对应的本地阈值,则将标识符为f的流判断为当前可能大流,所述第s个边缘交换机触发报告机制,向中心控制器发送报告;所述报告包括当前可能大流的标识符及其对应的本地计数值;

步骤3、所述中心控制器获取所有的边缘交换机中标识符为f的流对应的计数值,并得到标识符为f的流对应的全局估计值;所述计数值包括触发报告机制的边缘交换机记录的本地计数值、未触发报告机制的边缘交换机记录的估计计数值;

步骤4、若所述标识符为f的流对应的全局估计值大于等于全局阈值,则所述中心控制器获取所有未触发报告机制的边缘交换机中标识符为f的流对应的本地计数值,并结合触发报告机制的边缘交换机中标识符为f的流对应的本地计数值,得到标识符为f的流对应的全局真实值;

若所述标识符为f的流对应的全局真实值大于等于所述全局阈值,则将标识符为f的流判断为大流;若所述标识符为f的流对应的全局真实值小于所述全局阈值则,则将标识符为f的流判断为非大流;

若所述标识符为f的流对应的全局估计值小于所述全局阈值,则将标识符为f的流判断为非大流。

本实施例提供了一种面向软件定义网络的协作式大流检测系统,包括:n个边缘交换机、一个中心控制器;所述面向软件定义网络的协作式大流检测系统用于实现上述面向软件定义网络的协作式大流检测方法中的步骤。

下面对本发明做进一步的说明。

首先,我们意识到,在通信代价和资源受限的情况下,进行全网的大流检测,需要对本地和全局的流进行区别对待。对于一个连续分布式检测问题,面临的有连续性、分布式、流式和全局性等一系列挑战。将流进行进一步的分类,在每个交换机上,如果不会对本地或者全局产生明显影响的流可以成为老鼠流,即不需要过多关注这些流量,不用为这些流量分配额外资源。难点在于,除了这部分老鼠流之外,次大流可能会在本地凸显地很明显,但是交换机并不知道这些大流对于全局的影响。因此交换机需要为这些大流分配资源来决定它是否可能会对全局产生影响,称之为次大流。当次大流累计到本地阈值,并对全局计数产生影响时,交换机就需要对控制器进行报告。因此在各个交换机上实行分布式大流检测的时候,除了需要在各个流量入口安置监测点,还需要中央控制器的协助。中央控制器通过汇聚每个交换机检测到的信息,确认达到全局阈值的流。通过本地阈值的限制来设定何时触发给控制器的报告以及哪些交换机发送报告,最终决定了通信代价的多少以及检测的精确度如何。

本发明将对于多个节点的检测问题描述为连续分布检测模型(CDM)的一个实例,即抽象为多个观测节点进行观测工作,然后将多个观测节点的结果汇聚统计计算得到网络中大流检测的结果。分布式检测用于在大型ISP网络数据中心中观测本地链路的使用状态,然后聚集所有观测信息判断当前网络的健康状态;在网络中配置多个传感器,用于收集环境信息,追踪全局数据的变化情况;追踪数据中心中多个计算节点的使用情况,并协调这些信息,以跟踪使用模式的变化,并检测任何攻击或者过载的情况。

具体的,本发明设置n个边缘交换机,首先在各个边缘交换机上部署大流检测节点,然后根据网络状况设定一个全局阈值,全局阈值的存在会分配到每一个大流检测节点上面并得到一个本地阈值,对于由边缘交换机进入网络的相同流的标识可以由源地址、源目地址对或者五元组的形式来判断。在每个边缘交换机上,各自为每个流标识符维护一个本地计数值和本地阈值。边缘交换机记录流入的总数,本地阈值由中心控制器下发设置。当本地计数值达到或超过本地阈值时,边缘交换机向中心控制器发送报告,包括当前可能大流的标识符以及其对应的本地计数值,然后中心控制器有选择的调取其他边缘交换机的信息。边缘交换机在本地计数值大于或等于本地阈值时会触发报告,所以中心控制器不会获取到关于全局计数值的真实完整信息。对于没有触发报告机制的边缘交换机来说,仍旧保留了一个计数值,在满足不触发报告的前提下对这个计数值进行最大估计,得到中心控制器为估计全局计数值做出的保守估计。如果此时的全局估计值大于或等于全局阈值,则中心控制器再去从那些刚才被估计的边缘交换机中抽取真实的本地计数值,进而得到全局真实值。如果此时全局真实值大于或等于全局阈值,那么才认为当前流为大流,否则如果按最大值进行估计的值都小于全局阈值,则判定此刻并没有必要从没有触发报告机制的边缘交换机中抽取报告,从而通过估计的方式减少通信开销。

步骤1:将大流检测节点部署在边缘交换机上,通过设置本地阈值的方式来触发边缘交换机发送报告给中心控制器。

在网络中设置n个边缘交换机,并将它们视为等价的,即具有相同可能性观察到给定流量的一部分。设定全局阈值为T

步骤2:对所有的大流检测节点进行观测,然后将所有大流检测节点的观测结果发送到中心控制器(即一个远程中心控制节点)。

在持续性的分布式检测中,我们致力解决提到的连续性、分布式、流式和全局性等一系列问题。中心思想是,当一些不是重要的东西被观测到时,进行最小的通信交流,只在必要时启用报告策略,使得全局的通信尽量小。为了有效的在全网范围内检测大流,我们需要协调中心控制器与边缘交换机之间的协作过程,并关注如何减少中心控制器与边缘交换机之间的通信代价。

对于在真实网络中的流量,来自单个源IP地址的流量通常在有限数量的节点进入网络,例如从有限的对等列表中的设备进入或从在数据中心机架的固定位置进入的东西流量;同样地,到唯一目标IP地址前缀的流量通常只在几个位置离开网络。因此,如果中心控制器能够有效地使用合适的阈值检测部分设备,网络流量的空间局部性提供了减少大流检测通信开销的机会。

综上所述,我们将大流检测节点部署在边缘交换机上,即接入层的设备中。对于由边缘交换机进入网络的相同流的标识可以由源地址、源目地址对或者五元组的形式来判断。在每个边缘交换机上,各自为每个流标识符维护一个本地计数值和本地阈值。边缘交换机记录流入的总数,本地阈值由中心控制器下发设置。当本地计数值达到或超过本地阈值时,则边缘交换机向中心控制器发送报告,包括当前可能大流的标识符以及其对应的本地计数值,然后中心控制器有选择的调取其他交换机的信息。

步骤3:通过估计的方式分别调取报告,即中心控制器从多个边缘交换机中抽取报告聚合相同标识符流的计数值。

(1)实际网络中的所有边缘交换机都可以视为等价的,具有相同可能性观察到给定流量的一部分。大多数流都表现出具有空间局部性,只需在某一边缘交换机子集中就可以观察到特定的某条流。边缘交换机只在本地计数值大于或等于本地阈值时才触发报告,因此中心控制器不会得到关于全局的真实完整信息。对于没有触发报告机制的边缘交换机i来说,仍旧为标识符为f的流维护了一个计数,在满足不触发报告的前提下,这个计数值的最大估计值可以估计为T

其中,value表示估计计数值,C

当C

(2)中心控制器计算、汇聚所有触发报告机制的边缘交换机和没有触发报告机制的边缘交换机,获得报告中真实的计数值和按最大值进行估计的估计值。如果此时的全局估计值大于或等于全局阈值T

(3)在SDN环境下,底层设备只保留基本的转发功能,所有的控制逻辑抽离集中到上层控制器中,上层控制器(即中心控制器)拥有整个网络拓扑的全局信息。在实际网络环境中,由于网络路由的更新、重配置或者网络故障等原因,造成网络流的路径发生改变,因此中心控制器可以动态的追踪到流的信息,感知到在数据面上流的空间局域性。在任何时候,边缘交换机根据流表中的转发规则知道流的具体流向,当一个新流或者意外流进入边缘交换机,边缘交换机做的第一件就是询问中心控制器。

(4)首先中心控制器与边缘交换机通过TCP端口6633进行三次握手建立连接,然后互相发送hello报文,告知彼此间的协议版本,通过协商使用统一的协议版本进行之后的沟通。

之后边缘交换机收到新的数据包后,会先和自己已有的流表进行匹配,如果没有匹配到任何条目,便击中miss table,触发Packet-in,然后边缘交换机将这个数据包封装在报文中传送给中心控制器。Packet-in的作用是,将边缘交换机中的数据包信息传送给中心控制器。Packet-in包含缓存id,包长度等。一般产生Packet-in的条件有两种,分别是:(1)0:流表项中不存在匹配(NO-MATCH);(2)1:明确规定动作项为发送至中心控制器(ACTION)。

当中心控制器收到消息后,通过Flow-mod改写边缘交换机中的流表项,且缓存id与Packet-in中的缓存id对应,从而特定地为某一数据包添加一条流表规则,数据包便可通过该规则中的动作进行处理。

中心控制器通过流的标识如ip、mac等下发流表后,由Packet-out将中心控制器的信息发送至边缘交换机,即Packet-out是含有命令的消息。

在原有连接建立的基础上,中心控制器要向边缘交换机发送命令时,通过触发packet-out进行。

(5)在不改变上述流表信息转发过程中,创建一个映射数据结构MAP,用于记录边缘交换机ID与流标识之间的映射关系。当边缘交换机对于新流无从处理的时候,向中心控制器发送Query询问信息,中心控制器抽取Query询问信息中的流标识f和边缘交换机s,如果在映射中已经存在该流的相关信息,就将该边缘交换机ID添加到该映射中,否则,就为该流新创建一个映射关系,如图1所示。

在检测过程中,如果一个边缘交换机的本地阈值触发报告,中心控制器根据触发报告的流标识符,得到当前需要进行全局验证的候选大流。根据该流的信息,在映射数据结构中,找到对应转发该流的边缘交换机。由于边缘交换机处于接入层,往往与源、目地址挂钩,计数会重复记录两次,因此在抽取这些边缘交换机中的相关值后,需要进行对半取值,即(∑count)/2。

步骤4:自适应阈值调整。

之前的假设中,对于流在每个边缘交换机上本地阈值的设定,认为所有边缘交换机观测到特定流的概率是相同的,因此在设定本地阈值时将全局阈值对于检测管辖范围内的边缘交换机做均值,即T

受动态调节抽样频率的启发,如果某个流在过去被检测为一个大流项,那么在最近未来的时间段上仍有很大概率成为一个大流项。因此中心控制器采用本地和全局计数的指数加权移动平均(EWMA),来动态调节本地阈值。因此用EWMA来反映某条流的趋势,即调整本地阈值反映特定流的每个站点在全局EWMA中的比例。其中α为系数,通过改变系数,可以反映过去值与当前值对于预期值的不同影响,系数越大,越反映当前值有较大的影响,反之则说明过去值有较大影响。初始本地阈值通过全局阈值和节点数作为开始,然后中心控制器根据以往的报告调整每个流的本地阈值,即之后的本地阈值由中心控制器通过随后的报告重新计算。这种调整保证观测特定流的大部分通信代价的边缘交换机应用较高的本地阈值,通过基于本地和全局的指数移动加权平均调整,进一步减少边缘交换机和中心控制器间的通信开销。

动态调整本地阈值的步骤如下:

初始化一个参数total,令其值为0。对于映射MAP中所有的流标识符f,如果本地阈值T

我们定义大流集为H,当最终算出的total值大于等于全局阈值T

然后我们将重置流标识符f,并继续进行下一轮的大流检测。重置过程:对于映射MAP中的所有流标识符f,令

其中C代表边缘交换机中流标识符的计数值,然后令

重置完成。

为了验证本发明的效果,我们选择了两种常用的方法,即轮询法和估计法来与本发明提供的协作式大流检测方法进行对比,采用以下指标进行验证:

精确度P:被检测为真的大流占取所有检测流的比率,即查准率;

召回率R:被检测为真的大流占所有真大流集的比率,即查全率;

F1比分:

α系数反应的是历史数据和最近观测值的比例。系数越大,表明越重视近期的数据值,而对历史数据的权值降低,同时也反应了对于实际流量更改的应对能力,即时效性,系数越大,时效性也就越强,越小平稳性越强。

所得结果分别如图2、图3、图4、图5所示。可知,本发明提供的协作式大流检测方法相当于现有的轮询法和估计法具有更好的检测效果,更高的检测精度,且消耗更小的通信量。

本发明实施例提供的一种面向软件定义网络的协作式大流检测方法及系统至少包括如下技术效果:

(1)本发明针对SDN环境下数据中心网络的大流检测问题,减少了控制器与交换机监测节点之间的通信消耗。

(2)本发明根据控制器全局视野,提出在控制器上维护流与交换机之间的映射关系,记录流的空间信息,从而使控制器更有目标性地访问交换机,减少了一部分通信消耗。

(3)为了避免较小阈值导致地频繁触发报告增加通信量,根据大流的特性,提出通过历史数据指数加权移动平均动态地调整阈值大小,从而减少交换机和控制器之间的通信开销。

最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号