一种支持QoS的OpenFlow流表节能存储架构及其应用制造技术

技术编号:23365123 阅读:21 留言:0更新日期:2020-02-18 18:16
本发明专利技术提供了一种支持QoS的OpenFlow流表节能存储架构及其应用,本发明专利技术架构包括三层:优先流/大象流层、老鼠流层以及活跃连接缓存层,优先流/大象流层采用TCAM以及DRAM作为存储介质,老鼠流层采用SRAM以及DRAM作为存储介质,活跃连接缓存层采用SRAM作为存储介质,采用Cuckoo哈希结构缓存活跃连接和TCAM中流表项的映射关系。本架构采用TCAM优先存储优先流表项的标识字段,实现优先数据分组的快速流表查找,从而保障了网络服务质量。同时设计Cuckoo缓存动态存储大象流中的当前活跃连接和对应的TCAM流表项索引值,使得大部分数据分组命中缓存,进而根据命中的缓存项的地址找到对应的流表项,从而绕过TCAM流表查找流程,大大降低流表查找能耗开销。

An energy-saving storage architecture of openflow flow flow table supporting QoS and its application

【技术实现步骤摘要】
一种支持QoS的OpenFlow流表节能存储架构及其应用
本专利技术涉及OpenFlow流表领域,特别是涉及一种支持QoS的OpenFlow流表节能存储架构及其应用。
技术介绍
为了满足多媒体应用和云用户对网络传输质量的不同要求,提高网络资源利用率,保障服务质量(QualityofService,QoS)一直都是网络领域的热点问题。软件定义网络(SoftwareDefinedNetworking,SDN)作为一种新型网络架构,将控制逻辑从数据转发设备中分离,形成了逻辑上集中的控制平面,进而获得网络全局视图和状态信息。因此,相比于传统网络,SDN对QoS的管理更加简单灵活。在SDN网络中,控制平面借助全局网络信息,根据上层应用为不同的网络流指定特定的转发决策,并以流规则的形式下发交由数据平面的SDN交换机执行转发操作,从而实现流量的QoS管理。目前,OpenFlow交换机通常采用三态内容可寻址存储器(TernaryContentAddressableMemory,TCAM)存储流表。然而,TCAM成本高、集成度低、容量有限,难以满足大规模流表的存储空间需求。当网络中出现大量并发流时,TCAM流表会被完全填满,将导致OpenFlow交换机发生流表溢出问题。此时,需要应用替换策略,剔除TCAM中的一些流表项,以容纳新的流表项。然而,如果被剔除的流表项用于转发优先流的数据包,那么将会导致控制器重新生成并安装对应的流规则,进而影响优先流的分组转发性能。因此,需要合理管理不同服务类型(TOS)优先级的流表项,以保障网络服务质量。TCAM具有并行查找整个数据集的能力,能够实现OpenFlow流表的快速查找,但也产生了巨大的能耗,其每比特消耗的能量大约是静态随机存储器(staticrandomaccessmemory,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流表项的内容字段并进行转发处理;若查找本文档来自技高网
...

【技术保护点】
1.一种支持QoS的OpenFlow流表节能存储架构,其特征在于,所述节能存储架构包括三层:优先流/大象流层、老鼠流层以及活跃连接缓存层;/n所述优先流/大象流层采用TCAM以及第一DRAM作为存储介质,TCAM分为前端的优先流区域和后端的大象流区域,所述优先流区域用于缓存优先流的标识字段;所述大象流区域用于缓存大象流的标识字段;第一DRAM与TCAM相对应,并采用顺序结构缓存TCAM中对应的内容字段;/n所述老鼠流层采用SRAM以及第二DRAM作为存储介质,其中,SRAM用于缓存老鼠流的标识字段;第二DRAM用于缓存老鼠流的内容字段;/n所述活跃连接缓存层采用SRAM作为存储介质,并采用Cuckoo哈希结构缓存大象流中的活跃连接和所述大象流区域中流表项的映射关系,Cuckoo缓存中包含有若干个哈希桶,每个所述哈希桶中包含有若干个缓存项,每个所述缓存项中包含有签名值、流表项索引值以及时间戳。/n

【技术特征摘要】
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流表分组转发方法,其特征在于,所述将当前流插入至大象流区域,进一步包括:
判断大象流区域是否存在空流表项,若存在空流表项,则获取对应的空流表...

【专利技术属性】
技术研发人员:熊兵罗争邬仁庚赵锦元曾振国
申请(专利权)人:长沙理工大学
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1