CN107623606A - 基于openflow交换机的流表表项空闲超时检测方法 - Google Patents

基于openflow交换机的流表表项空闲超时检测方法 Download PDF

Info

Publication number
CN107623606A
CN107623606A CN201610561759.6A CN201610561759A CN107623606A CN 107623606 A CN107623606 A CN 107623606A CN 201610561759 A CN201610561759 A CN 201610561759A CN 107623606 A CN107623606 A CN 107623606A
Authority
CN
China
Prior art keywords
list item
time
hash
flow table
list
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
Application number
CN201610561759.6A
Other languages
English (en)
Other versions
CN107623606B (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
Beijing Intellix Technologies Co Ltd
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, Beijing Intellix Technologies Co Ltd filed Critical Institute of Acoustics CAS
Priority to CN201610561759.6A priority Critical patent/CN107623606B/zh
Publication of CN107623606A publication Critical patent/CN107623606A/zh
Application granted granted Critical
Publication of CN107623606B publication Critical patent/CN107623606B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于openflow交换机的流表表项空闲超时检测方法,包括:建立以超时时刻为键值的哈希表,所述哈希表以秒为时间粒度来标识每个流表表项的最早可能出现的超时时刻;在接收到流表后,计算出每个流表表项最早可能出现的超时时刻,接着将流表表项ID及该表项最近一次有包匹配的时间存入对应哈希表中;在交换机运行时,将所述哈希表作为超时检测用表,以当前时刻为键值遍历那些最可能在当前时刻超时的流表表项,从而检测出超时表项。

Description

基于openflow交换机的流表表项空闲超时检测方法
技术领域
本发明涉及网络通信领域,特别涉及一种基于openflow交换机的流表表项空闲超时检测方法。
背景技术
随着互联网的高速发展,互联网数据中心也迅速发展。而云计算的发展,使得更多的应用处理集中到云端,促使云计算数据中心的规模急剧增长。数据中心网络面临着诸多问题,如集中高效的网络管理要求,高效灵活的组网需求,虚拟机的部署和迁移需求,虚拟多租户业务支撑要求和全面的数据中心IaaS要求。
对此,学界提出了软件定义网络(Software Defined Network,SDN)的概念。SDN具有转发和控制分离、控制逻辑集中、网络虚拟化、网络能力开放化等特点。目前,控制层与转发层通信的主流标准是openflow协议。在SDN中,数据层与控制层分离,交换机将繁重的控制策略部分交由控制器来负责,而它仅根据控制器下发的规则对数据包进行快速转发。
下发的流表存储在交换机端,交换机端的存储空间是有限的,所以需要及时移除一些不常使用的流表表项,openflow也定义了空闲(idle_time)超时移除机制,并且时间粒度为秒,但是具体检测方法是由交换机端实现的。目前检测方法主要有:在对每一条流处理时,测量各个包的到达时间间隔,同时与idle_time做比较来检测超时。此方法的缺点就是同时检测所有表项,而且每条流上包与包之间间隔的检测也会引入很大的计算开销,而且在很大程度上影响了包转发效率。
发明内容
本发明的目的在于克服已有的流表表项空闲超时检测方法计算开销较大、包转发效率较低的缺陷,从而提供一种能够减少计算开销、提高流表表项超时检测效率的方法。
为了实现上述目的,本发明提供了一种基于openflow交换机的流表表项空闲超时检测方法,包括:
建立以超时时刻为键值的哈希表,所述哈希表以秒为时间粒度来标识每个流表表项的最早可能出现的超时时刻;在接收到流表后,计算出每个流表表项最早可能出现的超时时刻,接着将流表表项ID及该表项最近一次有包匹配的时间存入对应哈希表中;在交换机运行时,将所述哈希表作为超时检测用表,以当前时刻为键值遍历那些最可能在当前时刻超时的流表表项,从而检测出超时表项。
上述技术方案中,该方法进一步包括:
步骤1、建立超时配置哈希表;该步骤进一步包括:
步骤1-1、首先,在流表下发时,根据(1)式计算出流表表项的超时时刻,其中tc是指添加流表的时刻,ti是指流表表项的空闲超时时间,tout是指流表表项最早的可能出现空闲超时的时刻,即流表表项的超时时刻;
tout=tc+ti (1)
步骤1-2:以步骤1-1得到的流表表项的超时时刻tout为键值,通过(2)式,计算出哈希值h,然后将相应的流表表项ID及此表项最近一次有包匹配的时间tlast插入哈希数组Hash[h]所指向的链表中;其中,在插入链表时采用链表头插法,即每次插入新节点,都是Hash[h]中指针指向该新节点,而新节点中的next指针则指向原Hash[h]中指针指向的节点,tlast初始值为添加流表的时刻tc
h=tout%tcycle (2)
其中,tcycle表示本发明的方法所能检测的最大超时时间,其大小为86400秒;
步骤1-3、按照之前的步骤1-1和步骤1-2,将后续其他流表表项ID及该表项最近一次有包匹配的时间tlast插入哈希数组Hash[h]所指向的链表中;
步骤2、在交换机运行时,每隔一定的间隔时间进行一次超时检测;其中,一次超时检测的具体实现步骤如下:
步骤2-1、首先获得当前时间tnow,然后以tnow为键值,将tnow代替(2)式中的tout计算出哈希值h,在哈希表中找到Hash[h]所指向的链表;
步骤2-2、遍历该链表中的下一个表项,计算该表项的tlast是否满足(3)式,如果该表项tlast满足式(3),则表明该表项超时,通过表项ID找到该表项并移除,同时移除该链表中相应表项的信息,然后再执行步骤2-3;
tnow-tlast≥ti (3);
如果该表项tlast不满足式(3),则通过(4)式计算出新的该表项最早的可能出现空闲超时的时刻tout,然后完成该表项在哈希表中的新位置的调整;接着再执行步骤2-3;
tout=tlast+ti (4);
其中,流表表项在哈希表中的新位置的调整包括:以流表表项的超时时刻tout为键值(key),通过(2)式,计算出哈希值h,然后将相应的流表表项ID及此表项最近一次有包匹配的时间tlast插入哈希数组Hash[h]所指向的链表中;
步骤2-3、判断哈希表中Hash[h]所指向的链表中所有表项是否都检测完毕,如果哈希表中Hash[h]所指向的链表中还有待检测表项,则继续执行步骤2-2;如果哈希表中Hash[h]所指向的链表中所有表项都检测结束,则判断检测间隔是否到超时检测的间隔时间,如果是,则继续执行步骤2;如果不是,则等待。
上述技术方案中,所述间隔时间为1秒。
本发明的优点在于:
本发明的方法通过简单预处理来筛选出在某一时刻最有可能发生表项超时事件的流表进行超时检测,减少了计算开销,提高了流表表项超时检测效率。
附图说明
图1是超时配置哈希表的示意图;
图2是本发明的基于openflow交换机的流表表项空闲超时检测方法的流程图。
具体实施方式
现结合附图对本发明作进一步的描述。
考虑到现有的流表表项空闲超时检测方法在计算开销与包转发效率上的缺陷,本发明的方法建立一个以超时时刻为键值的哈希表,该哈希表以秒(second)为时间粒度来标识每个流表表项的最早可能出现的超时时刻。然后在接收到流表后,计算出每个流表表项最早可能出现的超时时刻,接着将流表表项ID及该表项最近一次有包匹配的时间存入对应哈希表中。在交换机运行时,该哈希表作为超时检测用表,以当前时刻为键值遍历那些最可能在当前时刻超时的流表表项,从而检测出超时表项。本发明的方法在每一时刻都只检测那些最可能在那一时刻超时的流表表项,然后通过维护此超时检测哈希表来实现流表表项空闲超时的高效检测。
在本发明方法中,超时时间的选择需要权衡,时间过短,可能会导致流表的重新下发增多;时间过长,可能会导致流表占用空间过大,不能很好的发挥timeout的作用。流表超时时间配置更多以秒为粒度,而设置空闲时长为小时或天在实际中应用比较少。基于以上考虑,从工程实际出发并充分考虑流表空闲超时配置的灵活性,本发明的方法在实现时条件限制为:空闲超时值最大为一天,即86400s,在不超出这一值的前提下,超时时间可以是其他值,如1秒、10秒、100秒等。
如图2所示,本发明的基于openflow交换机的流表表项空闲超时检测方法包括以下步骤:
步骤201:建立超时配置哈希表。该步骤进一步包括:
首先,在流表下发时,根据(1)式计算出流表表项的超时时刻,其中tc是指添加流表的时刻,ti是指流表表项的空闲超时时间,tout是指流表表项最早的可能出现空闲超时的时刻,即流表表项的超时时刻。
tout=tc+ti (1)
然后,以流表表项的超时时刻tout为键值(key),通过哈希函数(2)式,计算出哈希值h,然后将相应的流表表项ID及此表项最近一次有包匹配的时间tlast插入哈希数组Hash[h]所指向的链表中。其中,在插入链表时采用链表头插法,即每次插入新节点,都是Hash[h]中指针指向该新节点,而新节点中的next指针则指向原Hash[h]中指针指向的节点,tlast初始值为添加流表的时刻tc
h=tout%tcycle (2)
其中,tcycle表示本发明的方法所能检测的最大超时时间,其大小为86400秒。
接着,按照之前的步骤将后续其他流表表项ID及该表项最近一次有包匹配的时间tlast插入哈希数组Hash[h]所指向的链表中。
图1是所建立的超时配置哈希表的示意图,在该图中超时配置哈希表为Hash[],其中键值h为可能的超时时刻。在哈希表的链表中存储的是流表表项ID及此表项最近一次有包匹配的时间tlast及指向同一链表中的下一表项信息的指针。
步骤202:因为超时粒度为秒,所以在交换机运行时,我们每隔1秒要进行一次超时检测。开始检测。
步骤203:获得当前时间tnow,然后将tout赋值tnow作为键值代替(2)式中的tout,计算出哈希值h,在哈希表中找到Hash[h]所指向的链表。
步骤204:遍历该链表中的下一个表项。
步骤205:计算该表项的tlast是否满足(3)式。
tnow-tlast≥ti (3)
步骤206:如果该表项tlast满足(3)式,则表明该表项超时,通过表项ID找到该表项并移除。
步骤207:移除该链表中相应表项的信息。执行步骤210。
步骤208:如果该表项tlast不满足(3)式,则通过(4)式计算出新的该表项最早的可能出现空闲超时的时刻tout
tout=tlast+ti (4)
步骤209:然后以tout为键值(key),通过哈希函数(2)式,计算出哈希值h,然后将相应的流表表项ID及此表项最近一次有包匹配的时间tlast插入哈希数组Hash[h]所指向的链表中,至此完成该表项在哈希表中的新位置的调整然后移除该链表中相应表项的信息。执行步骤210。
步骤210:判断哈希表中Hash[h]所指向的链表中所有表项是否都检测完毕。
如果哈希表中Hash[h]所指向的链表中还有待检测表项,则继续执行步骤204。
如果哈希表中Hash[h]所指向的链表中所有表项都检测结束,则执行步骤211。
步骤211:判断检测间隔是否到1s,如果是,则继续执行步骤203。如果不是,则执行步骤212。
步骤212:等待间隔达到1秒,执行步骤211。
在上述实施例中,步骤211中所涉及的1s代表超时检测的间隔时间,这样设置的原因是考虑到openflow中的超时粒度为秒,在其他实施例中,超时检测的间隔时间也可以是其他值。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (3)

1.一种基于openflow交换机的流表表项空闲超时检测方法,包括:
建立以超时时刻为键值的哈希表,所述哈希表以秒为时间粒度来标识每个流表表项的最早可能出现的超时时刻;在接收到流表后,计算出每个流表表项最早可能出现的超时时刻,接着将流表表项ID及该表项最近一次有包匹配的时间存入对应哈希表中;在交换机运行时,将所述哈希表作为超时检测用表,以当前时刻为键值遍历那些最可能在当前时刻超时的流表表项,从而检测出超时表项。
2.根据权利要求1所述的基于openflow交换机的流表表项空闲超时检测方法,其特征在于,该方法进一步包括:
步骤1、建立超时配置哈希表;该步骤进一步包括:
步骤1-1、首先,在流表下发时,根据(1)式计算出流表表项的超时时刻,其中tc是指添加流表的时刻,ti是指流表表项的空闲超时时间,tout是指流表表项最早的可能出现空闲超时的时刻,即流表表项的超时时刻;
tout=tc+ti (1)
步骤1-2:以步骤1-1得到的流表表项的超时时刻tout为键值,通过(2)式,计算出哈希值h,然后将相应的流表表项ID及此表项最近一次有包匹配的时间tlast插入哈希数组Hash[h]所指向的链表中;其中,在插入链表时采用链表头插法,即每次插入新节点,都是Hash[h]中指针指向该新节点,而新节点中的next指针则指向原Hash[h]中指针指向的节点,tlast初始值为添加流表的时刻tc
h=tout%tcycle (2)
其中,tcycle表示本发明的方法所能检测的最大超时时间,其大小为86400秒;
步骤1-3、按照之前的步骤1-1和步骤1-2,将后续其他流表表项ID及该表项最近一次有包匹配的时间tlast插入哈希数组Hash[h]所指向的链表中;
步骤2、在交换机运行时,每隔一定的间隔时间进行一次超时检测;其中,一次超时检测的具体实现步骤如下:
步骤2-1、首先获得当前时间tnow,然后以tnow为键值,将tnow代替(2)式中的tout计算出哈希值h,在哈希表中找到Hash[h]所指向的链表;
步骤2-2、遍历该链表中的下一个表项,计算该表项的tlast是否满足(3)式,如果该表项tlast满足式(3),则表明该表项超时,通过表项ID找到该表项并移除,同时移除该链表中相应表项的信息,然后再执行步骤2-3;
tnow-tlast≥ti (3);
如果该表项tlast不满足式(3),则通过(4)式计算出新的该表项最早的可能出现空闲超时的时刻tout,然后完成该表项在哈希表中的新位置的调整;接着再执行步骤2-3;
tout=tlast+ti (4);
其中,流表表项在哈希表中的新位置的调整包括:以流表表项的超时时刻tout为键值(key),通过(2)式,计算出哈希值h,然后将相应的流表表项ID及此表项最近一次有包匹配的时间tlast插入哈希数组Hash[h]所指向的链表中;
步骤2-3、判断哈希表中Hash[h]所指向的链表中所有表项是否都检测完毕,如果哈希表中Hash[h]所指向的链表中还有待检测表项,则继续执行步骤2-2;如果哈希表中Hash[h]所指向的链表中所有表项都检测结束,则判断检测间隔是否到超时检测的间隔时间,如果是,则继续执行步骤2;如果不是,则等待。
3.根据权利要求2所述的基于openflow交换机的流表表项空闲超时检测方法,其特征在于,所述间隔时间为1秒。
CN201610561759.6A 2016-07-15 2016-07-15 基于openflow交换机的流表表项空闲超时检测方法 Active CN107623606B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610561759.6A CN107623606B (zh) 2016-07-15 2016-07-15 基于openflow交换机的流表表项空闲超时检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610561759.6A CN107623606B (zh) 2016-07-15 2016-07-15 基于openflow交换机的流表表项空闲超时检测方法

Publications (2)

Publication Number Publication Date
CN107623606A true CN107623606A (zh) 2018-01-23
CN107623606B CN107623606B (zh) 2019-12-17

Family

ID=61087215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610561759.6A Active CN107623606B (zh) 2016-07-15 2016-07-15 基于openflow交换机的流表表项空闲超时检测方法

Country Status (1)

Country Link
CN (1) CN107623606B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108632115A (zh) * 2018-05-16 2018-10-09 中国科学院声学研究所 一种POF交换机idle定时的测试系统及方法
CN108874987A (zh) * 2018-06-11 2018-11-23 深圳市风云实业有限公司 表项管理方法、装置及交换芯片
CN111585903A (zh) * 2020-04-13 2020-08-25 华南理工大学 一种OpenFlow流表项自适应超时的方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6915296B2 (en) * 2002-10-29 2005-07-05 Agere Systems Inc. Incremental reorganization for hash tables
CN101594316A (zh) * 2008-05-30 2009-12-02 华为技术有限公司 一种分布式网络的管理方法、内容查询方法、系统及装置
US20110066603A1 (en) * 2009-09-14 2011-03-17 Mikkel Thorup Time-Outs With Time-Reversed Linear Probing
CN102780641A (zh) * 2012-08-17 2012-11-14 北京傲天动联技术有限公司 快速转发引擎的流表老化方法、装置以及交换机
CN104077343A (zh) * 2013-12-26 2014-10-01 国家计算机网络与信息安全管理中心 一种哈希表元素失效删除方法
CN104809135A (zh) * 2014-01-27 2015-07-29 腾讯科技(深圳)有限公司 一种数据存取方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6915296B2 (en) * 2002-10-29 2005-07-05 Agere Systems Inc. Incremental reorganization for hash tables
CN101594316A (zh) * 2008-05-30 2009-12-02 华为技术有限公司 一种分布式网络的管理方法、内容查询方法、系统及装置
US20110066603A1 (en) * 2009-09-14 2011-03-17 Mikkel Thorup Time-Outs With Time-Reversed Linear Probing
CN102780641A (zh) * 2012-08-17 2012-11-14 北京傲天动联技术有限公司 快速转发引擎的流表老化方法、装置以及交换机
CN104077343A (zh) * 2013-12-26 2014-10-01 国家计算机网络与信息安全管理中心 一种哈希表元素失效删除方法
CN104809135A (zh) * 2014-01-27 2015-07-29 腾讯科技(深圳)有限公司 一种数据存取方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108632115A (zh) * 2018-05-16 2018-10-09 中国科学院声学研究所 一种POF交换机idle定时的测试系统及方法
CN108632115B (zh) * 2018-05-16 2020-05-26 中国科学院声学研究所 一种POF交换机idle定时的测试系统及方法
CN108874987A (zh) * 2018-06-11 2018-11-23 深圳市风云实业有限公司 表项管理方法、装置及交换芯片
CN108874987B (zh) * 2018-06-11 2020-09-29 深圳市风云实业有限公司 表项管理方法、装置及交换芯片
CN111585903A (zh) * 2020-04-13 2020-08-25 华南理工大学 一种OpenFlow流表项自适应超时的方法及系统
CN111585903B (zh) * 2020-04-13 2021-09-21 华南理工大学 一种OpenFlow流表项自适应超时的方法及系统

Also Published As

Publication number Publication date
CN107623606B (zh) 2019-12-17

Similar Documents

Publication Publication Date Title
CN107623606A (zh) 基于openflow交换机的流表表项空闲超时检测方法
CN110928697B (zh) 拓扑图转换系统及其方法
CN103346902B (zh) 数据采集调度的方法及系统
CN109871270B (zh) 调度方案生成方法及装置
CN106325984A (zh) 一种大数据任务调度装置
WO2023197864A1 (zh) 一种调用拓扑图生成方法及装置
CN103685053A (zh) 一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法
CN106357726A (zh) 负载均衡方法及装置
CN107133231A (zh) 一种数据获取方法和装置
CN104298539B (zh) 基于网络感知的虚拟机调度与再调度方法
TW201214286A (en) Computer system, method, and program
CN106412088B (zh) 一种数据同步方法及终端
CN109800074A (zh) 任务数据并发执行方法、装置以及电子设备
CN102841822B (zh) 对jobTracker主机进行宕机保护的方法和系统
CN105471756B (zh) 一种数据包处理方法及装置
CN110275765A (zh) 基于分支dag依赖的数据并行作业调度方法
CN108268312A (zh) 任务调度方法和调度器
CN116302453B (zh) 量子电子混合平台的任务调度方法及装置
CN110958192B (zh) 一种基于虚拟交换机的虚拟数据中心资源分配系统及方法
CN104572270A (zh) 一种基于消息队列的任务执行方法及装置
CN106330772B (zh) SDN中的流表发送方法及OpenFlow控制器
CN103152428A (zh) 云平台上节点间进行服务通信的方法
CN101320443A (zh) 一种电子工单的处理方法及处理装置
CN108287753A (zh) 计算机系统快速调度方法及装置
CN103309675B (zh) 用于气象预报计算系统WRF的Web服务封装方法以及系统

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210818

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

Patentee after: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

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

Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

Patentee before: BEIJING INTELLIX TECHNOLOGIES Co.,Ltd.

Effective date of registration: 20210818

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: 20230727

Address after: 422, 4th Floor, Podium Building, Zhongke Resource Building, No. 6 South Third Street, Zhongguancun, Haidian District, Beijing, 100000

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.