[发明专利]一种并行的大容量访问控制列表的查找方法有效
申请号: | 201410653173.3 | 申请日: | 2014-11-14 |
公开(公告)号: | CN104361296A | 公开(公告)日: | 2015-02-18 |
发明(设计)人: | 范富明;李念军;黄杨琴;侯冬兰 | 申请(专利权)人: | 武汉烽火网络有限责任公司 |
主分类号: | G06F21/62 | 分类号: | G06F21/62;H04L29/06 |
代理公司: | 北京捷诚信通专利事务所(普通合伙) 11221 | 代理人: | 魏殿绅;庞炳良 |
地址: | 430074 湖北省武汉*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并行 容量 访问 控制 列表 查找 方法 | ||
技术领域
本发明涉及通信技术领域,具体来讲是一种并行的大容量访问控制列表的查找方法。
背景技术
传统的单核处理器的处理能力受到主频和功耗等因素的制约,在性能上难以满足日益增长的网络数据处理任务要求。高性能的多核处理器在数据处理过程中能够实现并行处理,网络延时小,数据吞吐量大,在当前的路由器、防火墙等网络设备中有着广泛的应用。
ACL(Access Control List,访问控制列表)是解决和提高网络安全性的方法之一,多应用在路由器和防火墙等网络设备上。访问控制列表应用在网络设备的接口上,当条目达到一定数量后,如果单纯依靠软件算法将接口上通过的数据包逐个匹配ACL条目,导致处理器芯片工作量急剧增加,致使设备的吞吐量处理能力急剧降低。为了解决上述问题,多数网络设备厂商的ACL功能普遍采用TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)硬件存储和TCAM硬件查找方式来实现,但是TCAM存储容量有限,在ACL条目达到百万条之多的情况下单片或少许几片TCAM的存储是难以胜任的,并且TCAM成本高昂,在一定程度上限制了其应用的广泛性。同时由于TCAM在并行查找方面支持的能力有限,对于网上设备上多达16核32核的多核处理器平台,提出的16路32路或更多路数的并行查找需求显得捉襟见肘。当前针对多核处理器平台,在现有访问控制列表查找算法基础上,为大容量路由器和防火墙等网络设备设计一种并行的大容量访问控制列表查找方法显得尤为必要。
大型的路由器和防火墙等网络设备的存储都是SDRAM(synchronous dynamic random access memory,步动态随机存储器)为主,其优点是大容量和低价格。当前国内外基于SDRAM的最新访问控制列表(ACL)查找算法主要有线性查找算法、树形查找算法、几何查找算法和递归查找算法等算法。
线性查找算法基于线性链表的数据组织方式,访问控制列表ACL表项以链表的方式存储在SDRAM中,数据包进行ACL表项项查找时需要对链表上的表项逐个匹配,直到匹配一条合适的表项为止。该算法数据结构简单,容易实现,但是在表项存储量较大的情况下,链表的深度较大,每个数据包需要匹配的平均次数随之增加,最坏情况下需要匹配的次数就是表项的个数,在访问控制列表表项数目较多的情况下单纯依靠上述算法是不可取的,只适用于ACL表项较少的应用场合。
树形查找算法、几何查找算法和递归查找算法都是在查找次数上进行优化和改进,通过数据结构的优化,将表项的存储分散成树形结构或图的数据结构,避免单纯的线性存储方式。算法从一定程度上降低了表项的存储深度和减少了平均查找的次数,优化了查找的性能。但是该算法相对于线性查找算法数据结构组织复杂、在掩码查找上支持的能力较弱,同时在并行查找和频繁表项更新等环境中算法的运行效率同样不高,这些算法一般只适用于单核处理器和表项结构较为稳定的设备环境中。
上述查找算法分别适合不同的环境,每种算法适用不同的场合,需要结合具体的环境才能发挥其较好的性能优势,但是在当前网络设备所处网络环境复杂,要求对并行查找、大容量表项存储、频繁表项更新、高查找速度和支持掩码匹配等苛刻应用需求下,单纯的应用上述传统算法是难以满足实际应用的需求。同时网络设备的数据平面对算法查找过程中平均匹配次数极为敏感,匹配次数增加一倍可能导致设备性能直接降低50%,因此网络数据设备一般希望能够将匹配次数控制在1至3次以内,这是上述任何一种软件算法在大容量表项情况下都不可能能够完成和实现的。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种并行的大容量访问控制列表的查找方法,提高了访问控制列表匹配的效率,消除了多核处理器在访问控制列表功能项上的技术瓶颈;提高了资源的利用率和任务执行的效率。
为达到以上目的,本发明采取的技术方案是:一种并行的大容量访问控制列表的查找方法,基于多核处理器实现,包括:将访问控制列表的链表存储结构设成双向链表的方式,建立访问控制列表中各表项之间的结构关系;多核处理器对初次进入的数据流进行流的划分,建立流表,同时查找合适的访问控制列表表项,建立流表与访问控制列表表项的关联;后续进入的数据流直接从流表表项中获取访问控制列表的执行动作。
在上述技术方案的基础上,多核处理器将接收到的数据流中的数据包分发到各个空闲的核上,核抽取数据包中对应的条件字段进行哈希运算,根据哈希值的不同将数据包划分到不同的流表中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉烽火网络有限责任公司,未经武汉烽火网络有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410653173.3/2.html,转载请声明来源钻瓜专利网。