一种QoS感知的OpenFlow流表分级存储架构及应用制造技术

技术编号:24103284 阅读:40 留言:0更新日期:2020-05-09 14:10
本发明专利技术公开了一种QoS感知的OpenFlow流表分级存储架构及应用,本发明专利技术架构将高优先级流存储在TCAM中,保证了高优先级流的分组查找性能;采用Cuckoo哈希结构设计精确流缓存机制,存储低优先级和无优先级活跃精确流,使这些精确流中的数据包直接命中缓存,进而快速找到对应的SRAM流表项,显著降低平均流表查找时间,提升OpenFlow交换机性能。本发明专利技术方法为不同优先级的网络流提供对应的流表查找速度:高优先级流中的网络分组直接命中TCAM流表,快速找到对应的流表项;低优先级流中的网络分组查找命中Cuckoo缓存,直接定位到对应的SRAM流表项;无优先级流中的大部分分组能直接命中Cuckoo缓存,少部分分组需进一步采用元组空间搜索法查找SRAM流表,整体查找效率较高。

A QoS aware hierarchical storage architecture and application of openflow flow flow table

【技术实现步骤摘要】
一种QoS感知的OpenFlow流表分级存储架构及应用
本专利技术涉及OpenFlow流表
,特别涉及一种QoS感知的OpenFlow流表分级存储架构及应用。
技术介绍
在软件定义网络SDN数据平面中,主流OpenFlow交换机采用TCAM存储流表。这是因为TCAM支持通配查找,且能在一个时钟周期内输出查找结果。然而,TCAM单比特成本高、能耗大、集成度低,容量有限。随着OpenFlow协议版本的演进,流表匹配字段数量不断增加,单条流表项的存储开销大幅度增长。同时,当SDN在广域网、数据中心等大规模网络进行应用部署时,网络并发流数量庞大,造成OpenFlow交换机中的流表项数量显著增多。这两个因素产生的乘法效应导致OpenFlow流表规模迅速增大,流表占用的存储资源急剧上升,很容易超出TCAM的存储容量。到目前为止,解决这一问题的主流方案是采用三态内容可寻址存储器(TernaryContentAddressableMemory,TCAM)和静态随机存储器(StaticRandomAccessMemory,SRAM)相结合的方式存储本文档来自技高网...

【技术保护点】
1.一种QoS感知的OpenFlow流表分级存储架构,其特征在于,包括:高优先级流层、缓存预测层和低优先级流层;/n所述高优先级流层包括TCAM流表以及第一DRAM流表,所述TCAM流表用于存储高优先级流的标识字段,并且按照标识字段的ToS优先级从高至低的顺序依次存储;所述第一DRAM流表用于存储高优先级流的内容字段;/n所述低优先级流层包括SRAM流表以及第二DRAM流表,所述SRAM流表用于存储非高优先级流的标识字段;所述第二DRAM流表用于存储非高优先级流的内容字段,所述SRAM流表采用元组空间搜索法,并在SRAM流表中的每条流表项中设置地址字段,用于指明对应的内容字段在第二DRAM流表...

【技术特征摘要】
1.一种QoS感知的OpenFlow流表分级存储架构,其特征在于,包括:高优先级流层、缓存预测层和低优先级流层;
所述高优先级流层包括TCAM流表以及第一DRAM流表,所述TCAM流表用于存储高优先级流的标识字段,并且按照标识字段的ToS优先级从高至低的顺序依次存储;所述第一DRAM流表用于存储高优先级流的内容字段;
所述低优先级流层包括SRAM流表以及第二DRAM流表,所述SRAM流表用于存储非高优先级流的标识字段;所述第二DRAM流表用于存储非高优先级流的内容字段,所述SRAM流表采用元组空间搜索法,并在SRAM流表中的每条流表项中设置地址字段,用于指明对应的内容字段在第二DRAM流表中的存放位置;
所述缓存预测层用于缓存SRAM流表中的低优先级精确流和无优先级活跃精确流,所述缓存预测层采用Cuckoo哈希查找方法。


2.一种QoS感知的OpenFlow流表查找方法,其特征在于,包括以下步骤:
S11、当OpenFlow交换机接收到数据分组后,提取ToS优先级,判断ToS优先级与预设的优先级阈值的大小,若ToS优先级大于或等于优先级阈值,则进入步骤S12;若ToS优先级小于优先级阈值,则进入步骤S13;
S12、进行TCAM流表查找,若TCAM流表查找成功,则读取对应的第一DRAM流表项中的内容字段,根据内容字段执行相关操作;若TCAM流表查找失败,则判断ToS优先级是否等于优先级阈值,若ToS优先级不等于优先级阈值,则发送Packet-in消息至SDN控制器;若ToS优先级等于优先级阈值,则进入步骤S13;
S13、进行Cuckoo缓存查找,若Cuckoo缓存查找失败,则进入步骤S14;若Cuckoo缓存查找成功,则读取对应的SRAM流表项中的流标识字段,将流标识字段与数据分组信息进行匹配,若匹配成功,则读取对应的第二DRAM流表项中的内容字段,根据内容字段执行相关操作;若匹配失败,则进入步骤S14;
S14、进行SRAM流表查找,若SRAM流表查找失败,则发送Packet-in消息至SDN控制器;若SRAM流表查找成功,则读取对应的第二DRAM流表项中的内容字段,根据内容字段执行相关操作,若数据分组对应的精确流进入活跃状态,则提取Cuckoo缓存字段信息,组成一条缓存项并插入Cuckoo缓存。


3.根据权利要求2所述的一种QoS感知的OpenFlow流表查找方法,其特征在于,还包括Cuckoo缓存查找:
S111、输入精确流标识符fid,生成精确流签名值sig,根据哈希函数Hash1(fid)计算得到第一个候选位置index1,在对应的哈希桶中依次比较每个槽中缓存项的签名值是否与sig匹配,若匹配成功,则返回匹配缓存项对应的SRAM流表项中的地址字段;若匹配失败,则进入步骤S112;
S112、计算另一个候选位置index2,在对应的哈希桶中依次比较每个槽中缓存项的签名值是否与sig匹配,若匹配成功,则返回匹配缓存项对应的SRAM流表项中的地址字段;若匹配失败,则返回空指针。


4.根据权利要求2所述的一种QoS感知的OpenFlow流表查找方法,其特征在于,还包括Cuckoo缓存插入:
S121、输入精确流标识符fid、流表项地址以及时间戳,生成精确流签名值sig,根据哈希函数Hash1(fid)计算得到第一个候选位置index1,检查对应的哈希桶中是否有空槽,若有空槽,则将精确流的缓存信息插入空槽中;若没有空槽,则进入步骤S122;
S122、计算另一个候选位置index2,检查对应的哈希桶中是否有空槽,若有空槽,则将精确流的缓存信息插入空槽中;若没有空槽,则从两个候选位置对应的哈希桶中随机剔除一条缓存项,将精确流的缓存信息写入至缓存项中,并为剔除的缓存项继续查找空槽。


5.根据权利要求2所述的一种QoS感知的OpenFlow流表查找方法,其特征在于,还包括Cuckoo缓存删除:
S131、输入需删除的精确流的标识符fid,生成精确流签名值sig,根据哈希函数Hash1(fid)计算得到第一个候选位置index1,在对应的哈希桶中依次比较...

【专利技术属性】
技术研发人员:赵锦元熊兵曾赛峰唐志航
申请(专利权)人:湖南工程学院
类型:发明
国别省市:湖南;43

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

1