CN110198315A - 一种报文处理的方法及装置 - Google Patents
一种报文处理的方法及装置 Download PDFInfo
- Publication number
- CN110198315A CN110198315A CN201910464443.9A CN201910464443A CN110198315A CN 110198315 A CN110198315 A CN 110198315A CN 201910464443 A CN201910464443 A CN 201910464443A CN 110198315 A CN110198315 A CN 110198315A
- Authority
- CN
- China
- Prior art keywords
- message
- fragmentation
- fragmentation message
- fragment
- tuple
- 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
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
-
- 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/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- 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/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种报文处理的方法及装置,涉及信息安全技术领域,用以简化FPGA对IP分片报文进行会话过滤的方法。本申请的方案包括:CPU获取并缓存FPGA传输的多个互联网协议IP分片报文,每个IP分片报文承载的数据为同一原始数据中的部分数据,多个IP分片报文中的首片IP分片报文包括五元组,除首片IP分片报文之外的其他IP分片报文包括三元组。然后根据五元组,为除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息,然后向FPGA传输首片IP分片报文以及填充后的其他IP分片报文,以使得FPGA根据各IP分片报文包括的五元组,分别将各IP分片报文与待过滤的会话信息进行匹配。
Description
技术领域
本申请涉及信息安全技术领域,特别是涉及一种报文处理的方法及装置。
背景技术
目前,在网络中,可通过过滤设备实现对网络流量的过滤。例如,对于公司的内部局域网,过滤设备可以屏蔽终端对聊天应用、娱乐网站等与工作无关的网站的访问。
过滤设备通常部署在客户端与服务器之间,用于对客户端与服务器之间的会话进行过滤。客户端与服务器之间存在会话连接,以实现客户端与服务器之间的通信。同时,过滤设备能够与审计服务器进行数据交互,以从审计服务器处获取过滤会话信息,即需要被过滤的会话的会话信息。
其中,过滤设备采用中央处理器(Central Processing Unit,CPU)与现场可编程门阵列(Field Programmable Gate Array,FPGA)相互结合的架构。
CPU可获取审计服务器发送的过滤会话信息,并将过滤会话信息传输至过滤设备中的FPGA,从而FPGA对接收到的报文进行会话匹配。会话匹配的方法为将接收到的互联网协议(Internet Protocol,IP)报文的五元组与过滤会话信息进行匹配,若接收到的IP报文的五元组与过滤会话信息匹配成功,则删除该IP报文。
若一个IP报文以分片的形式进行传输,通常只有首片IP分片报文中包括完整的五元组,所以在FPGA收到IP分片报文后,需对该IP分片报文进行缓存,直至确定接收到属于同一原始数据的所有IP分片报文后,才可根据上述首片IP分片报文中包括的五元组,对属于同一原始数据的各IP分片报文进行会话匹配。
若通过FPGA实现对IP分片报文的缓存功能,则需要为FPGA设置一套内存管理机制,以对接收到的IP分片报文进行缓存。且需要为FPGA设置一套缓存超时机制,以实现在属于同一原始数据的IP分片报文超过预设时间段仍未被接收的情况下,将属于该原始数据的已被缓存的IP分片报文进行超时处理。
然而,在FPGA上实现内存管理机制及缓存超时机制较为复杂,导致FPGA对IP分片报文进行会话过滤的实现方法较为复杂。
发明内容
有鉴于此,本申请实施例提供一种报文处理的方法及装置,以简化FPGA对IP分片报文进行会话过滤的方法。具体技术方案如下:
第一方面,本申请一种报文处理的方法,该方法应用于过滤设备中的中央处理器CPU,过滤设备中还包括现场可编程门阵列FPGA,该方法包括:
获取并缓存FPGA传输的多个互联网协议IP分片报文,每个IP分片报文承载的数据为同一原始数据中的部分数据,多个IP分片报文中的首片IP分片报文包括五元组,除首片IP分片报文之外的其他IP分片报文包括三元组;
根据五元组,为除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息;
向FPGA传输首片IP分片报文以及填充后的其他IP分片报文,以使得FPGA根据各IP分片报文包括的五元组,分别将各IP分片报文与待过滤的会话信息进行匹配。
在一种可能的实现方式中,缓存FPGA传输的多个IP分片报文,包括:
针对每个IP分片报文,根据IP分片报文包括的三元组,查找用于缓存IP分片报文的存储空间;
若查找到用于缓存IP分片报文的存储空间,则在存储空间中缓存IP分片报文;或者,
若未查找到用于缓存IP分片报文的存储空间,则确定用于缓存IP分片报文的空闲存储空间,并在空闲存储空间中缓存IP分片报文。
在一种可能的实现方式中,获取并缓存FPGA传输的多个互联网协议IP分片报文之后,方法还包括:
为各IP分片报文填充分片重入标志,分片重入标志用于表示IP分片报文已被CPU填充处理。
在一种可能的实现方式中,在存储空间中缓存IP分片报文之后,方法还包括:
将存储空间的时间戳更新为缓存IP分片报文的时间。
在一种可能的实现方式中,该方法还包括:
每隔预设时间段,判断当前时间戳与存储空间的时间戳的差值是否大于超时阈值;
若当前时间戳与存储空间的时间戳的差值大于超时阈值,则删除存储空间中缓存的IP分片报文。
第二方面,本申请提供一种报文处理的方法,该方法应用于过滤设备中的可编程门阵列FPGA,过滤设备中还包括中央处理器CPU,该方法包括:
接收多个第一类IP分片报文,多个第一类IP报文承载的数据属于同一原始数据,多个第一类IP报文中的首片IP分片报文包括五元组,除首片IP报文之外的其他IP分片报文包括三元组;
向CPU传输多个第一类IP分片报文,以使CPU为多个第一类IP分片报文中,除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息;
接收CPU传输的多个第二类IP分片报文,每个第二类IP分片报文包括五元组;
根据五元组,将多个第二类IP分片报文分别与待过滤的会话信息进行匹配。
在一种可能的实现方式中,根据五元组,将多个第二类IP分片报文分别与待过滤的会话信息进行匹配之前,该方法还包括:
判断每个第二类IP分片报文是否包括分片重入标志,分片重入标志用于表示IP分片报文已被CPU填充处理;
若每个第二类IP分片报文包括分片重入标志,则根据五元组,将多个第二类IP分片报文分别与待过滤的会话信息进行匹配。
第三方面,本申请提供一种报文处理的装置,该装置应用于过滤设备中的中央处理器CPU,过滤设备中还包括现场可编程门阵列FPGA,该装置包括:
获取模块,用于获取FPGA传输的多个互联网协议IP分片报文,每个IP分片报文承载的数据为同一原始数据中的部分数据,多个IP分片报文中的首片IP分片报文包括五元组,除首片IP分片报文之外的其他IP分片报文包括三元组;
缓存模块,用于缓存获取模块获取的FPGA传输的多个互联网协议IP分片报文;
填充模块,用于根据五元组,为除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息;
传输模块,用于向FPGA传输首片IP分片报文以及填充后的其他IP分片报文,以使得FPGA根据各IP分片报文包括的五元组,分别将各IP分片报文与待过滤的会话信息进行匹配。
在一种可能的实现方式中,缓存模块,具体用于:
针对每个IP分片报文,根据IP分片报文包括的三元组,查找用于缓存IP分片报文的存储空间;
若查找到用于缓存IP分片报文的存储空间,则在存储空间中缓存IP分片报文;或者,
若未查找到用于缓存IP分片报文的存储空间,则确定用于缓存IP分片报文的空闲存储空间,并在空闲存储空间中缓存IP分片报文。
在一种可能的实现方式中,填充模块,还用于为各IP分片报文填充分片重入标志,分片重入标志用于表示IP分片报文已被CPU填充处理。
在一种可能的实现方式中,该装置还包括:
更新模块,用于将存储空间的时间戳更新为缓存IP分片报文的时间。
在一种可能的实现方式中,缓存模块,还用于:
每隔预设时间段,判断当前时间戳与存储空间的时间戳的差值是否大于超时阈值;
若当前时间戳与存储空间的时间戳的差值大于超时阈值,则删除存储空间中缓存的IP分片报文。
第四方面,本申请提供一种报文处理的装置,该装置应用于过滤设备中的可编程门阵列FPGA,过滤设备中还包括中央处理器CPU,该装置包括:
接收模块,用于接收多个第一类IP分片报文,多个第一类IP报文承载的数据属于同一原始数据,多个第一类IP报文中的首片IP分片报文包括五元组,除首片IP报文之外的其他IP分片报文包括三元组;
传输模块,用于向CPU传输多个第一类IP分片报文,以使CPU为多个第一类IP分片报文中,除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息;
接收模块,还用于接收CPU传输的多个第二类IP分片报文,每个第二类IP分片报文包括五元组;
匹配模块,用于根据五元组,将多个第二类IP分片报文分别与待过滤的会话信息进行匹配。
在一种可能的实现方式中,该装置还包括:
判断模块,用于判断每个第二类IP分片报文是否包括分片重入标志,分片重入标志用于表示IP分片报文已被CPU填充处理;
匹配模块,还用于若每个第二类IP分片报文包括分片重入标志,则根据五元组,将多个第二类IP分片报文分别与待过滤的会话信息进行匹配。
第五方面,本申请提供一种过滤设备,该过滤设备包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面和第二方面中所述的报文处理的方法。
第六方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中所述的报文处理的方法。
第七方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第二方面中所述的报文处理的方法。
第八方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面中所述的报文处理的方法。
第九方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面中所述的报文处理的方法。
因此,采用本申请提供的报文处理方法,CPU获取并缓存FPGA传输的多个IP分片报文,每个IP分片报文承载的数据为同一原始数据中的部分数据,然后根据五元组,为除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息。然后向FPGA传输首片IP分片报文以及填充后的其他IP分片报文,以使得FPGA根据各IP分片报文包括的五元组,分别将各IP分片报文与待过滤的会话信息进行匹配。
可见,FPGA接收到IP分片报文后,无需对IP分片报文进行缓存,而是向CPU传输IP分片报文,由于CPU本身具有缓存及数据处理能力,所以可以对IP分片报文进行缓存,并为其补齐五元组。而由于FPGA实现内存管理机制较为复杂,所以本申请实施例中FPGA无需对IP分片报文进行缓存,可根据CPU填充处理后的包括五元组的IP分片报文进行会话匹配,并根据会话匹配结果进行后续的会话过滤,简化了FPGA对IP分片报文进行会话过滤的方法。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种过滤设备的结构示意图;
图2为本申请实施例提供的一种报文处理的方法的流程图;
图3为本申请实施例提供的一种IP分片报文的结构的示例性示意图;
图4为本申请实施例提供的另一种IP分片报文的结构的示例性示意图;
图5为本申请实施例提供的另一种报文处理的方法的流程图;
图6为本申请实施例提供的一种报文处理的装置的结构示意图;
图7为本申请实施例提供的另一种报文处理的装置的结构示意图;
图8为本申请实施例提供的一种过滤设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为方便理解,首先对本申请实施例中的过滤设备进行介绍。如图1所示,过滤设备包括CPU和FPGA,CPU和FPGA之间存在数据传输通道。
在一种可能的实施方式中,可以在CPU和FPGA之间设置两条专用通道,分别为分片报文上送通道和分片报文重入通道。
其中,参考图1,FPGA接收到IP分片报文后,可通过分片报文上送通道向CPU传输IP分片报文,CPU获取到IP分片报文后,对IP分片报文进行缓存并处理,然后通过分片报文重入通道向FPGA传输处理后的IP分片报文,由FPGA对处理后的IP分片报文进行会话过滤。
以下结合图1对本申请实施例提供的报文处理的方法进行详细描述。
本申请实施例提供一种报文处理的方法,该方法应用于过滤设备中的CPU,过滤设备中还包括FPGA,如图2所示,该方法包括:
S201、获取并缓存FPGA传输的多个IP分片报文。
其中,当IP报文的长度大于最大传输单元(Maximum Transmission Unit,MTU)时,可将IP报文以分片的形式传输,即传输多个IP分片报文。
可以理解的是,每个IP分片报文承载的数据为同一原始数据中的部分数据,多个IP分片报文中的首片IP分片报文包括五元组,除首片IP分片报文之外的其他IP分片报文包括三元组。
其中,五元组包括源IP地址、目的IP地址、协议号、源端口和目的端口。三元组包括源IP地址、目的IP地址、协议号。
在本申请实施例中,FPGA接收到IP分片报文后,可向CPU传输IP分片报文,进而CPU获取并缓存多个IP分片报文。
作为示例,如图3所示的FPGA传输的IP分片报文格式,IP分片报文中包括上送标识,该上送标识用于表示IP分片报文为FPGA向CPU传输的IP分片报文,CPU若识别到获取的IP分片报文具有上送标识,则对该IP分片报文进行缓存及后续步骤中的处理。
具体地,CPU获取多个IP分片报文后,针对每个IP分片报文,根据IP分片报文包括的三元组,查找用于缓存该IP报文的存储空间。
若查找到用于缓存该IP分片报文的存储空间,则在该存储空间中缓存该IP分片报文。或者,若未查找到用于缓存该IP分片报文的存储空间,则确定用于缓存该IP分片报文的空闲存储空间,并在该空闲存储空间中缓存该IP分片报文。
在本申请实施例中,每个用于缓存IP分片报文的存储空间中包括三元组,可以理解为以三元组为索引在该存储空间中存储具有相同三元组的IP分片报文。进而,在CPU获取到IP分片报文后,根据IP分片报文的三元组查找该三元组对应的存储空间,在该存储空间中缓存IP分片报文。
可选地,索引还包括数据包标识符。相应地,存储空间中也存储了IP分片报文的三元组和数据包标识符。即,以三元组和数据包标识符为索引在该存储空间中存储具有相同三元组和相同数据包标识符的IP分片报文,进而CPU根据IP分片报文的三元组及数据包标识符查找用于缓存该IP分片报文的存储空间。当然本申请实施例不限于此,索引还包括除三元组和数据包标识符之外的,与IP分片报文相关的其他信息。
可以理解的是,每个原始数据对应一个存储空间,该存储空间用于缓存承载同一原始数据中的部分数据的多个IP分片报文。换言之,每个存储空间用于缓存对一个IP报文进行分片后得到的多个IP分片报文。
在一种可能的实现方式中,该存储空间可以为单链表的形式,单链表中的数据以结点来表示,每个结点包括元素和指针,元素为存储数据的数据单元,指针是连接每个结点的地址数据。其中,单链表的头结点中包括三元组和数据包标识符。当CPU接收到IP分片报文时,可将IP分片报文中的三元组和数据包标识符与各单链表的头结节点中的三元组和数据包标识符进行匹配,若查找到匹配的单链表,则将该IP分片报文存储至该单链表中除头结点之外的一个结点中。若未查找到匹配的单链表,则创建用于缓存该IP分片报文的单链表,并在创建的单链表中除头结点之外的一个结点中缓存该IP分片报文。
S202、根据五元组,为除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息。
具体地,由于首片IP分片报文中包括完整的五元组,而除首片IP分片报文之外的其他IP分片报文中只包括源IP地址、目的IP地址、协议号组成的三元组,而未包括源端口和目的端口,所以CPU可根据五元组,为上述其他IP分片报文补充源端口和目的端口,以使得其他IP分片报文具有完整的五元组。
可选地,在CPU获取并缓存FPGA传输的多个IP分片报文后,还可以为各IP分片报文填充分片重入标志。其中,分片重入标志用于表示IP分片报文已经过CPU填充处理,即CPU已经为IP分片报文补齐完整的五元组。
作为一个例子,CPU处理后的IP分片报文的格式如图4所示,其中包括分片重入标志、源IP地址、目的IP地址、协议号、IP版本、源端口、目的端口以及数据部分。
其中,本申请实施例中的IP地址可以为IPv4地址或IPv6地址。
S203、向FPGA传输首片IP分片报文及填充后的其他IP分片报文,以使得FPGA根据各IP分片报文包括的五元组,分别将各IP分片报文与待过滤的会话信息进行匹配。
其中,待过滤的会话信息为需要被过滤的会话的会话信息,即若FPGA确定IP分片报文与待过滤的会话信息不匹配,则允许该IP分片报文继续传输;若IP分片报文与待过滤的会话信息匹配,则禁止该IP分片报文继续传输,可删除该IP分片报文。
采用本申请实施例提供的报文处理方法,CPU获取并缓存FPGA传输的多个IP分片报文,每个IP分片报文承载的数据为同一原始数据中的部分数据,然后根据五元组,为除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息。然后向FPGA传输首片IP分片报文以及填充后的其他IP分片报文,以使得FPGA根据各IP分片报文包括的五元组,分别将各IP分片报文与待过滤的会话信息进行匹配。
可见,本申请实施例中FPGA接收到IP分片报文后,无需对IP分片报文进行缓存,而是向CPU传输IP分片报文,由于CPU本身具有缓存及数据处理能力,所以可以对IP分片报文进行缓存,并为其补齐五元组。而由于FPGA实现内存管理机制较为复杂,所以本申请实施例中FPGA无需对IP分片报文进行缓存,可根据CPU填充处理后的包括五元组的IP分片报文进行会话匹配,并根据会话匹配结果进行后续的会话过滤,简化了FPGA对IP分片报文进行会话过滤的方法。
在一种实施方式中,CPU可对缓存的IP分片报文进行缓存超时处理,在存储空间中缓存IP分片报文后,CPU将存储空间的时间戳更新为缓存该IP分片报文的时间。
需要说明的是,每个存储空间可分别维护一个时间戳,该时间戳用于表示最近一次缓存IP分片报文的时间。例如,若CPU在11:00:00接收到IP分片报文A,且在存储空间1中缓存IP分片报文A,则将存储空间1的时间戳更新为11:00:00,后续若在11:00:30接收到IP分片报文B,且在存储空间2中缓存IP分片报文B,则将存储空间B的时间戳更新为11:00:30。
在此基础上,CPU可以每隔预设时间段,判断当前时间戳与存储空间的时间戳的差值是否大于超时阈值,若当前时间戳与存储空间的时间戳的差值大于超时阈值,则删除存储空间中缓存的IP分片报文。
其中,该方法可通过CPU的定时器超时机制实现,例如可设置定时器的中断时间为1分钟,即每分钟定时器中断1次,每次定时器中断时,CPU分别扫描各存储空间,对于每个存储空间,若当前时间戳与存储空间的时间戳的差值大于超时阈值,则删除存储空间中缓存的IP分片报文。
采用本申请实施例,由于CPU可通过自身的超时机制实现IP分片报文的缓存超时机制,所以无需为FPGA设置缓存超时机制,可以简化FPGA的处理过程。
对应于上述实施例,本申请实施例还提供一种报文处理的方法,该方法应用于过滤设备中的FPGA,过滤设备中还包括CPU,如图5所示,该方法包括:
S501、接收多个第一类IP分片报文。
其中,多个第一类IP报文承载的数据属于同一原始数据,多个第一类IP报文中的首片IP分片报文包括五元组,除首片IP报文之外的其他IP分片报文包括三元组。
FPGA可接收路由器等业务数据传输设备发送的第一类IP分片报文。
S502、向CPU传输多个第一类IP分片报文,以使CPU为多个第一类IP分片报文中,除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息。
可选地,FPGA每接收到第一类IP分片报文,为第一类IP分片报文填充上送标识,然后向CPU传输包含上送标识的第一类IP分片报文。上送标识用于表示IP分片报文为FPGA向CPU传输的IP分片报文。
S503、接收CPU传输的多个第二类IP分片报文,每个第二类IP分片报文包括五元组。
S504、根据所述五元组,将多个第二类IP分片报文分别与待过滤的会话信息进行匹配。
其中,FPGA在进行会话匹配之前,可判断每个第二类IP分片报文是否包括分片重入标志,分片重入标志用于表示IP分片报文已被CPU填充处理。
若每个第二类IP分片报文包括分片重入标志,则根据五元组,将多个第二类IP分片报文分别与待过滤的会话信息进行匹配,然后根据匹配结果确定是否过滤第二类IP分片报文。
具体地,FPGA可将每个第二类IP分片报文中包括的五元组与审计服务器发送的待过滤的会话信息进行匹配,若第二类IP分片报文的五元组与待过滤的会话信息匹配成功,则禁止该IP分片报文继续传输,若IP分片报文的五元组与待过滤的会话信息匹配失败,则允许该IP分片报文继续传输。
采用本申请实施例提供的报文处理的方法,FPGA接收多个第一类IP分片报文,并向CPU传输多个第一类IP分片报文,以使CPU为多个第一类IP分片报文中,除首片IP分片报文之外的其他IP分片报文填充包含于五元组未包含于三元组的信息。然后接收CPU传输的多个第二类IP分片报文,每个第二类IP分片报文包括五元组,进而根据所述五元组,将多个第二类IP分片报文分别与待过滤的会话信息进行匹配。可见,本申请实施例中无需为FPGA设置缓存机制,FPGA可向CPU传输第一类IP分片报文,由CPU为IP分片报文补齐五元组,以使得FPGA能够根据五元组对包括五元组的第二类IP分片报文进行会话匹配,以实现后续的会话过滤,简化了FPGA对IP分片报文进行会话过滤的方法。
对应于上述方法实施例,本申请实施例还提供一种报文处理的装置,该装置应用于过滤设备中的中央处理器CPU,过滤设备中还包括FPGA,如图6所示,该装置包括:获取模块601、缓存模块602、填充模块603和传输模块604。
获取模块601,用于获取FPGA传输的多个互联网协议IP分片报文,每个IP分片报文承载的数据为同一原始数据中的部分数据,多个IP分片报文中的首片IP分片报文包括五元组,除首片IP分片报文之外的其他IP分片报文包括三元组;
缓存模块602,用于缓存获取模块获取的FPGA传输的多个互联网协议IP分片报文;
填充模块603,用于根据五元组,为除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息;
传输模块604,用于向FPGA传输首片IP分片报文以及填充后的其他IP分片报文,以使得FPGA根据各IP分片报文包括的五元组,分别将各IP分片报文与待过滤的会话信息进行匹配。
可选地,缓存模块602,具体用于:
针对每个IP分片报文,根据IP分片报文包括的三元组,查找用于缓存IP分片报文的存储空间;
若查找到用于缓存IP分片报文的存储空间,则在存储空间中缓存IP分片报文;或者,
若未查找到用于缓存IP分片报文的存储空间,则确定用于缓存IP分片报文的空闲存储空间,并在空闲存储空间中缓存IP分片报文。
可选地,填充模块603,还用于为各IP分片报文填充分片重入标志,分片重入标志用于表示IP分片报文已被CPU填充处理。
可选地,该装置还包括:
更新模块,用于将存储空间的时间戳更新为缓存IP分片报文的时间。
可选地,缓存模块602,还用于:
每隔预设时间段,判断当前时间戳与存储空间的时间戳的差值是否大于超时阈值;
若当前时间戳与存储空间的时间戳的差值大于超时阈值,则删除存储空间中缓存的IP分片报文。
对应于上述方法实施例,本申请实施例还提供另一种报文处理的装置,该装置应用于过滤设备中的可编程门阵列FPGA,过滤设备中还包括中央处理器CPU,如图7所示,该装置包括:接收模块701、传输模块702和匹配模块703。
接收模块701,用于接收多个第一类IP分片报文,多个第一类IP报文承载的数据属于同一原始数据,多个第一类IP报文中的首片IP分片报文包括五元组,除首片IP报文之外的其他IP分片报文包括三元组;
传输模块702,用于向CPU传输多个第一类IP分片报文,以使CPU为多个第一类IP分片报文中,除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息;
接收模块701,还用于接收CPU传输的多个第二类IP分片报文,每个第二类IP分片报文包括五元组;
匹配模块703,用于根据五元组,将多个第二类IP分片报文分别与待过滤的会话信息进行匹配。
可选地,该装置还包括:判断模块。
判断模块,用于判断每个第二类IP分片报文是否包括分片重入标志,分片重入标志用于表示IP分片报文已被CPU填充处理;
匹配模块703,还用于若每个第二类IP分片报文包括分片重入标志,则根据五元组,将多个第二类IP分片报文分别与待过滤的会话信息进行匹配。
本申请实施例还提供了一种过滤设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现上述方法实施例中由CPU执行的步骤,还用于实现上述方法实施例中由FPGA执行的步骤。
上述过滤设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述过滤设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一报文处理方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一报文处理的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (14)
1.一种报文处理的方法,其特征在于,所述方法应用于过滤设备中的中央处理器CPU,所述过滤设备中还包括现场可编程门阵列FPGA,所述方法包括:
获取并缓存所述FPGA传输的多个互联网协议IP分片报文,每个IP分片报文承载的数据为同一原始数据中的部分数据,所述多个IP分片报文中的首片IP分片报文包括五元组,除所述首片IP分片报文之外的其他IP分片报文包括三元组;
根据所述五元组,为除所述首片IP分片报文之外的其他IP分片报文填充包含于所述五元组且未包含于所述三元组的信息;
向所述FPGA传输所述首片IP分片报文以及填充后的其他IP分片报文,以使得所述FPGA根据各IP分片报文包括的五元组,分别将各IP分片报文与待过滤的会话信息进行匹配。
2.根据权利要求1所述的方法,其特征在于,所述缓存所述FPGA传输的多个IP分片报文,包括:
针对每个IP分片报文,根据IP分片报文包括的三元组,查找用于缓存所述IP分片报文的存储空间;
若查找到用于缓存所述IP分片报文的存储空间,则在所述存储空间中缓存所述IP分片报文;或者,
若未查找到用于缓存所述IP分片报文的存储空间,则确定用于缓存所述IP分片报文的空闲存储空间,并在所述空闲存储空间中缓存所述IP分片报文。
3.根据权利要求1或2所述的方法,其特征在于,所述获取并缓存所述FPGA传输的多个互联网协议IP分片报文之后,所述方法还包括:
为各IP分片报文填充分片重入标志,所述分片重入标志用于表示IP分片报文已被所述CPU填充处理。
4.根据权利要求2所述的方法,其特征在于,所述在所述存储空间中缓存所述IP分片报文之后,所述方法还包括:
将所述存储空间的时间戳更新为缓存所述IP分片报文的时间。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
每隔预设时间段,判断当前时间戳与所述存储空间的时间戳的差值是否大于超时阈值;
若所述当前时间戳与所述存储空间的时间戳的差值大于所述超时阈值,则删除所述存储空间中缓存的IP分片报文。
6.一种报文处理的方法,其特征在于,所述方法应用于过滤设备中的可编程门阵列FPGA,所述过滤设备中还包括中央处理器CPU,所述方法包括:
接收多个第一类IP分片报文,所述多个第一类IP报文承载的数据属于同一原始数据,所述多个第一类IP报文中的首片IP分片报文包括五元组,除所述首片IP报文之外的其他IP分片报文包括三元组;
向所述CPU传输所述多个第一类IP分片报文,以使所述CPU为所述多个第一类IP分片报文中,除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息;
接收所述CPU传输的多个第二类IP分片报文,每个第二类IP分片报文包括五元组;
根据所述五元组,将所述多个第二类IP分片报文分别与待过滤的会话信息进行匹配。
7.根据权利要求6所述的方法,其特征在于,所述根据所述五元组,将所述多个第二类IP分片报文分别与待过滤的会话信息进行匹配之前,所述方法还包括:
判断所述每个第二类IP分片报文是否包括分片重入标志,所述分片重入标志用于表示IP分片报文已被所述CPU填充处理;
若所述每个第二类IP分片报文包括所述分片重入标志,则根据所述五元组,将所述多个第二类IP分片报文分别与所述待过滤的会话信息进行匹配。
8.一种报文处理的装置,其特征在于,所述装置应用于过滤设备中的中央处理器CPU,所述过滤设备中还包括现场可编程门阵列FPGA,所述装置包括:
获取模块,用于获取所述FPGA传输的多个互联网协议IP分片报文,每个IP分片报文承载的数据为同一原始数据中的部分数据,所述多个IP分片报文中的首片IP分片报文包括五元组,除所述首片IP分片报文之外的其他IP分片报文包括三元组;
缓存模块,用于缓存所述获取模块获取的所述FPGA传输的多个互联网协议IP分片报文;
填充模块,用于根据所述五元组,为除所述首片IP分片报文之外的其他IP分片报文填充包含于所述五元组且未包含于所述三元组的信息;
传输模块,用于向所述FPGA传输所述首片IP分片报文以及填充后的其他IP分片报文,以使得所述FPGA根据各IP分片报文包括的五元组,分别将各IP分片报文与待过滤的会话信息进行匹配。
9.根据权利要求8所述的装置,其特征在于,所述缓存模块,具体用于:
针对每个IP分片报文,根据IP分片报文包括的三元组,查找用于缓存所述IP分片报文的存储空间;
若查找到用于缓存所述IP分片报文的存储空间,则在所述存储空间中缓存所述IP分片报文;或者,
若未查找到用于缓存所述IP分片报文的存储空间,则确定用于缓存所述IP分片报文的空闲存储空间,并在所述空闲存储空间中缓存所述IP分片报文。
10.根据权利要求8或9所述的装置,其特征在于,
所述填充模块,还用于为各IP分片报文填充分片重入标志,所述分片重入标志用于表示IP分片报文已被所述CPU填充处理。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
更新模块,用于将所述存储空间的时间戳更新为缓存所述IP分片报文的时间。
12.根据权利要求11所述的装置,其特征在于,所述缓存模块,还用于:
每隔预设时间段,判断当前时间戳与所述存储空间的时间戳的差值是否大于超时阈值;
若所述当前时间戳与所述存储空间的时间戳的差值大于所述超时阈值,则删除所述存储空间中缓存的IP分片报文。
13.一种报文处理的装置,其特征在于,所述装置应用于过滤设备中的可编程门阵列FPGA,所述过滤设备中还包括中央处理器CPU,所述装置包括:
接收模块,用于接收多个第一类IP分片报文,所述多个第一类IP报文承载的数据属于同一原始数据,所述多个第一类IP报文中的首片IP分片报文包括五元组,除所述首片IP报文之外的其他IP分片报文包括三元组;
传输模块,用于向所述CPU传输所述多个第一类IP分片报文,以使所述CPU为所述多个第一类IP分片报文中,除首片IP分片报文之外的其他IP分片报文填充包含于五元组且未包含于三元组的信息;
所述接收模块,还用于接收所述CPU传输的多个第二类IP分片报文,每个第二类IP分片报文包括五元组;
匹配模块,用于根据所述五元组,将所述多个第二类IP分片报文分别与待过滤的会话信息进行匹配。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
判断模块,用于判断所述每个第二类IP分片报文是否包括分片重入标志,所述分片重入标志用于表示IP分片报文已被所述CPU填充处理;
所述匹配模块,还用于若所述每个第二类IP分片报文包括所述分片重入标志,则根据所述五元组,将所述多个第二类IP分片报文分别与所述待过滤的会话信息进行匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910464443.9A CN110198315B (zh) | 2019-05-30 | 2019-05-30 | 一种报文处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910464443.9A CN110198315B (zh) | 2019-05-30 | 2019-05-30 | 一种报文处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110198315A true CN110198315A (zh) | 2019-09-03 |
CN110198315B CN110198315B (zh) | 2022-02-25 |
Family
ID=67753528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910464443.9A Active CN110198315B (zh) | 2019-05-30 | 2019-05-30 | 一种报文处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110198315B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112383418A (zh) * | 2020-11-02 | 2021-02-19 | 北京左江科技股份有限公司 | 一种基于fpga的以太网报文高速可靠传输的设计方法 |
CN112953841A (zh) * | 2021-02-20 | 2021-06-11 | 杭州迪普信息技术有限公司 | 报文分流方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018206A (zh) * | 2007-02-14 | 2007-08-15 | 华为技术有限公司 | 分片报文处理方法与装置 |
US20100150148A1 (en) * | 2003-07-30 | 2010-06-17 | Foundry Networks, Inc. | Method and system for IP fragmentation handling |
CN102377640A (zh) * | 2010-08-11 | 2012-03-14 | 杭州华三通信技术有限公司 | 一种报文处理装置和报文处理方法、及预处理器 |
CN104579948A (zh) * | 2013-10-29 | 2015-04-29 | 国家计算机网络与信息安全管理中心 | 一种报文分片处理方法及装置 |
CN109510785A (zh) * | 2018-12-27 | 2019-03-22 | 杭州迪普科技股份有限公司 | 一种镜像报文的方法和装置 |
-
2019
- 2019-05-30 CN CN201910464443.9A patent/CN110198315B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100150148A1 (en) * | 2003-07-30 | 2010-06-17 | Foundry Networks, Inc. | Method and system for IP fragmentation handling |
CN101018206A (zh) * | 2007-02-14 | 2007-08-15 | 华为技术有限公司 | 分片报文处理方法与装置 |
CN102377640A (zh) * | 2010-08-11 | 2012-03-14 | 杭州华三通信技术有限公司 | 一种报文处理装置和报文处理方法、及预处理器 |
CN104579948A (zh) * | 2013-10-29 | 2015-04-29 | 国家计算机网络与信息安全管理中心 | 一种报文分片处理方法及装置 |
CN109510785A (zh) * | 2018-12-27 | 2019-03-22 | 杭州迪普科技股份有限公司 | 一种镜像报文的方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112383418A (zh) * | 2020-11-02 | 2021-02-19 | 北京左江科技股份有限公司 | 一种基于fpga的以太网报文高速可靠传输的设计方法 |
CN112953841A (zh) * | 2021-02-20 | 2021-06-11 | 杭州迪普信息技术有限公司 | 报文分流方法及系统 |
CN112953841B (zh) * | 2021-02-20 | 2022-05-27 | 杭州迪普信息技术有限公司 | 报文分流方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110198315B (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11855967B2 (en) | Method for identifying application information in network traffic, and apparatus | |
KR100997182B1 (ko) | 플로우 정보 제한장치 및 방법 | |
CN1937541B (zh) | 一种网络性能测试方法 | |
Afanasyev et al. | ndnSIM: NDN simulator for NS-3 | |
JP2018531527A6 (ja) | ネットワークトラフィックにおけるアプリケーション情報を識別するための方法および装置 | |
CN108881158A (zh) | 数据交互系统和方法 | |
CN106789625A (zh) | 一种环路检测方法及装置 | |
CN110519265A (zh) | 一种防御攻击的方法及装置 | |
CN108418780A (zh) | Ip地址的过滤方法及装置、系统、dns服务器 | |
CN106789425A (zh) | 一种确定重复报文的方法及装置 | |
CN110198315A (zh) | 一种报文处理的方法及装置 | |
US9055113B2 (en) | Method and system for monitoring flows in network traffic | |
EP3226516A1 (en) | Unified data networking across heterogeneous networks | |
CN109756401A (zh) | 一种测试方法、装置、电子设备及存储介质 | |
CN105847460A (zh) | 一种实现双向转发检测的方法及设备 | |
CN107547523A (zh) | 报文处理方法、装置、网络设备及机器可读存储介质 | |
KR102397346B1 (ko) | 데이터 트래픽을 모니터링하기 위한 방법, 장치 및 시스템 | |
CN108460044B (zh) | 数据的处理方法和装置 | |
CN115242892B (zh) | 一种流标识获取方法、装置、设备及介质 | |
CN111064729A (zh) | 报文的处理方法及装置、存储介质和电子装置 | |
CN108833282A (zh) | 数据转发方法、系统、装置及sdn交换机 | |
CN101854342A (zh) | 应用程序识别系统、装置以及识别网络应用程序的方法 | |
JP2008085886A (ja) | パケット処理装置、パケット処理方法及びパケット処理プログラム | |
CN109743232A (zh) | 一种接口探测方法及装置 | |
CN109802965A (zh) | 一种自定义ips特征文件导入方法及装置 |
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 |