首页> 中国专利> 一种SDN控制器动态流表管理方法

一种SDN控制器动态流表管理方法

摘要

本发明公开了一种SDN控制器动态流表管理方法,通过周期性地对交换机中所有流表项的报文命中情况进行统计,对流表项的活跃度进行打分,基于得分动态地调整流表项的匹配优先级,优化报文在交换机中的查表匹配顺序,有效减少报文在查表过程中的平均匹配次数,降低交换机的计算负载,提高交换机的转发性能。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-14

    授权

    授权

  • 2018-05-11

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

    实质审查的生效

  • 2018-04-17

    公开

    公开

说明书

技术领域

本发明涉及一种基于OpenFlow协议的SDN控制器,尤其是涉及一种基于OpenFlow协议的SDN控制器动态流表管理方法。

背景技术

软件定义网络(Software Defined Networking,SDN)技术是一种打破了传统网络组织应用方式,具有逻辑上集中、控制与转发分离、接口开放和可编程等特点的全新的网络体系架构。OpenFlow协议是目前软件定义网络领域被标准化且广泛认可的南向接口协议之一,OpenFlow交换机将被大量应用在各种软件定义网络系统中。

SDN控制器通过OpenFlow协议向交换机配置流表项时,可指定流表项在流表中的优先级,该优先级确定了流表项在流表中的匹配顺序,取值范围为0-65535,数据越大优先级越高。报文在某个流表中匹配时,从优先级最高的流表项开始匹配,直到匹配成功。

现有技术中,OpenFlow流表项优先级主要用作最长掩码匹配等对表项匹配顺序有明确需求的应用。当不存在匹配顺序需求时,优先级字段并未得到有效使用,通常被设置为固定的默认优先级,这时流表项在交换机中的匹配顺序是不确定的,这可能导致查表过程中的流表匹配顺序没有得到有效地优化。在许多基于软件查表的交换机系统中,流表匹配通常只能顺序执行,若业务量较大的流表项的匹配顺序相对靠后,而业务量较小的流表项的匹配顺序相对靠前,则会导致交换机在查表过程中产生大量的匹配失败,增加了查表时的匹配次数,浪费交换机的计算资源,降低网络性能。

发明内容

为了克服现有技术的上述缺点,本发明提供了一种基于OpenFlow协议的SDN控制器动态流表管理方法,通过周期性动态地调整安装在交换机中的流表项的优先级,优化报文在查表时的匹配顺序,减少报文在查表过程中的平均匹配次数,降低交换机的计算负载,提高网络的转发性能。

本发明解决其技术问题所采用的技术方案是:一种SDN控制器动态流表管理方法,包括如下步骤:

步骤一、遍历所有流表项,查询本统计周期T内各个流表项的报文命中数目;

步骤二、统计各个流表项在前5个统计周期以及整个生命周期中的报文命中数量C1-C6;

步骤三、按如下公式计算流表项活跃度C0:

C0=C1×a+(C2/2)×b+(C3/3)×c+(C4/4)×d+(C5/5)×e+(C6*T/t)*f,其中t为该流表项的总生存时间,a、b、c、d、e、f为加权系数,且a+b+c+d+e+f=1;

步骤四、根据C0将全部流表项从高到低排序;

步骤五、按从高到低的顺序遍历全部流表项,为每个流表项分配新的优先级;

步骤六、为流表活跃度更高的流表项设置更高优先级。

与现有技术相比,本发明的积极效果是:通过周期性地对交换机中所有流表项的报文命中情况进行统计,对流表项的活跃度进行打分,基于得分动态地调整流表项的匹配优先级,优化报文在交换机中的查表匹配顺序,有效减少报文在查表过程中的平均匹配次数,降低交换机的计算负载,提高交换机的转发性能。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1为流表项优先级管理模块组成示意图。

图2为周期计时到期后更新流表项优先级的流程示意图。

具体实施方式

如图1所示,流表项优先级管理模块包括优先级初始化模块、流表项状态检测模块、优先级动态计算模块、优先级动态配置模块、计时模块。系统通过周期性地对交换机中所有流表项的报文命中情况进行统计,根据报文命中频率对流表项的活跃度进行打分,得分较高的流表项活跃度较高,单位时间内命中的报文较多,为其设置更高的优先级,优化报文在交换机中的查表匹配顺序,减少查表过程中的匹配次数,提高交换机的转发性能。

流表项对表项匹配顺序没有明确需求。控制器为业务流创建流表项时,根据业务流的承载协议类型为其初始化一个优先级,初始化优先级关系应确保TCP≥UDP≥裸IP≥ICMP≥ARP/RARP≥其它协议,作为优选,取值关系为TCP=60000,UDP=50000,裸IP=40000,ICMP=30000,ARP/RARP=20000,其它协议=10000。

周期性地对交换机中所有流表项的报文命中情况进行统计,根据报文命中频率对流表项的活跃度进行打分,得分较高的流表项活跃度较高,单位时间内命中的报文较多,为其设置更高的优先级。SDN控制器向OpenFlow交换机配置流表项时,默认关联一个独立的Meter表项,然后通过MeterStat消息查询Meter表项的packet-in-count计数器,获得对应流表项的报文命中统计。

预设一个统计周期T,典型取值T=10s,每个周期通过上述统计方法得到流表项在本周期内命中的报文数量C,并根据之前的统计信息分别计算出当前周期、之前2个周期、之前3个周期、之前4个周期、之前5个周期和流表项全部生存周期中的报文命中数量C1、C2、C3、C4、C5和C6,对上述统计值进行加权累加,得到流表项的加权平均报文命中数C0,定义C0为流表项的活跃度,计算公式为:C0=C1×a+(C2/2)×b+(C3/3)×c+(C4/4)×d+(C5/5)×e+(C6*T/t)*f,其中t为该流表项的总生存时间。公式中a、b、c、d、e、f的值为加权权值,需确保a+b+c+d+e+f=1,具体取值比例可根据场景优化,作为优选,取a=0.4,b=0.2,c=0.15,d=0.1,e=0.1,f=0.05;

每个统计周期内,计算出全部流表项的活跃度,根据活跃度将流表项降序排列,然后按顺序分配递减的优先级,作为优选,可从60000开始分配,即活跃度最高的流表项优先级为60000,第二高的为59999,以此类推;对于活跃度一致的流表项,依次比较权利要求6中报文命中数量C1、C2、C3、C4、C5和C6,为命中数量更大的流表项分配更高的优先级,若两条流表项的活跃度和全部报文命中数量统计值都一致,则分配相同的优先级;

每个周期内,当流表项的优先级在控制器被更新后,通过Flow-mod消息中的ADD和DELETE_STRICT操作完成向交换机的实际配置动作。先添加具有新优先级的流表项,再删除具有旧优先级的流表项,确保业务流在流表项优先级调整过程中不受影响。

如图2所示,周期计时到期后的具体处理方法步骤为:

一、遍历所有流表项,通过Meter-statistics消息查询本周期内各个流表项的报文命中数目;二、根据本次查询的结果和历史查询结果,统计各个流表项在前5个统计周期以及整个生命周期中的报文命中数量C1-C6;三、计算流表项活跃度C0;四、根据最新计算的活跃度将全部流表项从高到低排序;五、按活跃度从高到低的顺序遍历全部流表项,第一个流表项分配新优先级60000,第二个流表项分配新优先级59999,以此类推,直到完成对所有流表项的遍历;六、将分配了新优先级的流表项配置进交换机,再将具有旧优先级的流表项删除。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号