CN111130946B - 一种深度报文识别的加速方法、装置和存储介质 - Google Patents

一种深度报文识别的加速方法、装置和存储介质 Download PDF

Info

Publication number
CN111130946B
CN111130946B CN201911392409.1A CN201911392409A CN111130946B CN 111130946 B CN111130946 B CN 111130946B CN 201911392409 A CN201911392409 A CN 201911392409A CN 111130946 B CN111130946 B CN 111130946B
Authority
CN
China
Prior art keywords
programmable hardware
hardware accelerator
message
accelerator card
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.)
Active
Application number
CN201911392409.1A
Other languages
English (en)
Other versions
CN111130946A (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201911392409.1A priority Critical patent/CN111130946B/zh
Publication of CN111130946A publication Critical patent/CN111130946A/zh
Application granted granted Critical
Publication of CN111130946B publication Critical patent/CN111130946B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种深度报文识别的加速方法、装置和存储介质。本发明实施例使用可编程硬件加速卡完成深度报文识别(DPI)功能,包括:首先,使用可编程硬件加速卡的网口接收网络报文;接下来,使用可编程硬件加速卡的芯片收集网络报文的相关信息,并对这些信息进行深度报文识别,比如报文统计,正则表达式的匹配等等;之后,再将深度报文识别得到的结果通过可编程硬件加速卡与主机相连的PCI总线发送回主机。由于以上方法都是在可编程硬件加速卡上完成的,处理速度会非常快,可提高深度报文识别的性能和统计结果的准确性。而且因为不再占用主机CPU的资源,也可以使主机CPU节省出来更多资源处理更多的任务,从而大大提高了主机的处理能力。

Description

一种深度报文识别的加速方法、装置和存储介质
技术领域
本发明涉及网络通信领域,尤其涉及一种深度报文识别的加速方法、装置和存储介质。
背景技术
深度报文识别(Deep Packet Inspection,DPI)是一种基于数据包的深度检测技术,针对不同的网络应用层载荷(例如HTTP、DNS等)进行深度检测,通过对报文的有效载荷检测决定其合法性。
其中对报文的有效载荷检测需要进行一系列数据分析、处理、检测、筛选和统计等等。目前,上述操作大部分是通过软件方法利用服务器的CPU进行处理的,这就对服务器的CPU的性能提出了较高要求。
在5G应用场景下,数据流非常大,处理时限要求非常高,如果仍然采用软件方法完成上述操作,将难以满足应用需求。
发明内容
针对以上问题,本发明人创造性地提供一种深度报文识别的加速方法、装置和存储介质。
根据本发明实施例第一方面,提供一种深度报文识别的加速方法,该方法使用可编程硬件加速卡完成深度报文识别功能,包括:使用可编程硬件加速卡的网口接收网络报文;使用可编程硬件加速卡的芯片获取网络报文的相关信息;使用可编程硬件加速卡的芯片对网络报文的相关信息进行深度报文识别得到深度报文识别结果;将深度报文识别结果通过可编程硬件加速卡与主机相连的PCI总线发送回主机。
根据本发明一实施方式,其中,在使用可编程硬件加速卡的网口接收网络报文之前,该方法还包括:在可编程硬件加速卡的芯片中写入核心逻辑,其中核心逻辑用于获取报文相关信息和实现深度报文识别的功能;检测可编程硬件加速卡是否与主机相连,若是,则继续下一步操作,若否,提示错误信息。
根据本发明一实施方式,其中,获取网络报文的相关信息,包括:根据通信协议对网络报文进行解析得到具体的报文内容和流的基本信息;通过流表获取流的附加信息,其中流表存储在可编程硬件加速卡上的DDR存储器中,附加信息包括流的计数器和Cookie信息。
根据本发明一实施方式,其中,在通过流表获取流的附加信息之前,该方法还包括:在可编程硬件加速卡上的DDR存储器中创建流表,其中流表由流表项组成,流表项包括流的基本信息和的附加信息。
根据本发明一实施方式,其中,对网络报文的相关信息进行深度报文识别得到深度报文识别结果,包括:对网络报文的相关信息进行报文统计得到报文统计结果。
根据本发明一实施方式,其中,对网络报文的相关信息进行深度报文识别得到深度报文识别结果,包括:利用正则表达式对网络报文的相关信息进行数据匹配得到匹配正则表达式的数据。
根据本发明一实施方式,其中,在利用正则表达式对网络报文的相关信息进行数据匹配得到匹配正则表达式的数据之前,该方法还包括:通过PCI总线接收上层应用发送的正则表达式设定指令,其中上层应用安装在主机上;根据正则表达式设定指令生成正则表达式。
根据本发明实施例第二方面,一种深度报文识别的加速装置,该装置配备有可编程硬件加速卡和与主机相连的PCI总线,包括:报文接收模块,用于使用可编程硬件加速卡的网口接收网络报文;信息获取模块,用于使用可编程硬件加速卡的芯片获取网络报文的相关信息;深度报文识别模块,用于使用可编程硬件加速卡的芯片对网络报文的相关信息进行深度报文识别得到深度报文识别结果;数据发送模块,用于将深度报文识别结果通过可编程硬件加速卡与主机相连的PCI总线发送回主机。
根据本发明一实施方式,其中,该装置还包括:逻辑写入模块,用于在可编程硬件加速卡的芯片中写入核心逻辑,其中核心逻辑用于获取报文相关信息和实现深度报文识别的功能;检测模块,用于检测可编程硬件加速卡是否与主机相连,若是,则继续下一步操作,若否,提示错误信息。
根据本发明一实施方式,其中,信息获取模块包括:报文解析单元,用于根据通信协议对网络报文进行解析得到具体的报文内容和流的基本信息;流表查找单元,通过流表获取流的附加信息,其中流表存储在可编程硬件加速卡上的DDR存储器中,附加信息包括流的计数器和Cookie信息。
根据本发明一实施方式,其中,信息获取模块还包括:流表创建单元,用于在可编程硬件加速卡上的DDR存储器中创建流表,其中流表由流表项组成,流表项包括流的基本信息和的附加信息。
根据本发明一实施方式,其中,深度报文识别模块包括:报文统计单元,用于对网络报文的相关信息进行报文统计得到报文统计结果。
根据本发明一实施方式,其中,深度报文识别模块包括:数据匹配单元,用于利用正则表达式对网络报文的相关信息进行数据匹配得到匹配正则表达式的数据。
根据本发明一实施方式,其中,深度报文识别模块还包括:正则表达式设定指令单元,用于通过PCI总线接收上层应用发送的正则表达式设定指令,其中上层应用安装在主机上;正则表达式生成单元,用于根据正则表达式设定指令生成正则表达式。
根据本发明实施例第三方面,一种存储介质,在存储介质上存储了程序指令,其中,程序指令在运行时用于执行上述任一项深度报文识别的加速方法。
本发明实施例提供一种深度报文识别的加速方法方法、装置和存储介质。本发明实施例提供的深度报文识别DPI的加速方法,使用可编程硬件加速卡完成深度报文识别功能,包括:首先,使用可编程硬件加速卡的网口接收网络报文;接下来,使用可编程硬件加速卡的芯片收集网络报文的相关信息,并对这些信息进行深度报文识别,比如报文统计,正则表达式的匹配等等;之后,再将深度报文识别得到的结果通过可编程硬件加速卡与主机相连的PCI总线发送回主机。由于以上方法都是在可编程硬件加速卡上完成的,处理速度会非常快,可提高DPI深度报文识别的性能和统计结果的准确性。而且因为不再占用主机CPU的资源,也可以使主机CPU节省出来更多资源处理更多的任务,从而大大提高了主机的处理能力。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1为本发明实施例深度报文识别的加速方法的应用场景示意图;
图2为本发明实施例深度报文识别的加速方法的实现流程示意图;
图3为本发明实施例深度报文识别的加速装置的组成结构示意图。
具体实施方式
为使本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
图1示出了本发明实施例深度报文识别的加速方法的应用场景。如图1所示,本发明实施例深度报文识别的加速方法是使用可编程硬件加速卡30完成深度报文识别功能的一种方法。可编程硬件加速卡30通常是一种可编程的智能网卡,比如现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)加速网卡。该硬件加速卡30通常具有普通网卡所具有的网卡物理端口301,芯片302和DDR存储器。其中,网卡物理端口301用来接收报文,而芯片302的逻辑模块3021用于执行定制的逻辑,在本发明实施例种,这个定制的逻辑就是进行深度报文识别的处理逻辑,包括:报文解析、流表查找、报文统计和正则表达式匹配等。在为了实现对流表的查找,会在DDR存储器303中创建流表。硬件加速卡30在完成深度报文识别之后将报文统计结果或正则表达式匹配结果通过PCI总线20返回给主机,主机拿到这些结果后传递给主机上安装的上层应用,即深度报文识别应用101。深度报文识别应用101也可以通过PCI总线20设置正则表达式匹配中要使用的正则表达式。为了和可编程硬件加速卡30进行数据交换,主机10需要安装可编程硬件加速卡驱动程序103。可执行程序(lib)库102是深度报文识别应用101可调用的***工具库。深度报文识别应用101可以借助这些***工具库,通过可编程硬件加速卡驱动程序103,实现与可编程硬件加速卡30的交互。
下面就结合图2,详细说明本发明实施例深度报文识别的加速方法的实现流程。如图2所示,本发明实施例深度报文识别的加速方法包括:操作410,使用可编程硬件加速卡的网口接收网络报文;操作420,使用可编程硬件加速卡的芯片获取网络报文的相关信息;操作430,使用可编程硬件加速卡的芯片对网络报文的相关信息进行深度报文识别得到深度报文识别结果;操作440,将深度报文识别结果通过可编程硬件加速卡与主机相连的PCI总线发送回主机。
在操作410中,这里的网口就是网卡物理端口的缩写,如图1中所示的网卡物理端口301。这里的网口会有一个可以唯一识别该网口的物理地址(MAC地址),通过这一物理地址还可以得到一个唯一的IP地址。而物理地址和IP地址就可以用来接收不同网络层的各种网络报文。通常,可编程硬件加速卡,例如FPGA的网卡都是高速的收发接口,可以用来完成高速的数据收发和交换。
在操作420中,获取报文的相关信息包括对接收到的网络进行解码解包、依据通信协议对网络报文进行分段,提取每个字段不同含义的信息,甚至包括根据报文的流信息查找流表获得更多附加信息等等。这一步的作用主要是为下一步进行深度报文识别提供各种数据基础。
在操作430中,这里的深度报文识别就是对在操作420获取到的报文全部内容和相关信息进行深入的检测、分析和筛选。所谓“深度”是和普通的报文分析层次相比较而言的,“普通报文检测”仅分析IP包4层以下的内容,包括源地址、目的地址、源端口、目的端口以及协议类型,而深度报文识别除了对前面的层次分析外,还增加了应用层分析,识别各种应用及其内容,包括:应用分析,比如网络流量构成分析、性能分析、流向分析等;用户分析,比如用户群区分、行为分析、终端分析、趋势分析等;网元分析,比如根据区域属性、基站负载情况进行分析等;流量管控,比如P2P限速、保证QoS、带宽保障、网络资源优化等;安全保障,比如DDoS攻击、数据广播风暴、防范恶意病毒攻击等。
在操作440中,由可编程硬件加速卡进行深度报文识别后得到的深度报文识别结果最终还需要传回给主机,这一传输通道就是PCI总线。
根据本发明一实施方式,其中,在使用可编程硬件加速卡的网口接收网络报文之前,该方法还包括:在可编程硬件加速卡的芯片中写入核心逻辑,其中核心逻辑用于获取报文相关信息和实现深度报文识别的功能;检测可编程硬件加速卡是否与主机相连,若是,则继续下一步操作,若否,提示错误信息。
这里,用于获取报文相关信息和实现深度报文识别功能的核心逻辑,通常是通过硬件编程语言实现的。比起软件编程语言,硬件编程语言效率更高,运行速度更快。以FPGA卡为例,可编程硬件加速卡大多属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM,布线资源,内嵌专用硬核,底层内嵌功能等单元。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑模块,这些模块间利用金属连线互相连接或连接到I/O模块。由此可见,通过硬件编程将核心逻辑写入到FPGA卡中的逻辑模块就可以实现报文解析、流表查找、正则表达式匹配等深度报文识别等操作。而硬件描述语言(HDL),比如VHDL、Verilog HDL、System Verilog和System C就可以用来设计数字逻辑***和描述数字电路。
可编程硬件加速卡,和普通的网卡类似,在启动计算机或正式启用前都可以对其进行检测,以保正其硬件功能无异,且与主机相连,从而确保其可用性。若检测结果可编程硬件加速卡与主机相连且工作正常,则可以执行本发明实施例所提供的深度报文识别的加速方法。若检测结果为未连接,则提示类似“可编程硬件加速卡未与主机连接”等错误信息。
根据本发明一实施方式,其中,获取网络报文的相关信息,包括:根据通信协议对网络报文进行解析得到具体的报文内容和流的基本信息;通过流表获取流的附加信息,其中流表存储在可编程硬件加速卡上的DDR存储器中,附加信息包括流的计数器和Cookie信息。
如上文提到的,操作420中所谓的、对网络报文的解析是更为广义的含义。在这一实施方式中就主要包括两个部分,首先,依据通信协议将报文分段取值获取报头和报文内容,其中报头还含有流的一下基本信息,比如,进入端口、目的MAC地址、以太网类型、虚拟局域网的标识、源IP地址、目的IP地址等等。之后,就可以根据这些信息在流表中查询到和该报文相关的一些附加信息,比如计数器和Cookie信息等。这里的流表是软件定义网络(SDN)对网络设备的数据转发功能的一种抽象。在传统网络设备中,交换机和路由器的数据转发需要依赖设备中保存的二层MAC地址转发表或者三层的IP地址路由表,SDN中使用的流表也是如此,不过在它的表项中整合了网络中各个层次的网络配置信息,从而在进行数据转发时可以使用更丰富的规则。流表中的计数器可以针对交换机中每条流表、每个数据流、每个设备端口、每个转发队列进行维护,用于统计数据流表的相关信息。流表中的Cookie信息,是一些不透明的数据值,可以用来过滤流统计数据、流改变和流删除。但处理数据包时不能使用。而像流表中的计数器、Cookie信息等这样的附加信息对于深度报文识别中的报文统计功能来说都是非常重要的数据来源。
根据本发明一实施方式,其中,在通过流表获取流的附加信息之前,该方法还包括:在可编程硬件加速卡上的DDR存储器中创建流表,其中流表由流表项组成,流表项包括流的基本信息和的附加信息。
在流表中,流表项中的基本信息,比如进入端口、目的MAC地址、以太网类型、虚拟局域网的标识、源IP地址、目的IP地址等等主要用作匹配域,即通过这些字段的值来匹配到该报文所属的流及对应的流表项,也可以认为是用来标识流的键。
根据本发明一实施方式,其中,对网络报文的相关信息进行深度报文识别得到深度报文识别结果,包括:对网络报文的相关信息进行报文统计得到报文统计结果。
报文统计是深度报文识别一种非常典型的功能,主要收集各种报文的统计信息,包括计数、分布等等,这些信息可以用来进行更深入的分析,比如流量分析、流向分析、安全隐患分析等等。
根据本发明一实施方式,其中,对网络报文的相关信息进行深度报文识别得到深度报文识别结果,包括:利用正则表达式对网络报文的相关信息进行数据匹配得到匹配正则表达式的数据。
数据匹配主要用于在报文数据中筛选出想要的信息,比如某个应用或某一用户的数据,这也是深度报文识别一种非常重要的功能,匹配后的数据,可以用于应用分析某一应用的使用情况或某一用户的行为等等。
根据本发明一实施方式,其中,在利用正则表达式对网络报文的相关信息进行数据匹配得到匹配正则表达式的数据之前,该方法还包括:通过PCI总线接收上层应用发送的正则表达式设定指令,其中上层应用安装在主机上;根据正则表达式设定指令生成正则表达式。
在深度报文识别中的正则表达式通常是可配置的,根据不同意图可以配置不同的正则表达式,相应地就可以过滤掉不同的信息,从而得到不同的结果。在本发明实施例中,上层应用可以通过PCI总线指定想要使用的正则表达式从而获取该上层应用想要获取的特定数据。
基于以上深度报文识别的加速方法,本发明实施例还进一步一种深度报文识别的加速装置。如图3所示,该装置50配备有可编程硬件加速卡和与主机相连的PCI总线,包括:报文接收模块501,用于使用可编程硬件加速卡的网口接收网络报文;信息获取模块502,用于使用可编程硬件加速卡的芯片获取网络报文的相关信息;深度报文识别模块503,用于使用可编程硬件加速卡的芯片对网络报文的相关信息进行深度报文识别得到深度报文识别结果;数据发送模块504,用于将深度报文识别结果通过可编程硬件加速卡与主机相连的PCI总线发送回主机。
根据本发明一实施方式,其中,该装置50还包括:逻辑写入模块,用于在可编程硬件加速卡的芯片中写入核心逻辑,其中核心逻辑用于获取报文相关信息和实现深度报文识别的功能;检测模块,用于检测可编程硬件加速卡是否与主机相连,若是,则继续下一步操作,若否,提示错误信息。
根据本发明一实施方式,其中,信息获取模块502包括:报文解析单元,用于根据通信协议对网络报文进行解析得到具体的报文内容和流的基本信息;流表查找单元,通过流表获取流的附加信息,其中流表存储在可编程硬件加速卡上的DDR存储器中,附加信息包括流的计数器和Cookie信息。
根据本发明一实施方式,其中,信息获取模块502还包括:流表创建单元,用于在可编程硬件加速卡上的DDR存储器中创建流表,其中流表由流表项组成,流表项包括流的基本信息和的附加信息。
根据本发明一实施方式,其中,深度报文识别模块503包括:报文统计单元,用于对网络报文的相关信息进行报文统计得到报文统计结果。
根据本发明一实施方式,其中,深度报文识别模块503包括:数据匹配单元,用于利用正则表达式对网络报文的相关信息进行数据匹配得到匹配正则表达式的数据。
根据本发明一实施方式,其中,深度报文识别模块503还包括:正则表达式设定指令单元,用于通过PCI总线接收上层应用发送的正则表达式设定指令,其中上层应用安装在主机上;正则表达式生成单元,用于根据正则表达式设定指令生成正则表达式。
根据本发明实施例第三方面,一种存储介质,在存储介质上存储了程序指令,其中,程序指令在运行时用于执行上述任一项深度报文识别的加速方法。
这里需要指出的是:以上针对深度报文识别的加速装置实施例的描述和针对存储介质实施例的描述与前述方法实施例的描述是类似的,具有同前述方法实施例相似的有益效果,因此不做赘述。对于本发明以上针对深度报文识别的加速装置实施例的描述和针对存储介质实施例的描述尚未披露的技术细节,请参照本发明前述方法实施例的描述而理解,为节约篇幅,因此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个装置,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以利用硬件的形式实现,也可以利用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储介质、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例方法的全部或部分。而前述的存储介质包括:移动存储介质、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种深度报文识别DPI的加速方法,其特征在于,所述方法使用可编程硬件加速卡完成深度报文识别功能,所述方法包括:
使用所述可编程硬件加速卡的网口接收网络报文;
使用所述可编程硬件加速卡的芯片获取所述网络报文的相关信息,所述相关信息包括根据报文的流信息查找流表获得的附加信息,所述附加信息包括所述流的计数器和Cookie信息;
使用所述可编程硬件加速卡的芯片对所述网络报文的相关信息进行深度报文识别得到深度报文识别结果;
将所述深度报文识别结果通过所述可编程硬件加速卡与主机相连的PCI总线发送回所述主机。
2.根据权利要求1所述的方法,其特征在于,在所述使用所述可编程硬件加速卡的网口接收网络报文之前,所述方法还包括:
在所述可编程硬件加速卡的芯片中写入核心逻辑,其中所述核心逻辑用于获取报文相关信息和实现深度报文识别的功能;
检测所述可编程硬件加速卡是否与所述主机相连,若是,则继续下一步操作,若否,提示错误信息。
3.根据权利要求1所述的方法,其特征在于,所述获取所述网络报文的相关信息,包括:
根据通信协议对所述网络报文进行解析得到具体的报文内容和流的基本信息;
通过流表获取所述流的附加信息,其中所述流表存储在所述可编程硬件加速卡上的DDR存储器中,所述附加信息包括所述流的计数器和Cookie信息。
4.根据权利要求3所述的方法,其特征在于,在所述通过流表获取所述流的附加信息之前,所述方法还包括:
在所述可编程硬件加速卡上的DDR存储器中创建流表,其中所述流表由流表项组成,所述流表项包括流的基本信息和的附加信息。
5.根据权利要求1所述的方法,其特征在于,所述对所述网络报文的相关信息进行深度报文识别得到深度报文识别结果,包括:
对所述网络报文的相关信息进行报文统计得到报文统计结果。
6.根据权利要求1所述的方法,其特征在于,所述对所述网络报文的相关信息进行深度报文识别得到深度报文识别结果,包括:
利用正则表达式对所述网络报文的相关信息进行数据匹配得到匹配正则表达式的数据。
7.根据权利要求6所述的方法,其特征在于,在所述利用正则表达式对所述网络报文的相关信息进行数据匹配得到匹配正则表达式的数据之前,所述方法还包括:
通过所述PCI总线接收上层应用发送的正则表达式设定指令,其中所述上层应用安装在所述主机上;
根据所述正则表达式设定指令生成正则表达式。
8.一种深度报文识别的加速装置,其特征在于,所述装置配备有可编程硬件加速卡和与主机相连的PCI总线,所述装置包括:
报文接收模块,用于使用所述可编程硬件加速卡的网口接收网络报文;
信息获取模块,用于使用所述可编程硬件加速卡的芯片获取所述网络报文的相关信息,所述相关信息包括根据报文的流信息查找流表获得的附加信息,所述附加信息包括所述流的计数器和Cookie信息;
深度报文识别模块,用于使用所述可编程硬件加速卡的芯片对所述网络报文的相关信息进行深度报文识别得到深度报文识别结果;
数据发送模块,用于将所述深度报文识别结果通过所述可编程硬件加速卡与主机相连的PCI总线发送回 所述主机。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
逻辑写入模块,用于在所述可编程硬件加速卡的芯片中写入核心逻辑,其中所述核心逻辑用于获取报文相关信息和实现深度报文识别的功能;
检测模块,用于检测所述可编程硬件加速卡是否与所述主机相连,若是,则继续下一步操作,若否,提示错误信息。
10.一种存储介质,在所述存储介质上存储了程序指令,其中,所述程序指令在运行时用于执行如权利要求1至7任一项所述的深度报文识别得加速方法。
CN201911392409.1A 2019-12-30 2019-12-30 一种深度报文识别的加速方法、装置和存储介质 Active CN111130946B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911392409.1A CN111130946B (zh) 2019-12-30 2019-12-30 一种深度报文识别的加速方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911392409.1A CN111130946B (zh) 2019-12-30 2019-12-30 一种深度报文识别的加速方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN111130946A CN111130946A (zh) 2020-05-08
CN111130946B true CN111130946B (zh) 2022-03-25

Family

ID=70504780

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911392409.1A Active CN111130946B (zh) 2019-12-30 2019-12-30 一种深度报文识别的加速方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN111130946B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111988271B (zh) * 2020-06-30 2021-11-16 联想(北京)有限公司 一种通信流处理方法及装置
CN112272123B (zh) * 2020-10-16 2022-04-15 北京锐安科技有限公司 网络流量分析方法、***、装置、电子设备和存储介质
CN112929299B (zh) * 2021-01-27 2021-11-30 广州市品高软件股份有限公司 基于fpga加速卡的sdn云网络实现方法、装置及设备
CN113824772B (zh) * 2021-08-30 2023-04-18 济南浪潮数据技术有限公司 基于云网络的数据采集方法、***、装置及可读存储介质
CN116015700A (zh) * 2021-11-04 2023-04-25 贵州电网有限责任公司 一种基于软件定义网络的内网ddos流量检测及防护方法
CN114726801B (zh) * 2022-04-01 2024-03-29 北京东土军悦科技有限公司 一种加密流量的转发方法和***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102217281A (zh) * 2011-06-13 2011-10-12 华为技术有限公司 协议解析方法及装置
CN104348677A (zh) * 2013-08-05 2015-02-11 华为技术有限公司 一种深度报文检测方法、设备及协处理器
CN104753931A (zh) * 2015-03-18 2015-07-01 中国人民解放军信息工程大学 一种基于正则表达式的深度报文检测方法
CN106899512A (zh) * 2017-02-15 2017-06-27 北京浩瀚深度信息技术股份有限公司 基于fpga中dpi的多引擎实现方法及***
CN109525587A (zh) * 2018-11-30 2019-03-26 新华三信息安全技术有限公司 一种数据包的识别方法及装置
CN110324204A (zh) * 2019-07-01 2019-10-11 中国人民解放军陆军工程大学 一种在fpga中实现的高速正则表达式匹配引擎及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015143620A1 (zh) * 2014-03-25 2015-10-01 华为技术有限公司 一种数据流统计方法、***和装置
CN105556916B (zh) * 2014-08-25 2019-03-08 华为技术有限公司 网络流的信息统计方法和装置
CN108512763B (zh) * 2018-04-16 2019-03-29 广州市品高软件股份有限公司 一种流表规则生成过程的跟踪方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102217281A (zh) * 2011-06-13 2011-10-12 华为技术有限公司 协议解析方法及装置
CN104348677A (zh) * 2013-08-05 2015-02-11 华为技术有限公司 一种深度报文检测方法、设备及协处理器
CN104753931A (zh) * 2015-03-18 2015-07-01 中国人民解放军信息工程大学 一种基于正则表达式的深度报文检测方法
CN106899512A (zh) * 2017-02-15 2017-06-27 北京浩瀚深度信息技术股份有限公司 基于fpga中dpi的多引擎实现方法及***
CN109525587A (zh) * 2018-11-30 2019-03-26 新华三信息安全技术有限公司 一种数据包的识别方法及装置
CN110324204A (zh) * 2019-07-01 2019-10-11 中国人民解放军陆军工程大学 一种在fpga中实现的高速正则表达式匹配引擎及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘付斌.基于NetFPGA的网络数据流量采集器.《测控技术》.2014,第33卷(第1期), *
基于NetFPGA的网络数据流量采集器;刘付斌;《测控技术》;20140118;第33卷(第1期);112-114 *

Also Published As

Publication number Publication date
CN111130946A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
CN111130946B (zh) 一种深度报文识别的加速方法、装置和存储介质
CN108768866B (zh) 组播报文跨卡转发方法、装置、网络设备及可读存储介质
EP4012980A1 (en) Application identification method and apparatus, and storage medium
EP3979577B1 (en) Queue congestion control method, device and storage medium
CN114726788B (zh) 应用于dpu的报文传输方法及相关装置
CN113114707B (zh) 一种电力芯片以太网控制器规则过滤方法
CN114285781B (zh) Srv6业务流量统计方法、装置、电子设备及介质
CN111614580A (zh) 一种数据转发方法、装置及设备
CN113542043B (zh) 网络设备的数据采样方法、装置、设备及介质
CN111294235A (zh) 数据处理方法、装置、网关及可读存储介质
CN112769738A (zh) DetNet数据包处理方法及装置
CN112511438B (zh) 一种利用流表转发报文的方法、装置及计算机设备
CN103581020B (zh) 一种报文转发的方法、装置及***
CN115002808B (zh) 一种信息转发方法、装置、设备及存储介质
EP3013000B1 (en) Traffic statistics collection method and apparatus
CN116192761A (zh) 报文转发方法、转发层设备、***、电子设备及存储介质
CN115278395A (zh) 一种网络交换设备、数据流处理控制方法及相关设备
CN114866488A (zh) 信息流识别方法、网络芯片及网络设备
CN114257526A (zh) 一种带内遥测***、方法和装置
US20190068475A1 (en) System and method for the utilization of mesh networks and distributed data buffering to increase data retention
CN112887317A (zh) 一种基于vxlan网络对数据库的防护方法及***
US20200267054A1 (en) Determining the importance of network devices based on discovered topology, managed endpoints, and activity
CN111031044A (zh) 一种报文解析硬件装置及报文解析方法
US9319327B2 (en) Packet transmission method, packet transmission apparatus, and storage medium
CN114826775B (zh) 数据包的过滤规则生成方法及装置、***、设备和介质

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
GR01 Patent grant
GR01 Patent grant