一种基于子流表分割的流表存储优化方法及装置制造方法及图纸

技术编号:16132311 阅读:31 留言:0更新日期:2017-09-01 22:31
本发明专利技术公开了一种基于子流表分割的流表存储优化方法及装置,所述方法包括:根据流表中的匹配字段是否为空,确定所述流表中各个表项的流类别向量;合并相同的流类别向量,并统计出各个流类别向量对应的权重;根据各个流类别向量对应的权重,从所有流类别向量中选择一组最优流类别向量集合,所述最优流类别向量集合覆盖所述流表中的所有匹配字段;根据所述最优流类别向量集合以及表项依赖图谱进行子流表分割,将所述表项划分到所述子流表中进行存储。

【技术实现步骤摘要】
一种基于子流表分割的流表存储优化方法及装置
本专利技术涉及软件定义网络领域,尤其涉及一种基于子流表分割的流表存储优化方法及装置。
技术介绍
软件定义网络定义了一种控制平面与数据平面解耦合的新型网络架构,网络转发设备中的控制功能被移除出来,成为简单的转发单元。控制平面和数据平面之间通过标准化的接口进行交互,通常,将该接口称为南向接口。OpenFlow协议就是一种在软件定义网络中被广泛接受的南向接口。控制器和网络转发设备之间采用OpenFlow协议进行交互,控制器将规则下发到转发设备中,转发设备将其存储到流表中,一条规则对应流表中的一个表项,然后转发设备通过查询流表匹配字段,根据指令完成对数据包的动作,包括丢弃、转发和将数据包发送到控制器等。如图1所示,OpenFlow流表存储在内存中。由于功能扩展,随着OpenFlow版本的演进,OpenFlow流表中的匹配字段不断增加,同时也增加了流表的复杂度。流表大小急剧增加,流表的存储成为一个亟需解决的问题。现有方案中,将流表根据匹配字段的共存关系和冲突关系分割成数张子流表。设D={Fi|1≤i≤d}表示流表T中的一条流表项Ri的d个匹配字段。那么,共存关系定义如下:Coe={(Fi,Fj)|Fi∈D,Fj∈D,如果Fi存在,则Fj必然存在,如果Fi不存在则Fj也不存在}例如OpenFlow定义的匹配字段IP_SRC和IP_DST,TCP_SRC和TCP_DST都是共存关系。冲突关系定义为:Col={(Fi,Fj)|Fi∈D,Fj∈D,Fi与Fj不能同时存在}例如TCP_SRC和UDP_SRC就是互斥关系。根据冲突关系与共存关系,对流表进行初始分割,直至子流表数大于等于限定阈值K,并将初始流表中的表项添加到子流表中存储。在流表更新的过程中,如果子流表中的表项条数超出限定阈值n,则对子流表进行分割操作。如果子流表的个数超过限定阈值K,则对子流表进行合并操作。在整个过程中,没有考虑表项之间的优先级与依赖关系,尽管节省了存储空间,但增加了查找匹配的时间开销。
技术实现思路
为解决上述技术问题,本专利技术实施例提供了一种基于子流表分割的流表存储优化方法及装置。本专利技术实施例提供的基于子流表分割的流表存储优化方法,包括:根据流表中的匹配字段是否为空,确定所述流表中各个表项的流类别向量;合并相同的流类别向量,并统计出各个流类别向量对应的权重;根据各个流类别向量对应的权重,从所有流类别向量中选择一组最优流类别向量集合,所述最优流类别向量集合覆盖所述流表中的所有匹配字段;根据所述最优流类别向量集合以及表项依赖图谱进行子流表分割,将所述表项划分到所述子流表中进行存储。本专利技术实施例中,所述根据流表中的匹配字段是否为空,确定所述流表中各个表项的流类别向量,包括:建立流类别向量,所述流类别向量包括所述流表中的所有匹配字段;针对每一个表项,当所述表项中的匹配字段为空,则将所述流类别向量中对应的匹配字段设置为第一值;当所述表项中的匹配字段不为空,则将所述流类别向量中对应的匹配字段设置为第二值,所述第一值与所述第二值不同。本专利技术实施例中,所述合并相同的流类别向量,并统计出各个流类别向量对应的权重,包括:合并相同的流类别向量,将合并成同一流类别向量的数目作为该流类别向量对应的权重。本专利技术实施例中,所述根据各个流类别向量对应的权重,从所有流类别向量中选择一组最优流类别向量集合,包括:合并相同的流类别向量,建立流类别向量矩阵建立流类别矩阵;从所述流类别矩阵中提取任意K个流类别向量,得到多组流类别向量集合;所述流类别向量集合能够覆盖流表中的所有匹配字段;K小于等于所有的流类别向量数目;从所述多组流类别向量集合中,选择权重最大的一组流类别向量集合作为最优流类别向量集合。本专利技术实施例中,所述表项依赖图谱包括如下信息:表项的优先级信息和表项之间的依赖关系。本专利技术实施例中,所述方法还包括:计算得到表项依赖图谱;根据所述表项依赖图谱,将具有依赖关系的表项存储到同一子流表中;或者,对所述表项依赖图谱进行更新,将新下发的表项存储到对应的子流表中。本专利技术实施例提供的基于子流表分割的流表存储优化装置,包括:确定单元,用于根据流表中的匹配字段是否为空,确定所述流表中各个表项的流类别向量;合并单元,用于合并相同的流类别向量,并统计出各个流类别向量对应的权重;选择单元,用于根据各个流类别向量对应的权重,从所有流类别向量中选择一组最优流类别向量集合,所述最优流类别向量集合覆盖所述流表中的所有匹配字段;分割存储单元,用于根据所述最优流类别向量集合以及表项依赖图谱进行子流表分割,将所述表项划分到所述子流表中进行存储。本专利技术实施例中,所述确定单元,还用于建立流类别向量,所述流类别向量包括所述流表中的所有匹配字段;针对每一个表项,当所述表项中的匹配字段为空,则将所述流类别向量中对应的匹配字段设置为第一值;当所述表项中的匹配字段不为空,则将所述流类别向量中对应的匹配字段设置为第二值,所述第一值与所述第二值不同。本专利技术实施例中,所述合并单元,还用于合并相同的流类别向量,将合并成同一流类别向量的数目作为该流类别向量对应的权重。本专利技术实施例中,所述选择单元,还用于根据所有的流类别向量,合并相同的流类别向量,建立流类别向量矩阵;从所述流类别矩阵中提取任意K个流类别向量,得到多组流类别向量集合;所述流类别向量集合能够覆盖流表中的所有匹配字段;K小于等于所有的流类别向量数目;从所述多组流类别向量集合中,选择权重最大的一组流类别向量集合作为最优流类别向量集合。本专利技术实施例中,所述表项依赖图谱包括如下信息:表项的优先级信息和表项之间的依赖关系。本专利技术实施例中,所述装置还包括:更新单元,用于计算得到表项依赖图谱;根据所述表项依赖图谱,将具有依赖关系的表项存储到同一子流表中;或者,对所述表项依赖图谱进行更新,将新下发的表项存储到对应的子流表中。本专利技术实施例的技术方案中,根据流表中的匹配字段是否为空,确定所述流表中各个表项的流类别向量;合并相同的流类别向量,并统计出各个流类别向量对应的权重;根据各个流类别向量对应的权重,从所有流类别向量中选择一组最优流类别向量集合,所述最优流类别向量集合覆盖所述流表中的所有匹配字段;根据所述最优流类别向量集合以及表项依赖图谱进行子流表分割,将所述表项划分到所述子流表中进行存储。此外,流表更新时,计算得到表项依赖图谱;根据所述表项依赖图谱,将具有依赖关系的表项存储到同一子流表中;或者,对所述表项依赖图谱进行更新,将新下发的表项存储到对应的子流表中。可见,本专利技术实施例引入流表表项的流类别向量,然后将一张流表分割成数张子流表,从而降低各个流表的维度,达到压缩流表存储空间的目的。本专利技术实施例还充分考虑了流表分割及表项更新所要考虑的流表表项的优先级及依赖性关系问题。通过本专利技术实施例的方案,可以有效地压缩流表存储空间,并提高流表的查找匹配效率。附图说明图1为软件定义网络中网络转发设备架构;图2为本专利技术实施例的基于子流表分割的流表存储优化方法的流程示意图;图3为流表T及其流类别矩;图4为流类别权重表;图5为表1流表的流规则间的依赖关系;图6为本专利技术实施例提供的基于子流表分割的流表存储优化装置的结构组成示意图。具体实施方式为了能够更加详尽地本文档来自技高网
...
一种基于子流表分割的流表存储优化方法及装置

【技术保护点】
一种基于子流表分割的流表存储优化方法,其特征在于,所述方法包括:根据流表中的匹配字段是否为空,确定所述流表中各个表项的流类别向量;合并相同的流类别向量,并统计出各个流类别向量对应的权重;根据各个流类别向量对应的权重,从所有流类别向量中选择一组最优流类别向量集合,所述最优流类别向量集合覆盖所述流表中的所有匹配字段;根据所述最优流类别向量集合以及表项依赖图谱进行子流表分割,将所述表项划分到所述子流表中进行存储。

【技术特征摘要】
1.一种基于子流表分割的流表存储优化方法,其特征在于,所述方法包括:根据流表中的匹配字段是否为空,确定所述流表中各个表项的流类别向量;合并相同的流类别向量,并统计出各个流类别向量对应的权重;根据各个流类别向量对应的权重,从所有流类别向量中选择一组最优流类别向量集合,所述最优流类别向量集合覆盖所述流表中的所有匹配字段;根据所述最优流类别向量集合以及表项依赖图谱进行子流表分割,将所述表项划分到所述子流表中进行存储。2.根据权利要求1所述的基于子流表分割的流表存储优化方法,其特征在于,所述根据流表中的匹配字段是否为空,确定所述流表中各个表项的流类别向量,包括:建立流类别向量,所述流类别向量包括所述流表中的所有匹配字段;针对每一个表项,当所述表项中的匹配字段为空,则将所述流类别向量中对应的匹配字段设置为第一值;当所述表项中的匹配字段不为空,则将所述流类别向量中对应的匹配字段设置为第二值,所述第一值与所述第二值不同。3.根据权利要求1所述的基于子流表分割的流表存储优化方法,其特征在于,所述合并相同的流类别向量,并统计出各个流类别向量对应的权重,包括:合并相同的流类别向量,将合并成同一流类别向量的数目作为该流类别向量对应的权重。4.根据权利要求1所述的基于子流表分割的流表存储优化方法,其特征在于,所述根据各个流类别向量对应的权重,从所有流类别向量中选择一组最优流类别向量集合,包括:根据所有的流类别向量,合并相同的流类别向量,建立流类别向量矩阵;从所述流类别矩阵中提取任意K个流类别向量,得到多组流类别向量集合;所述流类别向量集合能够覆盖流表中的所有匹配字段;K小于等于所有的流类别向量数目;从所述多组流类别向量集合中,选择权重最大的一组流类别向量集合作为最优流类别向量集合。5.根据权利要求1所述的基于子流表分割的流表存储优化方法,其特征在于,所述表项依赖图谱包括如下信息:表项的优先级信息和表项之间的依赖关系。6.根据权利要求5所述的基于子流表分割的流表存储优化方法,其特征在于,所述方法还包括:计算得到表项依赖图谱;根据所述表项依赖图谱,将具有依赖关系的表项存储到同一子流表中;或者,对所述表项依赖图谱进行更...

【专利技术属性】
技术研发人员:鲍方艳
申请(专利权)人:中移苏州软件技术有限公司中国移动通信集团公司
类型:发明
国别省市:江苏,32

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

1