CN105721475A - 一种基于fpga与tcam的域名封堵方法 - Google Patents
一种基于fpga与tcam的域名封堵方法 Download PDFInfo
- Publication number
- CN105721475A CN105721475A CN201610101073.9A CN201610101073A CN105721475A CN 105721475 A CN105721475 A CN 105721475A CN 201610101073 A CN201610101073 A CN 201610101073A CN 105721475 A CN105721475 A CN 105721475A
- Authority
- CN
- China
- Prior art keywords
- hash
- fpga
- domain name
- tcam
- url
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于FPGA与TCAM的域名封堵方法,涉及一种信息封堵方法,本发明通过FPGA提取报文内的HOST信息和URL信息、通过HASH算法计算HOST?HASH和URL?HASH然后通过HOST?HASH和URL?HASH去查找TCAM中的负载,并进行匹配。本发明能够有效提高域名查找效率,进而能够有效提高域名封堵效率。
Description
技术领域
本发明涉及一种信息封堵方法,特别是涉及一种基于FPGA与TCAM的域名封堵方法。
背景技术
互联网的飞速发展,出现了越来越多的淫秽、色情、反动网站,给广大网民,特别是青少年网民带来了极大的危害。如何高效、高速的封堵淫秽色情等不良网站,成了新的难题。
目前,域名封堵方法多采用BLOOM FILTER和FPGA+RAM的实现方式:
Bloom Filter是由巴顿布隆于1970年提出的,它实现的基础是个很长的二进制位向量和一系列随机散列函数。Bloom Filter是一种基于散列的查找算法,用于查找一个元素是否在集合中,和散列表相比,它的优点是节约空间,可以对海量数据集进行表示和查找操作。由于散列函数的随机性,可能使得某个元素不属于集合而被判定属于集合,在此称其为误判,其大小为误判率Perr(falsepositive)。
Bloom Filter算法的基本思想为:
①设数据集合A={a1,a2,…,an},含有n个元素,为待操作的集合;
②Bloom Filter用一个长度为m的位向量V来表示集合中的元素,位向量初始化全为0;
③k个具有均匀分布特性的散列函数h1,h2,…,hk,值域均为{1,2,…,m};
④对于元素的加入操作首先通过k个散列函数产生k个随机数h1,h2,…,hk,使位串V的相应h1,h2,…,hk位均置为1;同理,元素的查找为判定相应位是否全为1。
Bloom Filter误判的概率为:
当m远大于kn时,上述等式可以简化为:
在这里e=2.71828183。由式(1.2)可知,当n固定时,通过增加m和k,可以降低误判率f。
从以上算法得知,如果要增加k来降低误判率f,就要增加查询次数,导致效率较低,难以满足快速的需求。如果通过增加m的方法来降低误判率f,例如增加m到2的32次方,就可以满足查询次数少,且误判低。
如果采用FPGA和RAM的方式,实际是需要一个232×1的RAM空间。这对于采用器件内部RAM的算法是无法承受的,即使的采用外部存储的设计,也是非常困难的。
因此,需要一种基于FPGA与TCAM的域名封堵方法以解决以上问题。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种能够支持快速高效的域名查找与封堵的方法。
为实现上述目的,本发明提供了一种基于FPGA与TCAM的域名封堵方法,按以下步骤进行:
步骤一、通过FPGA提取报文内的HOST信息和URL信息;
步骤二、通过HASH算法计算HOST-HASH和URL-HASH;
步骤三、通过HOST-HASH和URL-HASH去查找TCAM中的负载,并进行匹配,然后将匹配结果返回FPGA模块;
步骤四、FPGA模块通过读取SRAM存储器内的数据地址并输出该数据地址及匹配标志。
较佳的,还包括判断是否丢弃报文的步骤,当达到丢弃报文条件时,丢弃报文,否则正常转发。
本发明的有益效果是:本发明能够有效提高域名查找效率,进而能够有效提高域名封堵效率。
具体实施方式
下面结合实施例对本发明作进一步说明:
一种基于FPGA与TCAM的域名封堵方法,把关键字配置进TCAM(ternarycontent addressable memory,三态内容寻址存储器)后,按以下步骤进行:
步骤一、通过FPGA(Field-Programmable Gate Array,即现场可编程门阵列)提取报文内的HOST信息和URL信息;
步骤二、通过HASH算法(CRC算法)计算HOST-HASH和URL-HASH;
步骤三、通过HOST-HASH和URL-HASH去查找TCAM中的负载,并进行匹配,然后将匹配结果返回FPGA模块;
步骤四、FPGA模块通过读取SRAM存储器内的数据地址并输出该数据地址及匹配标志;
步骤五、判断是否应该丢弃报文;根据设定的规则,当达到丢弃报文条件时,丢弃报文,否则正常转发。
本实施例中采用的内容可寻址存储器(CAM)又称为关联存储器,是一种新型存储器技术,它具有高速、并行、易扩展和实现的灵活性等特点。CAM基于内容寻址,通过硬件电路实现快速匹配。
CAM是一种专门为快速查找数据地址而设计的存储器,可进行快速大量并行搜索。搜索的时候,存储器中所有的数据同时与搜索关键字比较,搜索结果就是匹配项的物理地址。CAM的数据寻址方式因要求不同而不同,最快方式下仅需要一个时钟周期便可完成对所有数据的寻址。
与RAM一样,CAM也是采取阵列式数据存储,其数据的写入方式与RAM差不多,但CAM的数据读取方式却与RAM不同。在RAM中,输入的是数据地址,输出的是数据;而在CAM中,输入的是所要查询的数据,输出的是数据地址和匹配标志(Match)。若匹配,即数据搜寻到,则输出数据地址。
在RAM中,RAM的存储容量由地址线宽度确定。例如,10bit宽地址总线的RAM存储容量为210=1024个字节(8bite数据位宽),CAM却没有这个限制,因为它不是采用传统的通过地址读取数据的方式。如若从1024个字节中查询某一数据,输入数据宽度为8bit,数据存在则输出匹配标志和10bit宽的数据地址。因为CAM不是采用传统的地址线模式读取数据,存储空间可以很容易地扩展,输入数据线宽度只由需查询的数据位数决定。
为了保证快速搜索,CAM通常采用管线结构,每个时钟周期都能启动搜索,运行速度可以维持在每时钟周期搜索一次。CAM完成搜索需要多个周期,这些周期即是设备延迟。为了使搜索速度达到最快,芯片上必须要有足够多的引脚,以便每个周期都能输入一个比较字。如果引脚的数目是比较字宽度的一半并同时支持双速率(DDR)输入,就可达到最大搜索速度。DDR在时钟的上升和下降沿都能将输入锁定。因此,CAM的数据查询速度远远高于RAM。
本发明的基于FPGA与TCAM的域名封堵方法,能够有效提高域名查找效率,进而能够有效提高域名封堵效率。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (2)
1.一种基于FPGA与TCAM的域名封堵方法,其特征在于按以下步骤进行:
步骤一、通过FPGA提取报文内的HOST信息和URL信息;
步骤二、通过HASH算法计算HOST-HASH和URL-HASH;
步骤三、通过HOST-HASH和URL-HASH去查找TCAM中的负载,并进行匹配,然后将匹配结果返回FPGA模块;
步骤四、FPGA模块通过读取SRAM存储器内的数据地址并输出该数据地址及匹配标志。
2.如权利要求1所述的一种基于FPGA与TCAM的域名封堵方法,其特征在于:还包括判断是否丢弃报文的步骤,当达到丢弃报文条件时,丢弃报文,否则正常转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610101073.9A CN105721475A (zh) | 2016-02-24 | 2016-02-24 | 一种基于fpga与tcam的域名封堵方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610101073.9A CN105721475A (zh) | 2016-02-24 | 2016-02-24 | 一种基于fpga与tcam的域名封堵方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105721475A true CN105721475A (zh) | 2016-06-29 |
Family
ID=56156786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610101073.9A Pending CN105721475A (zh) | 2016-02-24 | 2016-02-24 | 一种基于fpga与tcam的域名封堵方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105721475A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102437937A (zh) * | 2011-12-29 | 2012-05-02 | 北京锐安科技有限公司 | 一种深度包检测方法 |
WO2013040730A1 (zh) * | 2011-09-23 | 2013-03-28 | 中国科学院计算技术研究所 | Ip查找方法和装置以及路由更新方法和装置 |
CN103414603A (zh) * | 2013-07-31 | 2013-11-27 | 清华大学 | 基于Hash折叠方法的Ipv6深度包检测方法 |
-
2016
- 2016-02-24 CN CN201610101073.9A patent/CN105721475A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013040730A1 (zh) * | 2011-09-23 | 2013-03-28 | 中国科学院计算技术研究所 | Ip查找方法和装置以及路由更新方法和装置 |
CN102437937A (zh) * | 2011-12-29 | 2012-05-02 | 北京锐安科技有限公司 | 一种深度包检测方法 |
CN103414603A (zh) * | 2013-07-31 | 2013-11-27 | 清华大学 | 基于Hash折叠方法的Ipv6深度包检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9967187B2 (en) | Exact match lookup with variable key sizes | |
WO2008119269A1 (fr) | Procédé et dispositif de moteur de stockage et de consultation d'informations | |
US11157452B2 (en) | In-band de-duplication | |
Le et al. | A memory-efficient and modular approach for large-scale string pattern matching | |
CN101692651A (zh) | 一种哈希查找表的方法和装置 | |
CN102364463B (zh) | 一种基于Hash查找CAM的方法 | |
US7565482B1 (en) | Method and device for scalable multiple match extraction from search data | |
CN110018811B (zh) | Cache数据处理方法以及Cache | |
CN102437937A (zh) | 一种深度包检测方法 | |
CN102253957B (zh) | 一种tcam多模式字符串匹配方法及装置 | |
CN117093881B (zh) | 一种数据压缩方法、装置及电子设备和存储介质 | |
CN108268596B (zh) | 搜索存储在存储器中的数据的方法和系统 | |
CN112447254A (zh) | 三元内容可寻址存储器中的错误检测方法 | |
CN105721475A (zh) | 一种基于fpga与tcam的域名封堵方法 | |
US9703484B2 (en) | Memory with compressed key | |
US10795580B2 (en) | Content addressable memory system | |
CN101211346A (zh) | 一种优化存储器性能的方法 | |
US20160105363A1 (en) | Memory system for multiple clients | |
US8359528B2 (en) | Parity look-ahead scheme for tag cache memory | |
KR101587756B1 (ko) | 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법 | |
KR101663544B1 (ko) | 내용 주소화 메모리 기반의 암호화 장치 | |
Devi et al. | Low Energy Asynchronous CAM Based On Reordered Overlapped Search Mechanism | |
CN110334251B (zh) | 一种有效解决rehash冲突的元素序列生成方法 | |
CN110580231B (zh) | 处理电路、缓冲器、存储器及处理器 | |
Jarollahi et al. | Algorithm and architecture for a multiple-field context-driven search engine using fully-parallel clustered associative memories |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160629 |
|
RJ01 | Rejection of invention patent application after publication |