CN111131084B - 一种QoS感知的OpenFlow流表查找方法 - Google Patents

一种QoS感知的OpenFlow流表查找方法 Download PDF

Info

Publication number
CN111131084B
CN111131084B CN201911243223.XA CN201911243223A CN111131084B CN 111131084 B CN111131084 B CN 111131084B CN 201911243223 A CN201911243223 A CN 201911243223A CN 111131084 B CN111131084 B CN 111131084B
Authority
CN
China
Prior art keywords
flow table
flow
priority
cache
tcam
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
CN201911243223.XA
Other languages
English (en)
Other versions
CN111131084A (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.)
Hunan Zhongying Dream Commercial Factoring Co ltd
Original Assignee
Changsha Normal University
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 Changsha Normal University filed Critical Changsha Normal University
Priority to CN201911243223.XA priority Critical patent/CN111131084B/zh
Publication of CN111131084A publication Critical patent/CN111131084A/zh
Application granted granted Critical
Publication of CN111131084B publication Critical patent/CN111131084B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/805QOS or priority aware
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种QoS感知的OpenFlow流表分级存储架构及应用,本发明架构将高优先级流存储在TCAM中,保证了高优先级流的分组查找性能;采用Cuckoo哈希结构设计精确流缓存机制,存储低优先级和无优先级活跃精确流,使这些精确流中的数据包直接命中缓存,进而快速找到对应的SRAM流表项,显著降低平均流表查找时间,提升OpenFlow交换机性能。本发明方法为不同优先级的网络流提供对应的流表查找速度:高优先级流中的网络分组直接命中TCAM流表,快速找到对应的流表项;低优先级流中的网络分组查找命中Cuckoo缓存,直接定位到对应的SRAM流表项;无优先级流中的大部分分组能直接命中Cuckoo缓存,少部分分组需进一步采用元组空间搜索法查找SRAM流表,整体查找效率较高。

Description

一种QoS感知的OpenFlow流表查找方法
技术领域
本发明涉及OpenFlow流表技术领域,特别涉及一种QoS感知的OpenFlow 流表分级存储架构及应用。
背景技术
在软件定义网络SDN数据平面中,主流OpenFlow交换机采用TCAM存储流表。这是因为TCAM支持通配查找,且能在一个时钟周期内输出查找结果。然而,TCAM单比特成本高、能耗大、集成度低,容量有限。随着OpenFlow协议版本的演进,流表匹配字段数量不断增加,单条流表项的存储开销大幅度增长。同时,当SDN在广域网、数据中心等大规模网络进行应用部署时,网络并发流数量庞大,造成OpenFlow交换机中的流表项数量显著增多。这两个因素产生的乘法效应导致OpenFlow流表规模迅速增大,流表占用的存储资源急剧上升,很容易超出TCAM的存储容量。
到目前为止,解决这一问题的主流方案是采用三态内容可寻址存储器 (TernaryContent Addressable Memory,TCAM)和静态随机存储器(Static Random Access Memory,SRAM)相结合的方式存储流表。为了实现通配查找,SRAM流表通常将所有流表项按掩码划分为若干个元组即子流表,进而运用元组空间搜索法(Tuple Space Search,TSS)对子流表逐个进行哈希查找。对于查找SRAM的每个数据包,在找到对应的流表项之前,需要逐个遍历子流表,导致查找开销很大。因此,如何提高SRAM流表查找速度,已成为OpenFlow交换机亟需解决的性能问题之一。在此基础上,OpenFlow交换机需要为不同优先级的网络流提供相适应的流表查找性能,以保障网络服务质量QoS。
网络服务质量(Quality of Service,QoS)是指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术,是用户和服务网络之间关于信息传输质量的约定,其目标是为Internet应用提供服务区分和性能保证。服务区分是指网络能根据不同的应用的需求,为其提供不同的网络服务。对SDN数据平面而言,根据流的相对重要性,将流赋予不同的传输优先级,并为高优先级流提供各种优先存储、转发等策略来支持QoS。
软件定义网络(Software Defined Network,SDN)是一种新型网络创新架构,其核心思想是将逻辑控制平面与数据转发平面相分离,并为应用提供灵活的编程接口,显著提升了网络的灵活性、可管控性和可编程性。控制平面与数据平面之间通过SDN控制数据平面接口(control-data-plane interface,简称CDPI)进行通信,主要负责将控制器中的转发规则下发至转发设备,最主流的南向接口协议是OpenFlow协议。OpenFlow最基本的特点是基于流(Flow)的概念来匹配转发规则,每一个交换机都维护一个流表(Flow Table),依据流表中的转发规则进行转发,而流表的建立、维护和下发都是由控制器完成。
OpenFlow流表中包含多个流表项,每个流表项由多个字段组成,如匹配字段(用来识别该条表项对应的flow,其中包括用于定义流的优先服务顺序QoS优先级)、计数器(用于保存与条目相关统计信息),指令(匹配表项后需要对数据分组执行的动作)、超时计时器等。流表通常采用三态内容可寻址存储器 (TCAM)和静态随机存储器(SRAM)相结合的方式存储。TCAM支持通配查找,且查找速度很快,在一个时钟周期内能查找完毕,但能耗高、价格昂贵、兼容性不强而使存储容量很有限。SRAM为支持掩码查找,常用的元组空间搜索法(Tuple Space Search,TSS)对子流表逐个进行哈希查找,其方案如附图1所示。
如附图1所示,在元组空间搜索法中,采用掩码探测的方式查询流表,每个掩码对应一个元组,也就是说,每个元组里的流表项的掩码相同,其流表查找过程如下:对于一个新到达OpenFlow交换机的数据包,首先提取其头部域信息,得到该数据包的流标识符fid,fid依次和掩码列表Mask List中的每个maski (1<=i<=L)进行与运算得到keyi,并根据keyi值查找元组Tuplei。元组是采取哈希表的形式组织的,keyi经过hash函数映射到流表中的某条链,如果fid和keyi的值均能匹配成功,则查找成功,否则继续查找下一个Tuplei+1,直到匹配成功或者所有的元组都查询完毕。对于某个流表项而言,只有Mask List中的某个maski与其对应,其它的mask在匹配过程中都是失败的,这种依次试探每个mask,搜索元组中对应的整条流表链的查询方式,其流表查找开销很大。
到目前为止,解决流表存储问题的主流方案是采用支持快速通配查找的 TCAM存储器和支持精确查找的SRAM存储器相结合的方式存储流表。研究的重点之一是如何设计合理的方案,将网络流区分存储在TCAM和SRAM中,提高流表查找效率。目前典型的有以下两种OpenFlow流表存储及查找架构。
现有技术方案一、精确流/通配流区分存储架构
Naous和McKeown等人构建并制作了NetFPGA平台,基于NetFPGA平台进一步开发实现了一个OpenFlow交换机,能够线速运行,并处理流经斯坦福大学电子工程与计算机科学楼的所有流量。其中OpenFlow流表查找阶段结合芯片上的TCAM和芯片外的SRAM,以支持大量流表项,并允许通配符匹配。附图 2给出了NetFPGA平台下OpenFlow流表查找架构。
如附图2所示,对于到达OpenFlow交换机的数据包,其处理流程如下:首先提取数据分组的头部域信息并解析,得到流标识符fid,接着fid被送入通配符查找模块和精确查找模块,其中通配符查找使用TCAM完成,精确查找则在 SRAM中使用两个散列函数来实现。查找结果均送往仲裁器,由其选择一个查找结果。若查找不成功,则发送包失配信息给控制器,控制器生成新的流规则下发给OpenFlow交换机,OpenFlow交换机根据流规则更新流表;若查找成功,则根据流表项的动作集执行相应的操作。
但方案一还存在以下缺陷:
采用TCAM和SRAM分别存储通配流表项和精确流表项,其中SRAM精确流表可采用哈希查找。该方案可以保证流表查找的高效性,但该方案往往很难应对通配流表项数量超出TCAM容量的情形。这是因为流表项字段中甚至是匹配字段中存在很多互斥的字段,如IPV4_SRC/IPV4_DS和IPV6_SRC/IPV6_DST互斥,TCP_SRC/TCP_DST和UDP_SRC/UDP_DST互斥,这使得大部分流携带掩码字段。而随着OpenFlow协议版本的演进以及SDN架构在数据中心、骨干网等大规模网络中的部署,流表项数量急剧上升。因此,通配流表项很可能远远超出存储容量有限的TCAM存储器容量,使得TCAM中的流表项替换率高,导致OpenFlow交换机分组转发时延增大。
现有技术方案二、重要流/次要流区分存储架构
为解决大规模流表的存储和查找性能问题,该方案提出将重要流和次要流分别存储在TCAM和SRAM中,以实现数据包流的高效流表查找。重要流和次要流是根据网络流量特征来区分,该方案是采取活跃流和空闲流、或者大象流和老鼠流两种方式加以划分。区分活跃流和空闲流的主要指标是该条流两相邻数据包到达时间间隔;区分大象流和老鼠流的主要指标是属于该条流的数据包的数量。与此同时,该方案还将每条流表项的字段拆分为两种类型:用于流表项匹配的标识字段和用于流信息记录的内容字段。将内容字段从流表项中剥离出来,采用 DRAM单独存储,并与对应的标识字段关联起来。附图3给出了基于重要流和次要流的区分存储架构。
如附图3所示,流表查找过程如下:对于到达OpenFlow交换机的数据包,首先提取数据分组的头部域信息并解析,得到流标识符fid,根据fid首先在TCAM 中查找,TCAM按内容寻址可在一个时钟周期内给出查询结果。若在TCAM中查找成功,则按该流表项的动作集进行操作;若查找失败,则在SRAM中采用元组空间搜索法对子流表逐个进行哈希查找。若查找成功,则按相应流表项的动作集进行操作,并检查该流是否是活跃流或者大象流,若是,则需插入到TCAM 中,若此时TCAM存满,则要采取相应的替换策略,将该条流插入到TCAM中;若在SRAM中查找失败,则发送包失配信息给控制器,控制器生成新的流规则下发给OpenFlow交换机,OpenFlow交换机根据流规则更新流表。
但方案二还存在以下缺陷:
根据流量局部性特征将活跃流和空闲流或大象流和老鼠流区分存储在TCAM和SRAM中,这种根据网络流量统计特征加以区分存储和查找的方式,在一定程度上能提高流表存储查找效率。但该方案并没有考虑到SDN架构部署到数据中心、骨干网等大规模网络中时,成千上万的并发流往往抢夺存储容量有限的TCAM等资源,从而出现QoS问题。不同应用流有不同的QoS需求,这就需要OpenFlow网络对不同优先级的网络流提供不同的存储查找速度,进而提供不同的转发性能。
发明内容
本发明的目的在于至少解决现有技术中存在的技术问题之一,提供一种QoS感知的OpenFlow流表分级存储架构及应用,能够提升OpenFlow交换机性能。
本发明的第一方面,提供一种QoS感知的OpenFlow流表分级存储架构,包括:高优先级流层、缓存预测层和低优先级流层;
所述高优先级流层包括TCAM流表以及第一DRAM流表,所述TCAM流表用于存储高优先级流的标识字段,并且按照标识字段的ToS优先级从高至低的顺序依次存储;所述第一DRAM流表用于存储高优先级流的内容字段;
所述低优先级流层包括SRAM流表以及第二DRAM流表,所述SRAM流表用于存储非高优先级流的标识字段;所述第二DRAM流表用于存储非高优先级流的内容字段,所述SRAM流表采用元组空间搜索法,并在SRAM流表中的每条流表项中设置地址字段,用于指明对应的内容字段在第二DRAM流表中的存放位置;
所述缓存预测层用于缓存SRAM流表中的低优先级精确流和无优先级活跃精确流,所述缓存预测层采用Cuckoo哈希查找方法。
本发明的第二方面,提供了一种QoS感知的OpenFlow流表查找方法,包括以下步骤:
S11、当OpenFlow交换机接收到数据分组后,提取ToS优先级,判断ToS优先级与预设的优先级阈值的大小,若ToS优先级大于或等于优先级阈值,则进入步骤S12;若ToS优先级小于优先级阈值,则进入步骤S13;
S12、进行TCAM流表查找,若TCAM流表查找成功,则读取对应的第一 DRAM流表项中的内容字段,根据内容字段执行相关操作;若TCAM流表查找失败,则判断ToS优先级是否等于优先级阈值,若ToS优先级不等于优先级阈值,则发送Packet-in消息至SDN控制器;若ToS优先级等于优先级阈值,则进入步骤S13;
S13、进行Cuckoo缓存查找,若Cuckoo缓存查找失败,则进入步骤S14;若Cuckoo缓存查找成功,则读取对应的SRAM流表项中的流标识字段,将流标识字段与数据分组信息进行匹配,若匹配成功,则读取对应的第二DRAM流表项中的内容字段,根据内容字段执行相关操作;若匹配失败,则进入步骤S14;
S14、进行SRAM流表查找,若SRAM流表查找失败,则发送Packet-in消息至SDN控制器;若SRAM流表查找成功,则读取对应的第二DRAM流表项中的内容字段,根据内容字段执行相关操作,若数据分组对应的精确流进入活跃状态,则提取Cuckoo缓存字段信息,组成一条缓存项并插入Cuckoo缓存。
进一步,还包括Cuckoo缓存查找:
S111、输入精确流标识符fid,生成精确流签名值sig,根据哈希函数Hash1(fid)计算得到第一个候选位置index1,在对应的哈希桶中依次比较每个槽中缓存项的签名值是否与sig匹配,若匹配成功,则返回匹配缓存项对应的SRAM流表项中的地址字段;若匹配失败,则进入步骤S112;
S112、计算另一个候选位置index2,在对应的哈希桶中依次比较每个槽中缓存项的签名值是否与sig匹配,若匹配成功,则返回匹配缓存项对应的SRAM 流表项中的地址字段;若匹配失败,则返回空指针。
进一步,还包括Cuckoo缓存插入:
S121、输入精确流标识符fid、流表项地址以及时间戳,生成精确流签名值 sig,根据哈希函数Hash1(fid)计算得到第一个候选位置index1,检查对应的哈希桶中是否有空槽,若有空槽,则将精确流的缓存信息插入空槽中;若没有空槽,则进入步骤S122;
S122、计算另一个候选位置index2,检查对应的哈希桶中是否有空槽,若有空槽,则将精确流的缓存信息插入空槽中;若没有空槽,则从两个候选位置对应的哈希桶中随机剔除一条缓存项,将精确流的缓存信息插入至缓存项中,并为剔除的缓存项继续查找空槽。
进一步,还包括Cuckoo缓存删除:
S131、输入需删除的精确流的标识符fid,生成精确流签名值sig,根据哈希函数Hash1(fid)计算得到第一个候选位置index1,在对应的哈希桶中依次比较每个槽中缓存项的签名值是否与sig匹配,若匹配成功,则获取匹配缓存项对应的SRAM流表项以及对应的第二DRAM流表项,删除缓存项信息并重置缓存项;若匹配失败,则进入步骤S132;
S132、计算另一个候选位置index2,在对应的哈希桶中依次比较每个槽中缓存项的签名值是否与sig匹配,若匹配成功,则获取匹配缓存项对应的SRAM 流表项以及对应的第二DRAM流表项,删除缓存项信息并重置缓存项;若匹配失败,则返回Cuckoo缓存删除失败指令。
进一步,还包括Cuckoo缓存超时扫描:
对Cuckoo缓存中的所有缓存项逐一进行超时检测,若缓存项超时,则定位对应的SRAM流表项以及对应的第二DRAM流表项,读取Cuckoo缓存索引表,删除缓存项信息并重置缓存项。
本发明的第三方面,提供了一种QoS感知的OpenFlow流表插入方法,包括以下步骤:
S21、当OpenFlow交换机接收到SDN控制器下发的带ADD命令的flow_mod消息后,提取流规则信息,判断ToS优先级与预设的优先级阈值的大小,若ToS优先级小于优先级阈值,则进入步骤S22;若ToS优先级大于或等于优先级阈值,则进入步骤S23;
S22、在低优先级流层中新建流表项,并将流表项信息插入低优先级流层中;
S23、判断TCAM流表中是否有空表项,若有空表项,按照优先级从高至低的顺序将流表项信息插入高优先级流层中;若没有空表项且ToS优先级等于优先级阈值时,则进入步骤S24;若没有空表项并且ToS优先级大于优先级阈值时,则进入步骤S25;
S24、在低优先级流层中新建流表项,并将流表项信息插入低优先级流层中;
S25、判断ToS优先级与TCAM流表中的最低优先级的大小,若ToS优先级小于最低优先级,则将优先级阈值设为TCAM流表中的最低优先级,并进入步骤S24;若ToS优先级等于最低优先级,则进入步骤S24;若ToS优先级大于最低优先级,则进入步骤S26;
S26、读取TCAM流表中的最低优先级中的最近最久未使用的流表项,将流表项插入至低优先级流层中,根据flow_mod消息中提取的流规则信息新建流表项并且将流表项插入至高优先级流层,若优先级阈值大于TCAM流表中的最低优先级,则将优先级阈值设为TCAM流表中的最低优先级。
本发明的第四方面,提供了一种QoS感知的OpenFlow流表删除方法,包括以下步骤:
S31、当OpenFlow交换机接收到SDN控制器下发的带DELETE命令的flow_mod消息后,提取流规则信息,判断ToS优先级与预设的优先级阈值的大小,若ToS优先级大于或等于优先级阈值,则进入步骤S32;若ToS优先级小于优先级阈值,则进入步骤S33;
S32、进行TCAM流表查找,若TCAM流表查找成功,则删除对应的流表项;若TCAM流表查找失败,则判断ToS优先级和优先级阈值是否相等,若ToS优先级不等于优先级阈值,则进入步骤S34;若ToS优先级等于优先级阈值,则进入步骤S33;
S33、进行SRAM流表查找,若SRAM流表查找失败,则进入步骤S34;若SRAM流表查找成功,则删除对应的流表项;
S34、向SDN控制器报告流规则删除失败结果。
本发明的第五方面,提供了一种QoS感知的OpenFlow流表超时扫描方法,包括以下步骤:
获取系统当前时间,依次遍历第一DRAM流表项,读取第一DRAM流表项中的时间戳,判断系统当前时间和时间戳的时间差是否大于预设的超时间隔,若大于,则删除超时的第一DRAM流表项以及对应的TCAM流表项,在TCAM 流表全部扫描完成后,统计TCAM流表中的空流表项数量;
依次遍历第二DRAM流表项,读取第二DRAM流表项中的时间戳,判断系统当前时间和时间戳的时间差是否大于预设的超时间隔,若大于,则重置对应的所有Cuckoo缓存项,删除超时的第二DRAM流表项以及对应的SRAM流表项;
在低优先级流层中按照优先级从高至低的顺序,依次选取流表项存放至 TCAM流表的空流表项中,直至TCAM流表存满。
本发明提供的一种QoS感知的OpenFlow流表分级存储架构及应用,至少具有以下有益效果:
(1)本发明提供的架构将高优先级流存储在TCAM中,使得其中的分组能够在一个时钟周期内找到对应的流表项,进而保证了高优先级流的分组转发性能;采用Cuckoo哈希结构设计精确流缓存机制,存储低优先级和无优先级活跃精确流,使这些精确流中的数据包直接命中缓存,进而快速找到对应的SRAM 流表项,从而显著降低网络分组的平均流表查找时间,有效提升OpenFlow交换机的分组转发性能。本发明提供的方法利用不同流表存储介质具有不同的查找效率,在流表分级存储架构的基础上,为不同优先级的网络流提供对应的流表查找速度,即:高优先级流中的网络分组直接命中TCAM流表,在一个时钟周期内找到对应的流表项;低优先级流中的网络分组查找命中Cuckoo缓存,进而直接定位到对应的SRAM流表项,查找速度快;无优先级流中的大部分分组能直接命中Cuckoo缓存,少部分分组需进一步采用元组空间搜索法查找SRAM流表,整体查找效率较高。
(2)本发明相比现有技术方案一,针对方案一存在的缺陷,本发明提供的架构以及方法,避开精确流和通配流区分法,改为按流优先级进行区分存储,而 SRAM流表采用元组空间搜索法支持通配流查找,进而建立缓存机制优化SRAM 流表性能,以解决大规模流表的存储和查找性能问题。
(3)本发明相比现有技术方案二,针对方案二存在的缺陷,本发明提供的架构以及方法,将高优先级流表项存储在支持快速通配查找的TCAM中,低优先级流表项存储在SRAM中,并将SRAM中带优先级的流表项缓存起来,以提高其查找效率,从而保障OpenFlow网络服务质量。
附图说明
下面结合附图和实施例对本发明进一步地说明;
图1为本发明现有技术提供的元组空间搜索法的示意图;
图2为本发明现有技术提供的精确流和通配流区分存储架构的示意图;
图3为本发明现有技术提供的重要流和次要流区分存储架构的示意图;
图4为本发明实施例提供的一种QoS感知的OpenFlow流表分级存储架构的示意图;
图5为本发明实施例提供的Cuckoo缓存工作原理示意图;
图6为本发明实施例提供的OpenFlow网络分组转发流程示意图;
图7为本发明实施例提供的流表插入流程示意图;
图8为本发明实施例提供的流表删除流程示意图;
图9为本发明实施例提供的流表超时扫描流程示意图;
图10为本发明实施例提供的Cuckoo缓存查找流程示意图;
图11为本发明实施例提供的Cuckoo缓存插入流程示意图;
图12为本发明实施例提供的Cuckoo缓存删除流程示意图;
图13为本发明实施例提供的Cuckoo缓存超时扫描流程示意图。
具体实施方式
下面将结合附图,对本公开实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。需要说明的是,在不冲突的情况下,本公开实施例及实施例中的特征可以相互组合。另外,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本公开的每个技术特征和整体技术方案,但其不能理解为对本公开保护范围的限制。
参照图4,本发明的一个实施例,提供了一种QoS感知的OpenFlow流表分级存储架构。
架构包括:高优先级流层、缓存预测层和低优先级流层;
对于高优先级流层,TCAM流表中的流表项主要用于存储流标识字段,流标识字段包括但不仅限于:匹配字段、掩码等,其中,匹配字段包含用于区分服务质量的ToS优先级(即流优先级);DRAM流表中的流表项主要用于存储流内容字段,流内容字段包括但不仅限于:计数器、指令集、超时器等,在TCAM 流表中,流标识字段按照匹配字段中的ToS优先级从高到低的顺序存储,对应的内容字段依次顺序存储在DRAM流表中。
对于低优先级流层,存放流标识字段的SRAM流表采用元组空间搜索法,将所有流表项按照掩码划分为若干个元组(子流表),即同一个元组中的流表项具有相同的掩码,每个元组采用哈希表进行存储与查找。在SRAM流表中的每条流表项中,增设了一个地址字段,用于指明对应的内容字段在DRAM流表中的存放位置。在DRAM流表中,所有内容字段结点由于无需查找,只需进行访问和更新操作,因而这里可采用双向链表组织,当然的,双向链表也可以替换为单项链表,循环链表等。
对于缓存预测层,首先,可存储SRAM流表包含的低优先级的精确流,以加快低优先级流表项的查找速度,从而支持QoS;然后,可存储无优先级活跃精确流,以加快后续数据包的流表查找速度,提高SRAM流表查找性能。
针对大规模SDN网络中不同应用有不同的QoS需求,本发明架构将高优先级流表项存储在通配查找速度快,但容量有限的TCAM存储器中;将低优先级的流表项存储在流表查找效率较低的SRAM中,以支持QoS需求。为了使TCAM 和SRAM存储尽可能多的流表项,本架构将流表项分为用于流匹配的标识字段 (标识字段包括但不仅限于匹配字段、掩码等)和用于流信息维护的内容字段(内容字段包括但不仅限于计数器、指令集、超时器等)两部分,分别又称为匹配表项和内容表项,本架构还将内容表项分离出来,存储在容量大、访问速度稍慢的 DRAM存储器中。为了解决SRAM流表元组空间搜索速度慢的问题,本架构还增加缓存预测层存放带优先级或活跃的精确流,直接预测对应的SRAM匹配表项。
在本发明提供的架构中,为提高缓存利用率,缓存预测层采用Cuckoo哈希查找方法,其工作原理如图5所示:Cuckoo缓存由若干哈希桶组成,每个哈希桶有若干个槽,每个槽存储一条缓存项,每条缓存项包括精确流的签名值sig、对应的SRAM匹配表项地址addr和时间戳ts。
Cuckoo哈希主要用于处理缓存存储众多精确流的哈希冲突。当Cuckoo缓存需要插入一条精确流时,将精确流标识符fid映射到Cuckoo缓存的两个候选位置(即哈希桶索引值)。首先,通过哈希函数Hash1(fid)计算得到第一个候选位置。若对应的哈希桶存在一个空槽(缓存项),则将该精确流的相关信息存入其中,否则需要找到另一个候选位置。由于缓存项中没有存储精确流的标识符fid,为了便于每个缓存项容易找到另一个候选位置,因此先计算其签名值的哈希值 Hash2(sig),然后与Hash1(fid)进行异或运算得到第二个候选位置。若对应的哈希桶存在一个空槽,则将该精确流的相关信息存入其中,否则从这两个候选位置中随机选出一个槽,将其中的缓存项踢除,以插入新缓存项。然后计算踢出缓存项的另一个候选位置,并在对应的哈希桶中寻找一个空槽存放。若不存在一个空槽,则重复上述踢除操作,直到找到一个空槽或者踢除次数达到上限为止。
基于上述实施例提供的架构,本发明还提供了一种QoS感知的OpenFlow流表高效查找方法,包括以下步骤:
S11、当OpenFlow交换机接收到数据分组后,提取流关键字段中的ToS优先级,判断ToS优先级与预设的优先级阈值的大小,若ToS优先级大于或等于优先级阈值,则进入步骤S12;若ToS优先级小于优先级阈值,则进入步骤S13;
S12、进行TCAM流表查找,若TCAM流表查找成功,则读取对应的第一 DRAM流表项中的内容字段,根据内容字段执行相关操作;若TCAM流表查找失败,则判断ToS优先级是否等于优先级阈值,若ToS优先级不等于优先级阈值,则发送Packet-in消息至SDN控制器;若ToS优先级等于优先级阈值,则进入步骤S13;
S13、进行Cuckoo缓存查找,若Cuckoo缓存查找失败,则进入步骤S14;若Cuckoo缓存查找成功,则读取对应的SRAM流表项中的流标识字段,将流标识字段与数据分组信息进行匹配,若匹配成功,则读取对应的第二DRAM流表项中的内容字段,根据内容字段执行相关操作;若匹配失败,则进入步骤S14;
S14、进行SRAM流表查找,若SRAM流表查找失败,则发送Packet-in消息至SDN控制器;若SRAM流表查找成功,则读取对应的第二DRAM流表项中的内容字段,根据内容字段执行相关操作,若数据分组对应的精确流进入活跃状态,则提取Cuckoo缓存字段信息,组成一条缓存项并插入Cuckoo缓存。
需要说明的是,本实施提供的查找方法基于上述实施例提供的架构而实现,是基于相同的发明构思,并且,后续实施例提供的网络分组转发方法、流表插入方法、流表删除方法、以及流表超时扫描方法均基于上述实施例提供的架构而实现,是基于相同的发明构思,因此,方法实施例的相应内容同样适用于架构实施例,此处不再详述。
进一步,参照图10,还提供了一种Cuckoo缓存查找流程:
首先,输入的精确流标识符fid,生成精确流签名值sig,并经哈希函数 Hash1(fid)计算得到第一个候选位置index1;然后,在对应的哈希桶中依次比较每个槽(每个槽可以存储一条缓存项)中的签名值是否与sig匹配,若成功匹配某条缓存项,则返回其中的SRAM匹配表项地址;否则,计算另一个候选位置index2 (即Hash2(sig)与index1进行异或运算),同样在对应的哈希桶中依次比较每条缓存项中的签名值是否与sig匹配,若成功匹配某条缓存项,则返回其中的 SRAM匹配表项地址;否则,返回空指针。
进一步,参照图11,还提供了一种Cuckoo缓存插入流程:
首先,输入其对应的流标识符fid、流表项地址和时间戳,接着,根据fid 生成精确流签名值sig,并通过计算Hash1(fid)得到第一个候选位置index1,然后,检查对应的哈希桶中是否有空槽,若有一个空槽,则将该精确流的缓存信息插入空槽中;否则,计算另一个候选位置index2,同样在对应的哈希桶中寻找空槽,若成功找到一个空槽,则将该精确流的缓存信息插入到槽中;否则,从两个候选哈希桶中随机剔除一条缓存项,将待插入精确流的缓存信息存入其中,并将剔除次数累加一次。
对于被剔除的缓存项,首先,计算其另一个候选位置,然后,在对应的哈希桶中寻找空槽,若成功找到一个空槽,则将被剔除的缓存信息存入空槽中;否则,随机选择一个槽存入其中,并将原有的缓存项剔除,剔除次数累加一次。重复上述步骤,直到找到一个空槽或者剔除次数达到上限为止。
需要说明的是,在上述Cuckoo缓存插入过程中,当某条缓存项插入Cuckoo 缓存中的某个槽时,需读取对应的DRAM内容表项,更新其Cuckoo缓存索引表。
进一步,参照图12,还提供了一种Cuckoo缓存删除流程:
首先,输入需删除精确流的标识符fid,并计算其签名值sig,然后,计算 Hash1(fid)得到第一个候选位置index1,并在对应的哈希桶中依次比较每个槽中的签名值是否与sig匹配,若成功匹配某条缓存项,则获取其对应的SRAM匹配表项,接着,读取对应的DRAM内容表项,删除其中的缓存项信息,最后,重置该缓存项;否则,计算另一个候选位置index2,同样在对应的哈希桶中依次比较每条缓存项中的签名值是否与sig匹配,若成功匹配某条缓存项,则获取其对应的SRAM匹配表项,接着读取对应的DRAM内容表项,删除其中的缓存项信息,最后重置该缓存项;否则,返回缓存项删除失败的结果。
进一步,参照图13,还提供了一种Cuckoo缓存超时扫描流程:
对Cuckoo缓存中的所有缓存项逐一进行超时检测。对于每条被检测的缓存项,若超时,则定位对应的SRAM匹配表项,找到对应的DRAM内容表项,读取其中的Cuckoo缓存索引表,从中删除当前的缓存项信息,最后重置当前缓存项。
作为一种可实施方式,参照图6,还提供了一种QoS感知的OpenFlow网络分组转发方法,具体流程如下:
当OpenFlow交换机收到一个网络分组(数据分组)时,首先提取其关键字段(含ToS优先级的P值),根据优先级P值和优先级阈值的大小关系决定查找TCAM流表还是SRAM流表。优先级阈值用于区分TCAM流表和SRAM流表,要求P值不能大于最小的TCAM流表项优先级,且不能小于最大的SRAM 流表项优先级。因此,若P值大于或等于TCAM最小优先级,则查找TCAM流表,若TCAM流表查找成功,则读取对应的DRAM顺序流表项(即上述的第一 DRAM流表项)内容字段,并按照动作集转发处理分组,更新DRAM顺序流表项内容字段;否则,若P值大于最小的TCAM流表项优先级,说明是一条新流,则向SDN控制器发送Packet-in消息,等待下发新流规则。若TCAM流表查找失败且P值等于最小的TCAM流表项优先级,或者P值小于最小的TCAM流表项优先级,则需进一步查找Cuckoo缓存。
若Cuckoo缓存查找成功,则读取缓存项中的SRAM匹配表项指针,进而从 SRAM流表中获取流标识字段。然后,将流标识字段与数据分组信息进行匹配,以确定当前到达的分组是否属于该流表项,若匹配成功,则读取DRAM链式流表项(即上述的第二DRAM流表项),获取流表项内容字段(包括动作集),进而按照动作集转发处理分组,最后更新DRAM链式流表项和Cuckoo缓存项。若匹配不成功或Cuckoo缓存查找失败,均需进一步查找SRAM流表。
SRAM流表查找采用元组空间搜索法,逐个探测掩码,查找对应的元组。若 SRAM流表查找成功,则读取DRAM链式流表项内容字段,进而按照动作集转发处理分组,最后更新DRAM链式流表项内容字段,若当前数据分组对应的精确流进入活跃状态,则提取Cuckoo缓存字段信息,将该流表项插入Cuckoo缓存中。若SRAM流表查找失败,说明该分组所属流是新流,则发送Packet-in消息给SDN控制器。
需要说明的是,本实施例的网络分组转发方法是在上述实施例的查找方法的基础上,执行相对应的动作集。另外,为了方便本领域技术人员的理解,将上述的第一DRAM流表项用DRAM顺序流表项代替,将上述的第二DRAM流表项用DRAM链式流表项代替,在后续实施例中不再细述。
作为一种可实施方式,参照图7,还提供了一种QoS感知的OpenFlow流表插入方法,具体流程如下:
当OpenFlow交换机收到带ADD命令的flow_mod消息时,提取流规则信息,包括匹配字段(含ToS优先级)和动作集等,然后根据流优先级判断插入到TCAM流表还是SRAM流表。
首先,判断流优先级与优先级阈值的大小关系,若比阈值小,则新建流表项,并将其插入低优先级流层(即:将标识字段插入到SRAM匹配表项中,内容字段插入到DRAM链式流表项中);否则,查看TCAM中是否有空表项,若有空表项,则根据优先级高低顺序将其插入到高优先级流表项中(即:将标识字段写入到TCAM流表项,将内容字段写入到DRAM顺序流表项)。若没有空表项且流优先级等于优先级阈值,则新建流表项,将其插入到低优先级流表层;若没有空表项且流优先级大于优先级阈值,则需进一步判断流优先级是否小于TCAM 最低优先级,若流优先级小于或等于TCAM最低优先级,则将优先级阈值设置为TCAM最低优先级,并新建流表项,并将其插入到低优先级流表层;否则,读取TCAM中最低优先级中最近最久未使用的流表项,并将其插入到低优先级流表层,新建流表项,将其插入到高优先级流层,并保持高优先级流层按照优先级从高到低有序排列。若优先级阈值比TCAM最低流优先级大,则更新优先级阈值为TCAM最低优先级。
作为一种可实施方式,参照图8,还提供了一种QoS感知的OpenFlow流表删除方法,具体流程如下:
当OpenFlow交换机收到带DELETE命令的flow_mod消息时,首先,提取流匹配字段(含ToS优先级)等流规则信息,比较流优先级的值与优先级阈值的大小关系,以判断需删除的流表项是在高优先级流层还是低优先级流层。若流优先级的值大于或等于优先级阈值,则查找TCAM流表,若TCAM流表查找成功,则删除对应的流表项(即:重置对应的TCAM匹配表项(TCAM流表项) 和DRAM内容表项(DRAM顺序流表项),将重置后的空表项调整到最后位置,并使TCAM流表中所有流表项的优先级从高到低保持有序排列,再从低优先级流层中提取优先级最高的流表项,重置该流表项对应的所有Cuckoo缓存项,并将其写入至高优先级流层的TCAM流表项中和DRAM顺序流表项中,最后删除该流表项在SRAM流表项中的标识字段和在DRAM链式流表项中的内容字段)。若TCAM流表查找不成功,则进一步判断该流优先级和优先级阈值是否相等,若相等,则需进一步查找SRAM流表;否则,向SDN控制器报告流规则删除失败结果,若该流优先级小于优先级阈值,则直接查找SRAM流表,若SRAM流表查找成功,则读取DRAM链式流表项中对应的Cuckoo缓存项索引表,重置对应的所有Cuckoo缓存项,然后删除对应的SRAM匹配表项和DRAM内容表项,若SRAM流表查找不成功,则向SDN控制器报告流规则删除失败结果。
作为一种可实施方式,参照图9,还提供了一种QoS感知的OpenFlow流表超时扫描方法,具体流程如下:
在低优先级流层中按照优先级从高至低的顺序,依次选取流表项存放至 TCAM流表的空流表项中,直至TCAM流表存满。
首先,获取系统当前时间,然后,依次读取TCAM匹配表项(TCAM流表项)对应的DRAM内容表项(DRAM顺序流表项),获取其中的时间戳,进而计算时间戳和当前时间的时间差,若时间差未达到超时间隔,则调整流表项位置,并继续检测下一条流表项;否则,删除当前已超时的流表项(即:重置对应的 TCAM匹配表项和DRAM内容表项,重置后的空位可用于存储后续未超时的流表项)。当TCAM流表全部扫描完毕后,统计TCAM流表中的空流表项数量,接着,依次超时扫描每个SRAM元组,对于每个元组中的每个哈希桶,依次读取桶中的SRAM匹配表项,进而读取对应的DRAM内容表项,判断其是否超时,若超时,则重置对应的所有Cuckoo缓存项,然后删除SRAM匹配表项和DRAM 内容表项。
当TCAM流表完成超时扫描后,将出现若干个空表项,需从低优先级流层中,按照优先级从高到低的顺序,依次选取流表项存放到TCAM空表项中,直到TCAM存满为止。对于每条被选中的SRAM匹配表项(SRAM流表项),读取其对应的DRAM内容表项(DRAM链式流表项),根据其中的Cuckoo缓存项索引表重置对应的所有Cuckoo缓存项,然后将该流表项写入到高优先级流层的TCAM匹配表项和DRAM内容表项中,最后删除当前的SRAM匹配表项和 DRAM内容表项。
综上,针对背景技术中所述的各种流表存储和查找方案的缺陷,考虑不同网络流对OpenFlow交换机有不同的转发时延需求,本发明提供了一种QoS感知的OpenFlow流表分级存储架构及应用。
本发明提供的架构将高优先级流存储在TCAM中,使得其中的分组能够在一个时钟周期内找到对应的流表项,进而保证了高优先级流的分组转发性能;采用Cuckoo哈希结构设计精确流缓存机制,存储低优先级精确流和无优先级活跃精确流,使这些精确流中的数据包直接命中缓存,进而快速找到对应的SRAM 流表项,从而显著降低网络分组的平均流表查找时间,有效提升OpenFlow交换机的分组转发性能。
本发明提供的方法利用不同流表存储介质具有不同的查找效率,在流表分级存储架构的基础上,为不同优先级的网络流提供对应的流表查找速度,即:高优先级流中的网络分组直接命中TCAM流表,在一个时钟周期内找到对应的流表项;低优先级流中的网络分组查找命中Cuckoo缓存,进而直接定位到对应的 SRAM流表项,查找速度快;无优先级流中的大部分分组能直接命中Cuckoo缓存,少部分分组需进一步采用元组空间搜索法查找SRAM流表,整体查找效率较高。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所述技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

Claims (8)

1.一种QoS感知的OpenFlow流表查找方法,其特征在于,包括以下步骤:
S11、当OpenFlow交换机接收到数据分组后,提取ToS优先级,判断ToS优先级与预设的优先级阈值的大小,若ToS优先级大于或等于优先级阈值,则进入步骤S12;若ToS优先级小于优先级阈值,则进入步骤S13;
S12、进行TCAM流表查找,若TCAM流表查找成功,则读取对应的第一DRAM流表项中的内容字段,根据内容字段执行相关操作;若TCAM流表查找失败,则判断ToS优先级是否等于优先级阈值,若ToS优先级不等于优先级阈值,则发送Packet-in消息至SDN控制器;若ToS优先级等于优先级阈值,则进入步骤S13;
S13、进行Cuckoo缓存查找,若Cuckoo缓存查找失败,则进入步骤S14;若Cuckoo缓存查找成功,则读取对应的SRAM流表项中的流标识字段,将流标识字段与数据分组信息进行匹配,若匹配成功,则读取对应的第二DRAM流表项中的内容字段,根据内容字段执行相关操作;若匹配失败,则进入步骤S14;
S14、进行SRAM流表查找,若SRAM流表查找失败,则发送Packet-in消息至SDN控制器;若SRAM流表查找成功,则读取对应的第二DRAM流表项中的内容字段,根据内容字段执行相关操作,若数据分组对应的精确流进入活跃状态,则提取Cuckoo缓存字段信息,组成一条缓存项并插入Cuckoo缓存。
2.根据权利要求1所述的一种QoS感知的OpenFlow流表查找方法,其特征在于,还包括Cuckoo缓存查找:
S111、输入精确流标识符fid,生成精确流签名值sig,根据哈希函数Hash1(fid)计算得到第一个候选位置index1,在对应的哈希桶中依次比较每个槽中缓存项的签名值是否与sig匹配,若匹配成功,则返回匹配缓存项对应的SRAM流表项中的地址字段;若匹配失败,则进入步骤S112;
S112、计算另一个候选位置index2,在对应的哈希桶中依次比较每个槽中缓存项的签名值是否与sig匹配,若匹配成功,则返回匹配缓存项对应的SRAM流表项中的地址字段;若匹配失败,则返回空指针。
3.根据权利要求1所述的一种QoS感知的OpenFlow流表查找方法,其特征在于,还包括Cuckoo缓存插入:
S121、输入精确流标识符fid、流表项地址以及时间戳,生成精确流签名值sig,根据哈希函数Hash1(fid)计算得到第一个候选位置index1,检查对应的哈希桶中是否有空槽,若有空槽,则将精确流的缓存信息插入空槽中;若没有空槽,则进入步骤S122;
S122、计算另一个候选位置index2,检查对应的哈希桶中是否有空槽,若有空槽,则将精确流的缓存信息插入空槽中;若没有空槽,则从两个候选位置对应的哈希桶中随机剔除一条缓存项,将精确流的缓存信息写入至缓存项中,并为剔除的缓存项继续查找空槽。
4.根据权利要求1所述的一种QoS感知的OpenFlow流表查找方法,其特征在于,还包括Cuckoo缓存删除:
S131、输入需删除的精确流的标识符fid,生成精确流签名值sig,根据哈希函数Hash1(fid)计算得到第一个候选位置index1,在对应的哈希桶中依次比较每个槽中缓存项的签名值是否与sig匹配,若匹配成功,则获取匹配缓存项对应的SRAM流表项以及对应的第二DRAM流表项,删除缓存项信息并重置缓存项;若匹配失败,则进入步骤S132;
S132、计算另一个候选位置index2,在对应的哈希桶中依次比较每个槽中缓存项的签名值是否与sig匹配,若匹配成功,则获取匹配缓存项对应的SRAM流表项以及对应的第二DRAM流表项,删除缓存项信息并重置缓存项;若匹配失败,则返回Cuckoo缓存删除失败指令。
5.根据权利要求1所述的一种QoS感知的OpenFlow流表查找方法,其特征在于,还包括Cuckoo缓存超时扫描:
对Cuckoo缓存中的所有缓存项逐一进行超时检测,若缓存项超时,则定位对应的SRAM流表项以及对应的第二DRAM流表项,读取Cuckoo缓存索引表,删除缓存项信息并重置缓存项。
6.根据权利要求1所述的一种QoS感知的OpenFlow流表查找方法,其特征在于,还包括以下步骤:
S21、当OpenFlow交换机接收到SDN控制器下发的带ADD命令的flow_mod消息后,提取流规则信息,判断ToS优先级与预设的优先级阈值的大小,若ToS优先级小于优先级阈值,则进入步骤S22;若ToS优先级大于或等于优先级阈值,则进入步骤S23;
S22、在低优先级流层中新建流表项,并将流规则信息插入低优先级流层中;
S23、判断TCAM流表中是否有空表项,若有空表项,按照优先级从高至低的顺序将流规则信息插入高优先级流层中;若没有空表项且ToS优先级等于优先级阈值时,则进入步骤S24;若没有空表项并且ToS优先级大于优先级阈值时,则进入步骤S25;
S24、在低优先级流层中新建流表项,并将流表项信息插入低优先级流层中;
S25、判断ToS优先级与TCAM流表中的最低优先级的大小,若ToS优先级小于最低优先级,则将优先级阈值设为TCAM流表中的最低优先级,并进入步骤S24;若ToS优先级等于最低优先级,则进入步骤S24;若ToS优先级大于最低优先级,则进入步骤S26;
S26、读取TCAM流表中的最低优先级中的最近最久未使用的流表项,将流表项插入至低优先级流层中,根据flow_mod消息中提取的流规则信息新建流表项并且将流表项插入至高优先级流层,若优先级阈值大于TCAM流表中的最低优先级,则将优先级阈值设为TCAM流表中的最低优先级。
7.根据权利要求1所述的一种QoS感知的OpenFlow流表查找方法,其特征在于,还包括以下步骤:
S31、当OpenFlow交换机接收到SDN控制器下发的带DELETE命令的flow_mod消息后,提取流规则信息,判断ToS优先级与预设的优先级阈值的大小,若ToS优先级大于或等于优先级阈值,则进入步骤S32;若ToS优先级小于优先级阈值,则进入步骤S33;
S32、进行TCAM流表查找,若TCAM流表查找成功,则删除对应的流表项;若TCAM流表查找失败,则判断ToS优先级和优先级阈值是否相等,若ToS优先级不等于优先级阈值,则进入步骤S34;若ToS优先级等于优先级阈值,则进入步骤S33;
S33、进行SRAM流表查找,若SRAM流表查找失败,则进入步骤S34;若SRAM流表查找成功,则删除对应的流表项;
S34、向SDN控制器报告流规则删除失败结果。
8.根据权利要求1所述的一种QoS感知的OpenFlow流表查找方法,其特征在于,还包括以下步骤:
获取系统当前时间,依次遍历第一DRAM流表项,读取第一DRAM流表项中的时间戳,判断系统当前时间和时间戳的时间差是否大于预设的超时间隔,若大于,则删除超时的第一DRAM流表项以及对应的TCAM流表项,在TCAM流表全部扫描完成后,统计TCAM流表中的空流表项数量;
依次遍历第二DRAM流表项,读取第二DRAM流表项中的时间戳,判断系统当前时间和时间戳的时间差是否大于预设的超时间隔,若大于,则重置对应的所有Cuckoo缓存项,删除超时的第二DRAM流表项以及对应的SRAM流表项;
在低优先级流层中按照优先级从高至低的顺序,依次选取流表项存放至TCAM流表的空流表项中,直至TCAM流表存满。
CN201911243223.XA 2019-12-06 2019-12-06 一种QoS感知的OpenFlow流表查找方法 Active CN111131084B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911243223.XA CN111131084B (zh) 2019-12-06 2019-12-06 一种QoS感知的OpenFlow流表查找方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911243223.XA CN111131084B (zh) 2019-12-06 2019-12-06 一种QoS感知的OpenFlow流表查找方法

Publications (2)

Publication Number Publication Date
CN111131084A CN111131084A (zh) 2020-05-08
CN111131084B true CN111131084B (zh) 2022-06-07

Family

ID=70497651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911243223.XA Active CN111131084B (zh) 2019-12-06 2019-12-06 一种QoS感知的OpenFlow流表查找方法

Country Status (1)

Country Link
CN (1) CN111131084B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111723115B (zh) * 2020-06-24 2024-09-20 深圳前海微众银行股份有限公司 基于多级缓存的数据统计方法、装置、终端及存储介质
CN112632079B (zh) * 2020-12-30 2023-07-21 联想未来通信科技(重庆)有限公司 一种数据流标识的查询方法及装置
US11394651B1 (en) * 2021-02-02 2022-07-19 Nokia Solutions And Networks Oy Smart cache control for mission-critical and high priority traffic flows
CN113810298B (zh) * 2021-09-23 2023-05-26 长沙理工大学 一种支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法
CN115987874A (zh) * 2021-10-14 2023-04-18 南京航空航天大学 一种基于优化模理论的时间敏感网络传输综合优化方法
CN116112372A (zh) * 2021-11-10 2023-05-12 长沙理工大学 基于排队论的OpenFlow分组转发能效优化方法
CN114640641B (zh) * 2022-03-01 2024-03-12 长沙理工大学 一种流量感知的OpenFlow流表弹性节能查找方法
CN115037704B (zh) * 2022-04-25 2024-07-09 南京航空航天大学 基于每流虚拟队列的时间敏感网络流量路由与调度方法
CN115134300B (zh) * 2022-06-07 2023-08-25 复旦大学 面向软件定义网络的交换设备规则缓存管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104639438A (zh) * 2015-01-05 2015-05-20 北京交通大学 一种OpenFlow网络中数据流的新标识和控制方法
CN107257322A (zh) * 2017-07-24 2017-10-17 山东大学 一种混合tcam架构系统及流表处理方法
CN108337172A (zh) * 2018-01-30 2018-07-27 长沙理工大学 大规模OpenFlow流表分级存储架构与加速查找方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120099591A1 (en) * 2010-10-26 2012-04-26 Dell Products, Lp System and Method for Scalable Flow Aware Network Architecture for Openflow Based Network Virtualization
US9503374B2 (en) * 2014-01-22 2016-11-22 Futurewei Technologies, Inc. Apparatus for hybrid routing in SDN networks to avoid congestion and achieve good load balancing under fluctuating traffic load

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104639438A (zh) * 2015-01-05 2015-05-20 北京交通大学 一种OpenFlow网络中数据流的新标识和控制方法
CN107257322A (zh) * 2017-07-24 2017-10-17 山东大学 一种混合tcam架构系统及流表处理方法
CN108337172A (zh) * 2018-01-30 2018-07-27 长沙理工大学 大规模OpenFlow流表分级存储架构与加速查找方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Efficient Differentiated Storage Architecture for Large-Scale Flow Tables in OpenFlow Networks;Bing Xiong 等;《2019 IEEE 21st International Conference on High Performance Computing and Communications》;20191003;第三章节 *

Also Published As

Publication number Publication date
CN111131084A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
CN111131084B (zh) 一种QoS感知的OpenFlow流表查找方法
US11811660B2 (en) Flow classification apparatus, methods, and systems
CN110808910B (zh) 一种支持QoS的OpenFlow流表节能存储架构及其方法
CN109921996B (zh) 一种高性能的OpenFlow虚拟流表查找方法
CN108337172B (zh) 大规模OpenFlow流表加速查找方法
CN104426768B (zh) 一种数据报文转发方法及装置
EP1635519B1 (en) Optimization of routing database in a network processor
CN111966284B (zh) 一种OpenFlow大规模流表弹性节能与高效查找系统及方法
CN110912826B (zh) 利用acl扩充ipfix表项的方法及装置
CN112235436A (zh) 网络地址转换规则匹配方法及设备
CN114205253A (zh) 一种基于小流过滤的活跃大流精确检测架构及方法
Wan et al. Fastup: Fast tcam update for sdn switches in datacenter networks
CN111200542B (zh) 一种基于确定性替换策略的网络流量管理方法及系统
CN107528794B (zh) 一种数据处理方法和装置
CN113965492A (zh) 一种数据流统计方法及装置
CN111835599A (zh) 一种基于SketchLearn的混合网络测量方法、装置及介质
CN108566335B (zh) 一种基于NetFlow的网络拓扑生成方法
Li et al. Scalable packet classification using bit vector aggregating and folding
CN113810298B (zh) 一种支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法
US9641437B2 (en) Packet relay device and packet relay method
CN114710444A (zh) 基于塔型摘要和可驱逐流表的数据中心流量统计方法和系统
CN114884834A (zh) 一种低开销的Top-k网络流高精度提取架构及方法
CN112416820A (zh) 一种数据包分类存储方法及系统
CN111131197B (zh) 一种过滤策略管理系统及其方法
CN109842557B (zh) 管理流规则表的方法和交换器

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

Effective date of registration: 20220518

Address after: No.9 Teli Road, Xingsha Economic and Technological Development Zone, Changsha, Hunan 410000

Applicant after: CHANGSHA NORMAL University

Address before: No. 88 Fuxing East Road, Xiangtan, Hunan Province, Hunan

Applicant before: HUNAN INSTITUTE OF ENGINEERING

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231225

Address after: Room 1705, Building B, Yongtong Jiayuan, No. 303 Sanyi Avenue, Sifangping Street, Kaifu District, Changsha City, Hunan Province, 410000

Patentee after: Hunan Zhuda Information Technology Consulting Co.,Ltd.

Address before: No.9 Teli Road, Xingsha Economic and Technological Development Zone, Changsha, Hunan 410000

Patentee before: CHANGSHA NORMAL University

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240122

Address after: 410000, Building 13, Building 2419, Fangmaoyuan (Phase II), No. 1177 Huanhu Road, Yuelu District, Changsha City, Hunan Province

Patentee after: Hunan Zhongying Dream Commercial Factoring Co.,Ltd.

Country or region after: China

Address before: Room 1705, Building B, Yongtong Jiayuan, No. 303 Sanyi Avenue, Sifangping Street, Kaifu District, Changsha City, Hunan Province, 410000

Patentee before: Hunan Zhuda Information Technology Consulting Co.,Ltd.

Country or region before: China