论文部分内容阅读
内容过滤是对网络内容进行监控,防止某些特定内容的信息在网络上进行传输的技术,一种能够有效识别垃圾文本信息的过滤方法具有重要的经济价值和社会价值。随着网络带宽的提高,软件内容过滤在大流量网络中不能及时地对数据包进行检测,因此基于硬件设计的内容过滤系统因其高效、可靠、安全性强等优点成为研究重点。然而制约硬件内容过滤速度的重要环节就是查找。本文从当前常用的基于硬件的查找算法入手,针对内容过滤的特点,研究有效的大规模特征词查找算法,设计并实现基于FPGA的内容过滤系统,实现对用户数据包的实时分类检测。
全文主要进行了如下工作:
1)讨论当前较常见的查找算法:RAM查找、CAM查找、并行比较器、Aho-Corasick算法以及Bloom Filter算法。了解不同查找算法的主要思想以及改进方法等,同时介绍以上常见算法的具体应用实例和实现方法。了解这些算法的核心思想,为硬件内容过滤中的查找模块提供算法和框架支持。
2)了解内容过滤的基本概念,以及基本实现框架,采用基于统计的贝叶斯算法进行具体分析。在最小风险分类算法基础上,提出双重阈值的基于最小风险贝叶斯文本分类算法,目的是提高系统的可控性,减小单一风险系数对召回率(Recall Rate)的影响。
3)进一步优化双阈值最小风险贝叶斯算法,使其适合硬件语言设计,便于移植到FPGA中实现。讨论硬件文本分类系统中三次查找操作的需求,在同一系统中采用不同的查找实现方式,并分析大规模特征词的查找操作存在的难点,为后续的算法设计打下基础。
4)解决大规模特征词查找的问题,首先分析汉字在数据包传输中的编码格式,并根据需求提出了一种并行的基于RAM的Counter Bloom Filter的查找结构,并解决了原有CBF算法中仅有匹配信号输出的问题,改进了CBF的寄存器组,满足了贝叶斯分类计算模块的功能需求。
5)对提出的改进算法进行性能分析,并使用FPGA实现内容过滤系统。搭建整体系统框架,设计了内容过滤系统的基本功能模块,介绍了过滤系统的硬件基本单元,最后对整体系统设定测试方案,分析测试结果。
测试表明,本论文提出的大规模汉字特征词查找算法资源利用率较高,改进的CBF算法比原算法的虚警率更低,从而减少了误判的可能性。本论文所设计的内容过滤系统能够满足对用户的会话数据包进行实时处理的需求。该方案将网络数据包分类、过滤等网络内容安全方面有广泛的应用。