CN110808910A - 一种支持QoS的OpenFlow流表节能存储架构及其应用 - Google Patents
一种支持QoS的OpenFlow流表节能存储架构及其应用 Download PDFInfo
- Publication number
- CN110808910A CN110808910A CN201911037014.XA CN201911037014A CN110808910A CN 110808910 A CN110808910 A CN 110808910A CN 201911037014 A CN201911037014 A CN 201911037014A CN 110808910 A CN110808910 A CN 110808910A
- Authority
- CN
- China
- Prior art keywords
- flow
- flow table
- entry
- cache
- dram
- 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
Images
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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- 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/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种支持QoS的OpenFlow流表节能存储架构及其应用,本发明架构包括三层:优先流/大象流层、老鼠流层以及活跃连接缓存层,优先流/大象流层采用TCAM以及DRAM作为存储介质,老鼠流层采用SRAM以及DRAM作为存储介质,活跃连接缓存层采用SRAM作为存储介质,采用Cuckoo哈希结构缓存活跃连接和TCAM中流表项的映射关系。本架构采用TCAM优先存储优先流表项的标识字段,实现优先数据分组的快速流表查找,从而保障了网络服务质量。同时设计Cuckoo缓存动态存储大象流中的当前活跃连接和对应的TCAM流表项索引值,使得大部分数据分组命中缓存,进而根据命中的缓存项的地址找到对应的流表项,从而绕过TCAM流表查找流程,大大降低流表查找能耗开销。
Description
技术领域
本发明涉及OpenFlow流表领域,特别是涉及一种支持QoS的OpenFlow流表节能存储架构及其应用。
背景技术
为了满足多媒体应用和云用户对网络传输质量的不同要求,提高网络资源利用率,保障服务质量(Quality of Service,QoS)一直都是网络领域的热点问题。软件定义网络(Software Defined Networking,SDN)作为一种新型网络架构,将控制逻辑从数据转发设备中分离,形成了逻辑上集中的控制平面,进而获得网络全局视图和状态信息。因此,相比于传统网络,SDN对QoS的管理更加简单灵活。在SDN网络中,控制平面借助全局网络信息,根据上层应用为不同的网络流指定特定的转发决策,并以流规则的形式下发交由数据平面的SDN交换机执行转发操作,从而实现流量的QoS管理。
目前,OpenFlow交换机通常采用三态内容可寻址存储器(Ternary ContentAddressable Memory,TCAM)存储流表。然而,TCAM成本高、集成度低、容量有限,难以满足大规模流表的存储空间需求。当网络中出现大量并发流时,TCAM流表会被完全填满,将导致OpenFlow交换机发生流表溢出问题。此时,需要应用替换策略,剔除TCAM中的一些流表项,以容纳新的流表项。然而,如果被剔除的流表项用于转发优先流的数据包,那么将会导致控制器重新生成并安装对应的流规则,进而影响优先流的分组转发性能。因此,需要合理管理不同服务类型(TOS)优先级的流表项,以保障网络服务质量。
TCAM具有并行查找整个数据集的能力,能够实现OpenFlow流表的快速查找,但也产生了巨大的能耗,其每比特消耗的能量大约是静态随机存储器(static random accessmemory,SRAM)的150倍。随着SDN网络的大规模部署与OpenFlow协议的不断演进,OpenFlow流表规模日益增大,其所需的TCAM容量逐渐增大,能耗也将随之上升。因此,如何降低OpenFlow流表查找的能耗成为目前亟待解决的关键问题。
如附图1所示,提供了一个典型的OpenFlow流表查找方案,它的工作原理如下:
当OpenFlow交换机收到一个网络分组,首先进行首部解析,提取其关键字段,例如:源/目的IP地址、源/目的端口、协议类型等,确定匹配字段。然后,依据匹配字段查找TCAM流表。若查找成功,则执行对应流表项中的动作集,若查找不成功,则将分组封装成Packet-in消息发送给控制器,待控制器生成对应的流规则并下发给OpenFlow交换机后,进而依据流规则转发处理分组。
目前OpenFlow流表查找的优化方案主要包括:OpenFlow流表包预测电路查找方案以及OpenFlow流表低功耗分组处理方案,具体如下:
如附图2所示,方案一为OpenFlow流表包预测电路查找方案,工作原理如下:
(1)当数据分组到达OpenFlow交换机后,首先解析分组头域并提取其关键字段key,并经子域哈希运算生成签名sig;(2)依次判断分组签名sig与缓存CAM中的签名是否匹配;(3)若签名匹配成功,则进一步比对缓存RAM中的关键字,若关键字匹配成功则说明预测成功,直接执行转发RAM中动作集;若关键字匹配不成功,则进入步骤(4);(4)由于缓存查找失败,需要根据关键字在TCAM中进行匹配查找,若查找成功,则执行对应转发RAM中动作集;若查找不成功,则将数据分组封装成Packet-in消息交由控制器处理。
方案一通过设计缓存预测电路,通过缓存最近到达的分组签名,使后续的大多数分组绕过TCAM流表查找过程,从而减少能耗。然而,该方案利用CAM作缓存介质,导致缓存查找能耗较高。同时,该方案直接缓存最近到达的分组签名,需要频繁地替换缓存项,不仅导致缓存命中率不高,而且增加了分组处理和查找能耗开销,存在优化的空间。
如附图3所示,方案二为OpenFlow流表低功耗分组处理方案,工作原理如下:
(1)当数据分组到达OpenFlow交换机后,首先通过分组预处理程序将二进制数据分组头部信息转化为码字;(2)根据码字在分段可扩展布鲁姆过滤器中进行查找;(3)若查找成功,则说明TCAM中存在该数据分组对应的流表项,进而从TCAM中进行查找。若查找不成功,则将数据分组封装成Packet-in消息交由控制器处理;(4)若TCAM中查找成功,则执行动作。若TCAM中查找不成功,则将数据分组封装成Packet-in消息交由控制器处理。
方案二通过设计可扩展布鲁姆过滤器,预测出TCAM中可能失配的流表项,从而减少了不必要的TCAM流表查找,降低了OpenFlow交换机查找能耗。然而,在OpenFlow查找过程中,一条新流中往往只有第一个数据分组会查找失败,经由控制器下发新规则后,后续数据分组都会成功匹配,故其节省能耗效果不佳。同时,其布鲁姆过滤器采用批量自动更新策略,而TCAM流表采用单条实时更新方式,导致TCAM流表与过滤器容易出现不一致问题,使得过滤器查找的准确率下降。
发明内容
本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了一种支持QoS的OpenFlow流表节能存储架构及其应用。
本发明解决其问题所采用的技术方案是:
本发明的第一方面,提供了一种支持QoS的OpenFlow流表节能存储架构,所述节能存储架构包括三层:优先流/大象流层、老鼠流层以及活跃连接缓存层;
所述优先流/大象流层采用TCAM以及第一DRAM作为存储介质,TCAM分为前端的优先流区域和后端的大象流区域,所述优先流区域用于缓存优先流的标识字段;所述大象流区域用于缓存大象流的标识字段;第一DRAM与TCAM相对应,并采用顺序结构缓存TCAM中对应的内容字段;
所述老鼠流层采用SRAM以及第二DRAM作为存储介质,其中,SRAM用于缓存老鼠流的标识字段;第二DRAM用于缓存老鼠流的内容字段;
所述活跃连接缓存层采用SRAM作为存储介质,并采用Cuckoo哈希结构缓存大象流中的活跃连接和所述大象流区域中流表项的映射关系,Cuckoo缓存中包含有若干个哈希桶,每个所述哈希桶中包含有若干个缓存项,每个所述缓存项中包含有签名值、流表项索引值以及时间戳。
进一步,在所述老鼠流层中,SRAM采用元组空间搜索法进行查找,第二DRAM采用链式结构缓存老鼠流的内容字段,SRAM中缓存有索引指针,所述索引指针用于索取第二DRAM中缓存的内容字段。
本发明第二方面,提供了一种基于本发明第一方面所述的支持QoS的OpenFlow流表节能存储架构的OpenFlow流表分组转发方法,包括以下步骤:
当数据分组到达OpenFlow交换机后,OpenFlow交换机接收并提取数据分组中的关键字段,判断关键字段中的TOS字段是否为0;
若TOS字段不为0时,则在优先流区域进行流表查找,若查找成功,则获取命中缓存项的流表项索引值,根据获取的流表项索引值读取第一DRAM流表项的内容字段并进行转发处理;若查找失败,则将数据分组封装成Packet-in消息发送至SDN控制器;
若TOS字段为0时,通过Cuckoo缓存进行流表查找,若Cuckoo缓存查找成功,则首先获取命中缓存项的流表项索引值,然后根据获取的流表项索引值读取第一DRAM流表项的内容字段并进行转发处理;若Cuckoo缓存查找失败,则在大象流区域进行流表查找,若查找成功,首先获取命中缓存项的流表项索引值,然后根据获取的流表项索引值读取第一DRAM流表项的内容字段并进行转发处理,最后判断当前连接是否进入活跃连接状态,若进入活跃连接状态,则将活跃连接的相关信息插入至Cuckoo缓存中,若未进入活跃连接状态,则结束;若查找失败,则在所述老鼠流层的SRAM中进行流表查找,若在SRAM中查找成功,则首先读取对应的第二DRAM流表项的内容字段并进行转发处理,然后判断当前流是否为大象流,若当前流为大象流,则将当前流插入至大象流区域;若在SRAM中查找失败,则将数据分组封装成Packet-in消息发送至SDN控制器。
进一步,所述通过Cuckoo缓存进行流表查找,进一步包括:
根据数据分组的关键字段,获取连接标识符key,根据key生成签名值sig;
根据key使用Hash得到桶索引index,依次遍历index桶中的缓存项,若缓存项中的签名值与sig匹配成功,则获取缓存项中的流表项索引值,根据获取的流表项索引值读取TCAM流表项,判断TCAM流表项中的标识字段与连接标识符key是否匹配,若匹配成功,则返回缓存项中流表项索引值;若匹配失败,则返回无效索引值。
进一步,所述将读取的第一DRAM流表项中的相关信息插入Cuckoo缓存中,进一步包括:根据数据分组的关键字段,获取连接标识符key、流表项索引值以及时间戳,并根据key生成签名值sig;
根据key使用Hash计算桶索引index,从index桶中寻找空缓存项,作为待插入位置;若未寻找到空缓存项,则随机选取一个非空缓存项并剔除内部字段,作为待插入位置;
将签名值、流表项索引值和时间戳写入待插入位置,同时定位对应的TCAM流表项,获取对应的Cuckoo缓存索引表,并加入当前缓存项信息。
进一步,所述将当前流插入至大象流区域,进一步包括:
判断大象流区域是否存在空流表项,若存在空流表项,则获取对应的空流表项索引值,删除所述当前流的SRAM流表项和对应的第二DRAM流表项,并将所述当前流的标识字段和内容字段分别插入至空流表项和对应的第一DRAM空流表项中;若不存在空流表项,则定位数据分组到达大象流区域中最少的流表项,读取对应的Cuckoo缓存索引表,重置对应的所有Cuckoo缓存项,并将定位的流表项中的标识字段和内容字段与当前流的标识字段和内容字段一一交换。
本发明的第三方面,提供了一种基于本发明第一方面所述的支持QoS的OpenFlow流表节能存储架构的OpenFlow流表插入方法,包括以下步骤:
当OpenFlow交换机接收到SDN控制器下发的带ADD命令的flow_mod消息后,提取flow_mod消息中的流规则信息m,m中包含有TOS字段;
若TOS字段为0时,将m的标识字段和内容字段分别写入至所述老鼠流层中新建的SRAM流表项和新建的第二DRAM流表项中;
若TOS字段不为0时,判断优先流区域是否存在空流表项,若存在空流表项,则将m的标识字段和内容字段分别写入至空流表项中以及对应的第一DRAM流表项中;若不存在空流表项,则首先定位数据分组到达大象流区域最少的流表项f,读取对应的Cuckoo缓存索引表,重置其对应的所有Cuckoo缓存项,读取并重置与f对应的第一DRAM流表项,将读取的第一DRAM流表项的内容字段插入至新建的第二DRAM流表项中,然后读取并重置f,将f中的标识字段插入至新建的SRAM流表项中,最后将大象流区域的尾流表项中的标识字段写入至f中,获取大象流区域的尾流表项的流表项索引值,将m的标识字段和内容字段分别写入至大象流区域的尾流表项和对应的第一DRAM流表项中。
本发明的第四方面,提供了一种基于本发明第一方面所述的支持QoS的OpenFlow流表节能存储架构的OpenFlow流表删除方法,包括以下步骤:
当OpenFlow交换机接收到SDN控制器下发的带DELETE命令的flow_mod消息后,提取flow_mod消息中的流规则信息m,m中包含有TOS字段;
若TOS字段为0时,在大象流区域进行流表查找,若在大象流区域流表中查找成功,则获取命中的流表项索引值,根据命中的流表项索引值读取第一DRAM流表项和对应的Cuckoo缓存索引表,重置对应的所有Cuckoo缓存项,将大象流区域的尾流表项中的标识字段和对应的第一DRAM流表项中的内容字段分别写入至查找出的TCAM流表项以及对应的第一DRAM流表项中,重置大象流区域的尾流表项和对应的第一DRAM流表项,读取Cuckoo缓存索引表并更新对应的所有Cuckoo缓存项;若在大象流区域流表中查找失败,则在所述老鼠流层的SRAM中进行流表查找,若在SRAM中查找成功,则读取命中的流表项,并删除查找到的SRAM流表项中的标识字段以及对应的第二DRAM流表项中的内容字段;若在SRAM中查找失败,则报告流规则删除失败;
若TOS字段不为0时,则在优先流区域进行流表查找,若查找成功,则获取命中的流表项,将优先流区域的尾流表项中的标识字段和对应的第一DRAM流表项中的内容字段分别写入至查找出的TCAM流表项和对应的第一DRAM流表项中,并重置优先流区域的尾流表项和对应的第一DRAM流表项;若查找失败,则报告流规则删除失败。
通过判断TOS字段的数值,选择数据分组插入的区域,当TOS字段不为0时,优先查找优先流区域的空流表项,当优先流区域没有空流表项时,在大象流区域中进行处理,保障了网络服务质量。
本发明的第五方面,提供了一种基于本发明第一方面所述的支持QoS的OpenFlow流表节能存储架构的OpenFlow流表超时扫描方法,所述超时扫描方法包括TCAM超时扫描以及SRAM超时扫描;
所述TCAM超时扫描包括:
依次遍历优先流区域的流表项,读取超时流表项,重置超时流表项中的标识字段和对应的第一DRAM流表项中的内容字段,将优先流区域的尾流表项中的标识字段和对应的第一DRAM流表项中的内容字段写入被重置后的超时流表项和对应的第一DRAM流表项中;
依次遍历大象流区域的流表项,读取超时流表项的Cuckoo缓存项索引表,重置对应的所有Cuckoo缓存项,重置超时流表项中的标识字段和对应的第一DRAM流表项中的内容字段,读取数据分组到达SRAM最多的流表项中的标识字段和对应的第二DRAM流表项的内容字段,并写入被重置后的超时流表项和对应的第一DRAM流表项中,删除读取的SRAM流表项和对应的第二DRAM流表项。
所述SRAM超时扫描包括:
依次遍历SRAM流表项,若流表项不活跃,则删除不活跃的流表项和对应的第二DRAM流表项。
本发明提供的一种支持QoS的OpenFlow流表节能存储架构及其应用,至少具有以下有益效果:
(1)本发明提供的架构采用支持并行通配查找的TCAM优先存储优先流的标识字段,剩余空间用于存储大象流的标识字段;对于优先分组,通过本架构能够直接在TCAM中快速查找,有效保证优先数据分组的流表查找性能,从而保障网络服务质量。
(2)本发明提供的架构通过设计Cuckoo缓存动态存储大象流中的最近活跃连接和对应的TCAM流表项索引值,使得活跃连接中的数据分组命中缓存,进而通过命中的缓存项中的地址直接找到对应的TCAM流表项,从而绕过TCAM流表查找流程,大大降低OpenFlow交换机流表查找的能耗。
(3)本发明相比现有技术的方案一,针对方案一存在的缺陷,采用低能耗存储器SRAM设计Cuckoo哈希缓存,在提高缓存利用率的同时,进一步节省了缓存查找能耗;另外通过动态缓存大象流中的最近活跃连接,在大幅度降低缓存替换率的同时,提高了缓存命中率,从而降低流表查找能耗。
(4)本发明相比现有技术的方案二,针对方案二存在的缺陷,通过设计Cuckoo缓存层动态存储TCAM大象流中的最近活跃连接,使得大部分数据分组直接命中缓存,并根据命中的缓存项中流表项索引值定位对应的TCAM流表项,从而绕过TCAM流表查找过程,使得能耗得到大幅度降低。
(5)本发明提供的分组转发方法通过判断TOS字段的数值,实现优先数据分组的快速流表查找以及转发,从而保障了网络服务质量;当不为优先流时,通过Cuckoo缓存进行流表查找当前活跃连接和对应的TCAM流表项索引值,绕过TCAM流表查找流程,节省了流表查找以及转发的能耗。本发明提供的插入、删除以及超时扫描方法用于协助分组转发方法,使得OpenFlow流表的查找过程完整。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
下面结合附图和实施例对本发明进一步地说明;
图1为本发明现有技术OpenFlow流表查找方案流程示意图;
图2为本发明现有技术OpenFlow流表包预测电路查找方案流程示意图;
图3为本发明现有技术OpenFlow流表低功耗分组处理方案流程示意图;
图4为本发明实施提供的一种支持QoS的OpenFlow流表节能存储架构的示意图;
图5为本发明实施提供的一种OpenFlow流表分组转发方法的流程示意图;
图6为本发明实施提供的Cuckoo缓存查找的流程示意图;
图7为本发明实施提供的Cuckoo缓存插入的流程示意图;
图8为本发明实施提供的一种OpenFlow流表插入方法的流程示意图;
图9为本发明实施提供的一种OpenFlow流表删除方法的流程示意图;
图10为本发明实施例提供的一种OpenFlow流表超时扫描方法中的TCAM超时扫描的流程示意图;
图11为本发明实施例提供的一种OpenFlow流表超时扫描方法中的SRAM超时扫描的流程示意图。
具体实施方式
本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
参照图4,本发明的一个实施例,提供了一种支持QoS的OpenFlow流表节能存储架构,节能存储架构包括三层:活跃连接缓存层、优先流/大象流层以及老鼠流层;
第一层为活跃连接缓存层,采用SRAM作为存储介质,并采用Cuckoo哈希结构缓存活跃连接和优先流/大象流层中的TCAM流表项的映射关系,用以直接定位出到达的数据分组对应的TCAM流表项,从而绕过TCAM流表查找过程;Cuckoo缓存中包含有若干个哈希桶,每个哈希桶中包含有若干个缓存项,缓存项也可称为槽,每个缓存项中包含有签名值、流表项索引值以及时间戳,其中,签名值为大象流中活跃连接的签名,活跃连接又称为精确流,签名值用于匹配数据分组;流表项索引值用于定位优先流/大象流层中的TCAM流表项;时间戳为该连接中最近一个数据分组的到达时间,用于进行超时扫描。
第二层为优先流/大象流层,采用TCAM以及DRAM作为存储介质,为保障QoS性能,TCAM首先存储优先流。同时,为提升流表查找性能,TCAM剩余空间用于存储大象流,因此这里的TCAM分为前端的优先流区域和后端的大象流区域,优先流区域用于缓存优先流的标识字段;大象流区域用于缓存大象流的标识字段;对应的,由于TCAM成功查找会返回匹配表项的偏移地址,故DRAM采用顺序结构缓存TCAM中对应的内容字段,进而使用基址变址的方法实现内容字段的快速存取。
第三层为老鼠流层,采用SRAM以及DRAM作为存储介质,其中,SRAM用于缓存老鼠流的标识字段;DRAM用于缓存老鼠流的内容字段。
进一步地,在老鼠流层中,SRAM采用元组空间搜索法进行查找,DRAM采用链式结构缓存老鼠流的内容字段,SRAM中缓存有索引指针,索引指针用于索取DRAM中缓存的内容字段。
为了支持通配查找,SRAM使用元组空间搜索法进行查找。其主要思想是,将所有流表项按各个匹配字段前缀长度的组合划分成若干个由掩码标识的元组,然后在这些元组里进行哈希查找。在DRAM中,为了便于统一管理,采用链式结构存储普通老鼠流的内容字段。同时,在SRAM中为每条老鼠流表项添加指针字段,以便于快速索取DRAM中表项内容。因此,对于到达该层的数据分组,可通过其流标识符逐个与掩码进行与运算得到掩码关键字,然后在元组中内查找对应匹配的流表项,进而从DRAM流表项中读取内容,以便进一步转发处理分组。
为了方便理解,对以下术语进行简要解释:
OpenFlow流表:OpenFlow控制器通过部署流表至OpenFlow交换机中用来指导数据平面流量的查询与转发。每个OpenFlow交换机只有一张流表,这张流表中存储着许多流表项,每一条流表项都表征了一条网络数据流和其对应的处理方法—动作表,当网络数据分组进入OpenFlow交换机中,若其符合某条表项的特征,则可以按照对应的动作进行转发。
流表项:OpenFlow流表中包含的项分别对各种流的行为本身进行定义,用来描述OpenFlow交换机如何处理各种数据包。流表项主要由3部分组成,分别是用于数据分组匹配的分组头域(Head Field),用于流表匹配情况的计数器(Counter),还有匹配表项后需要对数据分组执行的动作表。
大象流:根据网络流量局部特性,网络中占据数据量大的流量称为大象流。其具有数量少,占据流量比例高的性质。
老鼠流:根据网络流量局部特性,网络中占据数据量小的流量称为老鼠流。其具有数量多,占据流量比例低的性质。
TCAM:支持通配查找方式,且具有并行查找整个数据集合的能力,能在一个时钟周期内输出查找结果,因而常用于OpenFlow流表的存储与查找。
SRAM:访问速度快,采用地址寻址方式,支持快速的精确内容查找。
DRAM:同样采用地址寻址方式,DRAM造价低廉,容量充足,可用于存储流表的内容信息。
流规则:是由控制器建立的,用来指导转发层网络流量的处理的,其中包含匹配信息、处理动作等信息。流规则下发至交换机,交换机就会学习生成对应的流表项。
在本实施例中,为了使OpenFlow流表查找过程支持QoS并降低能耗,本实施例基于存储介质特性,采用TCAM结合SRAM、DRAM存储流表。首先,根据流表项字段功能不同,分为用于匹配的标识字段,例如匹配字段、掩码等和用于记录信息的内容字段,例如计数器、动作集等,由于内容字段与查找无关且空间开销大,故可采用价格低廉,能耗较低的DRAM单独存储;然后,根据流表项匹配字段中TOS值的不同,利用TCAM前端区域存储优先流表项标识字段。基于网络流量特性,将流分为大象流和老鼠流,采用TCAM的后端大象流区域和SRAM分别存储相应流表项标识字段。同时,设计Cuckoo缓存动态存储大象流中的当前活跃连接和对应的TCAM索引值,使得大部分数据分组命中缓存,进而根据命中的缓存项的地址找到对应的TCAM流表项,从而绕过TCAM流表查找流程,大大降低流表查找能耗开销。
为了方便理解,以下对TOS进行说明:
TOS值为服务类型标记,也为优先级标记,根据TOS值是否为0,即可判断是否为优先流和非优先流。
参照图5,本发明的另一个实施例,提供了基于上述实施例架构的一种OpenFlow分组转发方法,包括以下步骤:
当数据分组到达OpenFlow交换机后,OpenFlow交换机接收并提取数据分组中的关键字段,判断关键字段中的TOS字段是否为0。
若TOS字段不为0时,则在TCAM前端的优先流区域进行流表查找,若查找成功,则获取命中缓存项的流表项索引值,根据获取的流表项索引值读取DRAM顺序流表项的内容字段,根据该内容字段进行转发处理,同时更新对应的DRAM顺序流表项的统计信息,即内容字段,例如数据分组的数量、最近数据分组到达信息等;若查找失败,则将数据分组封装成Packet-in消息发送至SDN控制器。
若TOS字段为0时,通过Cuckoo缓存进行流表查找,若Cuckoo缓存查找成功,则首先获取命中缓存项的流表项索引值,然后根据获取的流表项索引值读取DRAM顺序流表项的内容字段,根据该内容字段进行转发处理,同时更新对应的DRAM顺序流表项的统计信息,例如数据分组的数量、最近数据分组到达信息等;若Cuckoo缓存查找失败,则在TCAM后端的大象流区域进行流表查找,若查找成功,首先获取命中缓存项的流表项索引值,然后根据获取的流表项索引值读取DRAM顺序流表项的内容字段,根据该内容字段进行转发处理,同时更新对应的DRAM顺序流表项的统计信息,例如数据分组的数量、最近数据分组到达信息等,最后判断当前连接是否进行活跃连接状态,即判断当前数据分组到达时间与该DRAM顺序流表项中上一个数据分组到达时间的间隔是否小于某个阈值,因而需要读取该DRAM顺序流表项中的时间戳,若进入活跃连接状态,则将活跃连接的相关信息插入至Cuckoo缓存中,相关信息包括连接标识符key、TCAM流表项索引值以及包到达时间等,若未进入活跃连接状态,则结束;若查找失败,则在老鼠流层的SRAM中进行流表查找,若在SRAM中查找成功,则首先读取对应的DRAM链式流表项的内容字段,将内容字段进行转发,并更新对应的DRAM链式流表项统计信息,然后判断当前流是否为大象流,若当前流为大象流,则将当前流插入至TCAM后端的大象流区域;若在SRAM中查找失败,则将数据分组封装成Packet-in消息发送至SDN控制器。
需要说明的是,在本实施例中,数据分组中的关键字段包含源/目的IP地址、源/目的端口、协议类型、TOS字段等。为了方便描述,DRAM顺序流表项是指:在优先流/大象流层中的DRAM中的流表项;DRAM链式流表项是指:在老鼠流层中的DRAM中的流表项,下述实施例均使用相同描述,不再细述。
在本实施例中,当数据分组到达OpenFlow交换机时,首先通过其TOS字段区分出优先流分组和普通流分组,对于优先流分组,直接在TCAM前端的优先流区域中快速查找,有效保证优先数据分组的流表查找转发性能,从而保障网络服务质量。当不为优先流分组时,通过Cuckoo缓存进行流表查找当前活跃连接和对应的TCAM流表项索引值,绕过TCAM流表查找流程,节省了流表查找以及转发的能耗。
参照图6,作为一种可选的实施方式,上述实施例步骤中的通过Cuckoo缓存进行流表查找,进一步包括:
根据数据分组的关键字段,获取连接标识符key,根据key生成签名值sig;
根据key使用Hash1得到桶索引index1,依次遍历index1桶中的缓存项,若缓存项中签名值与sig相等则读取缓存项中的流表项索引值,根据索引值读取TCAM流表项,判断TCAM流表项标识字段与连接标识符是否匹配,如果匹配则返回缓存项的流表项索引值;若index1桶中匹配失败,则将sig哈希运算后得到的值与index1进行异或运算,并赋值给桶索引index2。类似地,依次遍历index2桶中所有缓存项,查找对应流表项索引值。如果缓存查找失败,则返回无效索引值。
参照图7,作为一种可选的实施方式,上述实施例步骤中的将活跃连接的相关信息插入至Cuckoo缓存中,进一步包括:
根据数据分组的关键字段,获取连接标识符key、流表项索引值以及时间戳,并根据key生成签名值sig;
根据key使用Hash1计算桶索引index1,从index1桶中寻找空缓存项作为待插入缓存项位置;
否则将Hash2(sig)与index1进行异或运算,得到的值为桶索引index2,从index2桶中寻找空缓存项作为待插入缓存项位置;
否则在index1桶和index2桶中随机选择一个桶,并在桶中随机选择一个缓存项,将其中的缓存项item2踢除,将该位置作为待插入缓存项位置。被踢除的缓存项item2作为待插入缓存项进行Cuckoo缓存插入流程。若经过一定迭代次数仍然未找到空缓存项,则定位待插入缓存项中对应的TCAM流表项,获取对应的Cuckoo缓存索引表,删除其中的缓存项信息并删除待插入缓存项。
将连接签名值、流表项索引值和时间戳写入待插入空缓存项中,同时定位对应的TCAM流表项,获取对应的Cuckoo缓存索引表,加入当前缓存项信息。
参照图5,进一步地,上述实施例步骤中的将当前流插入至TCAM后端的大象流区域,进一步包括:
判断TCAM后端的大象流区域是否存在空流表项,若存在空流表项,则获取对应的空流表项索引值,删除当前流的SRAM流表项和对应的DRAM链式流表项,并将当前流的标识字段和内容字段分别插入至空流表项和对应的DRAM顺序空流表项中;若不存在空流表项,则定位数据分组到达TCAM后端的大象流区域中最少的流表项,读取对应的Cuckoo缓存索引表,重置对应的所有Cuckoo缓存项,交换定位的流表项中和查找成功的SRAM流表项中的标识字段,同时交换对应DRAM顺序流表项中和DRAM链式流表项中的内容字段。
参照图8,本发明的另一个实施例,提供了基于上述实施例架构的一种OpenFlow流表插入方法,包括以下步骤:
当OpenFlow交换机接收到SDN控制器下发的带ADD命令的flow_mod消息后,提取flow_mod消息中的流规则信息m,m中包含有TOS字段;这里的m中包含有匹配字段、掩码以及动作集等,匹配字段中包含TOS字段。
若TOS字段为0时,将m的标识字段和内容字段分别写入至老鼠流层中新建的SRAM流表项和新建的DRAM链式流表项中。
若TOS字段不为0时,判断TCAM前端的优先流区域是否存在空流表项,若存在空流表项,则将m的标识字段和内容字段分别写入至空流表项中以及对应的DRAM顺序流表项中;若不存在空流表项,则首先定位数据分组到达TCAM后端的大象流区域最少的流表项f,读取对应的Cuckoo缓存索引表,重置对应的所有Cuckoo缓存项,其次读取并重置与f对应的DRAM顺序流表项,将读取的DRAM顺序流表项的信息插入至新建的DRAM链式流表项中,然后读取并重置f,将f中的信息插入至新建的SRAM流表项中,最后将大象流区域的尾流表项中的信息写入至f中,获取尾流表项的流表项索引值,将m的标识字段和内容字段分别写入至尾流表项和对应的DRAM顺序流表项中。
参照图9,本发明的另一个实施例,提供了基于上述实施例架构的一种OpenFlow流表删除方法,包括以下步骤:
当OpenFlow交换机接收到SDN控制器下发的带DELETE命令的flow_mod消息后,提取flow_mod消息中的流规则信息m,m中包含有TOS字段;这里的m中包含匹配字段和TOS字段等。
若TOS字段为0时,在TCAM后端的大象流区域进行流表查找,若在大象流区域流表中查找成功,则获取命中的流表项索引值,即根据查找到的流表项索引值读取DRAM顺序流表项和对应的Cuckoo缓存索引表,重置对应的所有Cuckoo缓存项,然后将TCAM后端的大象流区域的尾流表项中的标识字段以及对应的DRAM顺序流表项的内容字段写入至需要删除的流表项中,即查找出的TCAM流表项以及对应的DRAM顺序流表项中,重置尾流表项和对应的DRAM顺序流表项,最后,读取Cuckoo缓存索引表并更新对应的所有Cuckoo缓存项;若在大象流区域流表中查找失败,则在老鼠流层中的SRAM进行流表查找,若在SRAM中查找成功,则删除查找到的SRAM流表项中的标识字段以及对应的DRAM链式流表项中的内容字段;若在SRAM中查找失败,则报告流规则删除失败;
若TOS字段不为0时,则在TCAM前端的优先流区域进行流表查找,若查找成功,则获取命中的流表项索引值,将优先流区域的尾流表项中的标识字段和对应的DRAM顺序流表项中的内容字段写入至需要删除的流表项位置,即查找出的TCAM流表项和对应的DRAM顺序流表项中,并且重置尾流表项和对应的DRAM顺序流表项;若在优先流区域流表中查找失败,则报告流规则删除失败。
参照图10和图11,本发明的另一个实施例,提供了基于上述实施例架构的一种OpenFlow流表超时扫描方法,包括TCAM超时扫描以及SRAM超时扫描;
TCAM超时扫描包括:依次遍历TCAM前端的优先流区域的流表项;读取超时流表项,重置超时流表项中标识字段和对应的DRAM顺序流表项中内容字段,将优先流区域的尾流表项中的标识字段和对应的DRAM顺序流表项中的内容字段分别写入至被重置的超时流表项中和对应的DRAM顺序流表项中;
依次遍历TCAM后端的大象流区域的流表项;读取超时流表项,重置超时流表项中标识字段和对应的DRAM顺序流表项中内容字段,读取数据分组到达SRAM最多的流表项的标识字段和对应的DRAM链式流表项的内容字段,写入至被重置的超时流表项中和对应的DRAM顺序流表项中,删除数据分组到达SRAM最多的流表项和对应的DRAM链式流表项;
SRAM超时扫描包括:依次遍历SRAM流表项,若流表项不活跃,则删除不活跃的流表项和对应的DRAM链式流表项。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (9)
1.一种支持QoS的OpenFlow流表节能存储架构,其特征在于,所述节能存储架构包括三层:优先流/大象流层、老鼠流层以及活跃连接缓存层;
所述优先流/大象流层采用TCAM以及第一DRAM作为存储介质,TCAM分为前端的优先流区域和后端的大象流区域,所述优先流区域用于缓存优先流的标识字段;所述大象流区域用于缓存大象流的标识字段;第一DRAM与TCAM相对应,并采用顺序结构缓存TCAM中对应的内容字段;
所述老鼠流层采用SRAM以及第二DRAM作为存储介质,其中,SRAM用于缓存老鼠流的标识字段;第二DRAM用于缓存老鼠流的内容字段;
所述活跃连接缓存层采用SRAM作为存储介质,并采用Cuckoo哈希结构缓存大象流中的活跃连接和所述大象流区域中流表项的映射关系,Cuckoo缓存中包含有若干个哈希桶,每个所述哈希桶中包含有若干个缓存项,每个所述缓存项中包含有签名值、流表项索引值以及时间戳。
2.根据权利要求1所述的支持QoS的OpenFlow流表节能存储架构,其特征在于:在所述老鼠流层中,SRAM采用元组空间搜索法进行查找,第二DRAM采用链式结构缓存老鼠流的内容字段,SRAM中缓存有索引指针,所述索引指针用于索取第二DRAM中缓存的内容字段。
3.一种基于权利要求1或2任一所述的支持QoS的OpenFlow流表节能存储架构的OpenFlow流表分组转发方法,其特征在于,包括以下步骤:
当数据分组到达OpenFlow交换机后,OpenFlow交换机接收并提取数据分组中的关键字段,判断关键字段中的TOS字段是否为0;
若TOS字段不为0时,则在优先流区域进行流表查找,若查找成功,则获取命中缓存项的流表项索引值,根据获取的流表项索引值读取第一DRAM流表项的内容字段并进行转发处理;若查找失败,则将数据分组封装成Packet-in消息发送至SDN控制器;
若TOS字段为0时,通过Cuckoo缓存进行流表查找,若Cuckoo缓存查找成功,则首先获取命中缓存项的流表项索引值,然后根据获取的流表项索引值读取第一DRAM流表项的内容字段并进行转发处理;若Cuckoo缓存查找失败,则在大象流区域进行流表查找,若查找成功,首先获取命中缓存项的流表项索引值,然后根据获取的流表项索引值读取第一DRAM流表项的内容字段并进行转发处理,最后判断当前连接是否进入活跃连接状态,若进入活跃连接状态,则将活跃连接的相关信息插入至Cuckoo缓存中,若未进入活跃连接状态,则结束;若查找失败,则在所述老鼠流层的SRAM中进行流表查找,若在SRAM中查找成功,则首先读取对应的第二DRAM流表项的内容字段并进行转发处理,然后判断当前流是否为大象流,若当前流为大象流,则将当前流插入至大象流区域;若在SRAM中查找失败,则将数据分组封装成Packet-in消息发送至SDN控制器。
4.根据权利要求3所述的OpenFlow流表分组转发方法,其特征在于,所述通过Cuckoo缓存进行流表查找,进一步包括:
根据数据分组的关键字段,获取连接标识符key,根据key生成签名值sig;
根据key使用Hash得到桶索引index,依次遍历index桶中的缓存项,若缓存项中的签名值与sig匹配成功,则获取缓存项中的流表项索引值,根据获取的流表项索引值读取TCAM流表项,判断TCAM流表项中的标识字段与连接标识符key是否匹配,若匹配成功,则返回缓存项中流表项索引值;若匹配失败,则返回无效索引值。
5.根据权利要求3所述的OpenFlow流表分组转发方法,其特征在于,所述将活跃连接的相关信息插入至Cuckoo缓存中,进一步包括:
根据数据分组的关键字段,获取连接标识符key、流表项索引值以及时间戳,并根据key生成签名值sig;
根据key使用Hash计算桶索引index,从index桶中寻找空缓存项,作为待插入位置;若未寻找到空缓存项,则随机选取一个非空缓存项并剔除内部字段,作为待插入位置;
将签名值、流表项索引值和时间戳写入待插入位置,同时定位对应的TCAM流表项,获取对应的Cuckoo缓存索引表,并加入当前缓存项信息。
6.根据权利要求3所述的OpenFlow流表分组转发方法,其特征在于,所述将当前流插入至大象流区域,进一步包括:
判断大象流区域是否存在空流表项,若存在空流表项,则获取对应的空流表项索引值,删除所述当前流的SRAM流表项和对应的第二DRAM流表项,并将所述当前流的标识字段和内容字段分别插入至空流表项和对应的第一DRAM空流表项中;若不存在空流表项,则定位数据分组到达大象流区域中最少的流表项,读取对应的Cuckoo缓存索引表,重置对应的所有Cuckoo缓存项,并将定位的流表项中的标识字段和内容字段与当前流的标识字段和内容字段一一交换。
7.一种基于权利要求1或2任一所述的支持QoS的OpenFlow流表节能存储架构的OpenFlow流表插入方法,其特征在于,包括以下步骤:
当OpenFlow交换机接收到SDN控制器下发的带ADD命令的flow_mod消息后,提取flow_mod消息中的流规则信息m,m中包含有TOS字段;
若TOS字段为0时,将m的标识字段和内容字段分别写入至所述老鼠流层中新建的SRAM流表项和新建的第二DRAM流表项中;
若TOS字段不为0时,判断优先流区域是否存在空流表项,若存在空流表项,则将m的标识字段和内容字段分别写入至空流表项中以及对应的第一DRAM流表项中;若不存在空流表项,则首先定位数据分组到达大象流区域最少的流表项f,读取对应的Cuckoo缓存索引表,重置其对应的所有Cuckoo缓存项,读取并重置与f对应的第一DRAM流表项,将读取的第一DRAM流表项的内容字段插入至新建的第二DRAM流表项中,然后读取并重置f,将f中的标识字段插入至新建的SRAM流表项中,最后将大象流区域的尾流表项中的标识字段写入至f中,获取大象流区域的尾流表项的流表项索引值,将m的标识字段和内容字段分别写入至大象流区域的尾流表项和对应的第一DRAM流表项中。
8.一种基于权利要求1或2任一所述的支持QoS的OpenFlow流表节能存储架构的OpenFlow流表删除方法,其特征在于,包括以下步骤:
当OpenFlow交换机接收到SDN控制器下发的带DELETE命令的flow_mod消息后,提取flow_mod消息中的流规则信息m,m中包含有TOS字段;
若TOS字段为0时,在大象流区域进行流表查找,若在大象流区域流表中查找成功,则获取命中的流表项索引值,根据命中的流表项索引值读取第一DRAM流表项和对应的Cuckoo缓存索引表,重置对应的所有Cuckoo缓存项,将大象流区域的尾流表项中的标识字段和对应的第一DRAM流表项中的内容字段分别写入至查找出的TCAM流表项以及对应的第一DRAM流表项中,重置大象流区域的尾流表项和对应的第一DRAM流表项,读取Cuckoo缓存索引表并更新对应的所有Cuckoo缓存项;若在大象流区域流表中查找失败,则在所述老鼠流层的SRAM中进行流表查找,若在SRAM中查找成功,则读取命中的流表项,并删除查找到的SRAM流表项中的标识字段以及对应的第二DRAM流表项中的内容字段;若在SRAM中查找失败,则报告流规则删除失败;
若TOS字段不为0时,则在优先流区域进行流表查找,若查找成功,则获取命中的流表项,将优先流区域的尾流表项中的标识字段和对应的第一DRAM流表项中的内容字段分别写入至查找出的TCAM流表项和对应的第一DRAM流表项中,并重置优先流区域的尾流表项和对应的第一DRAM流表项;若查找失败,则报告流规则删除失败。
9.一种基于权利要求1或2任一所述的支持QoS的OpenFlow流表节能存储架构的OpenFlow流表超时扫描方法,其特征在于,所述超时扫描方法包括TCAM超时扫描以及SRAM超时扫描;
所述TCAM超时扫描包括:
依次遍历优先流区域的流表项,读取超时流表项,重置超时流表项中的标识字段和对应的第一DRAM流表项中的内容字段,将优先流区域的尾流表项中的标识字段和对应的第一DRAM流表项中的内容字段写入被重置后的超时流表项和对应的第一DRAM流表项中;
依次遍历大象流区域的流表项,读取超时流表项的Cuckoo缓存项索引表,重置对应的所有Cuckoo缓存项,重置超时流表项中的标识字段和对应的第一DRAM流表项中的内容字段,读取数据分组到达SRAM最多的流表项中的标识字段和对应的第二DRAM流表项的内容字段,并写入被重置后的超时流表项和对应的第一DRAM流表项中,删除读取的SRAM流表项和对应的第二DRAM流表项;
所述SRAM超时扫描包括:
依次遍历SRAM流表项,若流表项不活跃,则删除不活跃的流表项和对应的第二DRAM流表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911037014.XA CN110808910B (zh) | 2019-10-29 | 2019-10-29 | 一种支持QoS的OpenFlow流表节能存储架构及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911037014.XA CN110808910B (zh) | 2019-10-29 | 2019-10-29 | 一种支持QoS的OpenFlow流表节能存储架构及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110808910A true CN110808910A (zh) | 2020-02-18 |
CN110808910B CN110808910B (zh) | 2021-09-21 |
Family
ID=69489423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911037014.XA Active CN110808910B (zh) | 2019-10-29 | 2019-10-29 | 一种支持QoS的OpenFlow流表节能存储架构及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110808910B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541617A (zh) * | 2020-04-17 | 2020-08-14 | 网络通信与安全紫金山实验室 | 一种用于高速大规模并发数据流的数据流表处理方法及装置 |
CN111585903A (zh) * | 2020-04-13 | 2020-08-25 | 华南理工大学 | 一种OpenFlow流表项自适应超时的方法及系统 |
CN111917738A (zh) * | 2020-07-14 | 2020-11-10 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 可支持网络高层协议的处理方法及系统 |
CN112260948A (zh) * | 2020-10-16 | 2021-01-22 | 中国科学院声学研究所 | 一种基于批量更新的多核sdn交换机流表管理方法及系统 |
CN112486994A (zh) * | 2020-11-30 | 2021-03-12 | 武汉大学 | 一种基于日志结构合并树的键值存储的数据快速读取方法 |
CN112511438A (zh) * | 2020-11-19 | 2021-03-16 | 锐捷网络股份有限公司 | 一种利用流表转发报文的方法、装置及计算机设备 |
CN113542362A (zh) * | 2021-06-21 | 2021-10-22 | 网络通信与安全紫金山实验室 | 一种基于可编程asic芯片的负载均衡的流量卸载方法及装置 |
CN113709044A (zh) * | 2020-05-20 | 2021-11-26 | 阿里巴巴集团控股有限公司 | 数据转发方法、装置、电子设备和存储介质 |
CN114257461A (zh) * | 2022-03-01 | 2022-03-29 | 四川省商投信息技术有限责任公司 | 一种sdn交换机流表控制方法及装置 |
WO2022152230A1 (zh) * | 2021-01-18 | 2022-07-21 | 阿里巴巴集团控股有限公司 | 信息流识别方法、网络芯片及网络设备 |
CN115914011A (zh) * | 2021-12-28 | 2023-04-04 | 长沙理工大学 | 一种支持软件定义的top-k流弹性测量方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102970150A (zh) * | 2011-09-01 | 2013-03-13 | 日电(中国)有限公司 | 用于数据中心的可扩展组播转发方法和设备 |
CN104252504A (zh) * | 2013-06-29 | 2014-12-31 | 华为技术有限公司 | 数据查询方法、设备和系统 |
US20160344624A1 (en) * | 2015-05-19 | 2016-11-24 | International Business Machines Corporation | Management of unreachable openflow rules |
CN108337172A (zh) * | 2018-01-30 | 2018-07-27 | 长沙理工大学 | 大规模OpenFlow流表分级存储架构与加速查找方法 |
CN109921996A (zh) * | 2018-12-29 | 2019-06-21 | 长沙理工大学 | 一种高性能的OpenFlow虚拟流表查找方法 |
-
2019
- 2019-10-29 CN CN201911037014.XA patent/CN110808910B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102970150A (zh) * | 2011-09-01 | 2013-03-13 | 日电(中国)有限公司 | 用于数据中心的可扩展组播转发方法和设备 |
CN104252504A (zh) * | 2013-06-29 | 2014-12-31 | 华为技术有限公司 | 数据查询方法、设备和系统 |
US20160344624A1 (en) * | 2015-05-19 | 2016-11-24 | International Business Machines Corporation | Management of unreachable openflow rules |
CN108337172A (zh) * | 2018-01-30 | 2018-07-27 | 长沙理工大学 | 大规模OpenFlow流表分级存储架构与加速查找方法 |
CN109921996A (zh) * | 2018-12-29 | 2019-06-21 | 长沙理工大学 | 一种高性能的OpenFlow虚拟流表查找方法 |
Non-Patent Citations (2)
Title |
---|
LI CHUN-QIANG; DONG YONG-QIANG; WU GUO-XIN: "A Cost-Effective Lookup Scheme Combining Hash Table With TCAM for OpenFlow", 《 2018 INTERNATIONAL CONFERENCE ON NETWORK INFRASTRUCTURE AND DIGITAL CONTENT (IC-NIDC)》 * |
姜腊林,张亚南,熊兵: "一种高效的 OpenFlow 流表拆分压缩算法", 《小型微型计算机系统》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585903A (zh) * | 2020-04-13 | 2020-08-25 | 华南理工大学 | 一种OpenFlow流表项自适应超时的方法及系统 |
CN111585903B (zh) * | 2020-04-13 | 2021-09-21 | 华南理工大学 | 一种OpenFlow流表项自适应超时的方法及系统 |
CN111541617A (zh) * | 2020-04-17 | 2020-08-14 | 网络通信与安全紫金山实验室 | 一种用于高速大规模并发数据流的数据流表处理方法及装置 |
CN111541617B (zh) * | 2020-04-17 | 2021-11-02 | 网络通信与安全紫金山实验室 | 一种用于高速大规模并发数据流的数据流表处理方法及装置 |
CN113709044A (zh) * | 2020-05-20 | 2021-11-26 | 阿里巴巴集团控股有限公司 | 数据转发方法、装置、电子设备和存储介质 |
CN111917738A (zh) * | 2020-07-14 | 2020-11-10 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 可支持网络高层协议的处理方法及系统 |
CN111917738B (zh) * | 2020-07-14 | 2022-03-18 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 可支持网络高层协议的处理方法及系统 |
CN112260948A (zh) * | 2020-10-16 | 2021-01-22 | 中国科学院声学研究所 | 一种基于批量更新的多核sdn交换机流表管理方法及系统 |
CN112511438A (zh) * | 2020-11-19 | 2021-03-16 | 锐捷网络股份有限公司 | 一种利用流表转发报文的方法、装置及计算机设备 |
CN112486994A (zh) * | 2020-11-30 | 2021-03-12 | 武汉大学 | 一种基于日志结构合并树的键值存储的数据快速读取方法 |
CN112486994B (zh) * | 2020-11-30 | 2024-04-19 | 武汉大学 | 一种基于日志结构合并树的键值存储的数据快速读取方法 |
WO2022152230A1 (zh) * | 2021-01-18 | 2022-07-21 | 阿里巴巴集团控股有限公司 | 信息流识别方法、网络芯片及网络设备 |
CN113542362A (zh) * | 2021-06-21 | 2021-10-22 | 网络通信与安全紫金山实验室 | 一种基于可编程asic芯片的负载均衡的流量卸载方法及装置 |
CN113542362B (zh) * | 2021-06-21 | 2024-04-26 | 网络通信与安全紫金山实验室 | 一种基于可编程asic芯片的负载均衡的流量卸载方法及装置 |
CN115914011A (zh) * | 2021-12-28 | 2023-04-04 | 长沙理工大学 | 一种支持软件定义的top-k流弹性测量方法 |
CN114257461A (zh) * | 2022-03-01 | 2022-03-29 | 四川省商投信息技术有限责任公司 | 一种sdn交换机流表控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110808910B (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110808910B (zh) | 一种支持QoS的OpenFlow流表节能存储架构及其方法 | |
US11811660B2 (en) | Flow classification apparatus, methods, and systems | |
CN108337172B (zh) | 大规模OpenFlow流表加速查找方法 | |
CN109921996B (zh) | 一种高性能的OpenFlow虚拟流表查找方法 | |
CN111966284B (zh) | 一种OpenFlow大规模流表弹性节能与高效查找系统及方法 | |
US6570877B1 (en) | Search engine for forwarding table content addressable memory | |
US6842791B2 (en) | Method and apparatus for memory efficient fast VLAN lookups and inserts in hardware-based packet switches | |
US7630373B2 (en) | Packet transfer apparatus | |
CN101350771B (zh) | 三态内容可寻址存储器条目免排序存储方法及其系统 | |
CN111131084B (zh) | 一种QoS感知的OpenFlow流表查找方法 | |
CN100550847C (zh) | 一种解决Hash冲突的方法及装置 | |
US9871727B2 (en) | Routing lookup method and device and method for constructing B-tree structure | |
CN111131029B (zh) | 一种支持规则依赖的高能效OpenFlow流表查找方法 | |
CN110912826B (zh) | 利用acl扩充ipfix表项的方法及装置 | |
US11652744B1 (en) | Multi-stage prefix matching enhancements | |
CN107248939B (zh) | 基于hash存储器的网络流高速关联方法 | |
CN111200542B (zh) | 一种基于确定性替换策略的网络流量管理方法及系统 | |
CN113810298B (zh) | 一种支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法 | |
CN112416820B (zh) | 一种数据包分类存储方法及系统 | |
CN114640641B (zh) | 一种流量感知的OpenFlow流表弹性节能查找方法 | |
CN114024885B (zh) | 一种基于子网掩码划分的ip路由表管理系统及方法 | |
CN116483739B (zh) | 基于hash计算的KV对快速写架构 | |
CN111131197B (zh) | 一种过滤策略管理系统及其方法 | |
CN116668369A (zh) | 一种流表处理方法、装置、设备及存储介质 | |
Siyu et al. | An Efficient Packet Classification Method Based on Extended Bloom Filter and Cuckoo Hash |
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 |