[发明专利]一种基于自定义多级流表快速匹配方法有效
申请号: | 201310726035.9 | 申请日: | 2013-12-25 |
公开(公告)号: | CN103731354B | 公开(公告)日: | 2018-01-26 |
发明(设计)人: | 潘恒;温曙光;关洪涛;谢高岗 | 申请(专利权)人: | 江苏省未来网络创新研究院 |
主分类号: | H04L12/743 | 分类号: | H04L12/743 |
代理公司: | 南京苏创专利代理事务所(普通合伙)32273 | 代理人: | 王华 |
地址: | 211100 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 自定义 多级 快速 匹配 方法 | ||
技术领域
本发明涉及一种基于自定义多级流表快速匹配方法。
背景技术
无论是firewall还是OpenFlow,在这种多表自定义查找中,多级流表流水线的概念已经被引入。一条完整的规则很可能被拆分多个部分,并以流表项的形式分别下发给不同的流表。而这些流表项之间需要通过一个标记连相互进行相互关联。这个标记在不同的自定义的多级流表中可能称谓不同,但其功能是相同的。在本发明中称其为metadata。然而,这些自定义多级流表具有很强的灵活性,每个流表的匹配域类型和流表项数目都是可以根据需要进行自定义的。因此,现阶段这些自定义多级流表匹配算法都是线性查找,即逐项进行匹配,其效率是比较低下,很难满足当今网络的需求。
发明内容
发明目的:本发明的目的是针对现有技术的不足而提供一种基于自定义多级流表快速匹配方法,有效减少数据包在整个匹配过程中对流表项的匹配次数。
技术方案:为了实现发明的目的,本发明公开了一种基于自定义多级流表快速匹配方法,包括以下步骤:
(1)将一个流表根据若干类型进行分类得到若干个不同的等价类集合,再将这些等价类集合根据其他类型分类得到若干的小等价类集合;
(2)将步骤(1)中的等价类按层次进行hash映射;
(3)数据包进行流表匹配时,通过键值查找到其所对应的等价类集合。
作为优选,为了进一步保证匹配效率并使得等价类的划分更加简单且具有效率,本发明步骤(1)中的若干类型为三类,第一类为数据包进入端口,第二类为metadata,第三类则为数据包的匹配域。
作为优选,为了在数据包进入等价类之后的查找效率更高,本发明的同一个等价类集合中的流表项按照优先级来排列。
作为优选,为了进一步提升查找匹配效率,本发明的步骤(3)包括以下步骤:
(3.1)数据包根据其metadata值通过所对应的hash函数来计算出其所对应的等价类集合的地址;
(3.2)通过数据包进入端口值查找到其步骤(3.1)中等价类集合所对应的小等价类集合,从而得到其匹配结果。
有益效果:本发明与现有技术相比:减少数据包在每个流表中流表项的匹配次数并且保证整个数据包查找结果的正确性。
附图说明
图1为等价类的划分图;
图2为ingress port的hash函数映射图;
图3为本发明基于于自定义多级流表快速匹配方法的流程图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
如图1所示,根据metadata值将流表划分成三个第一级等价类集合;再将第一个第一级等价类集合根据数据包进入端口划分为两个第二级等价类集合,其他第一级等价类集合按此原理划分;第二级等价类集合根据流表项的优先级进行值排列。
如图2所示,将等价类集合按层次进行hash映射,并且同一个等价类集合中的流表项按照优先级来排列,根据hash映射的键值查就能找到其所对应的等价类集合。
如图3所示,整个匹配的过程为根据数据包的metadata匹配域值查找到相应的第一级等价类集合,再根据数据包进入端口值查找到所对应的第二级等价类集合,最后在该第二级等价类集合进行查找匹配;查找匹配完成,判断是否跳转至下一个流表,若跳转则进入下一个循环,否则结束查找匹配。
根据以上的查找匹配方法减少了在整个流表匹配过程中流表项的匹配次数,加快整个自定义多级流表的查找速度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏省未来网络创新研究院,未经江苏省未来网络创新研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310726035.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多功能精密灌装装置
- 下一篇:一种双定量静态混色分装机