URL匹配方法、URL匹配设备及存储介质组成比例

技术编号:16662872 阅读:30 留言:0更新日期:2017-11-30 11:57
本发明专利技术提供URL匹配方法、URL匹配设备及存储介质,该方法通过将输入的待匹配的原始URL数据在URL结果缓存中查询是否已存储过其对应的信息,若是则查询标志位及已命中规则表得到以前是否匹配的信息,输出匹配结果;否则在模式匹配引擎中进行匹配,并进行存储URL数据。该方法对大量重复的URL数据去重,以降低URL数据重复匹配次数,提高匹配速度。同时本发明专利技术采用比实际串匹配复杂度低的多项式散列算法,但不仅限于多项式散列算法。在增添数据去重操作后可以减少重复的URL数据的匹配次数,达到去重和降低匹配时间的目的。

【技术实现步骤摘要】
URL匹配方法、URL匹配设备及存储介质
本专利技术涉及内容过滤、信息安全等领域,尤其涉及URL匹配方法、URL匹配设备及存储介质。
技术介绍
随着计算机网络的发展,通过网络进行娱乐、工作、休闲等已经占据着生活的大部分时间,万维网的应用已占因特网通信量的90%。在这种情况下,需要对访问的URL(UniformResourceLocator,统一资源定位符)进行匹配,进而对访问的URL进行控制,提高工作效率。一种传统的URL匹配方法主要利用串匹配的算法针对URL规则集合做处理,如根据URL“黑名单”的过滤特点,利用AC(Aho-Corasick)算法,采取启发式策略从URL规则中选取定长、具有特点的子串,并利用双数组进行压缩。另一种传统的URL匹配方法主要利用路由器与缓存引擎之间的通信协议(WCCP)完成URL匹配。上述两种传统的URL匹配方法主要从常规性的内容过滤系统的角度来实现对URL的匹配过程,但是,在实际进行URL匹配时,待匹配的URL数据中存在大量的重复URL数据,这些重复的URL数据使得匹配过程重复匹配了多次数据,从而降低了传统URL匹配方法的匹配效率。
技术实现思路
由于真实网络流量下URL数据的重复率比较高,对网络流量匹配时往往有大量数据重复匹配,这样会降低匹配速度。本专利技术旨在提供URL匹配方法、URL匹配设备及存储介质,该方法能够针对网络流量中的文本匹配问题快速匹配规则,并且能够将大规模的URL数据去重,以达到避免重复匹配数据的目的。针对上述目的,本专利技术所采用的技术方案为:一种URL匹配方法,其步骤为:1)将待匹配的原始URL数据进行双哈希运算,得到双哈希值hash1、hash2及其对应的哈希值h;2)若在哈希表中查询到哈希值为h的哈希节点,则查询该哈希节点的双哈希值与上述待匹配的原始URL数据的双哈希值是否都相等;3)若相等,则判断上述哈希节点的标志位start和end是否满足预设条件;4)若上述哈希节点的标志位start和end满足预设条件,则上述待匹配的原始URL数据匹配已命中规则表中的一条规则。进一步地,步骤2)中所述哈希表与步骤4)中所述已命中规则表位于URL结果缓存中。进一步地,步骤2)还包括:若在哈希表中未查询到哈希值为h的哈希节点,则直接结束,转到模式匹配引擎匹配所述待匹配的原始URL数据,并返回结果。进一步地,步骤3)中所述预设条件是指哈希节点的标志位start和end不相等。更进一步地,步骤3)还包括:若上述哈希节点的双哈希值与上述待匹配的原始URL数据的双哈希值不相等,则在上述哈希表中查询是否还有其它哈希值为h的哈希节点;若没有则利用模式匹配引擎匹配所述待匹配的原始URL数据,并返回结果。更进一步地,当模式匹配引擎匹配所述待匹配的原始URL数据,并返回结果时,将该待匹配的原始URL数据存入URL结果缓存,其步骤包括:a)判断URL结果缓存中的URL数据数目J是否超出阈值M,若未超出,则将该待匹配的原始URL数据的双哈希值hash1、hash2记录到当前哈希节点hash_node[J]中;若超出,则对该块URL结果缓存采取替换策略;其中M为能缓存的URL数据大小;b)当模式匹配引擎返回结果为0时,则该哈希节点hash_node[J]中的标志位hash_node[J].start=hash_node[J].end=K;当模式匹配引擎返回结果为1时,则该哈希节点hash_node[J]中的标志位hash_node[J].start=K、hash_node[J].end=K+1,并在matched_rules[]中存储从模式匹配引擎返回的匹配规则号matched_rules[K]=RuleId,此时K=K+1;其中0代表该待匹配的原始URL数据不匹配规则,1代表该待匹配的原始URL数据匹配规则,K为已匹配的规则数目,matched_rules[]代表已命中规则表;c)获取上述待匹配的原始URL数据的哈希值h,存储哈希值相同的哈希节点到next中,且存储的URL数据数目J=J+1。更进一步地,步骤a)中所述替换策略是指:对该块URL结果缓存清零,重新分配空间存储新的URL数据。更进一步地,所述待匹配的原始URL数据的哈希值h根据hash1与(N-1)做与运算得到,其中N为哈希表大小。进一步地,步骤4)还包括:若上述哈希节点的标志位start和end不满足预设条件,则上述待匹配的原始URL数据不匹配规则。进一步地,步骤4)中所述规则是指与上述哈希节点的哈希值所对应数据匹配的规则。进一步地,所述双哈希运算采用多项式散列算法,并采用多线程的方法并行对URL数据进行匹配。一种URL匹配设备,包括处理器和存储器,所述处理器与所述存储器通过总线连接;所述存储器用于存储上述任一所述方法对应的计算机执行指令;当所述URL匹配设备运行时,所述处理器读取所述存储器中的所述计算机执行指令,以使所述URL匹配设备执行上述任一所述方法的步骤。一种存储有计算机程序的非易失性计算机可读存储介质,当计算机执行所述计算机程序时,所述计算机执行上述任一所述方法的步骤。本专利技术的有益效果在于:1、本专利技术方法通过将输入的待匹配的原始URL数据在URL结果缓存中查询是否已存储过其对应的信息,若是则查询标志位及已命中规则表得到以前是否匹配的信息,输出匹配结果;否则在模式匹配引擎中进行匹配,并进行存储URL数据。2、本专利技术方法及设备对大量重复的URL数据去重,以降低URL数据重复匹配次数,提高匹配速度。3、本专利技术在URL结果缓存中的URL数据数目超出阈值后,对该块URL结果缓存采取替换策略,以保证当前URL数据的存储过程顺利进行。4、本专利技术采用比实际串匹配复杂度低的多项式散列算法,但不仅限于多项式散列算法。在增添数据去重操作后可以减少重复的URL数据的匹配次数,达到去重和降低匹配时间的目的。5、本专利技术提供的存储介质可以应用在入侵检测系统、拼写检查、网络流量监测等领域,还可以在计算机硬件单机及多台服务器中运行。附图说明图1为本专利技术提供的URL匹配设备结构图。图2为本专利技术提供的URL匹配的基本数据类型示意图。图3为本专利技术提供的URL结果缓存中匹配阶段流程图。图4为本专利技术提供的URL结果缓存中存储阶段流程图。图5为本专利技术一实施例的规则存储示意图。图6为本专利技术一实施例的url1存储时,各表存储变化示意图。图7为本专利技术一实施例的url2存储时,各表存储变化示意图。图8为本专利技术一实施例的url3存储时,各表存储变化示意图。图9为本专利技术一实施例的url5存储时,各表存储变化示意图。图10为本专利技术一实施例的url8存储时,各表存储变化示意图。具体实施方式针对多种散列方法,本专利技术从骨干网络中采集了千万条真实URL数据,数据大小为2.06GB。不同哈希算法在URL数据上的计算速度有所不同,其效果见表1。由于最终要提高匹配速度,需要对URL数据进行去重处理,但是如果去重处理的复杂度太高,散列速度很慢,最终会影响最后的串匹配速度。所以,为了提高其散列效率,需要选取散列计算速度最快的一种作为专利技术的散列函数,即多项式散列算法(poly_hash)。表1:不同哈希算法在URL数据上的计算速度哈希算法具体哈希算法计算速度(MB/s)查表散列算法c本文档来自技高网...
URL匹配方法、URL匹配设备及存储介质

【技术保护点】
一种URL匹配方法,其步骤为:1)将待匹配的原始URL数据进行双哈希运算,得到双哈希值hash1、hash2及其对应的哈希值h;2)若在哈希表中查询到哈希值为h的哈希节点,则查询该哈希节点的双哈希值与上述待匹配的原始URL数据的双哈希值是否都相等;3)若相等,则判断上述哈希节点的标志位start和end是否满足预设条件;4)若上述哈希节点的标志位start和end满足预设条件,则上述待匹配的原始URL数据匹配已命中规则表中的一条规则。

【技术特征摘要】
1.一种URL匹配方法,其步骤为:1)将待匹配的原始URL数据进行双哈希运算,得到双哈希值hash1、hash2及其对应的哈希值h;2)若在哈希表中查询到哈希值为h的哈希节点,则查询该哈希节点的双哈希值与上述待匹配的原始URL数据的双哈希值是否都相等;3)若相等,则判断上述哈希节点的标志位start和end是否满足预设条件;4)若上述哈希节点的标志位start和end满足预设条件,则上述待匹配的原始URL数据匹配已命中规则表中的一条规则。2.如权利要求1所述的方法,其特征在于,步骤2)中所述哈希表与步骤4)中所述已命中规则表位于URL结果缓存中。3.如权利要求1所述的方法,其特征在于,步骤2)还包括:若在哈希表中未查询到哈希值为h的哈希节点,则直接结束,转到模式匹配引擎匹配所述待匹配的原始URL数据,并返回结果。4.如权利要求1所述的方法,其特征在于,步骤3)中所述预设条件是指哈希节点的标志位start和end不相等。5.如权利要求2所述的方法,其特征在于,步骤3)还包括:若上述哈希节点的双哈希值与上述待匹配的原始URL数据的双哈希值不相等,则在上述哈希表中查询是否还有其它哈希值为h的哈希节点;若没有则利用模式匹配引擎匹配所述待匹配的原始URL数据,并返回结果。6.如权利要求5所述的方法,其特征在于,当模式匹配引擎匹配所述待匹配的原始URL数据,并返回结果时,将该待匹配的原始URL数据存入URL结果缓存,其步骤包括:a)判断URL结果缓存中的URL数据数目J是否超出阈值M,若未超出,则将该待匹配的原始URL数据的双哈希值hash1、hash2记录到当前哈希节点hash_node[J]中;若超出,则对该块URL结果缓存采取替换策略;其中M为能缓存的URL数据大小;b)当模式匹配引擎返回结果为0时,则该哈希节点hash_node[J]中的标志位hash_node[J].start=hash_node[J].end=K;当模式...

【专利技术属性】
技术研发人员:卢毓海张春燕刘燕兵谭建龙郭莉
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

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

1