一种基于多URL规则集的HTTP数据匹配方法组成比例

技术编号:15437406 阅读:74 留言:0更新日期:2017-05-26 03:29
本发明专利技术公开了一种基于多URL规则集的HTTP数据匹配方法,包括:拆分待匹配URL规则集中的每一条规则;数字化规则集,即将拆分后的每一条URL规则进行分解并数字化为若干个结点;建立用于搜索的哈希二分多链表,即将数字化后的每一个结点按层进行哈希存储,对于冲突的结点采用二分存储;根据到达的目标数据关键词对目标HTTP数据进行边数字化边匹配处理。本发明专利技术不需要对底层硬件进行相应修改;从而使本发明专利技术具有较宽的应用范围及较低的硬件要求;有效提升了HTTP数据流的匹配能力;有效的利用内存空间中数据结构之间可以相互转换的特点,有效的将字符空间中的字符串匹配问题转换成了数字空间中的数值大小比较问题。

A HTTP data matching method based on multi URL rule set

The invention discloses a matching method, HTTP data set based on URL rules include: resolution matching each rule URL rule set; digital rule sets, decomposition and digital into a number of nodes will split after each URL rule is used to search the building; two more Hash list is each node after digitization by layer hash storage, the conflict node adopts two storage; according to the HTTP data object data keywords to edge edge matching of digital processing. The invention does not need the corresponding modification of the underlying hardware; thereby the invention has wide application range and lower hardware requirements; improve the matching ability of HTTP data stream; effective use of data structures between the memory space characteristics of mutual conversion, efficient string matching problem in character space the problem is converted into a numerical value in digital space.

【技术实现步骤摘要】
一种基于多URL规则集的HTTP数据匹配方法
本专利技术属于数据分析
,尤其涉及一种基于多URL规则集的HTTP数据匹配方法。
技术介绍
基于URL(UniformResourceLocator,统一资源定位器)规则集的多模式字符串匹配方法被广泛应用于防火墙、网络流量数据分析与采集、WEB服务器负载均衡、WEB黑白名单、邮件分类及垃圾邮件检测、入侵检测及基于URL的内容分级等领域。近年来,云计算、大数据及人工智能等计算机领域的蓬勃发展,也极大的促进了机器人领域的发展,机器人领域的研究由当初的单体机器人逐渐发展到多机器人、群机器人、网络机器人及云机器人等领域,这些领域也开始对URL匹配或基于特定协议的字符串匹配提出了需求。所谓的基于URL的多模式字符串匹配是指在一个包含多个URL字符串的集合中,找出目标字符串或数据流能匹配到的URL字符串规则子集合。目前,多模式字符串匹配方法主要有基于自动机的匹配方法,基于散列的匹配方法和基于位并行的匹配方法等。其中,基于自动机的匹配方法往往需要消耗巨大的存储空间,这在嵌入式系统及部分硬件资源有限的机器人或可穿戴设备中是无法被接受的,而且这类方法可能会在特定规则集下发生严重的性能退化现象,往往只能支持较小规模的模式串集合;基于散列的匹配方法虽然匹配速度较快,但对于URL这种分布具有一定规律的模式串集合则很容易发生冲突,造成性能下降,虽然减小装载因子可以在一定程度上减少冲突,但却又造成了空间的浪费;基于位并行的匹配方法则受限于机器字宽,其适应范围极窄,往往只支持数十个模式串。此外,还有一些基于这些经典方法进行改进的方法,但这些方法都没有很好的结合HTTP协议特点及字符串的数字特征,性能提升依然有限。HTTP协议即超文本传输协议,是人们在TCP协议基础上提出的一种应用层协议,主要用于万维网应用领域,目前最新版本是1999年发布的HTTP1.1版。在HTTP协议中,消息分为请求消息和响应消息两种,大部分实际应用主要关心请求消息。在HTTP的请求消息中,方法、资源指示符及协议版本等信息被包含在消息首行中,请求消息中的Request-URI和Host头域则对所请求的资源进行精确定位。由于HTTP协议具有简捷、方便等特点,在各种媒体资源的表达与传输方面具有较大优势,因此在提出后得到了极大的发展。近年来,随着网络数据流量的逐年递增,各领域对数据匹配速度要求越来越高,甚至要求基于多URL规则集的数据匹配方法在数万条甚至数百万条规则下达到数10Gbps的HTTP数据流量处理能力。面对这种快速发展的需求,利用现有的多模式匹配方法进行URL规则集匹配已不能满足工程应用需求(处理速度慢,导致系统吞吐性能降低。比如在WEB服务器的负载均衡和防火墙黑白名单管理方面,较慢的算法会导致服务器处理能力降低,从而使用户访问速度变慢),HTTP数据报文匹配速度过慢。如何结合HTTP协议的基本特点和字符串的数字特征,快速地进行URL规则集与HTTP目标数据流的匹配,是本领域技术人员亟需解决的技术问题。综上所述,现有的多模式匹配方法进行URL规则集匹配存在处理速度慢,导致系统吞吐性能降低。
技术实现思路
本专利技术的目的在于提供一种基于多URL规则集的HTTP数据匹配方法,旨在解决现有的多模式匹配方法进行URL规则集匹配存在处理速度慢,导致系统吞吐性能降低的问题。本专利技术是这样实现的,一种基于多URL规则集的HTTP数据匹配方法,所述基于多URL规则集的HTTP数据匹配方法包括以下步骤:步骤一,拆分待匹配URL规则集中的每一条规则;步骤二,数字化规则集,即将拆分后的每一条URL规则进行分解并数字化为若干个结点;建立用于搜索的哈希二分多链表,即将数字化后的每一个结点按层进行哈希存储,对于冲突的结点采用二分存储;步骤三,根据到达的目标数据关键词对目标HTTP数据进行边数字化边匹配处理。进一步,将待匹配的URL规则数量为C的URL规则集中的每一条URL规则拆分为HOST和PATH两部分,分别存入HOST集合H和PATH集合P;具体包括以下步骤:(1)设定初始URL集合U、HOST集合H、PATH集合P和循环计数标识i,将规则集中的URL按规则序号依次存入集合U中,将i置为1,并将集合H和集合P置空;(2)从集合U中取出第i条URL;(3)判断第i条URL字符串是否含有“/”字符:如果有“/”字符,则将第一个“/”字符之前的部分存入集合H的第i个位置,将“/”及之后的部分存入集合P的第i个位置;如果没有“/”字符,则将整条URL存入集合H的第i个位置,将“/”字符存入集合P的第i个位置;子规则加入集合时,所有字符按照URL中同样的顺序加入,以保证规则顺序;(4)从集合U中删除第i条URL,判定集合U是否为空,若不为空,则令i=i+1,转步骤(2),若集合U为空,则执行将每个子规则拆分。进一步,将集合H和集合P中的每个子规则拆分为若干小段,每个小段长度为一个机器字长,并将每个小段转换为一个正整数,分别存入HOST数字化集合Hd和PATH数字化集合Pd中的数组中,集合H中的每个子规则对应集合Hd中的一个数组,集合P中的每个子规则对应集合Pd中的一个数组;具体步骤包括:(1)用宿主机机器字长除以8,计算出用于规则分割的计数值n;(2)设定初始HOST数字化集合Hd、PATH数字化集合Pd、大循环计数标识i和小循环计数标识j,将集合Hd和集合Pd置空,并将i和j都置为1;(3)从集合H中取出第i条HOST规则,计算出该规则的长度LHi并进行数字化集合构建;计算LHi-(n*j-8)的值li,并判断li的值:若li为0,转到步骤(4);若li大于8,则取出第(n*j-7)到第n*j个字符,将这些n个字符强制转换为1个无符号的整形数字Wj,并将Wj存入集合Hd中的第i个数组的第j个位置;若li小于8,则取出第(n*j-7)到第LHi个字符,将这些n个字符强制转换为1个无符号的整形数字Wj,并将Wj存入集合Hd中的第i个数组的第j个位置;令j=j+1;(4)判断i值:若i大于或等于C,令i=1,j=1,转到步骤(5);若i小于C,令i=i+1,j=1,转到步骤(3);(5)从集合P中取出第i条PATH规则,计算出该规则的长度LPi并进行数字化集合构建;计算LPi-(n*j-8)的值li,并判断li的值:若li为0,转到步骤(6);若li大于8,则取出第(n*j-7)到第n*j个字符,将这些n个字符强制转换为1个无符号的整形数字Wj,并将Wj存入集合Pd中的第i个数组的第j个位置;若li小于8,则取出第(n*j-7)到第LPi个字符,将这些n个字符强制转换为1个无符号的整形数字Wj,并将Wj存入集合Pd中的第i个数组的第j个位置;令j=j+1;(6)判断i值:若i大于或等于C,转到将集合Hd和集合Pd中数组按层进行哈希存储;若i小于C,令i=i+1,j=1,转到步骤(5)。进一步,将集合Hd和集合Pd中数组按层进行哈希存储,对于冲突的数据采用二分存储,建立哈希二分多链表结构,具体包括以下步骤:1)新建哈希二分多链表表头结点Hp和临时指针Lp,其中Hp包含两个域,第一个域pNext是一个指针,用于指向哈希二分多链表的第一个哈希表,本文档来自技高网
...
一种基于多URL规则集的HTTP数据匹配方法

【技术保护点】
一种基于多URL规则集的HTTP数据匹配方法,其特征在于,所述基于多URL规则集的HTTP数据匹配方法包括以下步骤:步骤一,拆分待匹配URL规则集中的每一条规则;步骤二,数字化规则集,即将拆分后的每一条URL规则进行分解并数字化为若干个结点;建立用于搜索的哈希二分多链表,即将数字化后的每一个结点按层进行哈希存储,对于冲突的结点采用二分存储;步骤三,根据到达的目标数据关键词对目标HTTP数据进行边数字化边匹配处理。

【技术特征摘要】
1.一种基于多URL规则集的HTTP数据匹配方法,其特征在于,所述基于多URL规则集的HTTP数据匹配方法包括以下步骤:步骤一,拆分待匹配URL规则集中的每一条规则;步骤二,数字化规则集,即将拆分后的每一条URL规则进行分解并数字化为若干个结点;建立用于搜索的哈希二分多链表,即将数字化后的每一个结点按层进行哈希存储,对于冲突的结点采用二分存储;步骤三,根据到达的目标数据关键词对目标HTTP数据进行边数字化边匹配处理。2.如权利要求1所述的基于多URL规则集的HTTP数据匹配方法,其特征在于,将待匹配的URL规则数量为C的URL规则集中的每一条URL规则拆分为HOST和PATH两部分,分别存入HOST集合H和PATH集合P;具体包括以下步骤:(1)设定初始URL集合U、HOST集合H、PATH集合P和循环计数标识i,将规则集中的URL按规则序号依次存入集合U中,将i置为1,并将集合H和集合P置空;(2)从集合U中取出第i条URL;(3)判断第i条URL字符串是否含有“/”字符:如果有“/”字符,则将第一个“/”字符之前的部分存入集合H的第i个位置,将“/”及之后的部分存入集合P的第i个位置;如果没有“/”字符,则将整条URL存入集合H的第i个位置,将“/”字符存入集合P的第i个位置;子规则加入集合时,所有字符按照URL中同样的顺序加入,以保证规则顺序;(4)从集合U中删除第i条URL,判定集合U是否为空,若不为空,则令i=i+1,转步骤(2),若集合U为空,则执行将每个子规则拆分。3.如权利要求1所述的基于多URL规则集的HTTP数据匹配方法,其特征在于,将集合H和集合P中的每个子规则拆分为若干小段,每个小段长度为一个机器字长,并将每个小段转换为一个正整数,分别存入HOST数字化集合Hd和PATH数字化集合Pd中的数组中,集合H中的每个子规则对应集合Hd中的一个数组,集合P中的每个子规则对应集合Pd中的一个数组;具体步骤包括:(1)用宿主机机器字长除以8,计算出用于规则分割的计数值n;(2)设定初始HOST数字化集合Hd、PATH数字化集合Pd、大循环计数标识i和小循环计数标识j,将集合Hd和集合Pd置空,并将i和j都置为1;(3)从集合H中取出第i条HOST规则,计算出该规则的长度LHi并进行数字化集合构建;计算LHi-(n*j-8)的值li,并判断li的值:若li为0,转到步骤(4);若li大于8,则取出第(n*j-7)到第n*j个字符,将这些n个字符强制转换为1个无符号的整形数字Wj,并将Wj存入集合Hd中的第i个数组的第j个位置;若li小于8,则取出第(n*j-7)到第LHi个字符,将这些n个字符强制转换为1个无符号的整形数字Wj,并将Wj存入集合Hd中的第i个数组的第j个位置;令j=j+1;(4)判断i值:若i大于或等于C,令i=1,j=1,转到步骤(5);若i小于C,令i=i+1,j=1,转到步骤(3);(5)从集合P中取出第i条PATH规则,计算出该规则的长度LPi并进行数字化集合构建;计算LPi-(n*j-8)的值li,并判断li的值:若li为0,转到步骤(6);若li大于8,则取出第(n*j-7)到第n*j个字符,将这些n个字符强制转换为1个无符号的整形数字Wj,并将Wj存入集合Pd中的第i个数组的第j个位置;若li小于8,则取出第(n*j-7)到第LPi个字符,将这些n个字符强制转换为1个无符号的整形数字Wj,并将Wj存入集合Pd中的第i个数组的第j个位置;令j=j+1;(6)判断i值:若i大于或等于C,转到将集合Hd和集合Pd中数组按层进行哈希存储;若i小于C,令i=i+1,j=1,转到步骤(5)。4.如权利要求1所述的基于多URL规则集的HTTP数据匹配方法,其特征在于,将集合Hd和集合Pd中数组按层进行哈希存储,对于冲突的数据采用二分存储,建立哈希二分多链表结构,具体包括以下步骤:1)新建哈希二分多链表表头结点Hp和临时指针Lp,其中Hp包含两个域,第一个域pNext是一个指针,用于指向哈希二分多链表的第一个哈希表,另一个域pKey是一个整数,用于记录哈希二分多链表的第一个哈希表的关键字K;定循环计数标识i=1;2)取出Pd集合中所有数组的第1个数据,存入临时数组Td,数组长度为Pd集合中的数组个数m;3)设定哈希关键字KEY=m、临时计数j=m、平均冲突数据计数A=0、临时冲突数据计数At=0及最大哈希探...

【专利技术属性】
技术研发人员:谭庆平李盼盼曾平徐建军邵则铭孟宪凯张南邓锦洲张浩宇仵思聪刘鑫昊唐国斐谢勤政颜颖
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南,43

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

1