CN102064977A - 基于gpu的高速网络报文内容检测方法 - Google Patents

基于gpu的高速网络报文内容检测方法 Download PDF

Info

Publication number
CN102064977A
CN102064977A CN 201010539214 CN201010539214A CN102064977A CN 102064977 A CN102064977 A CN 102064977A CN 201010539214 CN201010539214 CN 201010539214 CN 201010539214 A CN201010539214 A CN 201010539214A CN 102064977 A CN102064977 A CN 102064977A
Authority
CN
China
Prior art keywords
message
gpu
buffer
dfa
state
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.)
Granted
Application number
CN 201010539214
Other languages
English (en)
Other versions
CN102064977B (zh
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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN 201010539214 priority Critical patent/CN102064977B/zh
Publication of CN102064977A publication Critical patent/CN102064977A/zh
Application granted granted Critical
Publication of CN102064977B publication Critical patent/CN102064977B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

本发明公开了一种基于GPU的高速网络报文内容检测方法,要解决的技术问题是减少GPU匹配时出现分支的次数以及优化存储器访问策略,提高报文内容检查的性能。技术方案是先预处理模式集和分配缓冲区,对DFA的状态转移表进行扩展,分别在CPU内存和GPU全局存储器为报文和匹配结果分配缓冲区;接着GPU匹配线程将要匹配的报文加载至共享存储器;然后设计实现基于GPU的正则表达式匹配引擎,控制正则表达式匹配引擎进行模式匹配。采用本发明可提高报文缓冲与报文传输的并行性,既提高正则表达式匹配速度,又提高报文缓冲和报文内容检查的性能。

Description

基于GPU的高速网络报文内容检测方法
技术领域
       本发明涉及网络安全领域,尤其涉及高速网络的深度报文内容检测方法。
背景技术
随着网络服务和应用的多样化,攻击方式和入侵手段层出不穷,网络面临着日益严峻的安全问题。网络安全系统通过捕获网络流量并对报文内容的深度检测来实现安全预警以及入侵检测。对报文内容的检测通常是将报文的有效载荷与预先定义的模式进行匹配,模式匹配是整个安全系统性能的瓶颈。
由于网络攻击越来越复杂,用于报文内容检测的模式也由表达能力更强的正则表达式取代了字符串。报文内容检测中正则表达式的匹配过程是,先将正则表达式模式集编译成DFA(Deterministic Finite automaton,确定性有限状态机),然后将要检测的报文作为DFA的输入,在DFA上进行匹配。网络带宽的提升对报文内容检测的速度提出了更高的要求,传统软件方法已经不能满足安全需求。
报文内容检测的过程一般分为两步:第一步,捕获报文;第二步,模式匹配。为提高整个报文内容检测系统的性能,可行的方法是将第二步模式匹配采用特定的硬件平台完成。加速报文检测中模式匹配的硬件平台主要有:FPGA、NP(Network Processor,网络处理器)、ASIC、GPU等。基于FPGA实现模式匹配时,匹配性能比较高但功耗较高并且可扩展性差;基于NP的实现在低成本的基础上获得了很高的匹配性能,但其扩展性较差;基于ASIC的实现方法虽然得到了很高的匹配性能,但是设计成本太高并且不易扩展和升级。
随着实时、高分辨率3D图形渲染需求的增长,GPU(Graphics Processing Unit, 图形处理单元)已经发展成为具有巨大计算能力的高并行度、多线程、高存储器带宽的多核处理器。GPU的出现与发展,为设计高速网络报文内容检测系统提供了新的思路。基于GPU实现模式匹配,成本低、匹配吞吐量高并且具有很好的适用性与扩展性。上述几种方法使用的硬件简单对比见表1。
方法 吞吐量 可扩展性 设计复杂性 成本
FPGA 较高
NP 较高 较低
ASIC
GPU
表                                                
Figure 2010105392148100002DEST_PATH_IMAGE001
基于GPU的内容检测方法中,CPU用于缓冲报文并处理匹配结果,GPU用于模式匹配。目前国内外已有的基于GPU的内容检测方法中,GPU模式匹配时一般将报文存储于GPU全局存储器或纹理存储器,而将DFA存储于纹理存储器,利用GPU多线程高度并行执行获得很高的匹配性能,进而使整个报文内容检查系统获得很高的吞吐量。已有的基于GPU的内容检测方法虽然获得了比较高的性能,但仍存在以下不足:
1. DFA状态表比较复杂导致匹配过程中会出现较多的分支,或者在匹配时需要查找多个表,匹配时访存开销大,严重影响性能;
2. 对GPU存储器的使用不够合理(例如,GPU报文缓冲区申请在纹理存储器上等),增加了匹配过程中的访存开销。
发明内容
本发明要解决的技术问题是减少GPU匹配时出现分支的次数以及优化存储器访问策略,提高报文内容检查的性能。
为解决上述技术问题,技术方案包括以下步骤:
第一步 预处理模式集和分配缓冲区。
1.1 使用1968年6月计算机通讯(Communications of the ACM)第11卷KEN THOMPSON论文“正则表达式搜索算法(Regular Expression Search Algorithm)”中提出的正则表达式编译算法将正则表达式模式集编译为一个非确定性有限自动机NFA(Non-deterministic Finite Automaton)。
       1.2 使用子集构造算法从NFA构建DFA,并对DFA的状态转移表进行扩展。在计算理论中,子集构造是将NFA转化为与其等价的DFA的标准方法。子集构造算法构建的DFA用状态转移表和状态标记向量表示。DFA的状态转移表是一个二维数组,数组的行数与DFA的状态数相同,每一行有256列分别对应每一个ASCII字符输入。状态转移表第i行第j列的值表示状态i在输入ASCII字符j时的下一个状态。DFA的状态标记向量含有的元素的个数与DFA的状态数相同,每一个元素表示相应的DFA状态是否为可接受状态。
为了降低DFA匹配过程中的GPU访存开销,对DFA的状态转移表进行扩展。扩展后的DFA状态转移表的行数与DFA的状态数相同,在每一行最后增加一列用于存储在该状态达到接受状态的正则表达式ID(如果该状态不是接受状态,则该状态的最后一列置0)。
       1.3将DFA状态转移表绑定至GPU纹理存储器。纹理存储器是GPU的一种只读存储器,由GPU用于纹理渲染的图形专用单元发展而来,具备地址映射、数据滤波等特殊功能。纹理存储器中的数据以一维、二维或者三维数组的形式存储在显存中,可以通过缓存加速访问。本步骤首先把DFA状态转移表拷贝至GPU全局存储器,然后将该全局存储器区域与GPU纹理缓存绑定。
1.4分别在CPU内存和GPU全局存储器为报文和匹配结果分配缓冲区。
1.4.1将GPU全局存储器中报文缓冲区的宽度设定为2K字节,用于存储报文的有效载荷,长度为ll为GPU同时处理的报文的个数,由GPU的性能决定,通过实验确定)。CPU内存中报文缓冲区的宽度为2K字节,长度为2l,CPU内存中报文缓冲区是一个循环队列,因此也叫报文缓冲队列。采用“双缓冲”方法缓冲报文:CPU报文缓冲区的长度是GPU的两倍,GPU每次处理CPU缓冲区一半的报文。当CPU报文缓冲区前一半被传输至GPU进行检查时,新捕获的报文将被缓冲至缓冲区的后一半,反之亦然。
1.4.2 分配结果缓冲区。CPU内存与GPU全局存储器中匹配结果缓冲区的长度为l,宽度为4字节,用于存储被匹配上的正则表达式ID。
第二步,GPU的运行模型是SIMT(single instruction multiple thread,单指令多线程),任何GPU程序都是以多线程的方式执行,且每个GPU线程拥有唯一的ID。运行在GPU上的程序称为Kernel函数,Kernel函数以网格(Grid)的形式执行,每个网格由若干个线程块(Block)组成。Grid和Block可以被组织成一维、二维或者三维,其大小受到GPU硬件计算资源和计算能力的制约。共享存储器是一块可以被同一block中的所有线程访问的可读写存储器,其访问速度几乎与寄存器一样快,是实现线程间通信延迟最小的方法。运行时共享存储器被均分给线程块。模式匹配开始前,GPU线程根据自己的ID从GPU全局存储器报文缓冲区将要匹配的报文加载至该线程所在线程块对应的共享存储器。
第三步设计实现基于GPU的正则表达式匹配引擎。基于GPU的正则表达式匹配引擎是一段运行在GPU上的多线程并行匹配程序。其具体流程如下:
3.1 将DFA当前状态置为初始状态。
3.2 对加载到共享存储器的报文进行模式匹配,具体步骤为:
3.2.1 从第一个字符开始,每次取报文的一个字符作为DFA的输入进行匹配;
3.2.2 根据输入字符和当前DFA状态在纹理存储器中查找DFA状态表,得到下一个状态;
3.2.3 将DFA当前状态置为3.3.2获得的“下一个状态”;
3.2.4 判断DFA当前状态是不是接受状态(查看状态转移表中当前状态对应行的最后一列),如果是则将当前状态对应的正则表达式编号记录至GPU全局存储器结果缓冲区中;
3.2.5 如果当前报文所有字符都已匹配完,则结束;否则,转3.2.1。
第四步 CPU同时运行报文缓冲线程和GPU控制线程,控制正则表达式匹配引擎进行模式匹配。
报文缓冲线程是捕获和预处理报文的CPU应用程序;GPU控制线程是启动正则表达式匹配引擎并在GPU匹配完成后从GPU全局存储器下载匹配结果的CPU应用程序。报文缓冲线程和GPU控制线程都可以访问CPU内存中报文缓冲区和匹配结果缓冲区。
4.1报文缓冲线程在网卡上捕获报文,并对报文进行以下处理后将报文存储至CPU内存中报文缓冲区:
4.1.1 剥离报文头信息,提取报文有效载荷;
4.1.2 对报文进行“填充”与“截断”:由于CPU内存中报文缓冲区的宽度是2K字节,如果报文有效载荷的长度小于2K字节则在报文末尾填充0;如果报文有效载荷长度大于2K字节,则先在报文末尾填充0,使得报文长度为2K字节的整数倍,然后将报文分割成多个大小为2K字节的报文。
4.1.3 将通过4.1.1和4.1.2处理过的报文存储至CPU内存中报文缓冲区。报文缓冲线程通过队列头指针和队列尾指针来对CPU内存中报文缓冲区进行读写。报文缓冲线程存储报文时,如果报文缓冲区满,则丢弃报文;否则将报文存储至报文缓冲队列尾,同时将报文缓冲队列尾指针移动至下一个缓冲区位置。转4.1.1。
4.2 GPU控制线程的流程如下:
4.2.1 如果CPU内存报文缓冲区中报文数目不小于l,GPU控制线程从CPU内存报文缓冲队列拷贝l个报文至GPU全局存储器报文缓冲区,并将CPU报文缓冲队列头指针向后顺移l个位置;否则,GPU控制线程等待直到报文缓冲队列中的报文不少于l个。
4.2.2当报文开始从CPU内存往GPU全局存储器报文缓冲区传输后,GPU控制线程启动正则表达式匹配引擎。正则表达式匹配引擎对全局存储器中的报文进行模式匹配,将匹配结果(当前状态对应的正则表达式编号)存储在GPU全局存储器结果缓冲区。全局存储器结果缓冲区用于存储报文匹配结果,其长度与全局存储器报文缓冲区长度相同。GPU支持异步传输,因此GPU控制线程不用等到报文传输结束之后再启动正则表达式匹配引擎。
4.2.3 GPU匹配结束后,GPU控制线程从GPU全局存储器结果缓冲区将匹配结果拷贝至CPU内存结果缓冲区。转4.2.1。
在整个匹配的过程中,CPU与GPU并行工作,达到了很高的匹配性能。综合起看,采用本发明可以达到以下有益效果: 
1.本发明第一步采用“双缓冲”方法来缓冲报文,有效提高了报文缓冲与报文传输的并行性,提高了整体性能;
2.本发明第二步基于GPU的正则表达式匹配引擎中,将DFA状态转移表存储于GPU的纹理存储器,提高了正则表达式匹配速度;
3.本发明第三步CPU与GPU并行工作,提高了报文缓冲和报文内容检查的性能。
附图说明
图1是本发明总体流程图。
图2是本发明第四步模式匹配的流程图。
图3是本发明第一步正则表达式模式集编译后DFA状态转移表扩展后结构图。
图4是本发明第四步中模式匹配阶段CPU内存和GPU全局存储器报文缓冲区结构图。
图5是本发明第四步模式匹配阶段CPU内存和GPU全局存储器匹配结果缓冲区结构图。
具体实施方式
图1是本发明总体流程图。本发明共分为四个步骤:预处理模式集和分配缓冲区;加载报文至GPU共享存储器;设计实现基于GPU的正则表达式匹配引擎;模式匹配。
图2是本发明第四步模式匹配的流程图。CPU从网卡捕获并预处理报文后将报文缓冲至CPU报文缓冲区。GPU控制线程将CPU报文缓冲区中l个报文传输至GPU报文缓冲区,启动正则表达式匹配引擎进行报文内容检查,GPU匹配结束后,GPU控制线程从GPU全局存储器结果缓冲区将匹配结果拷贝至CPU内存结果缓冲区。GPU被用作CPU的协处理器,只负责报文匹配工作。
图3是本发明第一步正则表达式模式集编译后DFA状态转移表扩展后结构图。当0≤j≤255时,状态转移表第i行第j列的值表示状态i在输入ASCII字符j时的下一个状态;当j=256时,若状态i为接受状态,状态转移表第i行第j列的值表示到达接受状态的正则表达式的ID(正则表达式的ID从1开始编号),否则设为0;
图4是本发明第四步中模式匹配阶段CPU内存和GPU全局存储器报文缓冲区结构图。GPU全局存储器中报文缓冲区的宽度是2K字节用于存储报文的有效载荷,长度为ll为GPU同时处理的报文的个数)。CPU内存中报文缓冲区的宽度为2K字节,长度为2l。本发明采用“双缓冲”技术来缓冲报文:CPU报文缓冲区的长度是GPU的两倍,GPU每次处理CPU缓冲区一半的报文。当CPU报文缓冲区前一半被传输至GPU进行检查时,新捕获的报文将被缓冲至缓冲区的后一半,反之亦然。
图5是本发明第四步模式匹配阶段CPU内存和GPU全局存储器匹配结果缓冲区结构图。匹配结果缓冲区的长度为ll为GPU同时处理的报文的个数),宽度为4字节用于存储被匹配上的正则表达式ID。
    国防科技大学采用如下系统配置,采用本发明进行高速网络报文内容检测的一个实例如下:
硬件:一台PC机(主板:华硕p5ql pro;显卡:NVIDIA GTX260)。
软件:windows操作系统,Microsoft visual studio 2008, WinPcap网络开发包,CUDA took kit 3.0,CUDA SDK 3.0, snort 2.8规则集。
第一步,预处理正则表达式模式集和分配缓冲区。
1.1 采用Thompson算法和子集构造算法将snort规则集中的正则表达式编译成一个DFA。编译完成后,将DFA状态表h_table拷贝至GPU全局存储器空间d_table,并调用CUDA运行API函数cudaBindtexture2D,将d_table与纹理缓存绑定。
1.2 在CPU内存中分配长度l为8192、宽度为2K字节的报文缓冲区h_packets,同时分配长度为4096宽度为4个字节的结果缓冲区h_result;在GPU全局存储器中分配长度为4096宽度为2K字节的报文缓冲区d_packts,同时分配长度为4096宽度为4个字节的结果缓冲区d_result。
第二步,模式匹配开始前,GPU线程根据自己的ID从GPU全局存储器报文缓冲区将要匹配的报文加载至该线程所在线程块对应的共享存储器。。
第三步,使用CUDA编程环境实现基于GPU的正则表达式匹配引擎,其具体流程如下:
3.1 将DFA当前状态置为初始状态。
3.2 对加载到共享存储器的报文进行模式匹配,具体步骤为:
3.2.1 从第一个字符开始,每次取报文的一个字符作为DFA的输入进行匹配;
3.2.2 根据输入字符和当前DFA状态在纹理存储器中查找DFA状态表,得到下一个状态;
3.2.3 将DFA当前状态置为2.3.2获得的“下一个状态”;
3.2.4 判断DFA当前状态是不是接受状态(查看状态转移表中当前状态对应行的最后一列),如果是则将当前状态对应的正则表达式编号记录至GPU全局存储器结果缓冲区中;
3.2.5 如果当前报文所有字符都已匹配完,则结束;否则,转3.2.1。
第四步,模式匹配。
CPU同时启动报文缓冲线程和GPU控制线程,具体如下:
4.1报文缓冲线程使用WinPcap开发包在网卡上捕获报文,并对报文进行以下处理后将报文存储至CPU内存中报文缓冲区。具体如下:
4.1.1剥离报文头信息,提取报文有效载荷;
4.1.2 对报文进行“填充”与“截断”:由于CPU内存中报文缓冲区的宽度是2K字节,如果报文有效载荷的长度小于2K字节则在报文末尾填充0;如果报文有效载荷长度大于2K字节,则先在报文末尾填充0,使得报文长度为2K字节的整数倍,然后将报文分割成多个大小为2K字节的报文。
4.1.3 将通过4.1.1和4.1.2处理过的报文存储至CPU内存中报文缓冲区h_packets。报文缓冲线程通过队列头指针和队列尾指针来对CPU内存中报文缓冲区进行读写。报文缓冲线程存储报文时,如果报文缓冲区满,则丢弃报文;否则将报文存储至报文缓冲队列尾,同时将报文缓冲队列尾指针移动至下一个缓冲区位置。
4.2 GPU控制线程的流程如下:
4.2.1将h_packets中l个报文拷贝至d_packets,如果h_packets中没有处理的报文数目不足l个,则等待。
4.2.2报文开始传输后,GPU控制线程启动正则表达式匹配引擎。GPU匹配时,匹配结果被保存在d_result中。
4.2.3匹配结束后,由GPU控制线程负责将匹配结果d_result拷贝至CPU内存h_result,供CPU网络安全应用分析使用。转4.2.1。
 
       采用本实施方案的配置实现报文内容检查系统,报文内容检查的吞吐量达到了15.6Gbps,而正则表达式的匹配速度达到了26.9Gbps。目前公知的基于GPU的正则表达式匹配方法的最快匹配速度是16Gbps,由Giorgos Vasiliadis在论文Regular expression matching on graphics hardware for intrusion detection中提出。可以看出,本发明公布的方法得到了约1.68倍的加速比。

Claims (1)

1.一种基于GPU的高速网络报文内容检测方法,其特征在于包括以下步骤:
第一步,预处理模式集和分配缓冲区:
1.1使用正则表达式编译算法将正则表达式模式集编译为一个非确定性有限自动机NFA;
1.2使用子集构造算法从NFA构建DFA,并对DFA的状态转移表进行扩展,DFA的状态转移表是一个二维数组,数组的行数与DFA的状态数相同,每一行有256列分别对应每一个ASCII字符输入,状态转移表第i行第j列的值表示状态i在输入ASCII字符j时的下一个状态;DFA的状态标记向量含有的元素的个数与DFA的状态数相同,每一个元素表示相应的DFA状态是否为可接受状态;扩展后的DFA状态转移表的行数与DFA的状态数相同,在每一行最后增加一列用于存储在该状态达到接受状态的正则表达式ID,如果该状态不是接受状态,则该状态的最后一列置0;
1.3将DFA状态转移表绑定至GPU纹理存储器:首先把DFA状态转移表拷贝至GPU全局存储器,然后将该全局存储器区域与GPU纹理缓存绑定;
1.4分别在CPU内存和GPU全局存储器为报文和匹配结果分配缓冲区:
1.4.1将GPU全局存储器中报文缓冲区的宽度设定为2K字节,用于存储报文的有效载荷,长度为l,l为GPU同时处理的报文的个数,由GPU的性能决定,通过实验确定;CPU内存中报文缓冲区的宽度为2K字节,长度为2l,CPU内存中报文缓冲区是一个循环队列,因此也叫报文缓冲队列;
1.4.2分配结果缓冲区:CPU内存与GPU全局存储器中匹配结果缓冲区的长度为l,宽度为4字节,用于存储被匹配上的正则表达式ID;
第二步,GPU线程根据自己的ID从GPU全局存储器报文缓冲区将要匹配的报文加载至该线程所在线程块对应的共享存储器。
第三步,设计实现基于GPU的正则表达式匹配引擎,基于GPU的正则表达式匹配引擎是一段运行在GPU上的程序,该程序从GPU纹理存储器读取DFA状态转移表,对全局存储器中报文缓冲区中的报文进行匹配,其具体流程如下:
3.1将DFA当前状态置为初始状态;
3.2对加载到共享存储器的报文进行模式匹配,具体步骤为:
3.2.1从第一个字符开始,每次取报文的一个字符作为DFA的输入进行匹配;
3.2.2根据输入字符和当前DFA状态在纹理存储器中查找DFA状态表,得到下一个状态;
3.2.3将DFA当前状态置为3.3.2获得的“下一个状态”;
3.2.4判断DFA当前状态是不是接受状态,如果是则将当前状态对应的正则表达式编号记录至GPU全局存储器结果缓冲区中;
3.2.5如果当前报文所有字符都已匹配完,则结束;否则,转3.2.1。
第四步CPU同时运行报文缓冲线程和GPU控制线程,控制正则表达式匹配引擎进行模式匹配,报文缓冲线程是捕获和预处理报文的CPU应用程序,GPU控制线程是启动正则表达式匹配引擎并在GPU匹配完成后从GPU全局存储器下载匹配结果的CPU应用程序;
4.1报文缓冲线程的流程是:
4.1.1剥离报文头信息,提取报文有效载荷;
4.1.2对报文进行“填充”与“截断”:如果报文有效载荷的长度小于2K字节则在报文末尾填充0;如果报文有效载荷长度大于2K字节,则先在报文末尾填充0,使得报文长度为2K字节的整数倍,然后将报文分割成多个大小为2K字节的报文;
4.1.3将通过4.1.1和4.1.2处理过的报文存储至CPU内存中报文缓冲区;报文缓冲线程通过队列头指针和队列尾指针来对CPU内存中报文缓冲区进行读写,报文缓冲线程存储报文时,如果报文缓冲区满,则丢弃报文;否则将报文存储至报文缓冲队列尾,同时将报文缓冲队列尾指针移动至下一个缓冲区位置,转4.1.1;
4.2GPU控制线程的流程如下:
4.2.1如果CPU内存报文缓冲区中报文数目不小于l,GPU控制线程从CPU内存报文缓冲队列拷贝l个报文至GPU全局存储器报文缓冲区,并将CPU报文缓冲队列头指针向后顺移l个位置;否则,GPU控制线程等待直到报文缓冲队列中的报文不少于l个;
4.2.2当报文开始从CPU内存往GPU全局存储器报文缓冲区传输后,GPU控制线程启动正则表达式匹配引擎;正则表达式匹配引擎对全局存储器中的报文进行模式匹配,将匹配结果即当前状态对应的正则表达式编号存储在GPU全局存储器结果缓冲区;
4.2.3GPU匹配结束后,GPU控制线程从GPU全局存储器结果缓冲区将匹配结果拷贝至CPU内存结果缓冲区,转4.2.1。
CN 201010539214 2010-11-10 2010-11-10 基于gpu的高速网络报文内容检测方法 Expired - Fee Related CN102064977B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010539214 CN102064977B (zh) 2010-11-10 2010-11-10 基于gpu的高速网络报文内容检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010539214 CN102064977B (zh) 2010-11-10 2010-11-10 基于gpu的高速网络报文内容检测方法

Publications (2)

Publication Number Publication Date
CN102064977A true CN102064977A (zh) 2011-05-18
CN102064977B CN102064977B (zh) 2012-07-04

Family

ID=44000088

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010539214 Expired - Fee Related CN102064977B (zh) 2010-11-10 2010-11-10 基于gpu的高速网络报文内容检测方法

Country Status (1)

Country Link
CN (1) CN102064977B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102299843A (zh) * 2011-06-28 2011-12-28 北京安天电子设备有限公司 一种基于gpu和缓冲区的网络数据处理方法及系统
CN102404169A (zh) * 2011-11-15 2012-04-04 北京天融信科技有限公司 一种利用内容加速卡实现内容检测的装置和方法
CN102497297A (zh) * 2011-12-13 2012-06-13 曙光信息产业(北京)有限公司 基于多核多线程的深度报文检测技术的实现系统和方法
CN102572436A (zh) * 2012-01-17 2012-07-11 西安电子科技大学 一种基于cuda实现的帧内压缩方法
CN103297293A (zh) * 2013-05-17 2013-09-11 华为技术有限公司 报文检测方法及装置
CN103312627A (zh) * 2013-05-30 2013-09-18 中国人民解放军国防科学技术大学 基于两级存储的正则表达式匹配方法
CN103517086A (zh) * 2012-06-29 2014-01-15 华为技术有限公司 视频数据处理的方法、装置及设备
CN103559018A (zh) * 2013-10-23 2014-02-05 东软集团股份有限公司 基于gpu计算的字符串匹配方法和系统
CN103517086B (zh) * 2012-06-29 2016-11-30 华为技术有限公司 视频数据处理的方法、装置及设备
CN106301992A (zh) * 2015-06-12 2017-01-04 阿里巴巴集团控股有限公司 一种攻击报文检测方法及设备
CN106656501A (zh) * 2016-09-23 2017-05-10 深圳市紫光同创电子有限公司 一种数据包验证方法及系统
CN109543751A (zh) * 2018-11-22 2019-03-29 南京中孚信息技术有限公司 基于多线程的模式匹配方法、装置及电子设备
CN109684143A (zh) * 2018-12-26 2019-04-26 郑州云海信息技术有限公司 一种基于深度学习的测试gpu性能的方法及装置
CN109902059A (zh) * 2019-02-28 2019-06-18 苏州浪潮智能科技有限公司 一种cpu与gpu之间的数据传输方法
CN111147691A (zh) * 2019-12-31 2020-05-12 上海联影医疗科技有限公司 图像处理方法、装置、设备和可读存储介质
CN111245742A (zh) * 2019-12-31 2020-06-05 宁波舜宇智能科技有限公司 数据的缓冲方法、装置、计算机和可读存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257927B (zh) * 2012-11-12 2015-08-12 盛吉高科(北京)科技有限公司 一种针对通信访问的数据管理系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060069872A1 (en) * 2004-09-10 2006-03-30 Bouchard Gregg A Deterministic finite automata (DFA) processing
CN101706870A (zh) * 2009-10-26 2010-05-12 中山大学 一种基于gpu实现的媒资特征识别的系统及方法
CN101707513A (zh) * 2009-11-30 2010-05-12 曙光信息产业(北京)有限公司 基于正则表达式的深度包检测方法及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060069872A1 (en) * 2004-09-10 2006-03-30 Bouchard Gregg A Deterministic finite automata (DFA) processing
CN101706870A (zh) * 2009-10-26 2010-05-12 中山大学 一种基于gpu实现的媒资特征识别的系统及方法
CN101707513A (zh) * 2009-11-30 2010-05-12 曙光信息产业(北京)有限公司 基于正则表达式的深度包检测方法及设备

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102299843A (zh) * 2011-06-28 2011-12-28 北京安天电子设备有限公司 一种基于gpu和缓冲区的网络数据处理方法及系统
CN102299843B (zh) * 2011-06-28 2015-01-07 北京安天电子设备有限公司 一种基于gpu和缓冲区的网络数据处理方法及系统
CN102404169A (zh) * 2011-11-15 2012-04-04 北京天融信科技有限公司 一种利用内容加速卡实现内容检测的装置和方法
CN102497297A (zh) * 2011-12-13 2012-06-13 曙光信息产业(北京)有限公司 基于多核多线程的深度报文检测技术的实现系统和方法
CN102572436A (zh) * 2012-01-17 2012-07-11 西安电子科技大学 一种基于cuda实现的帧内压缩方法
CN102572436B (zh) * 2012-01-17 2014-12-03 西安电子科技大学 一种基于cuda实现的帧内压缩方法
CN103517086A (zh) * 2012-06-29 2014-01-15 华为技术有限公司 视频数据处理的方法、装置及设备
CN103517086B (zh) * 2012-06-29 2016-11-30 华为技术有限公司 视频数据处理的方法、装置及设备
CN103297293A (zh) * 2013-05-17 2013-09-11 华为技术有限公司 报文检测方法及装置
CN103297293B (zh) * 2013-05-17 2016-03-09 华为技术有限公司 报文检测方法及装置
CN103312627A (zh) * 2013-05-30 2013-09-18 中国人民解放军国防科学技术大学 基于两级存储的正则表达式匹配方法
CN103312627B (zh) * 2013-05-30 2015-06-10 中国人民解放军国防科学技术大学 基于两级存储的正则表达式匹配方法
CN103559018B (zh) * 2013-10-23 2016-05-04 东软集团股份有限公司 基于gpu计算的字符串匹配方法和系统
CN103559018A (zh) * 2013-10-23 2014-02-05 东软集团股份有限公司 基于gpu计算的字符串匹配方法和系统
CN106301992A (zh) * 2015-06-12 2017-01-04 阿里巴巴集团控股有限公司 一种攻击报文检测方法及设备
CN106301992B (zh) * 2015-06-12 2019-09-03 阿里巴巴集团控股有限公司 一种攻击报文检测方法及设备
CN106656501A (zh) * 2016-09-23 2017-05-10 深圳市紫光同创电子有限公司 一种数据包验证方法及系统
CN109543751A (zh) * 2018-11-22 2019-03-29 南京中孚信息技术有限公司 基于多线程的模式匹配方法、装置及电子设备
CN109684143A (zh) * 2018-12-26 2019-04-26 郑州云海信息技术有限公司 一种基于深度学习的测试gpu性能的方法及装置
CN109684143B (zh) * 2018-12-26 2021-07-06 郑州云海信息技术有限公司 一种基于深度学习的测试gpu性能的方法及装置
CN109902059A (zh) * 2019-02-28 2019-06-18 苏州浪潮智能科技有限公司 一种cpu与gpu之间的数据传输方法
CN109902059B (zh) * 2019-02-28 2021-06-29 苏州浪潮智能科技有限公司 一种cpu与gpu之间的数据传输方法
CN111147691A (zh) * 2019-12-31 2020-05-12 上海联影医疗科技有限公司 图像处理方法、装置、设备和可读存储介质
CN111245742A (zh) * 2019-12-31 2020-06-05 宁波舜宇智能科技有限公司 数据的缓冲方法、装置、计算机和可读存储介质
CN111245742B (zh) * 2019-12-31 2022-03-08 宁波舜宇智能科技有限公司 数据的缓冲方法、装置、计算机和可读存储介质

Also Published As

Publication number Publication date
CN102064977B (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102064977B (zh) 基于gpu的高速网络报文内容检测方法
Cascarano et al. iNFAnt: NFA pattern matching on GPGPU devices
Vasiliadis et al. Gnort: High performance network intrusion detection using graphics processors
Hong et al. Efficient parallel graph exploration on multi-core CPU and GPU
Bakhoda et al. Analyzing CUDA workloads using a detailed GPU simulator
Pabst et al. Fast and scalable cpu/gpu collision detection for rigid and deformable surfaces
Checconi et al. Traversing trillions of edges in real time: Graph exploration on large-scale parallel machines
EP2366156B1 (en) String matching method and apparatus
CN106776456B (zh) 基于fpga+npu的高速正则表达式匹配混合系统及方法
Vasiliadis et al. Parallelization and characterization of pattern matching using GPUs
CN104536911B (zh) 一种多路组相联的高速缓冲存储器及其处理方法
CN103049241A (zh) 一种提高cpu+gpu异构装置计算性能的方法
CN103312627B (zh) 基于两级存储的正则表达式匹配方法
CN104834505A (zh) 一种多核多线程环境下numa感知的同步方法
Barnat et al. Scalable shared memory LTL model checking
Hung et al. An efficient parallel-network packet pattern-matching approach using GPUs
CN111352896B (zh) 人工智能加速器、设备、芯片以及数据处理方法
Ha et al. Fast Four‐Way Parallel Radix Sorting on GPUs
Tran et al. Memory efficient parallelization for Aho-Corasick algorithm on a GPU
Tumeo et al. Experiences with string matching on the fermi architecture
Tran et al. Performance optimization of Aho-Corasick algorithm on a GPU
Hu et al. High throughput implementation of MD5 algorithm on GPU
Edelkamp et al. External memory breadth-first search with delayed duplicate detection on the GPU
Fu et al. A CPU-GPU data transfer optimization approach based on code migration and merging
Cevahir et al. Efficient PageRank on GPU clusters

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120704

Termination date: 20121110