System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种SDN交换机的TCAM流表节能缓存方法技术_技高网

一种SDN交换机的TCAM流表节能缓存方法技术

技术编号:39949516 阅读:9 留言:0更新日期:2024-01-08 23:11
本发明专利技术设计了一种SDN交换机的TCAM流表节能缓存方法,其根据活跃精确流数量的动态变化,适应性调整判定活跃精确流的分组到达间隔阈值,以始终存储网络中活跃度高的精确流,从而稳定保持高缓存命中率。进一步,针对现在节能缓存容易发生冲突导致缓存利用不充分的问题,本专利提出了一种基于相邻跳和同向踢操作的新型哈希算法FelisCatus,以解决哈希冲突问题。该算法将每条缓存流的哈希映射位置及其相邻两个哈希位置作为候选位置,并设置标志位记录其偏移量。当插入一条新流时,若三个候选位置均已满,则通过同向踢操作找出一个空位进行存放,或一个不活跃的精确流予以替换。当某个流到达一个分组时,直接在其映射桶和相邻桶中查找即可,可有效保证流表查找性能。

【技术实现步骤摘要】

本专利技术涉及软件定义网络中流表节能查找领域,更具体地说,涉及一种sdn交换机的tcam流表节能缓存方法。


技术介绍

1、软件定义网络(software defined networking,sdn)作为一种数据控制分离、软件可编程的新型网络体系架构,能有效解决传统网络流量控制难、设备繁杂、无法灵活调控等问题。sdn将传统网络设备中的控制功能统一集成到sdn控制器,并由控制器根据全局网络视图统一制定流规则,通过南向接口协议下发并安装到数据平面的交换机中,以指导分组转发。目前,sdn控制器与交换机之间通信的主流南向接口协议是openflow协议,它提取传统网络各层传输协议的匹配字段以组合成sdn流表项,进而构成sdn流表。openflow利用通配符掩码的方式,一条sdn流表项可处理多条网络流,并根据优先级决定最终匹配结果。为支持通配流表项的快速查找,sdn交换机常使用tcam存储流表。

2、图1展示了主流的sdn流表的查找过程,其仅通过tcam流表转发处理分组,工作原理如下:

3、(1)当sdn交换机接收到某一个数据包pi时,首先对包头进行解析,提取出首部中的重要字段(如源/目的ip地址、源/目的端口、协议类型等),并计算其对应的流标识符fid;(2)利用流标识符fid查找sdn流表,即并行匹配tcam存储器中的所有流表项;(3)若流表查找成功,则返回优先级最高的匹配表项,然后执行相应的动作集。(4)若流表查找失败,则数据包头信息将被封装成packet-in消息发送给sdn控制器,控制器根据全局网络视图生成新的流规则并下发至sdn交换机,添加到对应流表中,用于转发处理具有相同流标识符的数据包。

4、上述方案直接通过tcam流表转发处理所有分组,可实现网络流的快速匹配。然而,tcam查找能耗大,且当网络流量激增时,流表规模迅速膨胀,分组到达频率急剧升高,将导致tcam流表查找能耗过高。因此,最有前景的方法是设计节能缓存或过滤器预先处理部分网络分组,降低tcam流表查找频率,从而达到降低能耗的目的,具体如下:

5、如图2所示的【方案一】是一种基于cuckoo缓存的sdn节能存储架构。该方案根据分组到达间隔识别tcam流表包含的所有活跃精确流,然后集中存入sram缓存。考虑到网络流通常由多个协议字段共同标识,每个sram缓存项仅存储活跃精确流的标识符签名作为关键字,以节省存储空间,同时方便快速哈希查找。此外,针对tcam容量有限的问题,该架构将tcam流表项的内容字段拆分出来,采用容量充足的dram单独存储,以容纳更多流表项,从而有效缓解tcam资源紧张问题。

6、方案一的流表节能查找过程如下:(1)当数据分组到达sdn交换机时,首先提取匹配字段,并生成分组签名,然后查找sram缓存;(2)若分组签名与某个缓存项的流签名匹配,则根据其中的流表项索引值定位对应的流表项,然后按照其中的动作集进行转发处理;(3)若缓存匹配失败,则需进一步查找tcam匹配子流表,并根据对应的dram内容子流表进行转发处理。

7、如图3所示的【方案二】是一种基于tsa-bf(ternary segment aging bloomfilter)的sdn节能存储架构。该方案首先将三元前缀规则编码为唯一可解码的二进制码字,降低了三态规则存储开销。进一步,设计具有分段缓存和自动扩容功能的布鲁姆过滤器,实现了过滤器中新流信息的动态更新。当tsa-bf检测到所接收的网络分组属于一条新流时,将直接请求控制器下发新的流规则,从而减少冗余的tcam流表查找,降低sdn流表查找能耗。

8、方案二的流表节能查找过程如下:(1)当数据分组到达sdn交换机时,首先提取二进制分组头部重要信息进行预处理,将之转化为唯一可解码的码字;(2)然后根据码字查找tsa-bf过滤器,若过滤失败,则继续查找tcam流表;(3)若tcam流表查找成功,则执行相应的动作集以完成分组转发;(4)若tsa-bf过滤成功,说明该分组属于一条新流,tcam流表中并不存在可以与之匹配的表项,此时无需再查找tcam,直接将数据分组封装成packet-in消息交由控制器处理即可。。

9、但上述已有的流表节能查找方法分别存在如下缺点:

10、【方案一】通过sram缓存存储最近到达的流,使后续的大多数分组绕过tcam流表直接进行转发,从而降低流表查找能耗。然而,该方案采用cuckoo哈希算法,在插入失败时需要重新哈希寻找空位,但可能发生新的哈希冲突,从而需要反复执行踢操作。这将带来繁重的哈希计算开销,而且踢操作可能陷入循环往复的状态。此外,该方案采用固定的分组到达间隔阈值,在网络流量波动变化的情况下,难以稳定取得良好的节能效果。在活跃流精确流数量超出缓存容量时,无法适应性缓存网络中最活跃的精确流,导致缓存命中率不理想,尚有提升空间;在活跃流精确流数量少于缓存容量时,缓存中将出现很多空位,导致缓存命中率和利用率都偏低。

11、【方案二】通过tsa-bf过滤器检测网络中的新流,以减少冗余的tcam流表查找。然而,在sdn流表查找过程中,一条网络流往往只有第一个分组会查找失败,经控制器下发新规则后,后续数据分组都将成功匹配。因此,tsa-bf只能处理网络流的第一个分组,大部分网络分组仍需查找tcam,节能效果并不明显。

12、基于以上,本专利技术提供一种用于sdn交换机的tcam流表高效节能缓存方法


技术实现思路

1、针对现有节能缓存的插入开销繁重且难以适应网络流量抖动的问题,本专利设计了一种高效弹性的tcam流表节能缓存,以节省sdn交换机的流表查找能耗。该缓存通过动态调节分组到达间隔阈值,始终缓存网络中最活跃的精确流,从而不管网络流量如何波动变化,稳定保持高缓存命中率的效果。同时,该缓存为每条新插入流提供多个候选位置,并通过同向相邻踢操作寻找空位,可有效解决哈希冲突问题,从而提高缓存利用率。在此基础上,结合不同存储介质特性,将sdn流表的匹配字段与内容字段进行区分存储,以缓解tcam存储压力。根据上述设计思路,本专利设计了一种基于高效弹性节能缓存的sdn流表节能存储架构

2、为了达到上述目的,本专利技术采用的技术方案为:

3、本专利技术设计一种几乎无冲突的新型哈希算法的高效弹性节能缓存,主要包括数据分组的流表查找方法和高效弹性节能缓存的插入方法。

4、所述数据分组的流表查找方法包括以下步骤:

5、(1)当sdn交换机接收到一个网络分组后,首先解析其各层协议首部,以提取流关键字段(如:源/目的ip地址、源/目的端口和协议类型等),进而生成流关键字key,并计算流签名sig。

6、(2)通过哈希映射到节能缓存中的某个哈希桶,并根据流签名sig并行查找映射哈希桶和两个相邻哈希桶。若成功找到一个缓存项,则根据其中的表项索引idx,直接定位对应的内容子表项,进而执行其中的动作集,同时更新缓存流的时间戳。

7、(3)若缓存查找失败,则本文档来自技高网...

【技术保护点】

1.一种SDN交换机的TCAM流表节能缓存方法,该方法根据活跃精确流数量的动态变化,适应性调整判定活跃精确流的分组到达间隔阈值,缓存始终存储网络中活跃度高的精确流,从而稳定保持高缓存命中率;进一步,对于到达SDN交换机的绝大多数分组,该方法将查找命中节能缓存,并根据命中缓存项中存储的流表项索引值定位对应的流表项,进而根据其中的动作集完成分组转发,从而显著降低TCAM流表查找能耗。

2.根据权利要求1所述的TCAM流表节能缓存方法,其特征在于,所述节能缓存适应性调整分组到达间隔阈值,以始终存储网络中活跃度高的精确流;当网络中的活跃流数量激增时,缓存无法容纳所有活跃流,往往只能随机存储部分活跃流,导致缓存命中率明显降低;此时,减小分组到达间隔阈值,使活跃流数量与缓存容量相适配;这样,缓存中存储的是网络中最活跃的精确流,从而能够取得高缓存命中率。相反,当网络中活跃流数量减少时,缓存中将出现不少空表项;此时,增大分组到达间隔阈值,使活跃流数量接近缓存容量;这样,缓存将得到充分的利用,从而维持高缓存命中率。

3.根据权利要求1所述的TCAM流表节能缓存方法,其特征在于,本专利技术提出了一种基于相邻跳和同向踢操作的新型哈希算法FelisCatus,以解决哈希冲突问题;该算法将每条缓存流的哈希映射位置及其相邻两个哈希位置作为候选位置,并为每个缓存项设置标志位记录其偏移量;当插入一条新流时,若三个候选位置均已满,则通过同向踢操作为其找出一个空位进行存放,或一个不活跃的精确流予以替换;当某个流到达一个分组时,直接在其映射桶和相邻桶中查找即可,可有效保证流表查找性能。

4.根据权利要求1所述的TCAM流表节能缓存方法,其特征在于,将活跃精确流存入节能缓存,进一步包括:

5.根据权利要求1所述的TCAM流表节能缓存方法,其特征在于,SDN交换机查找操作,具体包括以下步骤:

6.根据权利要求1所述的TCAM流表节能缓存方法,其特征在于,SDN流表超时扫描操作,具体包括以下步骤:

7.根据权利要求1所述的TCAM流表节能缓存方法,其特征在于,将删除流表项对应的缓存项从节能缓存中删除,具体包括以下步骤:

...

【技术特征摘要】

1.一种sdn交换机的tcam流表节能缓存方法,该方法根据活跃精确流数量的动态变化,适应性调整判定活跃精确流的分组到达间隔阈值,缓存始终存储网络中活跃度高的精确流,从而稳定保持高缓存命中率;进一步,对于到达sdn交换机的绝大多数分组,该方法将查找命中节能缓存,并根据命中缓存项中存储的流表项索引值定位对应的流表项,进而根据其中的动作集完成分组转发,从而显著降低tcam流表查找能耗。

2.根据权利要求1所述的tcam流表节能缓存方法,其特征在于,所述节能缓存适应性调整分组到达间隔阈值,以始终存储网络中活跃度高的精确流;当网络中的活跃流数量激增时,缓存无法容纳所有活跃流,往往只能随机存储部分活跃流,导致缓存命中率明显降低;此时,减小分组到达间隔阈值,使活跃流数量与缓存容量相适配;这样,缓存中存储的是网络中最活跃的精确流,从而能够取得高缓存命中率。相反,当网络中活跃流数量减少时,缓存中将出现不少空表项;此时,增大分组到达间隔阈值,使活跃流数量接近缓存容量;这样,缓存将得到充分的利用,从而维持高缓存命中率。

3...

【专利技术属性】
技术研发人员:熊兵胡广龙杨豪何施茗汤强李妍胡晋彬冯鹏
申请(专利权)人:长沙理工大学
类型:发明
国别省市:

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

1