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