CN106503203B - 一种智能化流表更新方法 - Google Patents

一种智能化流表更新方法 Download PDF

Info

Publication number
CN106503203B
CN106503203B CN201610946613.3A CN201610946613A CN106503203B CN 106503203 B CN106503203 B CN 106503203B CN 201610946613 A CN201610946613 A CN 201610946613A CN 106503203 B CN106503203 B CN 106503203B
Authority
CN
China
Prior art keywords
value
queue
list item
memory
mem
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.)
Active
Application number
CN201610946613.3A
Other languages
English (en)
Other versions
CN106503203A (zh
Inventor
陈晓
贾正义
叶晓舟
曹作伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhongke Haiwang Technology Co ltd
Original Assignee
Institute of Acoustics CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Priority to CN201610946613.3A priority Critical patent/CN106503203B/zh
Publication of CN106503203A publication Critical patent/CN106503203A/zh
Application granted granted Critical
Publication of CN106503203B publication Critical patent/CN106503203B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/235Update request formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种智能化流表更新方法,具体涉及一种基于openflow交换机的流表表项智能化更新方法,具体包括以下步骤:通过按表项存在价值value建立有序队列entry_queue,有序队列用于存储各表项占用内存的大小;监控交换机端内存的使用情况,当交换机内存占用未超过内存最大值mem‑max时,则检测有序队列更新时间间隔;对有序队列更新时间间隔进行判断,当有序队列更新时间间隔达到预设值时,则计算所述表项新的存在价值value,并更新有序队列。本发明实现了更加智能高效的流表更新机制。在保证了遵循控制器移除策略的基础上,充分考虑了交换机端的实际运行情况,实现了更加智能高效的流表更新策略。

Description

一种智能化流表更新方法
技术领域
本发明涉及openflow流表表项(flow entry)的智能化更新方法,具体涉及一种基于openflow交换机的流表表项智能化更新方法。
背景技术
目前,为了应对网络规模急剧扩张所导致的大规模数据中心的运维管理等面临的问题,相关学者提出了软件定义网络(SDN)的概念。SDN将转发和控制分离,控制层与转发层通信的主流标准是openflow协议。在SDN中,数据层与控制层分离,交换机将繁重的控制策略部分交由控制器来负责,而它仅根据控制器下发的规则对数据包进行快速转发。
然而,数据包转发策略主要依据的是控制器下发的流表,随着流的数量增加,流表的规模也在急速扩张,由于交换机端的存储空间是有限的,所以需要及时移除一些不常使用的流表表项。
目前openflow协议主要定义了三种表项移除机制:
1.Hard timeout移除机制。从表项下发到交换机端开始计时,当表项在交换机端的生存时间达到了hard_timeout值,则将表项移除。此机制的缺点就是即使该流表项正在被频繁的匹配也会被无情的删除。
2.Idle_timeout移除机制。当表项在idle_timout时间段内没有被任何流匹配,则移除该表项。该机制虽然解决了hard_timeout机制存在的问题,但是并没有考虑交换机端的实际内存情况,如果交换机端内存足够,则完全不必急于移除表项。
3.Importance移除机制。当交换机内存不够时,优先删除那些importance值较小的表项。该机制虽然考虑了交换机端的实际状况,但是并没有考虑表项的实际热度。
综上,openflow协议定义的三种机制共同存在的一个缺陷就是移除策略都是由控制器预先安排的,并没有考虑到交换机端实际运行中的情况。虽然现在也有很多方法考虑了该问题,例如:根据交换机端内存情况来动态的改变hard_timeout和idle_timeout值,以增加表项在内存中的生存时间。但是以上方法存在的问题就是违背了控制器的移除策略,例如:控制器确实只想让某个表项只生存hard_timeout那一段时间,交换机却违背了它的意愿,这可能在将来也会对控制器与交换机之间的交流产生影响,控制器也是给了交换机处理流表的权利的,当内存告警时,交换机可根据流表的importance来更新流表,当idle_timeout和hard_timeout都为0时,代表流表可以一直存在,或者说流表的生存期将交由交换机处置,所以交换机端的优化不必违背控制器的超时移除策略。
因此,本发明针对openflow协议定义的三种机制共同存在的缺陷就是移除策略都是由控制器预先安排的,并没有考虑到交换机端实际运行中的情况,以及目前的机制违背了控制器的移除政策等问题,提供了一种基于openflow交换机的智能化流表的更新方法。
发明内容
本发明的目的是解决当前openflow协议定义的三种机制共同存在的缺陷,上述缺陷的具体内容为移除策略都是由控制器预先安排的,并没有考虑到交换机端实际运行中的情况,以及目前的机制违背了控制器的移除政策等问题。
为实现上述目的,本发明提供了一种基于openflow交换机的智能化流表更新方法,包括以下步骤:一种智能化流表更新方法,包括以下步骤:
通过按表项存在价值value建立有序队列entry_queue,有序队列entry-_queue用于存储各表项占用内存的大小;监控交换机端内存的使用情况,当交换机内存占用未超过内存最大值mem-max时,则检测有序队列entry_queue更新时间间隔;对有序队列entry_queue更新时间间隔进行判断,当有序队列entry_queue更新时间间隔达到预设值时,则计算表项新的存在价值value,并更新有序队列entry_queue。
当交换机内存占用大于内存最大值mem_max时,则删除占用内存的总和为mem_delete大小的至少一个表项,从而达到内存正常值mem_normal的状态;根据表项的重要值importance从小到大选出占用内存总和为两倍mem-_delete大小的至少一个表项,计算表项新的存在价值value,并更新有序队列entry_queue。当有序队列entry_queue更新时间间隔未达到预设值时,则跳转至所述监控交换机端内存的使用情况的步骤,直到当有序队列entry-_queue更新时间间隔达到预设值时,则计算表项新的存在价值value,并更新有序队列entry_queue。
在计算表项新的存在价值value,并更新有序队列entry_queue的步骤之后,还包括:跳转到所述监控交换机端内存的使用情况,当所述交换机内存占用未超过内存最大值mem-max时,则检测所述有序队列entry_queue更新时间间隔的步骤。
通过按表项存在价值value建立有序队列entry_queue的步骤中,value值由以下公式获得:
Value=importance*A-idle_time*B
其中,上述公式的重要值importance来源于openflow表项下发时控制器所设置的importance值;空闲时间idle_time是由交换机在运行时记录的;A和B是对两者进行加权,其中A或B可以设为大于0的任意值。
空闲时间idle_time是由交换机在运行时记录的值,具体的记录方法由以下公式获得:
Idle_time=time_now–time_last
其中,最后时间内time_last为记录最后一次包匹配时的系统时间,然后根据每隔预设值C秒,获得当前系统时间当前时间time_now。预设值C秒小于等于60,即有序队列entry_queue的更新周期小于等于60秒。
内存删除值mem_delete由以下公式获得:
mem_delete=mem_max–mem_normal
其中,当交换机内存占用大于等于内存最大值mem_max时,则删除占用内存的总和为mem_delete大小的至少一个表项,从而达到内存正常mem-_normal的状态。在删除占用内存的总和为mem_delete大小的至少一个表项的步骤中包括:
从有序队列entry_queue中选取排在前面的表项,再满足以下公式时,删除相应的N个表项:
Mem_delete<=entry_queue[0].size+…+entry_queue[N].size
其中,size为在有序队列entry_queue中存储各表项占用内存的大小;0和N为0到N个表项。
其中,有序队列entry_queue的更新步骤包括:先根据表项的重要值importance从小到大,选出占用内存总和为两倍mem_delete大小的至少一个表项,然后在根据计算表项新的存在价值value,并更新有序队列entry-_queue。
本发明的有益效果是:本发明提出了一种基于openflow交换机的流表表项智能化更新方法,实现了更加智能高效的流表更新机制。本发明在保证了遵循控制器移除策略的基础上,充分考虑了交换机端的实际运行情况,实现了更加智能高效的流表更新策略。
附图说明
图1为本发明实施例提供的一种entry_queue存储结构示意图;
图2为本发明实施例提供的一种基于openflow交换机的流表表项智能化更新方法的工作流程图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种entry_queue存储结构示意图.如图1所示,建立按表项存在价值value建立递增的有序队列entry_queue,此队列用链表实现,便于动态排序。
对于链表中存储内容,ID表示为表项ID,用来索引待删除表项;value为表项存在价值,由Value=importance*A-idle_time*B公式计算得出;size为表项的大小;next指向下一表项。
图2为本发明实施例提供的一种基于openflow交换机的流表表项智能化更新方法的工作流程图。如图2表示,具体步骤包括:
步骤1:交换机端进行初始化,根据表项important的值从小到大选出两倍mem_delete内存的大小的表项,再根据公式
Value=importance*A-idle_time*B (1)
计算出Value的值,从而更新有序队列entry_queue。
步骤2:监控交换机端内存使用情况:如果交换机端的内存占用未超过mem_max,则执行步骤3;如果交换机端的内存占用超过mem_max,则执行步骤4。
步骤3:检测有序队列entry_queue更新时间间隔是否达到预设值C秒:如果达到预设值C秒,则根据公式Idle_time=time_now–time_last(2)计算出各表项的idle_time,继续执行步骤5;如果未达到预设值C秒,则继续执行步骤2。
步骤4:根据公式mem_delete=mem_max–mem_normal(3)式计算出mem_delete,然后根据公式
Mem_delete<=entry_queue[0].size+…+entry_queue[N].size(4)从entry_queue中选出需要删除的N个表项,将其删除后执行步骤(6)。
步骤5:根据(1)式计算表项新的存在价值value,并更新entry_queue,继续执行步骤2。
具体地,通过按表项存在价值value建立递增的有序队列entry_queue,然后在队列中存储各表项占用内存大小size,其中value值按照公式(1)计算得出:公式(1)中importance来源于openflow表项下发时控制器所设置的importance值,而idle_time则是由交换机在运行时进行记录。A与B则是对两者进行加权,这里A,B可以设为大于0的任意值,通过灵活的设置A值与B值,可以在尊重控制器的表项更新策略与兼顾交换机在实际运行中所观察到的表项动态之间进行权衡和折衷。
其中,idle_time是由交换机在运行时记录的,具体的记录方法是对于每个表项,记录最后一次包匹配时的系统时间time_last,然后每隔预设值C秒,获得当前系统时间time_now,然后根据公式(2)计算出idle_time,然后根据新的idle_time更新entry_queue。
本方法采用每隔预设值C秒更新一次entry_queue,而不是当交换机端内存告警时再生成entry_queue,是为了在内存告警时更高效的删除表项释放出新的内存空间。考虑到网络流量的复杂性,这里预设值C的值一般小于等于60,即entry_queue的更新周期应该小于等于60秒。
所述方法当交换机内存占用达到mem_max时,就会删除占用内存的总和为mem_delete大小的至少一个表项,来达到mem_normal的状态,在这种状态下可以保证交换机能够及时应对新来的数据流。Mem_delete由(3)式计算出来。在删除占用内存的总和为mem_delete大小的至少一个表项时,是从有序队列entry_queue中选取排在前边的表项,然后当(4)满足时,删除相应的N个表项,在entry_queue中并不是对所有表项进行排序,而是先根据表项的importance从小到大选出占用内存总和为两倍mem_delete大小的至少一个表项,然后再根据(1)式计算出这些表项的value值,从而更新entry_queue。这样处理,就可以避免每次更新entry_queue都要遍历所有表项,从而缓解交换机端的计算压力,提高流表更新效率。
本发明实施例提出了一种基于openflow交换机的流表表项智能化更新方法,实现了更加智能高效的流表更新机制。本发明在保证了遵循控制器移除策略的基础上,充分考虑了交换机端的实际运行情况,实现了更加智能高效的流表更新策略。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种智能化流表更新方法,其特征在于,包括以下步骤:
通过按表项存在价值value建立有序队列entry_queue,所述有序队列entry_queue用于存储各表项占用内存的大小;
监控交换机端内存的使用情况,当所述交换机内存占用未超过内存最大值mem-max时,则检测所述有序队列entry_queue更新时间间隔;当所述交换机内存占用大于内存最大值mem_max时,则删除占用内存的总和为mem-_delete大小的至少一个表项,从而达到内存正常值mem_normal的状态;根据表项的重要值importance从小到大选出占用内存总和为两倍mem_delete大小的至少一个表项,计算所述表项新的存在价值value,并更新所述有序队列entry_queue;
对所述有序队列entry_queue更新时间间隔进行判断,当所述有序队列entry_queue更新时间间隔达到预设值时,则计算所述表项新的存在价值value,并更新所述有序队列entry_queue;其中,存在价值value=importance*A-idle_time*B;其中,上述公式所述的重要值importance来源于openflow表项下发时控制器所设置的importance值;空闲时间idle_time是由所述交换机在运行时记录的;所述A和B是对两者进行加权,其中A或B可以设为大于0的任意值。
2.根据权利要求1所述的方法,其特征在于,当所述有序队列entry_queue更新时间间隔未达到预设值时,则跳转至所述监控交换机端内存的使用情况的步骤,直到当所述有序队列entry_queue更新时间间隔达到预设值时,则计算所述表项新的存在价值value,并更新所述有序队列entry-_queue。
3.根据权利要求1-2中任一项权利要求所述的方法,其特征在于,在所述计算所述表项新的存在价值value,并更新所述有序队列entry_queue的步骤之后,还包括以下步骤:
跳转到所述监控交换机端内存的使用情况,当所述交换机内存占用未超过内存最大值mem-max时,则执行检测所述有序队列entry_queue更新时间间隔的步骤。
4.根据权利要求1所述的方法,其特征在于,所述空闲时间idle_time是由所述交换机在运行时记录的值,具体的记录方法由以下公式获得:
idle_time=time_now–time_last
其中,最后时间内time_last为记录最后一次包匹配时的系统时间,然后根据每隔预设值C秒,获得当前系统时间的当前时间time_now。
5.根据权利要求4所述的方法,其特征在于,所述预设值C秒小于等于60,即所述有序队列entry_queue的更新周期小于等于60秒。
6.根据权利要求1所述的方法,其特征在于,所述内存删除值mem_delete由以下公式获得:
mem_delete=mem_max–mem_normal
其中,当所述交换机内存占用大于等于内存最大值mem_max时,则删除占用内存的总和为mem_delete大小的至少一个表项,从而达到内存正常mem_normal的状态。
7.根据权利要求1所述的方法,其特征在于,所述在所述删除占用内存的总和为mem_delete大小的至少一个表项的步骤中包括:
从所述有序队列entry_queue中选取排在前面的表项,在满足以下公式时,删除相应的N个表项:
mem_delete<=entry_queue[0].size+…+entry_queue[N].size
其中,所述size为在所述有序队列entry_queue中存储各表项占用内存的大小;所述0和N为0到N个表项。
8.根据权利要求1所述的方法,其特征在于,所述有序队列entry_queue的更新步骤包括:先根据表项的重要值importance从小到大,选出占用内存总和为两倍mem_delete大小的至少一个表项,然后执行所述则计算所述表项新的存在价值value,并更新所述有序队列entry_queue的步骤。
CN201610946613.3A 2016-10-26 2016-10-26 一种智能化流表更新方法 Active CN106503203B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610946613.3A CN106503203B (zh) 2016-10-26 2016-10-26 一种智能化流表更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610946613.3A CN106503203B (zh) 2016-10-26 2016-10-26 一种智能化流表更新方法

Publications (2)

Publication Number Publication Date
CN106503203A CN106503203A (zh) 2017-03-15
CN106503203B true CN106503203B (zh) 2019-08-13

Family

ID=58321151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610946613.3A Active CN106503203B (zh) 2016-10-26 2016-10-26 一种智能化流表更新方法

Country Status (1)

Country Link
CN (1) CN106503203B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106972973B (zh) * 2017-04-14 2020-04-21 新华三技术有限公司 一种控制方法、控制器和交换机
CN111585903B (zh) * 2020-04-13 2021-09-21 华南理工大学 一种OpenFlow流表项自适应超时的方法及系统
CN114666287B (zh) * 2020-12-08 2023-10-31 中国科学院声学研究所 一种具有分级状态自动维护的状态编程方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026492A (zh) * 2007-01-26 2007-08-29 华为技术有限公司 老化原始流的方法及装置、网流输出器和网流系统
CN103560963A (zh) * 2013-11-18 2014-02-05 中国科学院计算机网络信息中心 一种OpenFlow流表存储空间压缩方法
EP2753034A1 (en) * 2013-01-04 2014-07-09 Tellabs Oy A method and a device for defining implementation of a look-up table for a network element of a software-defined network
CN104038423A (zh) * 2014-05-29 2014-09-10 杭州华三通信技术有限公司 一种Open flow流表刷新方法及路由设备
CN104869064A (zh) * 2014-02-21 2015-08-26 华为技术有限公司 一种流表更新方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101026492A (zh) * 2007-01-26 2007-08-29 华为技术有限公司 老化原始流的方法及装置、网流输出器和网流系统
EP2753034A1 (en) * 2013-01-04 2014-07-09 Tellabs Oy A method and a device for defining implementation of a look-up table for a network element of a software-defined network
CN103560963A (zh) * 2013-11-18 2014-02-05 中国科学院计算机网络信息中心 一种OpenFlow流表存储空间压缩方法
CN104869064A (zh) * 2014-02-21 2015-08-26 华为技术有限公司 一种流表更新方法及装置
CN104038423A (zh) * 2014-05-29 2014-09-10 杭州华三通信技术有限公司 一种Open flow流表刷新方法及路由设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
数据流特征感知的交换机流表智能更新方法;姜立立 等;《计算机应用》;20160710;第36卷(第7期);1772-1778 *

Also Published As

Publication number Publication date
CN106503203A (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
CN106503203B (zh) 一种智能化流表更新方法
US9402205B2 (en) Traffic forwarding method and system based on virtual switch cluster
EP2858329B1 (en) Method and device for generating a flow table entry forwarding rule
US9608900B2 (en) Techniques for flooding optimization for link state protocols in a network topology
US11209801B2 (en) Industrial process historian time synchronization of source based timestamp event data
CA2578662A1 (en) Load control unit in communication with a fixed network meter reading system
CN102783097A (zh) 分组转发系统、控制设备、转发设备以及用于准备处理规则的程序和方法
CN112350949B (zh) 软件定义网络中基于流调度的重路由拥塞控制方法及系统
CN104094565A (zh) 控制器、用于分配负载的方法、存储程序的非瞬时计算机可读介质、计算机系统和控制设备
EP3158687B1 (en) Automated placement of measurement endpoint nodes in a network
CN108809826A (zh) 一种大象数据流处理方法、装置、p4交换机及介质
CN110474845A (zh) 流表项淘汰方法及相关装置
CN102263701A (zh) 队列调整方法及装置
CN105450964B (zh) 对录像数据进行云存储的方法、系统及管理节点
CN104871501A (zh) 分组处理装置、流表项配置方法和程序
CN104184679A (zh) 一种智能变电站中报文的调度方法和装置
CN105247823B (zh) 调整链路开销的方法和装置
CN105740077B (zh) 一种适用于云计算的任务分配方法
CN107659505A (zh) 一种sdn网络的选路方法和sdn控制器
CN107491458A (zh) 一种存储时间序列数据的方法和装置以及系统
CN103685062A (zh) 缓存管理方法及装置
CN114039891A (zh) 基于sketch的软件定义网络大流端到端时延与丢包率估计方法
CN108366024A (zh) 报文转发方法及装置
CN108199986B (zh) 一种数据传输方法、堆叠设备及堆叠系统
CN110399095A (zh) 一种存储空间的统计方法和装置

Legal Events

Date Code Title Description
C06 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
TR01 Transfer of patent right

Effective date of registration: 20210803

Address after: Room 1601, 16th floor, East Tower, Ximei building, No. 6, Changchun Road, high tech Industrial Development Zone, Zhengzhou, Henan 450001

Patentee after: Zhengzhou xinrand Network Technology Co.,Ltd.

Address before: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District

Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230109

Address after: No. 2180, 2nd Floor, Building D, Building 33, No. 99, Kechuang 14th Street, Economic and Technological Development Zone, Daxing District, Beijing 100176

Patentee after: Beijing Zhongke Haiwang Technology Co.,Ltd.

Address before: Room 1601, 16th floor, East Tower, Ximei building, No. 6, Changchun Road, high tech Industrial Development Zone, Zhengzhou, Henan 450001

Patentee before: Zhengzhou xinrand Network Technology Co.,Ltd.

TR01 Transfer of patent right