本发明专利技术实施例公开了一种字符串匹配方法和装置,所述字符串匹配方法包括:根据预设的状态属性阈值对状态信息进行分类;采用不同存储方式存储分类后的每类状态信息,所述不同存储方式的空间效率不同;利用存储的状态信息对接收的字符串进行匹配操作。本发明专利技术实施例对状态信息进行分类,针对不同的状态采用不同的存储方法,既压缩了整个状态信息的存储空间,使之能够满足当前存储器件的容量限制,又保证了在进行字符串匹配操作时能够有较高的处理速度。
【技术实现步骤摘要】
本专利技术实施例涉及通信
,特别涉及一种字符串匹配方法和装置。
技术介绍
随着全IP (Internet Protocol,因特网协议)网络、固定移动融合、多重播放等概念的提出,传统的IP网络正在向集数据、语音和^f见频于一体的多业务统一承载网转变。但是IP网络固有的数据传送方式和本质上开》文的特征无法很好地满足电信级业务的需要,在网络安全性、可管理性和关键业务的QoS( Qualityof Service,服务质量)和QoE ( Quality of Experience,用户体验质量)保证等方面都有待改进。为了对一些关键业务进行精确的业务识别和控制,除了按照传统的方法分析报文头中的五元组等字段外,还需要对报文的负荷部分进行检测。DPI ( Deep Packet Inspection,深度报文才企测)技术作为一种灵活有效的业务识别技术应运而生。现在,DPI技术多采用正则表达式取代字符串来描述报文特征。正则表达式是一种形式语言,由常量和算子組成,常量和算子分别指示元字符的集合和在这些集合上的运算。和字符串相比,正则表达式能够非常灵活、简单、有效地描述各种特征,使得特征串具有动态特性,适合各种动态搜索。例如b, ab, aab, aaab, aaaab,…这一系列的字符串特征可以简单地用一个正则表达式a化来表示,字符串可以看作是正则表达式的一种特例,后续将两者统称为字符串。判断输入内容中是否包含字符串表示的规则的操作称为字符串匹配,现有技术提供的一种字符串匹配方法是基于DFA (Deterministic FiniteAutomation,确定性有限状态机)方法。现在,字符串匹配在网络设备中得到越来越多的应用,比如在网络设备中对数据报文进行;险测。 一种趋势是利用FPGA (Field Programmable GateArray,现场可编程门阵列)、ASIC (Application Specific Integrated Circuit,专用集成电路)实现基于DFA的字符串匹配系统,这些系统依赖于各种存储器来保存DFA数据。现在常用的存储器有BRAM (Block Random AccessMemoiy,片内分块随才几存取存j渚器)、DRAM (Dynamic Random AccessMemory,动态随才几存取存4诸器)、SRAM (Static Random Access Memory,静态随机存取存储器)等几种。在使用较复杂的字符串规则集合时,无法用BRAM和SRAM来存储全部的DFA信息;虽然DRAM可以满足存储要求,但DRAM访问速度慢,满足不了线速处理的要求,而且频繁访问DRAM会成为整个系统的最大瓶颈。现有技术的一种匹配方式是采用状态迁移表方式存储状态信息,利用存储的状态信息进行字符串匹配。状态迁移表方式是一种非紧凑存储方式,其基本的思路是将当前状态和输入字符分别作为表的两个维度,通过这两个参数可以唯一确定一个目的状态。但是状态迁移表方式对每种可能的输入字符都需要存储,即使在某个状态上没有有效输入字符,也需要一个存储位置,因此上述存储方法占用的存储空间很大,无法用快速存储器件实现DFA的完全存储。现有技术的另 一种匹配方式是采用邻接表方式存储状态信息,利用存储的状态信息进行字符串匹配。邻接表方式是一种紧凑存储方式。基本的思路是对某个当前状态,只存储有效字符对应的那些转移边信息。但是邻接表方式存储的字符不连续,在进行字符比较时只能从第一个字符开始,逐个地对存储的字符进行比较,无法实现高速的字符串匹配处理,无法达到线速处理的性能要求,因此在高速系统中虽然节省了存储空间,仍然很少被用来进行字符串匹配。此外,在转移边个数比较多时,邻接表方式的存储方法节省的存储空间非常有限。现有技术还提出了一种分级的内存结构来存储状态机信息,并利用存储的状态机信息进行字符串匹配。基本思路是按照访问速度将BRAM、 SRAM和DRAM从高到低组织起来,层次越高的存储器速度越高,容量越小;然后按照字符串规则的使用频度由高到低的顺序,将规则对应的状态机用不同的存储器件来存放;使用频度高的规则优先放在层次较高的存储器中。但是该方法对于所有规则仍然采用单一 的存储方式,而且同 一个状态机的所有状态在某个时刻会同时存储在同 一存储器中。在规则本身比较复杂时,BRAM中能够存储的状态机个数取决于规则的复杂程度。因此在规则个数较多或规则本身较复杂时,该方法不适用于字符串匹配操作。
技术实现思路
本专利技术实施例提供一种字符串匹配方法和装置,以实现对不同的状态信息采用不同的存储方式进行存储,利用存储的状态信息进行字符串匹配,提高字符串匹配性能。为达到上述目的,本专利技术实施例一方面提供一种字符串匹配方法,包括根据预设的状态属性阈值对状态信息进行分类;采用不同存储方式存储分类后的每类状态信息,所述不同存储方式的空间效率不同;利用存储的状态信息对接收的字符串进行匹配才喿作。另一方面,本专利技术实施例还提供一种字符串匹配装置,包括分类模块,用于根据预设的状态属性阈值对状态信息进行分类;存储模块,用于采用不同存储方式存储所述分类模块分类后的每类状态信息,所述不同存储方式的空间效率不同;匹配模块,用于利用所述存储模块存储的状态信息对接收的字符串进行匹配操作。再一方面,本专利技术实施例还提供一种状态信息的编译方法,包括将正则表达式规则转换为状态机;扫描状态机的每一个状态信息,根据预设的状态属性阈值对所述状态信息进行分类;采用不同存储方式存储分类后的每类状态信息,所述不同存储方式的空间效率不同。再一方面,本专利技术实施例还提供一种状态信息的编译工具,包括转换模块,用于将正则表达式规则转换为状态机;分类模块,用于扫描所述转换模块转换的状态机的每一个状态信息,根据预设的状态属性阈值对所述状态信息进行分类;存储模块,用于采用不同存储方式存储分类后的每类状态信息,所述不 同存储方式的空间效率不同。与现有技术相比,本专利技术实施例具有以下优点本专利技术实施例对状态信 息进行分类,针对不同种类的状态信息釆用不同的存储方法,并利用存储的 状态信息进行字符串匹配。本专利技术实施例既压缩了整个状态信息的存储空间, 使之能够满足当前存储器件的容量限制,又保证了在进行字符串匹配时,有 较高的处理性能。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,下面描述中的附图仅仅是本专利技术的一些实施 例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。图1为本专利技术实施例提出的一种字符串匹配方法的流程图; 图2为本专利技术实施例提出的一种字符串匹配装置的结构图; 图3为本专利技术实施例提出的另一种字符串匹配装置的结构图; 图4为本专利技术实施例提出的字符串匹配装置的工作流程示意图; 图5为本专利技术实施例状态信息的编译方法的流程图; 图6为本专利技术实施例状态信息的编译工具的结构图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行 清楚、完整地描述,所描述的实施例仅仅是本专利技术的一部分实施例,而不是 全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创 造性劳动前提下所获得的所有本文档来自技高网...
【技术保护点】
一种字符串匹配方法,其特征在于,包括: 根据预设的状态属性阈值对状态信息进行分类; 采用不同存储方式存储分类后的每类状态信息,所述不同存储方式的空间效率不同; 利用存储的状态信息对接收的字符串进行匹配操作。
【技术特征摘要】
【专利技术属性】
技术研发人员:王浩,赵玉超,王勇,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:94[]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。