CN106899512A - 基于fpga中dpi的多引擎实现方法及系统 - Google Patents
基于fpga中dpi的多引擎实现方法及系统 Download PDFInfo
- Publication number
- CN106899512A CN106899512A CN201710080536.2A CN201710080536A CN106899512A CN 106899512 A CN106899512 A CN 106899512A CN 201710080536 A CN201710080536 A CN 201710080536A CN 106899512 A CN106899512 A CN 106899512A
- Authority
- CN
- China
- Prior art keywords
- message
- engine
- fpga
- dpi
- information
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明适用于报文检测处理技术领域,提供了一种基于FPGA中DPI的多引擎实现方法,包括以下步骤:基于FPGA的高速时钟,对报文进行线速转发;提取报文的五元组信息;对所述五元组信息通过哈希压缩算法计算处理;根据计算结果,将所述报文配置给相应的引擎处理。本发明相应的提供一种基于FPGA中DPI的多引擎实现系统。借此,本发明利用多引擎的分发处理,降低了每个引擎的设计难度与性能要求,同时降低了片外存储器的存储速率及时延要求。
Description
技术领域
本发明涉及报文检测处理技术领域,尤其涉及一种基于FPGA中DPI的多引擎实现方法及系统。
背景技术
DPI(Deep Packet Inspection)是一种基于数据包的深度检测技术。目前主流的DPI技术分为两类,一种利用软件方法,利用多核/NP等进行检测。另一种利用FPGA等硬件进行检测。如利用软件方法进行处理,无法达到大流量线速处理的要求。对于大流量下线速进行DPI的处理,目前主流为利用硬件进行。基于FPGA的DPI技术,如果采用单引擎处理报文,相对简单。但由于对外部的存储器访问存在时延,和内部的处理速度有差异,容易成为性能瓶颈,单引擎也不利于性能的平滑扩展。
综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种基于FPGA中DPI的多引擎实现方法及系统,其可以降低每个引擎的设计难度与性能要求,同时降低片外存储器的存储速率及时延要求。
为了实现上述目的,本发明提供一种基于FPGA中DPI的多引擎实现方法,包括以下步骤:
基于FPGA的高速时钟,对报文进行线速转发;
提取报文的五元组信息;
对所述五元组信息通过哈希压缩算法计算处理;
根据计算结果,将所述报文配置给相应的引擎处理。
根据本发明的基于FPGA中DPI的多引擎实现方法,所述对报文进行线速转发步骤之前还包括:
针对不同类别报文配置若干引擎。
根据本发明的基于FPGA中DPI的多引擎实现方法,所述根据处理结果,将所述报文配置给相应的搜索引擎步骤之后包括:
将各个引擎处理的报文信息合并处理;
将合并后的报文信息转发。
根据本发明的基于FPGA中DPI的多引擎实现方法,所述方法还包括:
部分引擎将报文丢弃处理。
本发明还相应提供一种基于FPGA中DPI的多引擎实现系统,包括:
报文转发模块,用于基于FPGA的高速时钟,对报文进行线速转发;
信息提取模块,用于提取报文的五元组信息;
计算处理模块,用于对所述五元组信息通过哈希压缩算法计算处理;
报文配置模块,用于根据计算结果,将所述报文配置给相应的引擎处理。
根据本发明的基于FPGA中DPI的多引擎实现系统,所述系统还包括:
引擎配置模块,用于针对不同类别报文配置若干引擎。
根据本发明的基于FPGA中DPI的多引擎实现系统,还包括:
报文合并模块,用于将各个引擎处理的报文信息合并处理;
信息转发模块,用于将合并后的报文信息转发。
根据本发明的基于FPGA中DPI的多引擎实现系统,所述引擎还用于根据计算机结果将报文丢弃处理。
本发明提供了一种基于FPGA中DPI的多引擎实现方法,包括以下步骤:基于FPGA的高速时钟,对报文进行线速转发;提取报文的五元组信息;对所述五元组信息通过哈希压缩算法计算处理;根据计算结果,将所述报文配置给相应的引擎处理。本发明相应的提供一种基于FPGA中DPI的多引擎实现系统。借此,本发明利用多引擎的分发处理,降低了每个引擎的设计难度与性能要求,同时降低了片外存储器的存储速率及时延要求。
附图说明
图1是本发明的系统结构示意图;
图2是本发明的另一系统结构示意图;
图3是本发明的方法流程图;
图4是本发明一实施例的报文处理流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1和图2,本发明提供了一种基于FPGA中DPI的多引擎实现系统,该系统100是基于FPGA及引擎对报文进行处理的系统,其包括:
报文转发模块10,用于基于FPGA的高速时钟,对报文进行线速转发。
信息提取模块20,用于提取报文的五元组信息。本发明所述的五元组信息包括报文的源IP地址、源端口、目的IP地址、目的端口和传输层协议。
计算处理模块30,用于对所述五元组信息通过哈希压缩算法计算处理。哈希算法是一种把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出的算法。其包括直接取余法、乘法取整法及平方取中法。本发明可以选任一种算法作为主算法。
报文配置模块40,用于根据计算结果,将所述报文配置给相应的引擎处理。对于报文的配置,实际上是基于引擎配置模块50配置了各引擎为基础的。
具体的说,本发明主要是针对报文信息的类型,特别是具有优先级别分类的报文进行引擎配置。因为通信服务提供商可以分配现有资源以精简信息流。例如,一个标记为高优先级的消息可以比不太重要或低优先级的信息或数据包先被路由到其目的地。深度包检测(DPI)也可以用来节制数据传输,以防止对等网络(P2P)被滥用,从而改善绝大多数用户的网络性能。也就是说,实际应用中,不同类型的报文会分配给不同的引擎处理。使得报文可以基于多引擎并行处理检测以满足大流量线速下的DPI处理要求。
对于多个引擎处理后的信息,则可以通过报文合并模块60将各个引擎处理的报文信息合并处理,并通过信息转发模块70将合并后的报文信息转发。当然,如果有需要丢弃的报文,也可以通过引擎直接丢弃。
本发明在FPGA内部高速时钟处理缓存报文的同时,利用多引擎的分发处理,降低了每个引擎的设计难度与性能要求,同时降低了片外存储器的存储速率及时延要求。
参见图3和图4,本发明相应的提供一种基于FPGA中DPI的多引擎实现方法,其可以通过如图1或2所示的系统100实现,该方法包括:
步骤S301,基于FPGA的高速时钟,对报文进行线速转发。
步骤S302,提取报文的五元组信息。本发明所述的五元组信息包括报文的源IP地址、源端口、目的IP地址、目的端口和传输层协议。
步骤S303,对所述五元组信息通过哈希压缩算法计算处理。哈希算法是一种把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出的算法。其包括直接取余法、乘法取整法及平方取中法。本发明可以选任一种算法作为主算法。
步骤S304,根据计算结果,将所述报文配置给相应的引擎处理。
需要说明的,本发明在步骤S301之前通过引擎配置模块50针对不同的报文类别配置了各引擎。
对于多个引擎处理后的信息,则可以将各个引擎处理的报文信息合并处理,并对合并后的报文信息转发。当然,如果有需要丢弃的报文,也可以通过引擎直接丢弃。
综上所述,本发明提供了一种基于FPGA中DPI的多引擎实现方法,包括以下步骤:基于FPGA的高速时钟,对报文进行线速转发;提取报文的五元组信息;对所述五元组信息通过哈希压缩算法计算处理;根据计算结果,将所述报文配置给相应的搜索引擎处理。本发明相应的提供一种基于FPGA中DPI的多引擎实现系统。借此,本发明利用多引擎的分发处理,降低了每个引擎的设计难度与性能要求,同时降低了片外存储器的存储速率及时延要求。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种基于FPGA中DPI的多引擎实现方法,其特征在于,包括以下步骤:
基于FPGA的高速时钟,对报文进行线速转发;
提取报文的五元组信息;
对所述五元组信息通过哈希压缩算法计算处理;
根据计算结果,将所述报文配置给相应的引擎处理。
2.根据权利要求1所述的基于FPGA中DPI的多引擎实现方法,其特征在于,所述对报文进行线速转发步骤之前还包括:
针对不同类别报文配置若干引擎。
3.根据权利要求2所述的基于FPGA中DPI的多引擎实现方法,其特征在于,所述根据处理结果,将所述报文配置给相应的搜索引擎步骤之后包括:
将各个引擎处理的报文信息合并处理;
将合并后的报文信息转发。
4.根据权利要求1~3任一项所述的基于FPGA中DPI的多引擎实现方法,其特征在于,所述方法还包括:
部分引擎将报文丢弃处理。
5.一种基于FPGA中DPI的多引擎实现系统,其特征在于,包括:
报文转发模块,用于基于FPGA的高速时钟,对报文进行线速转发;
信息提取模块,用于提取报文的五元组信息;
计算处理模块,用于对所述五元组信息通过哈希压缩算法计算处理;
报文配置模块,用于根据计算结果,将所述报文配置给相应的引擎处理。
6.根据权利要求5所述的基于FPGA中DPI的多引擎实现系统,其特征在于,所述系统还包括:
引擎配置模块,用于针对不同类别报文配置若干引擎。
7.根据权利要求6所述的基于FPGA中DPI的多引擎实现系统,其特征在于,还包括:
报文合并模块,用于将各个引擎处理的报文信息合并处理;
信息转发模块,用于将合并后的报文信息转发。
8.根据权利要求5~8任一项所述的基于FPGA中DPI的多引擎实现系统,其特征在于,所述引擎还用于根据计算机结果将报文丢弃处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710080536.2A CN106899512A (zh) | 2017-02-15 | 2017-02-15 | 基于fpga中dpi的多引擎实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710080536.2A CN106899512A (zh) | 2017-02-15 | 2017-02-15 | 基于fpga中dpi的多引擎实现方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106899512A true CN106899512A (zh) | 2017-06-27 |
Family
ID=59198656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710080536.2A Pending CN106899512A (zh) | 2017-02-15 | 2017-02-15 | 基于fpga中dpi的多引擎实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106899512A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107769992A (zh) * | 2017-09-15 | 2018-03-06 | 通鼎互联信息股份有限公司 | 一种报文解析分流方法及装置 |
CN111130946A (zh) * | 2019-12-30 | 2020-05-08 | 联想(北京)有限公司 | 一种深度报文识别的加速方法、装置和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102811169A (zh) * | 2012-07-24 | 2012-12-05 | 成都卫士通信息产业股份有限公司 | 采用哈希算法进行多核并行处理的vpn实现方法及系统 |
US20140153435A1 (en) * | 2011-08-31 | 2014-06-05 | James Rolette | Tiered deep packet inspection in network devices |
CN104717101A (zh) * | 2013-12-13 | 2015-06-17 | 中国电信股份有限公司 | 深度包检测方法和系统 |
-
2017
- 2017-02-15 CN CN201710080536.2A patent/CN106899512A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140153435A1 (en) * | 2011-08-31 | 2014-06-05 | James Rolette | Tiered deep packet inspection in network devices |
CN102811169A (zh) * | 2012-07-24 | 2012-12-05 | 成都卫士通信息产业股份有限公司 | 采用哈希算法进行多核并行处理的vpn实现方法及系统 |
CN104717101A (zh) * | 2013-12-13 | 2015-06-17 | 中国电信股份有限公司 | 深度包检测方法和系统 |
Non-Patent Citations (1)
Title |
---|
黄鹏: "基于FPGA的高性能模式匹配引擎研究与设计", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107769992A (zh) * | 2017-09-15 | 2018-03-06 | 通鼎互联信息股份有限公司 | 一种报文解析分流方法及装置 |
CN111130946A (zh) * | 2019-12-30 | 2020-05-08 | 联想(北京)有限公司 | 一种深度报文识别的加速方法、装置和存储介质 |
CN111130946B (zh) * | 2019-12-30 | 2022-03-25 | 联想(北京)有限公司 | 一种深度报文识别的加速方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10735379B2 (en) | Hybrid hardware-software distributed threat analysis | |
EP3420487B1 (en) | Hybrid hardware-software distributed threat analysis | |
US9929920B2 (en) | System and method for efficient classification and processing of network traffic | |
US10374913B2 (en) | Data retention probes and related methods | |
US9356844B2 (en) | Efficient application recognition in network traffic | |
US20170295191A1 (en) | Load balancing method and apparatus in intrusion detection system | |
US10516694B1 (en) | Hierarchical mitigation of denial of service attacks on communication networks | |
US10440035B2 (en) | Identifying malicious communication channels in network traffic by generating data based on adaptive sampling | |
US9686233B2 (en) | Tracking network packets across translational boundaries | |
CN108429761A (zh) | 智慧协同网络中资源适配解析服务器DDoS攻击检测防御方法 | |
CN103841096A (zh) | 自动调整匹配算法的入侵检测方法 | |
KR101679573B1 (ko) | 멀티코어 처리 시스템에서 dimm 채널 분산을 이용한 트래픽 보안 서비스 제공 방법 및 장치 | |
US20240244080A1 (en) | Method and apparatus for determining compromised host | |
CN106899512A (zh) | 基于fpga中dpi的多引擎实现方法及系统 | |
CN108123962A (zh) | 一种利用Spark实现BFS算法生成攻击图的方法 | |
KR102014741B1 (ko) | Fpga 기반 고속 스노트 룰과 야라 룰 매칭 방법 | |
US10341292B2 (en) | Increased port address space | |
US9985980B1 (en) | Entropy-based beaconing detection | |
CN103001942B (zh) | 一种虚拟服务器和一种防御网络攻击的方法 | |
CN106557503A (zh) | 一种图像检索的方法和系统 | |
Kennedy et al. | Ultra-high throughput string matching for deep packet inspection | |
CN106778273A (zh) | 一种验证恶意代码在受害者主机中活跃度的方法及系统 | |
Sun et al. | Rscam: Cloud-based anti-malware via reversible sketch | |
US8914467B2 (en) | Information processing apparatus, system, and storage medium | |
CN112995186A (zh) | 适用于mqtt服务安全保障的改善方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170627 |
|
RJ01 | Rejection of invention patent application after publication |