利索能及
我要发布
收藏
专利号: 2022101939632
申请人: 长沙理工大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-05-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种流量感知的OpenFlow流表弹性节能查找系统,其特征在于,包括:

弹性节能缓存,用于缓存网络中的活跃精确流,实现高速低功率的流表缓存查找;缓存由多个逻辑分段组成,依据活跃精确流的变化,其容量适应性增加或减少;用于降低TCAM流表查找能耗,利用低能耗存储介质.SRAM存储活跃精确流,使大部分网络流可通过缓存直接进行转发;当活跃精确流数量变化时,缓存容量将适应性地调整,以容纳网络中绝大部分活跃精确流,保证高缓存命中率;

TCAM流表和DRAM流表,将流表项进行拆分后,匹配字段存入TCAM,以保证流表查找性能;内容字段存入查找开销小、存储容量大的动态随机存取存储器DRAM,以缓解TCAM存储压力;

所述弹性节能缓存由多个逻辑分段组成,依据活跃精确流的变化,其分段数适应性增加或减少;当活跃精确流数量明显增多时,缓存动态增加一个分段,以存储网络中新出现的活跃精确流,保证高缓存命中率;当活跃精确流数量显著减少时,缓存自动缩减一个分段,并将其中的流尽可能转存到剩余分段中,以提高缓存利用率,同时确保缓存命中率不会出现明显的下滑;随着活跃精确流数量的上下波动,缓存也将进行自适应地扩展与收缩,以同时取得较高的缓存命中率与缓存利用率,从而保证缓存整体性能;

所述弹性节能缓存分段中的每个缓存项包含流签名、TCAM索引值和时间戳;流签名由流关键字输入签名函数计算得到,为2或4个字节;TCAM索引值指示当前活跃精确流对应的TCAM流表项,以便进一步读取对应的动作集;时间戳记录该活跃精确流中最近一个数据分组的到达时间,以便进行缓存替换和超时扫描操作;

所述TCAM流表存储流表项中的标识字段匹配域以及掩码,DRAM存储流表项剩余的内容字段动作集树以及时间戳,通过TCAM索引值可直接定位对应的DRAM流表项。

2.一种基于权利要求1所述弹性节能缓存的查找方法,其特征在于,包括:

所述弹性节能缓存为快速匹配网络分组,从流签名中随机选取互不重复的比特进行随机排列,得到多个独立的子哈希函数,进而快速得到分组在各个分段的候选位置;缓存新增一个分段时,将同时生成一个新的子哈希函数;

所述子哈希函数可通过子哈希矩阵存储,在进行缓存流索引时,首先需获取各分段对应的子哈希函数,以按序读取流签名中的相应比特,进而快速得到流在各个分段中的索引值;在缓存分段动态新增与删除的过程中,需获取的子哈希函数的个数也会随之改变;为避免子哈希函数的频繁生成与销毁,可选择将部分子哈希函数存入子哈希矩阵中;设当前分段数为n,则对应的n个子哈希函数存入矩阵A,用于当前缓存流索引;备用的子哈希函数存入矩阵B;当缓存新增分段时,将矩阵B中的第一个子哈希函数移入矩阵A中,而当缓存删除分段时,则将矩阵A的最后一个子哈希函数移入矩阵B中;

所述缓存流索引方法为:子哈希矩阵第i(1≤i)行记录的比特及其顺序即为第i个子哈希函数,第j(1≤ j≤m)列记录在进行子哈希运算时,按序从流签名中读取的比特位,按照(j‑1)第i行中的比特顺序读取流签名中的比特值bi,j,计算2 bi,j的值并进行累加,然后对分段长度取模。

3.根据权利要求2所述的方法,其特征在于,所述查找方法包括以下操作:

a、OpenFlow流表项分组转发;

通过对每个到达的数据分组查找OpenFlow流表,找到对应的流表项,进而执行相应的动作集;

b、OpenFlow流表项插入或删除;

OpenFlow流表项插入:当OpenFlow交换机接收到SDN控制器下发的带ADD命令的flow‑mod消息时,首先从消息中提取流规则;根据流匹配信息判断流规则类型,若为通配规则,则将其匹配字段存入优先存入TCAM流表,内容字段存入DRAM流表;若TCAM存储容量已满,则将TCAM中最久未被访问的流表项转存到SRAM;若为精确规则,则将其匹配字段直接存入SRAM流表,内容字段存入DRAM流表;

OpenFlow流表项删除:当OpenFlow交换机收到SDN控制器下发的带DELETE命令的flow‑mod消息时,删除的TCAM流表和DRAM流表中的表项;

c、OpenFlow流表项超时扫描;

根据当前时间戳以及DRAM中存储的时间戳的差值判断流表项是否过期,若差值大于超时间隔,则该流表项已过期并删除此流表项;

d、弹性节能缓存查找;

根据流关键字计算流签名; 然后读取子哈希矩阵,根据流签名及子哈希函数计算该流在各分段中的候选位置,并行匹配各分段中的对应缓存项以快速完成缓存查找;

e、弹性节能缓存扩展与收缩操作;

弹性节能缓存扩展:新生成一个子哈希函数,或将矩阵B中的第一个子哈希函数移入矩阵A,并新增一个对应的缓存分段;

弹性节能缓存收缩:删除最后一个分段,并该分段中存储的活跃精确流移动到前端的分段中;

f、弹性节能缓存插入或删除;

弹性节能缓存插入:通过子哈希函数得到所有候选位置,将流签名插入到最前端分段的空缓存项中,缓存在进行插入操作时,若缓存装载率较高,则会触发缓存扩展操作;

弹性节能缓存删除:根据流签名与子哈希函数定位该流在缓存中的候选存储位置,定位并移除对应的缓存项,缓存在进行删除操作时,若缓存装载率较低,则会触发缓存收缩操作;

g、弹性节能缓存超时扫描;

弹性节能缓存超时扫描:根据当前系统时间戳和流表项中的时间戳的差值来判断一个结点是否超时,如果差值大于超时间隔,则该结点判定为超时结点,从缓存中清除。

4.根据权利要求3所述的方法,其特征在于,所述OpenFlow流表分组转发具体为:首先解析其各层协议首部,提取关键字段,包括源/目的IP地址、源/目的端口和协议类型等生成流关键字key,进而计算流签名以查找缓存;若缓存查找成功则根据TCAM索引值直接定位对应的DRAM表项,执行其中的动作集以完成分组节能转发;之后,更新弹性节能缓存中匹配缓存项中的时间戳以及DRAM流表项中的计数器与时间戳;若缓存查找失败,则需使用流关键字key进一步查找TCAM流表;若查找成功,则根据TCAM索引值获取DRAM流表中对应的动作集以进行分组转发;分组转发成功后,若该流转换为活跃状态,需将之存入弹性节能缓存,并更新对应的DRAM表项的相关信息;若查找TCAM流表失败,则意味着该分组属于一条新流,OpenFlow交换机将把该数据分组的头部信息打包成Packet‑in消息提交给SDN控制器,请求下发新的流规则。

5.根据权利要求3所述的方法,其特征在于,所述OpenFlow流表插入和删除具体还包括:

OpenFlow流表插入:首先从消息中提取流规则;若TCAM容量足够,则将其中的匹配字段存入TCAM流表,内容字段存入DRAM流表;若TCAM存储容量已满,则先剔除TCAM中最久未被访问的流表项,再将新规则安装到流表中;

OpenFlow流表删除:提取流规则信息,根据流规则匹配域查找TCAM流表;若TCAM流表查找成功,则删除该TCAM流表项;若该流是一条活跃流,则还需缓存并删除对应的缓存项;最后,根据TCAM索引值定位并删除对应的DRAM流表项;若TCAM流表无法匹配该流规则,则向控制器发送error消息,报告表项删除失败结果。

6.根据权利要求3所述的方法,其特征在于,所述OpenFlow流表项超时扫描具体还包括:遍历TCAM流表,对于TCAM流表中的每条流项,需根据当前时间戳以及DRAM流表中存储的时间戳的差值判断流表项是否过期,如果差值大于超时间隔hard time或idle time,说明该流表项已过期,应删除该流表项;OpenFlow流表超时扫描流程为:遍历TCAM流表并读取对应DRAM表项中的时间戳,若检测到超时流表项,则删除该TCAM流表项;若该流表项对应的流处于活跃状态,则定位并删除对应缓存中的节点;最后,删除对应的DRAM流表项,完成超时流表项的清除。

7.根据权利要求3所述的方法,其特征在于,所述弹性节能缓存查找具体还包括:根据流关键字计算流签名;然后读取子哈希矩阵,根据流签名及子哈希函数计算该流在各分段中的候选位置,并行匹配对应的缓存项以快速完成缓存查找;若缓存查找成功,则根据匹配缓存项中存储的TCAM索引值直接定位对应的DRAM流表项,执行其中的动作集以完成分组转发;分组转发成功后,还需更新缓存时间戳以及DRAM表项中的计数器、时间戳等信息;若缓存查找失败,则返回缓存查找失败结果。

8.根据权利要求3所述的方法,其特征在于,所述弹性节能缓存插入与扩展具体还包括:根据流关键字计算流签名sign,通过子哈希函数得到所有候选位置;若所有候选位置均不为空,则剔除其中最久未被访问的缓存表项,并将流签名、TCAM索引值以及时间戳存入该位置;若候选位置中存在为空的表项,则将sign插入到最前端分段的空缓存项中;插入成功后,根据当前的缓存装载率以及缓存命中率判断是否需进行缓存扩展;若触发扩展条件,则新生成一个子哈希函数,或将矩阵B中的第一个子哈希函数移入矩阵A,或新增一个对应的缓存分段,以提升缓存的分组转发能力。

9.根据权利要求3所述的方法,其特征在于,所述弹性节能缓存删除与收缩具体还包括:首先根据流签名与子哈希函数定位该流在缓存中的候选存储位置,定位并移除对应的缓存项;缓存项移除成功后,缓存装载率将降低;若此时触发缓存收缩条件,则移除最后一个缓存分段,并将矩阵A中的最后一个子哈希函数移入矩阵B;在此之前,需将该分段中存储的活跃精确流移动到前端的分段中,以防止缓存命中率大幅降低;若待前移的缓存表项是所有候选表项中最久未被访问的,则该表项不需要前移;否则,定位前端分段中最久被访问的候选缓存项所在的位置,将待前移的缓存项置入该位置;因此,尾段缓存项前移操作可视作多次缓存插入操作。

10.根据权利要求3所述的方法,其特征在于,所述弹性节能缓存超时扫描具体还包括:

通过当前系统时间戳和流表项中的时间戳的差值来判断一个结点是否超时,如果差值大于超时间隔,则该结点判定为超时结点,需从缓存中清除;扫描缓存的过程为:依次遍历每个分段,若检测到超时缓存项则立即移除;当遍历完各缓存分段后,若此时触发缓存收缩条件,则需将最后一个分段中存储的活跃精确流移存至前端分段,回收尾段缓存空间或将该子哈希函数移动到矩阵B中。