CN108764840A - 一种海量规模的邮件地址匹配方法 - Google Patents

一种海量规模的邮件地址匹配方法 Download PDF

Info

Publication number
CN108764840A
CN108764840A CN201810508941.4A CN201810508941A CN108764840A CN 108764840 A CN108764840 A CN 108764840A CN 201810508941 A CN201810508941 A CN 201810508941A CN 108764840 A CN108764840 A CN 108764840A
Authority
CN
China
Prior art keywords
hash
match
mail address
domain name
matching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810508941.4A
Other languages
English (en)
Inventor
玄世昌
苘大鹏
王巍
杨武
赵恒�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Engineering University
Original Assignee
Harbin Engineering University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Harbin Engineering University filed Critical Harbin Engineering University
Publication of CN108764840A publication Critical patent/CN108764840A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Computer Hardware Design (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种海量规模的邮件地址匹配方法。选取海量规模下哈希耗时和哈希冲突处理优秀的哈希模型,作为匹配方法的哈希函数。由于邮件地址的域名重复概率很大,利用布隆过滤器对邮件地址的进行存储以及匹配,以此降低匹配方法的内存消耗和匹配效率。使用红黑树存储哈希冲突后的模式串,提高算法全文匹配的性能。本发明针对WM匹配方法的存储结构和匹配流程进行优化。利用一种高效的哈希模型(BKDRHash)减少哈希冲突;通过布隆过滤器存储和匹配邮件地址的域名,避免了邮件域名的重复存储,降低了匹配方法的内存消耗;通过使用红黑树处理产生哈希冲突的元素,降低全文匹配耗时。

Description

一种海量规模的邮件地址匹配方法
技术领域
本发明涉及的是一种Wu-Manber多模式匹配方法。
背景技术
基于哈希过滤思想的Wu-Manber算法,简称WM算法。WM算法结合了BM算法的“坏字符”思想,是典型的基于后缀扫描的算法,只不过在实际应用中WM算法利用的是字符块。这意味着匹配失败后,匹配指针可跳转距离变大,提高了算法的匹配性能。WM算法在进行匹配的时候,使用哈希表选择模式串集合中的一个子集与当前文本进行全文匹配,减少无谓的匹配运算。WM算法的最优时间复杂度可以达到O(B n/m)(B是字符块的长度,m是最短模式长度)。WM算法的执行时间不会随着模式集的增加而成比例增长,且算法运行所需的内存占用量小。
基于邮件地址匹配的邮件过滤技术是实现邮件安全网关的一种关键技术。基于WM匹配方法实现邮件地址匹配主要有三个关键点:
1)针对邮件地址特征进行方法优化,方法的内存消耗有待优化;
2)海量规模匹配场景下,哈希冲突严重。WM算法是基于哈希思想的算法,采用字符块哈希,这种情况下将WM算法应用于模式串集合规模不大的情况下,哈希冲突对算法性能产生的影响不大。当应用于海量模式串集合时哈希冲突将会非常严重,需要采用优秀的字符哈希算法;
3)海量规模匹配场景下全文匹配耗时严重。传统的WM算法在匹配的过程中,当查询跳转表(SHIFT)的跳转距离为0的时候,需要对模式串和目标文本进行全文匹配。产生哈希冲突的模式串存储在链表中,这是传统的处理方式,在全文精确匹配的时候就要逐一遍历链表,检查是否匹配成功,虽然采取了PREFIX表可以减少精确匹配的次数,提高匹配效率,但是这种顺序查找的方式,对于海量模式串集合来说,PREFIX表的性能提升效果并不明显。
发明内容
本发明的目的在于提供一种在海量规模邮件地址匹配场景下能够表现出良好时间和空间性能的海量规模的邮件地址匹配方法。
本发明的目的是这样实现的:
1、预处理阶段:
1.1、先存储邮件地址的用户名部分;
1.2、将域名部分通过布隆过滤器进行存储;
1.3、根据用户名部分生成SHIFT表和HASH表;
1.4、利用红黑树处理产生哈希冲突的用户名,根据用户名的前缀字符串计算出键值,再将每个用户名插入到根据用户名后缀块哈希索引到的红黑树中;
2、扫描阶段:
2.1、根据当前文本匹配窗口的后缀字符块的哈希值找到其SHIFT值,如果SHIFT值不为0,则匹配窗口向后跳转SHIFT值,继续匹配;若SHIFT值为0,利用当前窗口的后缀字符块计算出哈希值,转到步骤2.2;
2.2、通过HASH表索引到相应的红黑树,如果索引到的红黑树不为空,通过当前窗口的前缀字符串索引,在该红黑树中进行精确匹配,若在红黑书树中匹配成功,则转入步骤2.3,否则失败;若索引到的红黑树为空,匹配失败;在此步骤匹配失败,匹配窗口向后跳转,转到步骤2.1;
2.3、判定已命中的用户名的字符串后面是否为域名,若是域名,判断待匹配邮件地址的域名,是否存在于布隆过滤器中,存在于布隆过滤器中则匹配成功;如果已命中的用户名后面没有域名,说明不会发生命中;在此步骤匹配失败,匹配窗口向后跳转,转到步骤2.1。
本发明提供了一种在海量规模邮件地址匹配场景下能够表现出良好时间和空间性能的匹配方法。
本发明的技术特点主要体现在:
1)选取海量规模下哈希耗时和哈希冲突处理优秀的哈希模型,作为匹配方法的哈希函数。
2)由于邮件地址的域名重复概率很大,利用布隆过滤器对邮件地址的进行存储以及匹配,以此降低匹配方法的内存消耗和匹配效率。
3)使用红黑树存储哈希冲突后的模式串(选择当前模式串窗口内的前缀字符串构造键值,长度为m-B),提高算法全文匹配的性能。
基于邮件收发件人的黑白名单过滤是邮件安全网关的一种关键技术。邮件网关通过检查邮件地址是否在黑白名单中,来控制邮件在网络中的传输。通常涉及到多模式匹配算法,WM算法是一种经典的多模式匹配方法,然而将WM匹配方法直接应用于海量规模的邮件地址匹配时,并且由于没有考虑邮件地址的特征,该方法效率并不高。本发明针对WM匹配方法的存储结构和匹配流程进行优化。利用一种高效的哈希模型(BKDRHash)减少哈希冲突;通过布隆过滤器存储和匹配邮件地址的域名,避免了邮件域名的重复存储,降低了匹配方法的内存消耗;通过使用红黑树处理产生哈希冲突的元素,降低全文匹配耗时。
附图说明
图1是本发明的内存模型图。
图2是本发明的匹配流程图。
图3是本发明与其相关方法耗时结果统计图。
图4是本发明与其相关方法内存消耗结果图。
具体实施方式
下面举例对本发明做更详细的描述。
测试数据准备:
通过互联网抓取了2622条邮件地址,获取域名81个,邮件服务商要求邮件地址用户名长度为3-18个字符长,加上域名后邮件地址的长度范围在10-36个字符范围内。利用那81个域名随机生成了长度范围在10-36个字符的邮件地址。随机生成的邮件地址模式集主要有四种规模,100万条,200万条,500万条,1000万条。实际应用中的邮件地址不可能是定长的,将抓取的2622条邮件地址按照其长度比例进行统计,然后按照其比例情况生成模式串集合。通过这些测试集合,主要测试本发明与传统WM方法、RFP-WM方法和Prefix Tree-WM方法的性能差异。
结合图1,预处理阶段包括:
1)先存储邮件地址的用户名部分。
2)将域名部分通过布隆过滤器进行存储。
3)根据用户名部分生成SHIFT表和HASH表。
4)利用红黑树处理产生哈希冲突的用户名,根据用户名的前缀字符串计算出键值,再将每个用户名插入到根据用户名后缀块哈希索引到的红黑树中。
结合图2,扫描阶段包括:
1)根据当前文本匹配窗口的后缀字符块的哈希值找到其SHIFT值,如果SHIFT值不为0,则匹配窗口向后跳转SHIFT值,继续匹配;若SHIFT值为0,利用当前窗口的后缀字符块计算出哈希值,转到步骤2)。
2)通过HASH表索引到相应的红黑树,如果索引到的红黑树不为空,通过当前窗口的前缀字符串索引,在该红黑树中进行精确匹配,若在红黑书树中匹配成功,则转入步骤3),否则失败。若索引到的红黑树为空,匹配失败。在此步骤匹配失败,匹配窗口应向后跳转,转到步骤1)。
3)判定已命中的用户名的字符串后面是否为域名(即是否紧跟“@”字符),若是域名,判断待匹配邮件地址的域名,是否存在于布隆过滤器中,存在于布隆过滤器中则匹配成功。如果已命中的用户名后面没有域名,说明不会发生命中。在此步骤匹配失败,匹配窗口应向后跳转,转到步骤1)。
附图3是本发明与其相关方法耗时结果统计图,附图4是本发明与其相关方法内存消耗结果图。综合比较两个图的结果,本方法适合应用于千万级配置的邮件地址过滤,并在这种应用场景下表现出良好的算法性能。

Claims (1)

1.一种海量规模的邮件地址匹配方法,其特征是:
(1)、预处理阶段:
(1.1)、先存储邮件地址的用户名部分;
(1.2)、将域名部分通过布隆过滤器进行存储;
(1.3)、根据用户名部分生成SHIFT表和HASH表;
(1.4)、利用红黑树处理产生哈希冲突的用户名,根据用户名的前缀字符串计算出键值,再将每个用户名插入到根据用户名后缀块哈希索引到的红黑树中;
(2)、扫描阶段:
(2.1)、根据当前文本匹配窗口的后缀字符块的哈希值找到其SHIFT值,如果SHIFT值不为0,则匹配窗口向后跳转SHIFT值,继续匹配;若SHIFT值为0,利用当前窗口的后缀字符块计算出哈希值,转到步骤(2.2);
(2.2)、通过HASH表索引到相应的红黑树,如果索引到的红黑树不为空,通过当前窗口的前缀字符串索引,在该红黑树中进行精确匹配,若在红黑书树中匹配成功,则转入步骤
(2.3),否则失败;若索引到的红黑树为空,匹配失败;在此步骤匹配失败,匹配窗口向后跳转,转到步骤(2.1);
(2.3)、判定已命中的用户名的字符串后面是否为域名,若是域名,判断待匹配邮件地址的域名,是否存在于布隆过滤器中,存在于布隆过滤器中则匹配成功;如果已命中的用户名后面没有域名,说明不会发生命中;在此步骤匹配失败,匹配窗口向后跳转,转到步骤(2.1)。
CN201810508941.4A 2018-04-11 2018-05-24 一种海量规模的邮件地址匹配方法 Pending CN108764840A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810318438 2018-04-11
CN2018103184382 2018-04-11

Publications (1)

Publication Number Publication Date
CN108764840A true CN108764840A (zh) 2018-11-06

Family

ID=64005551

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810508941.4A Pending CN108764840A (zh) 2018-04-11 2018-05-24 一种海量规模的邮件地址匹配方法

Country Status (1)

Country Link
CN (1) CN108764840A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117668527A (zh) * 2024-01-31 2024-03-08 国网湖北省电力有限公司信息通信公司 一种大流量模型下的多特征识别方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101398820A (zh) * 2007-09-24 2009-04-01 北京启明星辰信息技术有限公司 一种大规模关键词匹配方法
CN104794158A (zh) * 2015-02-09 2015-07-22 国家计算机网络与信息安全管理中心 一种界标窗口下域名数据重复检测快速索引方法
CN105260429A (zh) * 2015-09-30 2016-01-20 河南科技大学 一种基于多重布隆过滤器的icn网络信息名字查找方法
CN106027369A (zh) * 2016-05-09 2016-10-12 哈尔滨工程大学 一种面向邮件地址特征的邮件地址匹配方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101398820A (zh) * 2007-09-24 2009-04-01 北京启明星辰信息技术有限公司 一种大规模关键词匹配方法
CN104794158A (zh) * 2015-02-09 2015-07-22 国家计算机网络与信息安全管理中心 一种界标窗口下域名数据重复检测快速索引方法
CN105260429A (zh) * 2015-09-30 2016-01-20 河南科技大学 一种基于多重布隆过滤器的icn网络信息名字查找方法
CN106027369A (zh) * 2016-05-09 2016-10-12 哈尔滨工程大学 一种面向邮件地址特征的邮件地址匹配方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王佳星 等: ""Wu-Manber算法的改进研究"", 《移动通信》 *
贾博威 等: ""基于Wu-Manber 算法的大规模URL 模式串匹配算法"", 《智能计算机与应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117668527A (zh) * 2024-01-31 2024-03-08 国网湖北省电力有限公司信息通信公司 一种大流量模型下的多特征识别方法及系统
CN117668527B (zh) * 2024-01-31 2024-04-26 国网湖北省电力有限公司信息通信公司 一种大流量模型下的多特征识别方法及系统

Similar Documents

Publication Publication Date Title
CN108370352B (zh) 使用网络处理器的高速灵活分组分类
CN107800631B (zh) 使用ram中的散列表的tcam规则的有效匹配的方法和装置
CN1881950B (zh) 使用频谱分析的分组分类加速
US20070078827A1 (en) Searching for information utilizing a probabilistic detector
US20080065639A1 (en) String matching engine
WO2011004846A1 (ja) 情報検索システム、情報管理装置、情報検索方法、情報管理方法、及び、記録媒体
WO2009046669A1 (fr) Procédé et dispositif pour stocker et rechercher un mot-clé
WO2003023548A2 (en) High speed data stream pattern recognition
EP2944059A1 (en) High performance hash-based lookup for packet processing in a communication network
WO2010065418A1 (en) Graph-based data search
JP3881663B2 (ja) フィールドレベルツリーを用いたパケット分類装置及び方法
US20080133494A1 (en) Method and apparatus for searching forwarding table
US10630588B2 (en) System and method for range matching
CN109618020A (zh) 一种分片报文的网络地址转换方法及装置
US20080052644A1 (en) String matching engine for arbitrary length strings
CN110362560B (zh) 一种无业务主键数据在存储数据库时去重的方法
CN108628907A (zh) 一种用于基于Aho-Corasick的Trie树多关键词匹配的方法
CN108764840A (zh) 一种海量规模的邮件地址匹配方法
US10963431B2 (en) Storing an object in a distributed storage system
US20060268875A1 (en) Method and apparatus for user identification in computer traffic
CN106878185B (zh) 一种报文ip地址匹配电路及方法
US8694536B2 (en) Fast matching for content-based addressing
KR100648297B1 (ko) 고속의 네트워크 침입 탐지 방법
US9032142B2 (en) System and method for storing integer ranges in a memory
CN109246014B (zh) 一种对ip地址进行快速分类的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181106