System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种支持规则依赖的SDN大规模流表区分存储方法技术_技高网

一种支持规则依赖的SDN大规模流表区分存储方法技术

技术编号:41324929 阅读:4 留言:0更新日期:2024-05-13 15:02
本专利提出了一种基于活跃度的流规则放置方法。该方法综合考虑了流规则的活跃度和放置成本,以TCAM存储收益率(即流规则及其依赖规则集的总活跃度与数量之比)为评估标准。在TCAM容量有限的前提下,优先选择TCAM存储收益率高的流规则及其依赖规则集放入TCAM,以增大TCAM的命中率,提高流表查找速度。剩余流规则放入SRAM,以满足整个流表的存储需求。进一步,本专利设计了一种支持规则依赖的SDN大规模流表区分存储方法。该方法在进行区分存储时,对于存入TCAM的一条流规则,必需将依赖该流规则的规则依赖集一起存入,进而避免分组转发语义错误。同时,采用基于活跃度的流规则放置方法将活跃度高的流规则存入TCAM,在保证分组转发语义正确的同时,加快流表查找速度。

【技术实现步骤摘要】

本专利技术涉及sdn流表,更具体地说,涉及一种支持规则依赖的sdn大规模流表区分存储方法。


技术介绍

1、软件定义网络(software defined networking,sdn)是一种数据控制分离、软件可编程的新型网络体系架构,它通过sdn技术来分离控制平面和数据平面。控制平面负责中央管理和转发策略分配,数据平面中的网络设备只能转发数据包。sdn采用南向接口为其数据平面之间的进行通信,以提高网络管理的灵活性、开发性和可扩展性,可简单且高效地实现新的网络管控策略的安装,极易部署。在sdn数据平面中,主要使用openflow协议作为其南向接口协议,sdn是基于流的概念来匹配转发规则,将各层网络协议首部的重要字段作为流表项的匹配域,并支持通过通配符实现任意字段的组合,从而实现对网络流的细粒度灵活管理。由于tcam存储器支持“0、1、中间态”三种数据查找,并且tcam表内所有条目都可以并行访问,能在单个周期内输出所有结果,因此sdn交换机通常采用tcam存储流表,以实现网络中数据包的快速转发。

2、当sdn部署在数据中心、空天地一体化信息网络等大规模网络时,由于网络中并发流数量众多,流表项的数量急剧增长。同时随着在互联网上部署的服务数量不断增加,规则数量也在迅速增加。因此使得tcam难以满足sdn大规模流表的存储要求。同时,由于sdn流表在匹配字段引入通配符,使得不同优先级的流规则之间产生依赖关系,且低优先级规则始终依赖于高优先级规则。在tcam中存储流规则时,需将与其有依赖关系且优先级高的规则一起存入,以保证分组转发语义正确性。

3、图1展示了一个规则依赖图示例,其构建原理如下:

4、(1)每个规则都是一个节点,每条边都对应一对规则之间的直接依赖关系。(2)如果存在一个数据包可以同时命中ri和rj,且rj的优先级高于ri,那么数据包将按照rj的动作集转发,此时称子规则ri和父规则rj之间存在直接的依赖关系。(3)规则依赖图中规则之间的边是由从父节点指向子节点,一个规则的依赖关系由该规则的所有祖先共同组成。

5、上述方案通过构建规则依赖图显示流规则之间的依赖关系,从而快速找到有依赖关系的流规则。目前,网络中并发流数量众多,从而导致流表存储资源紧张。同时,在存储流规则时需考虑tcam中存在的规则依赖问题。因此,最有前景的方法是设计区分存储架构及解决规则依赖的方法,在保证分组转发语义正确性的同时,满足sdn大规模流表的存储要求,具体如下:

6、如图2所示的【方案一】是一种openflow大规模流表区分存储方案。该方案根据流量分布特性将openflow网络流区分为活跃流/空闲流区分方法,进而采用tcam和sram分别存储其标识字段,并采用dram单独存储其内容字段,有效缓解openflow流表存储资源紧张问题。

7、方案一的区分存储过程如下:(1)首先基于openflow网络流的包成批特性,根据包传输状态将流动态区分为活跃流和空闲流。(2)将内容字段从流表项中剥离出来,采用dram单独存储。同时,采用tcam和sram分别存储活跃流和空闲流的匹配字段。

8、如图3所示的【方案二】是一种解决规则依赖的规则放置的方法。该方法提出了一种覆盖集缓存放置算法cover-set,通过去“拼接”长的规则依赖集,从而在tacm中缓存少量权重大的规则,避免缓存大量权重低的流规则,以提高tcam命中率,并依赖软件交换机去处理在tacm中未命中流规则的数据包。

9、方案二的流规则放置过程如下:(1)首先为每个规则设置权重及成本,权重为预期命中该规则的数据包的数量,成本为必须一起安装的规则数量。(2)创建一个新规则覆盖那些低权重的规则,把被覆盖的规则送到软件交换机中处理,同时新规则的的动作域为“转发给软件交换机”。

10、但上述已有的流表区分存储架构及流规则放置方法分别存在如下缺点:

11、【方案一】基于openflow网络流的包成批特性,设置包间隔阈值pit将流动态区分为活跃流和空闲流,采用tcam和sram分别存储其匹配字段,并采用dram存储对应的内容字段。然而,该架构虽然可以缓解openflow流表存储资源紧张问题,但没有考虑规则依赖的情况,从而可能导致分组转发语义错误的问题。

12、【方案二】将所有流规则构建为规则依赖图,使用覆盖集算法,将具有最大贡献值的规则缓存进tcam,再构建新规则覆盖该依赖链上权重小的规则,被覆盖规则放入软件交换机中。然而,该算法只考虑了单条依赖链上单个规则的贡献值,没有考虑规则所在依赖链的平均贡献值,容易导致某些贡献值较大的规则被放入软件交换机,导致数据包查找速度下降。

13、基于以上,本专利技术提供一种基于活跃度的流规则动态放置方法和一种支持规则依赖的sdn大规模流表区分存储方法。


技术实现思路

1、本专利技术要解决的技术问题是设计一种基于活跃度的流规则动态放置方法,然后基于本文所提出的流规则动态放置方法提供一种支持规则依赖的sdn大规模流表区分存储方法,以在保证分组转发语义正确性的同时,增大tcam命中率。

2、为了解决上述技术问题,本专利技术采用的技术方案是:一种支持规则依赖的sdn大规模流表区分存储方法,主要包括一种基于活跃度的流规则动态放置方法和一种支持规则依赖的流表区分存储方法。

3、所述支持规则依赖的流表区分存储方法如下:

4、在该存储方法中,sdn流表包含sdn交换机中待放置的所有流规则。其中,每条流规则f包括:匹配字段、内容字段和tcam存储收益率。对于一条流规则,tcam存储收益率定义为其规则依赖集中所有流规则的总权重与数量之比。规则依赖图集是由若干个流规则依赖图构成,每个规则依赖图是由多条相互依赖的流规则组成的有向无环图。根据规则依赖图集,可计算出sdn流表中每条流规则的tcam存储收益率,进而进行区分存储。tcam和sram用于存储所有流规则的匹配字段。其中,tcam存储效益率高的流规则及其规则依赖集,而sram则存储tcam无法容纳的其余流规则。此外,dram单独存储所有流规则的内容字段,并与tcam和sram存放的流规则一一对应,以实现快速索引。

5、所述基于活跃度的流规则动态放置方法思想如下:

6、(1)首先为原始sdn流表中的所有流规则构建规则依赖图集。其中,每个节点代表一条流规则,其直接依赖的流规则称为父节点,其间接依赖的流规则称为祖先节点。通常而言,节点在规则依赖图中所处的位置越高,对应流规则的优先级越高;

7、(2)对于所有流规则,根据其活跃度和规则依赖图中给出的依赖关系,计算对应的tcam存储收益率,;

8、(3)根据所有流规则的tcam存储收益率排名,尽可能选择tcam存储收益率高的流规则及其规则依赖集放入tcam。

9、本专利技术提供的一种支持规则依赖的sdn大规模流表区分存储方法,至少具有以下增益效果:

10、1、相关方案中的覆盖集本文档来自技高网...

【技术保护点】

1.一种支持规则依赖的SDN大规模流表区分存储方法,该方法首先根据其所有流规则之间的依赖关系,构建规则依赖图集RDGS(Ruledependency graph set)。对于每条流规则,根据其规则依赖集中每条流规则的权重(活跃度)计算其TCAM存储收益率,进而选择收益率高的流规则及其规则依赖集存入TCAM,从而在保证分组转发语义正确的前提下,尽可能提高TCAM命中率,加快流表查找速度。对于TCAM无法容纳的流规则,则被存放在高速地址寻址存储器(如SRAM)中。此外,将内容字段从流表项中剥离出来,采用DRAM单独存储,以使TCAM和SRAM存储更多的流规则。

2.根据权利要求1所述的支持规则依赖的SDN大规模流表区分存储方法,其特征在于,本专利技术提出了一种基于活跃度的流规则动态放置方法ADFRP,以最大程度提高TCAM命中率;该方法综合考虑流规则及其规则依赖集的活跃度和放置成本,尽可能选择TCAM存储收益率高的流规则及其规则依赖集放入TCAM。

3.根据权利要求1所述的支持规则依赖的SDN大规模流表区分存储方法,其特征在于,所述SDN流表分组转发操作,具体包括以下步骤:

4.根据权利要求1所述的支持规则依赖的SDN大规模流表区分存储方法,其特征在于,所述流规则放置操作,具体包括以下步骤:

5.根据权利要求1所述的支持规则依赖的SDN大规模流表区分存储方法,其特征在于,所述SDN流表插入操作,具体包括以下步骤:

6.根据权利要求1所述的支持规则依赖的SDN大规模流表区分存储方法,其特征在于,所述SDN流表删除操作,具体包括以下步骤:

...

【技术特征摘要】

1.一种支持规则依赖的sdn大规模流表区分存储方法,该方法首先根据其所有流规则之间的依赖关系,构建规则依赖图集rdgs(ruledependency graph set)。对于每条流规则,根据其规则依赖集中每条流规则的权重(活跃度)计算其tcam存储收益率,进而选择收益率高的流规则及其规则依赖集存入tcam,从而在保证分组转发语义正确的前提下,尽可能提高tcam命中率,加快流表查找速度。对于tcam无法容纳的流规则,则被存放在高速地址寻址存储器(如sram)中。此外,将内容字段从流表项中剥离出来,采用dram单独存储,以使tcam和sram存储更多的流规则。

2.根据权利要求1所述的支持规则依赖的sdn大规模流表区分存储方法,其特征在于,本发明提出了一种基于活跃度的流规则动态放置方法a...

【专利技术属性】
技术研发人员:熊兵袁月艾料仟杨豪赵锦元汤强冯鹏张锦
申请(专利权)人:长沙理工大学
类型:发明
国别省市:

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

1