一种用于运营商网络出口的网络报文模式匹配方法及系统的制作方法

文档序号:7554055阅读:85来源:国知局
专利名称:一种用于运营商网络出口的网络报文模式匹配方法及系统的制作方法
技术领域
本发明涉及一种解决在复杂环境下导致模式匹配算法效率降低的优化算法,适用于使用模式匹配算法实时识别网络报文的应用场景,特别适用于部署在运营商网络出口实时识别并处理大量网络报文的应用场景,即本发明提供一种用于运营商网络出口的网络报文模式匹配方法及系统。
背景技术
网络运营商的网络出口是网内用户出网请求数据报文的汇聚点,请求报文数量巨大,如果要在网络出口部署监听设备对用户的请求报文进行实时监听并分析,要求该监听设备具有非常高效的模式匹配算法,否则将会由于处理效率不高导致大量报文来不及处理而被丢弃,造成网络报文分析和处理效果不理想。采用传统的模式匹配算法对用户请求的URL字符串进行模式匹配,一个模式匹配失败后,执行下一个模式匹配时需要回溯到前一个模式的起始字符位置重新进行匹配,造成对字符串执行重复的比较,当需要匹配的模式比较多时,会导致处理效率急剧下降,从而影响处理设备整体的性能表现。

发明内容
本发明的目的是提供一种解决在数据量大、模式较多的情况下提高模式匹配处理效率的算法,使用这种方法后,可以将复杂度非常高的字符串比较转化为单纯的数字比较,使处理效率得到极大提升,从而达到在运营商网络出口实时分析和处理用户上网请求的目的。为实现上述目的,本发明提供了一种用于运营商网络出口的网络报文模式匹配方法,该方法用于对运营商网络出口处用户请求的URL与缓存系统需要识别并处理的URL进行模式匹配,所述方 法包含:步骤101)统计URL的所有特征,基于统计特征将URL包含的由分隔符分割的字符串共分为M类,并采用自定义的若干个数值描述M类中的每一类字符串;步骤102)将缓存系统需要识别和处理的URL元数据进行分析,并基于某一类分隔符将URL元数据划分为若干字符串,将得到的各个字符串划分至M类中的某一类同时采用自定义的数值描述各字符串的具体类别,最后统计每个字符串包含的字符的数量并采用自定义的数值记载字符数量;步骤103)对运营商网络出口监听到的URL请求进行一次扫描,并将监听到的URL元数据进行与上步骤针对URL元数据相同的处理,得到监听到的URL请求包含的各字符串的数值化的类别和数值化的各字符串包含的字符数量;步骤104)将步骤103)得到的URL请求各字符串的数值化的类别和数值化的各字符串包含的字符数量同时与步骤102)得到的缓存系统需要识别和处理的URL包含的字符串类别和各类别包含的字符数量进行比较,最终判定监听到的URL是否属于缓存系统需要识别并处理的URL ;
其中,所述URL的特征包含:字母、数字和分隔符。上述步骤102)进一步包含:步骤102-1)统计缓存系统需要识别和处理的URL元数据的特征,可知URL信息的组成字符具体包含:字母、数字或分隔符,并基于某一类分隔符将所述URL分割为若干字符串;步骤102-2)定义数据结构描述各字符串属性,具体为;所述数据结构包含样式mode和数量quantity两部分,其中,所述样式mode部分采用若干位自定义的二进制序列记录URL中被分隔符分割的各个字符串的具体类型,且所述字符串的具体类型分为如下三类:26个大写或小写的英文字母,十进制数字“0-9”和十六进制数字“0-9和a-f”;所述数量quantity部分用于采用若干位自定义的二进制序列记录URL中被分隔符分割的各个字符串包含的字符的个数;其中,所述样式中自定义的二进制序列的长度与所要表示的字符串的个数以及字符串种类的个数相关,所述数量中采用的二进制序列的长度与字符串个数及各字符串中包含最长字符的具体长度相关。上述步骤103)进一步包含:步骤103-1)将运营商网络出口监听到的URL请求进行一次扫描获得被分隔符分割的各字符串的特征,将各个字符串依据步骤101)定义的类型划分为某一类;步骤103-2)依据步骤101-2)定义的数据结构和二进制序列将监听到的URL请求包含的各字符串所属的类型和长度进行赋值操作,获得监听到的URL请求的数据结构中的样式和数量的初始值。上述步骤104)进一步包含:步骤104-1)将步骤103-2)中得到的数据结构中的样式mode和数量quantity变量分别与步骤102-2)中得到的数据结构中的样式mode和数量quantity变量进行“与”操作,得到待比较的样式mode和数量quantity变量值;步骤104-2)再将待比较的mode和quantity变量值同时与步骤102_2)中得到的上述某个数据结构中的样式mode和数量quantity变量进行比较,如果样式mode和数量quantity结果都相等则监测到的URL与缓存系统需要识别并处理的URL相互匹配;否则说明两个URL的特征不匹配。当URL实际包含的字符串个数超过定义的数据结构中变量能够承载的个数时,将数据结构中变量的扩展标志位进行置位,然后创建新的数据结构描述剩余的字符串;当URL包含的字符串数量非常大时,重复上述过程,创建若干个数据结构描述字符串,直到将所有字符串都采用定义的数据结构描述完成。为了实现上述方法本发明还提供了一种用于运营商网络出口的网络报文模式匹配方法及系统,该系统用于对用户请求的URL字符串与缓存系统需要识别并处理的URL进行模式匹配,从而达到在运营商网络出口实时分析和处理用户上网请求的目的,所述系统包含:URL划分模块,用于分析需要识别并处理的URL和用户请求的URL,依据URL包含的分隔符将每个URL划分为若干字符串;字符数字化处理模 块,用于将每个字符串采用样式和数量两个部分进行数字化描述,所述样式具体是将字符串进行抽象分类,然后用数值描述抽象分类;所述数量表示某个抽象分类中包含的字符数量;和模式匹配模块,将数字化处理后的用户请求的URL与数字化处理后的需要处理的URL进行数字化比较,输出模式匹配的结果。上述系统还包含:统计URL特征及数字化类型转换模块,用于统计所有URL包含的所有特征得到URL中被分隔符分隔的字符串共有M类,再自定义数值类型表示M类中的每一类,其中,所述字符数字化处理模块样式中包含的抽象分类属于所述M类分类的子集;缓存系统需要识别并处理的URL分析模块,用于对由所述URL划分模块划分得到的各字符串进行分析,并基于所述统计URL特征及数字化类型转换模块将字符数字化处理模块样式进行初始化赋值;抓取模块,部署在运营商网络出口用于实时获取和处理用户上网请求的URL,并将获取URL请求传输至所述URL划分模块进行处理。上述字符串的抽象分类是指:将各字符串划分至如下若 干类别中的一类:26个大写或小写的英文字母,十进制数字“0-9”和十六进制数字“0-9和a-f”。上述样式可以采用bit0_bit29的30个比特位表征,用于记录6个字符串的组成特征,且每个样式由5个比特位表征,其中5个比特中的前3个比特表示字符样式,后两个比特表不分隔符的样式;所述数量可以采用64bits的变量表征,由8个字节组成,每个字节代表URL分解后得到的各字符串中包含的字符个数。与现有技术相比,本发明的技术优势在于:本发明提出一种解决在数据量大、模式较多的情况下提高模式匹配处理效率的方法,这种方法的基本思想是根据URL自身具有的特点,预先划分出几类基本特征,这些基本特征使用数字进行描述。首先将需要处理的URL的特征按照基本特征规定的原则抽象为数字,形成预设的URL特征模式;然后对运营商网络出口监听到的URL进行一次扫描,使用基本特征规定的原则对URL的特征进行抽象,该特征也是用数字来表示;最后将两组数字进行比较,判定两个URL是否属于相同的模式类型。这种模式匹配完全是数字层面的比较,运算速度要远远高于传统模式匹配的字符串比较的运算速度。通过采用这种方法,可以将复杂度非常高的字符串比较转化为单纯的数字比较,使处理效率得到极大提升。如果模式匹配中还包含匹配具体字符的要求,需要对指定区域的字符串再进行一次具体字符的比较,但是由于在字符串比较之前已经根据抽象的模式特征过滤掉了不符合要求的URL,因此在处理性能上仍会远远高于不使用该方法时的处理性能。


图1是本发明实施例中采用的数据结构中样式mode图示;图2是本发明实施例中采用的数据结构中数量quantity图示;图3是本发明提供的模式匹配方法的流程图。
具体实施例方式下面结合附图和实施例对本发明所述方法进行详细说明。本发明的基本思想是将复杂度非常高的字符串比较转化为复杂度很低的单纯数字比较,使处理效率得到极大提升,从而达到在运营商网络出口实时分析和处理用户上网请求的目的。为了实现这个目的,主要从以下几个方面进行优化。一)统计URL包含的所有特征,并将统计得到的各类特征都采用数值形式表示,即采用如下定义完成URL包含的各个字符串的通配规则设置。经过统计分析可知URL包含的几类特征为:字母、数字和分隔符等,分别将这些特征抽象为数字。为了数字化各个字符串的特征采用如下定义的模式匹配描述各字符串,所述模式匹配描述包含两个部分,样式和数量,比如
{40},表示40位的hash值。本发明将待匹配的URL元数据采用模式匹配描述方法分为样式和数量两个部分,其中,所述“样式”是将URL元数 据包含的每个字符串进行抽象分类,然后再用二进制序列描述各个抽象分类;所述数量表示每个字符串中包含的字符数量。上述样式和数量成对出现能够用于完整描述URL的具体模式。上述模式匹配采用以下数据结构描述URL的特征:typedef struct match_mode_t{uint32_t mode;uint64_t quantity;struct mode_t*next;} Match_Mode;其中,样式mode的定义如下(可参考图1):I)采用bitO-29的30比特二进制序列进行样式记录,且各个比特意义如下:由图1看出每个样式由5个比特组成,其中上述每5个比特中的前3个比特表示字符样式,后两个比特表示分隔符的样式。根据统计结果可知现有的URL字符通常由字母或者数字组成,其中字母和数字组合又可以表示16进制,因此可以将URL包含的各字符串的类型抽象为如下三类中的任意一类:字母(a-z, A-Z),十进制数字(0-9)或十六进制数字(0_9,a~f)。图1中定义的第一比特(B卩,bit:0)表示字母;第二比特(B卩,bit:1)表示十六进制数字;第三比特(即,bit:2)表示十进制数字。分割符一般是‘或者,使用两个比特二进制位可以表示4种分隔符。第三十一比特位(B卩,bit30)设置为标志位,用于需要定义增加数据结构描述URL特征的标识。上述定义的每个30比特的结构可以用于记录6个字符串的模式特征,如果一个URL分解出来的字符串模式的个数超过6个,可以将样式中第30个比特位的标志位置1,表示字符串模式特征超过6种,且超出的字符串模式特征保存在新创建的数据结构中,并将所述新创建的数据结构的位置指针放在其前一个数据结构中的next变量上。以此类推,该数据结构用于记录无限个URL分解出来的字符串的模式特征。第32比特位(即,bit31)设置为保留位,该保留位暂时没有明确定义,用做后续扩展。
2)数量 quantity 变量本发明实施例采用的数量quantity定义为64bits的变量,由8个字节组成,每个字节代表URL分解后得到的字符串中包含的字符个数,由于一个数据结构中的样式mode变量只能表示6个字符串的模式特征,因此数量quantity变量只使用前6个字节即可,最后两个字节作为保留字用于后续扩展,如图2所示。二)预先设置特定的特征规则。将缓存系统需要处理的URL先使用“/”作为分隔符分解为多个字符串,再根据上述记载的通配规则对每个字符串进行抽象以便描述出其样式和数量,得到一个赋值的包含了样式mode和数量quantity变量的数据结构。三)通过对运营商网络出口监听到的用户上网请求URL进行一次扫描,将扫描得到的URL使用“/”作为分隔符分解为多个字符串,并根据上述通配规则对各个字符串进行抽象,将每个字符串的特征提取出来,并将这些字符串的特征使用包含样式mode和数量quantity变量的数据结构进行数字化表示。四)将步骤三中提取用户上网请求URL的特征数据结构与步骤二中赋值后得到的URL数据结构进行比较,判断用户上网请求URL是否符合需要处理URL的模式特征,以便决定是否需要对这个上网请求URL进行后续处理。步骤三)中分析后得到的用户上网请求URL特征的数据结构与步骤二)中得到预设URL的数据结构进行比较,如果用户上网请求URL的样式与预设URL的样式一致则需要进行后续处理,否则不进行处理。该样式匹配过程中进行的比较完全是数字层面的比较。特殊情况下,URL模式匹配要求对用户上网请求URL中特定位置包含的特定字符串进行比较,比如要求URL中必 须包含“abed”字符串,对于这种情况上述方法不能直接处理。对于这类有特殊匹配要求的URL仍然可以采用该算法先将其分解并将得到的字符串进行抽象以便描述其样式,这样可以将不符合URL样式要求的大部分URL过滤掉,然后再从符合URL样式要求的URL中进行精确的字符串匹配,在处理效率上仍然得到较高提升。综上所述本发明提供的一种用于运营商网络出口的网络报文模式匹配方法,如图
3所示,该方法用于对运营商网络出口处用户请求的URL与缓存系统需要识别并处理的URL进行模式匹配,所述方法包含:步骤101)统计URL的所有特征,基于统计特征将URL包含的由分隔符分割的字符串共分为M类,并采用自定义的若干个数值描述M类中的每一类字符串;步骤102)将缓存系统需要识别和处理的URL元数据进行分析,并基于某一类分隔符将URL元数据划分为若干字符串,将得到的各个字符串划分至M类中的某一类同时采用自定义的数值描述各字符串的具体类别,最后统计每个字符串包含的字符的数量并采用自定义的数值记载字符数量;步骤103)对运营商网络出口监听到的URL请求进行一次扫描,并将监听到的URL元数据进行与上步骤针对URL元数据相同的处理,得到监听到的URL请求包含的各字符串的数值化的类别和数值化的各字符串包含的字符数量;步骤104)将步骤103)得到的URL请求各字符串的数值化的类别和数值化的各字符串包含的字符数量同时与步骤102)得到的缓存系统需要识别和处理的URL包含的字符串类别和各类别包含的字符数量进行比较,最终判定监听到的URL是否属于缓存系统需要识别并处理的URL ;其中,所述URL的特征包含:字母、数字和分隔符。实施例I)系统需要处理优酷的URL,抓取的URL样本为:http://123.126.98.20/youku/697419584E24382212BF8C3CFC/03000201005131F380D223003E8803EE3B164A-07D9-C301-81AC-F6A56FA7FE88.flv需要抽象描述的部分为:/youku/697419584E24382212BF8C3CFC/03000201005131F380D223003E8803EE3Bl64A-07D9-C301-81AC-F6A56FA7FE88.flv首先,构造预设 优酷的URL样式,创建预设样式数据结构Match_Mode sample_mode;将URL拆分为3个字符串,分别是:字符串1:youku字符串2:697419584E24382212BF8C3CFC字符串3:03000201005131F380D223003E8803EE3B164A-07D9-C301-81AC-F6A56FA7FE88下面填充数据结构,根据样式原则,字符串I为字母,没有分隔符,样式表述为10000,字符数量为5个(二进制为101),数据结构填充为:sample_mode.mode 的二进制为 10000000 00000000 00000000 00000000sample_mode.quantity 的二进制为 00000101 00000000 000000000000000000000000 00000000 00000000 00000000字符串2为十六进制,没有分隔符,样式描述为01000,字符数量为26个(二进制为11010),填充后的数据结构为:sample_mode.mode 的二进制为 10000010 00000000 00000000 00000000sample_mode.quantity 的二进制为 00000101 00011010 000000000000000000000000 00000000 00000000 00000000字符串3为十六进制,有分隔符,样式描述为01001,共有66个字符(不包括后缀名)(二进制为1000010),填充后的数据结构为:sample_mode.mode 的二进制为 10000010 00010010 00000000 00000000sample_mode.quantity 的二进制为 00000101 00011010 010000100000000000000000 00000000 00000000 00000000sample_mode.mode=0x82120000sample_mode.quantity=0x051A4200000000002)然后,从网络出口抓到了第一个URL为:http://60.210.17.199/videos2/tv/20130312/ceb2d2cbe93864c65ab8402802e580al.f4v需要抽象描述的部分为:
/videos2/tv/20130312/ceb2d2cbe93864c65ab8402802e580al.f4v首先,定义url的样式数据结构,Match_Mode urll_mode;URL拆分为4个字符串:字符串1:videos2字符串2:tv字符串3:20130312字符串4:ceb2d2cbe93864c65ab8402802e580al下面填充数据结构,根据样式原则,字符串I为字母和数字,没有分隔符,样式表述为10100,字符数量为7个(二进制为111),数据结构填充为:urll_mode.mode 的二进制为 10100000 00000000 00000000 00000000urll_mode.quantity 的二进制为 00000111 00000000 00000000 000000000000000000000000 00000000 00000000
字符串2为字母,没有分隔符,样式描述为10000,字符数量为2个(二进制为10),填充后的数据结构为:urll_mode.mode 的二进制为 10100100 00000000 00000000 00000000urll_mode.quantity 的二进制为 00000111 00000010 00000000 000000000000000000000000 00000000 00000000字符串3为十进制数字,没有分隔符,样式描述为00100,共有8个字符(二进制为1000),填充后的数据结构为:urll_mode.mode 的二进制为 10100100 00001000 00000000 00000000urll_mode.quantity 的二进制为 00000111 00000010 00001000 000000000000000000000000 00000000 00000000字符串4为十六进制数字,没有分隔符,样式描述为01000,共有32个字符(二进制为100000),填充后的数据结构为:url l_mode.mode 的二进制为 10100100 00001000 10000000 00000000urll_mode.quantity 的二进制为 00000111 00000010 00001000 001000000000000000000000 00000000 00000000十六进制值为:urll_mode.mode=0xA4088000urll_mode.quantity=0x07020820000000003)将urll_mode与sample_mode进行比较结果是不相等,因此该URL不需要继续进行处理。4 )从网络出口抓取第二个报文:http://123.129.236.17/youku/677544BC83E3981DAF4E63347A/0300080100514709AACBCD0247A48F2190EC28-E794-C5BB-E0C9-B1456D9ED3FD.mp4需要抽象描述的部分为:/youku/677544BC83E3981DAF4E63347A/0300080100514709AACBCD0247A48F2190EC28-E794-C5BB-E0C9-B1456D9ED3FD.mp4首先,创建URL2的样式数据结构Match_Mode url2_mode;将URL拆分为3个字符串,分别是:字符串1:youku字符串2:677544BC83E3981DAF4E63347A字符串3:0300080100514709AACBCD0247A48F2190EC28-E794-C5BB-E0C9-B1456D9ED3FD下面填充数据结构,根据样式原则,字符串I为字母,没有分隔符,样式表述为10000,字符数量为5个(二进制为101),数据结构填充为:url2_mode.mode 的二进制为 10000000 00000000 00000000 00000000url2_mode.quantity 的二进制为 00000101 00000000 00000000 000000000000000000000000 00000000 00000000字符串2为十六进制,没有分隔符,样式描述为01000,字符数量为26个(二进制为11010),填充后的数据结构为:url2_mode.mode 的二进制为 10000010 00000000 00000000 00000000url2_mode.quantity 的二进制为 00000101 00011010 00000000 000000000000000000000000 00000000 00000000字符串3为十六进制,有分隔符,样式描述为01001,共有66个字符(不包括后缀名)(二进制为1000010),填充后的数据结构为:url2_mode.mode 的二进制为 10000010 00010010 00000000 00000000url2_mode.quantity 的二进制为 00000101 00011010 01000010 000000000000000000000000 00000000 00000000十六进制数值为:url2_mode.mode=0x82120000url2_mode.quantity=0x051A4200000000005)将url2_mode与sample_mode进行比较结果相等,因此该URL需要继续进行处理。本发明提供方法的核心算法的工作流程伪代码如下://分析 urlMatch_Mode*p_mode=new Match_Mode;char*p=url;bool dec_flag=false;bool hex_flag=false;bool char_flag=false;char char_max=0;Il扫描字符串,对dec_flag和char_f lag进行置位while (*p++) { if (*p>=0&&*p〈=9)
dec_flag=true;if((*p>=,a,&&*p〈= ‘z,)| | (*p>= ‘A,&&*p〈= ‘Z,)){char_flag=true;if (char_max〈*p)char_max=*p;}Η如果遇到分隔符,需要对这个模式进行记录if (is_seperator (*p)) {//检查置位情况,判断是否需要对hex_flag进行置位//说明:Il如果url中只包含十六进制的字符,则认为是样式为hex ;//如果url中既包含大于’ V或‘F’的字符,又包含数字,则认为样式是字符和dec的组合,不认为是hex类型;//如果url中只包含小于’ V或‘F’的字符,不包含数字,则认为样式是字符,而不是hex类型;if (dec_flag&&(char_max<= ‘f,|char_max<= ‘F,)){hex_f lag=true;char_f lag=false;dec_flag=false;}Il根据三个flag对数据结构中的变量进行置位if (! is_mode_exhausted (p_mode)) {set_mode_variabIe (p_mode, hex_f lag, char_f lag, dec_f lag);}else{Η创建新的结构,将新结构地址指针挂到p_mode的next变量上,并将p_mode的flag位置位为I,同时将新指针作为create_mode的返回值p_mode=create_mode(p_mode);}hex_flag=false;char_flag=false;dec_flag=false;}}Η比较结果Il当一个url的模式确定以后,可以直接和预设的规则进行比较,比较方式很简单,就是mode和quantity两个变量的直接比较,完全相等则是匹配成功,不相等则是没有匹配成功。

if(p_mode->mode==mode&&p_mode->quantity==quantity){//匹配成功,进行处理
}一、具体实现示例:缓存服务系统采用了该算法。使用该优化算法前后进行对比,同样处理一条400多字节的URLJAS 100000次扫
描,结果如下:
权利要求
1.一种用于运营商网络出口的网络报文模式匹配方法,该方法用于对运营商网络出口处用户请求的URL与缓存系统需要识别并处理的URL进行模式匹配,所述方法包含: 步骤101)统计URL的所有特征,基于统计特征将URL包含的由分隔符分割的字符串共分为M类,并采用自定义的若干个数值描述M类中的每一类字符串; 步骤102)将缓存系统需要识别和处理的URL元数据进行分析,并基于某一类分隔符将URL元数据划分为若干字符串,将得到的各个字符串划分至M类中的某一类同时采用自定义的数值描述各字符串的具体类别,最后统计每个字符串包含的字符的数量并采用自定义的数值记载字符数量; 步骤103)对运营商网络出口监听到的URL请求进行一次扫描,并将监听到的URL元数据进行与上步骤针对URL元数据相同的处理,得到监听到的URL请求包含的各字符串的数值化的类别和数值化的各字符串包含的字符数量; 步骤104)将步骤103)得到的URL请求各字符串的数值化的类别和数值化的各字符串包含的字符数量同时与步骤102)得到的缓存系统需要识别和处理的URL包含的字符串类别和各类别包含的字符数量进行比较,最终判定监听到的URL是否属于缓存系统需要识别并处理的URL ; 其中,所述URL的特征包含:字母、数字和分隔符。
2.根据权利要求1所述的用于运营商网络出口的网络报文模式匹配方法,其特征在于,所述步骤102)进一步包含: 步骤102-1)统计缓存系统需要识别和处理的URL元数据的特征,可知URL信息的组成字符具体包含:字母、数字或分隔符,并基于某一类分隔符将所述URL分割为若干字符串;步骤102-2)定义数据结构描述各字符串属性,具体为; 所述数据结构包含样式mode和数量quantity两部分,其中,所述样式mode部分采用若干位自定义的二进制序列记录URL中被分隔符分割的各个字符串的具体类型,且所述字符串的具体类型分为如下三类:26个大写或小写的英文字母,十进制数字“0-9”和十六进制数字“0-9和a-f”;所述数量quantity部分用于采用若干位自定义的二进制序列记录URL中被分隔符分割的各个字符串包含的字符的个数; 其中,所述样式中自定义的二进制序列的长度与所要表示的字符串的个数以及字符串种类的个数相关,所述数量中采用的二进制序列的长度与字符串个数及各字符串中包含最长字符的具体长度相关。
3.根据权利要求2所述的用于运营商网络出口的网络报文模式匹配方法,其特征在于,所述步骤103)进一步包含: 步骤103-1)将运营商网络出口监听到的URL请求进行一次扫描获得被分隔符分割的各字符串的特征,将各个字符串依据步骤101)定义的类型划分为某一类; 步骤103-2)依据步骤101-2)定义的数据结构和二进制序列将监听到的URL请求包含的各字符串所属的类型和长度进行赋值操作,获得监听到的URL请求的数据结构中的样式和数量的初始值。
4.根据权利要求3所述的用于运营商网络出口的网络报文模式匹配方法,其特征在于,所述步骤104)进一步包含: 步骤104-1)将步骤103-2)中得到的数据结构中的样式mode和数量quantity变量分别与步骤102-2)中得到的数据结构中的样式mode和数量quantity变量进行“与”操作,得到待比较的样式mode和数量quantity变量值; 步骤104-2)再将待比较的mode和quantity变量值同时与步骤102_2)中得到的上述某个数据结构中的样式mode和数量quantity变量进行比较,如果样式mode和数量quantity结果都相等则监测到的URL与缓存系统需要识别并处理的URL相互匹配;否则说明两个URL的特征不匹配。
5.根据权利要求3所述的用于运营商网络出口的网络报文模式匹配方法,其特征在于,当URL实际包含的字符串个数超过定义的数据结构中变量能够承载的个数时,将数据结构中变量的扩展标志位进行置位,然后创建新的数据结构描述剩余的字符串;当URL包含的字符串数量非常大时,重复上述过程,创建若干个数据结构描述字符串,直到将所有字符串都采用定义的数据结构描述完成。
6.一种用于运营商网络出口的网络报文模式匹配系统,该系统用于对用户请求的URL字符串与缓存系统需要识别并处理的URL进行模式匹配,从而达到在运营商网络出口实时分析和处理用户上网请求的目的,所述系统包含: URL划分模块,用于分析需要识别并处理的URL和用户请求的URL,依据URL包含的分隔符将每个URL划分为若干字符串; 字符数字化处理模块,用于将每个字符串采用样式和数量两个部分进行数字化描述,所述样式具体是将字符串进行抽象分类,然后用数值描述抽象分类;所述数量表示某个抽象分类中包含的字符数量;和 模式匹配模块,将数字化处理 后的用户请求的URL与数字化处理后的需要处理的URL进行数字化比较,输出模式匹配的结果。
7.根据权利要求6所述的用于运营商网络出口的网络报文模式匹配系统,其特征在于,所述系统还包含: 统计URL特征及数字化类型转换模块,用于统计所有URL包含的所有特征得到URL中被分隔符分隔的字符串共有M类,再自定义数值类型表示M类中的每一类,其中,所述字符数字化处理模块样式中包含的抽象分类属于所述M类分类的子集; 缓存系统需要识别并处理的URL分析模块,用于对由所述URL划分模块划分得到的各字符串进行分析,并基于所述统计URL特征及数字化类型转换模块将字符数字化处理模块样式进行初始化赋值; 抓取模块,部署在运营商网络出口用于实时获取和处理用户上网请求的URL,并将获取URL请求传输至所述URL划分模块进行处理。
8.根据权利要求6所述的用于运营商网络出口的网络报文模式匹配系统,其特征在于,所述字符串的抽象分类是指: 将各字符串划分至如下若干类别中的一类:26个大写或小写的英文字母,十进制数字“0-9”和十六进制数字“0-9和a-f”。
9.根据权利要求6所述的用于运营商网络出口的网络报文模式匹配系统,其特征在于,所述样式采用bit0-bit29的30个比特位表征,用于记录6个字符串的组成特征,且每个样式由5个比特位表征,其中5个比特中的前3个比特表示字符样式,后两个比特表示分隔符的样式;所述数量为 采用64bits的变量表征,由8个字节组成,每个字节代表URL分解后得到的各字符串中包含的字符个数。
全文摘要
本发明提出了一种用于运营商网络出口的网络报文模式匹配方法及系统,包含步骤101)统计URL的所有特征,基于统计特征将URL包含的由分隔符分割的字符串共分为M类,并采用若干个数值描述M类中的每一类字符串;步骤102)将缓存系统需要识别和处理的URL元数据进行分析,并基于分隔符将URL元数据划分为若干字符串,将各个字符串划分至M类中的某一类同时采用数值描述各字符串的具体类别,统计各字符串包含的字符的数量并采用数值记载字符数量,并对运营商网络出口监听到的URL请求进行同样的处理;步骤104)将URL请求的各字符串的数值化的类别和数值化的各字符串包含的字符数量与缓存系统需要识别和处理的URL包含的字符串类别和各类别包含的字符数量进行比较。
文档编号H04L29/06GK103220274SQ20131009794
公开日2013年7月24日 申请日期2013年3月25日 优先权日2013年3月25日
发明者鲁冬林, 陈海涛 申请人:北京东方网信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1