CN107920024A - 一种sdn控制器动态流表管理方法 - Google Patents
一种sdn控制器动态流表管理方法 Download PDFInfo
- Publication number
- CN107920024A CN107920024A CN201710940524.2A CN201710940524A CN107920024A CN 107920024 A CN107920024 A CN 107920024A CN 201710940524 A CN201710940524 A CN 201710940524A CN 107920024 A CN107920024 A CN 107920024A
- Authority
- CN
- China
- Prior art keywords
- flow table
- table item
- priority
- sdn controllers
- item
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种SDN控制器动态流表管理方法,通过周期性地对交换机中所有流表项的报文命中情况进行统计,对流表项的活跃度进行打分,基于得分动态地调整流表项的匹配优先级,优化报文在交换机中的查表匹配顺序,有效减少报文在查表过程中的平均匹配次数,降低交换机的计算负载,提高交换机的转发性能。
Description
技术领域
本发明涉及一种基于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,以此类推,直到完成对所有流表项的遍历;六、将分配了新优先级的流表项配置进交换机,再将具有旧优先级的流表项删除。
Claims (7)
1.一种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将全部流表项从高到低排序;
步骤五、按从高到低的顺序遍历全部流表项,为每个流表项分配新的优先级;
步骤六、为流表活跃度更高的流表项设置更高优先级。
2.根据权利要求1所述的一种SDN控制器动态流表管理方法,其特征在于:控制器为业务流创建流表项时,根据业务流的承载协议类型为其初始化一个优先级,初始化优先级关系应确保TCP≥UDP≥裸IP≥ICMP≥ARP/RARP≥其它协议。
3.根据权利要求2所述的一种SDN控制器动态流表管理方法,其特征在于:对于初始化优先级的取值,TCP=60000,UDP=50000,裸IP=40000,ICMP=30000,ARP/RARP=20000,其它协议=10000。
4.根据权利要求1所述的一种SDN控制器动态流表管理方法,其特征在于:各个流表项的报文命中数目的统计方法为:SDN控制器向OpenFlow交换机配置流表项时,默认关联一个独立的Meter表项,然后通过MeterStat消息查询Meter表项的packet-in-count计数器,获得对应流表项的报文命中数目。
5.根据权利要求1所述的一种SDN控制器动态流表管理方法,其特征在于:a=0.4,b=0.2,c=0.15,d=0.1,e=0.1,f=0.05。
6.根据权利要求1所述的一种SDN控制器动态流表管理方法,其特征在于:为每个流表项分配新的优先级的方法为:活跃度最高的流表项优先级为60000,第二高的为59999,以此类推;对于活跃度一致的流表项,依次比较报文命中数量C1、C2、C3、C4、C5和C6,为命中数量更大的流表项分配更高的优先级,若两条流表项的活跃度和全部报文命中数量统计值都一致,则分配相同的优先级。
7.根据权利要求1所述的一种SDN控制器动态流表管理方法,其特征在于:为流表项设置更高优先级的方法为:通过Flow-mod消息中的ADD和DELETE_STRICT操作完成,先添加具有新优先级的流表项,再删除具有旧优先级的流表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710940524.2A CN107920024B (zh) | 2017-10-11 | 2017-10-11 | 一种sdn控制器动态流表管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710940524.2A CN107920024B (zh) | 2017-10-11 | 2017-10-11 | 一种sdn控制器动态流表管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107920024A true CN107920024A (zh) | 2018-04-17 |
CN107920024B CN107920024B (zh) | 2020-08-14 |
Family
ID=61895787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710940524.2A Active CN107920024B (zh) | 2017-10-11 | 2017-10-11 | 一种sdn控制器动态流表管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107920024B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108768879A (zh) * | 2018-04-26 | 2018-11-06 | 新华三信息安全技术有限公司 | 一种策略优先级调整方法和装置 |
CN108959573A (zh) * | 2018-07-05 | 2018-12-07 | 京东方科技集团股份有限公司 | 基于桌面云的数据迁移方法、装置、电子设备以及存储介质 |
CN114257461A (zh) * | 2022-03-01 | 2022-03-29 | 四川省商投信息技术有限责任公司 | 一种sdn交换机流表控制方法及装置 |
CN117240811A (zh) * | 2023-08-30 | 2023-12-15 | 中科驭数(北京)科技有限公司 | 一种数据报文处理方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103220225A (zh) * | 2012-05-21 | 2013-07-24 | 华为技术有限公司 | 报文处理方法及设备、系统 |
CN104168222A (zh) * | 2014-07-15 | 2014-11-26 | 杭州华三通信技术有限公司 | 一种报文传输方法和设备 |
CN104219150A (zh) * | 2014-09-03 | 2014-12-17 | 杭州华三通信技术有限公司 | 流表下发方法及装置 |
CN104811384A (zh) * | 2015-05-04 | 2015-07-29 | 山东超越数控电子有限公司 | 一种多级流表优先级调整方法 |
US20160156504A1 (en) * | 2013-08-23 | 2016-06-02 | Hangzhou H3C Technologies Co., Ltd. | Controlling forwarding devices in software defined networks |
-
2017
- 2017-10-11 CN CN201710940524.2A patent/CN107920024B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103220225A (zh) * | 2012-05-21 | 2013-07-24 | 华为技术有限公司 | 报文处理方法及设备、系统 |
US20160156504A1 (en) * | 2013-08-23 | 2016-06-02 | Hangzhou H3C Technologies Co., Ltd. | Controlling forwarding devices in software defined networks |
CN104168222A (zh) * | 2014-07-15 | 2014-11-26 | 杭州华三通信技术有限公司 | 一种报文传输方法和设备 |
CN104219150A (zh) * | 2014-09-03 | 2014-12-17 | 杭州华三通信技术有限公司 | 流表下发方法及装置 |
CN104811384A (zh) * | 2015-05-04 | 2015-07-29 | 山东超越数控电子有限公司 | 一种多级流表优先级调整方法 |
Non-Patent Citations (1)
Title |
---|
王勇等: ""基于SDN的自适应流表调整算法"", 《桂林电子科技大学学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108768879A (zh) * | 2018-04-26 | 2018-11-06 | 新华三信息安全技术有限公司 | 一种策略优先级调整方法和装置 |
CN108768879B (zh) * | 2018-04-26 | 2022-04-22 | 新华三信息安全技术有限公司 | 一种策略优先级调整方法和装置 |
CN108959573A (zh) * | 2018-07-05 | 2018-12-07 | 京东方科技集团股份有限公司 | 基于桌面云的数据迁移方法、装置、电子设备以及存储介质 |
CN114257461A (zh) * | 2022-03-01 | 2022-03-29 | 四川省商投信息技术有限责任公司 | 一种sdn交换机流表控制方法及装置 |
CN117240811A (zh) * | 2023-08-30 | 2023-12-15 | 中科驭数(北京)科技有限公司 | 一种数据报文处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107920024B (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Erramilli et al. | Performance impacts of multi-scaling in wide area TCP/IP traffic | |
US7042848B2 (en) | System and method for hierarchical policing of flows and subflows of a data stream | |
CN107920024A (zh) | 一种sdn控制器动态流表管理方法 | |
CN107872401B (zh) | 一种网络关键业务保障方法及装置 | |
CN108600118A (zh) | 报文处理方法、装置以及电子设备 | |
EP2040422A1 (en) | Methods and apparatus for providing congestion indications | |
US20080198746A1 (en) | Switch fabric end-to-end congestion avoidance mechanism | |
US8848537B2 (en) | Token bucket management apparatus and method of managing a token bucket | |
US20160241435A1 (en) | Apparatus for optimising a configuration of a communications network device | |
CN103999414B (zh) | 一种归因针对相应用户寄存器的共享资源的拥塞贡献的方法和装置 | |
CN104320358A (zh) | 一种电力通信网中的QoS业务控制方法 | |
CN104935604B (zh) | 一种基于OpenFlow协议的SDN防火墙系统和方法 | |
CN101969408B (zh) | 基于分组dscp标记的主动队列管理方法 | |
CN101257454A (zh) | 一种带宽管理方法及装置 | |
CN106027412A (zh) | 一种基于拥塞队列长度的tcp拥塞控制方法 | |
CN102098301A (zh) | 多链路自适应的数据传输方法与系统 | |
CN106921584A (zh) | 一种分布式网络流量控制方法 | |
CN106572019A (zh) | 一种时延保障混合sdn网络节能流量调度方法 | |
CN104734905B (zh) | 检测数据流的方法及装置 | |
US20050080918A1 (en) | TCP-friendly markers and methods using token buckets | |
CN107995121B (zh) | 基于通配符的软件定义网络中流量统计方法 | |
CN102664807B (zh) | 流量控制的方法与装置 | |
CN108809752A (zh) | 一种网络流量的自适应监控方法、装置、npb设备及介质 | |
US8826296B2 (en) | Method of supervising a plurality of units in a communications network | |
CN103078754A (zh) | 一种基于计数型bloom filter的网络数据流统计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |