CN109802872B - 一种报文捕获方法、装置及设备 - Google Patents
一种报文捕获方法、装置及设备 Download PDFInfo
- Publication number
- CN109802872B CN109802872B CN201910208556.2A CN201910208556A CN109802872B CN 109802872 B CN109802872 B CN 109802872B CN 201910208556 A CN201910208556 A CN 201910208556A CN 109802872 B CN109802872 B CN 109802872B
- Authority
- CN
- China
- Prior art keywords
- matching
- processor
- conditions
- final
- network
- 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
Links
Images
Abstract
本申请实施例公开了一种报文捕获方法、装置及设备,由于第一处理器可以进行高速率匹配,则由第一处理器独立执行针对每个匹配条件的匹配结果,无需考虑匹配条件之间的复杂逻辑,只需获取每个匹配条件的匹配结果,然后在匹配线性表进行查找以获得该网络报文的最终匹配结果。由于第二处理器适用于计算复杂逻辑,因此由第二处理器考虑匹配条件之间的复杂逻辑,获得每种匹配组合对应的最终结果,并生成匹配线性表,从而使得第一处理器和第二处理器充分发挥各自优势,实现报文捕获的高速性和准确性。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种报文捕获方法、装置及设备。
背景技术
报文捕获是指网络设备对接收到的网络报文按照一定的匹配条件进行过滤、保存,以便后续进行网络流量分析等用途。而现有的报文捕获方法可以分为两类,一种捕获方法可以实现利用复杂匹配条件对接收报文进行精确捕获,但此方法仅适用于较低的网络速率下,无法匹配较高的网络速率。而另一种捕获方法可以匹配较高的网络速率报文,保证报文捕获的高速性,但此方法无法利用复杂匹配条件对接收报文进行准确匹配。
然而,随着通信网络的不断发展,网络速率越高且报文的类型也越来越多,为捕获更多类型的报文,就需要复杂的匹配条件,而上述两种方法均不适用于现有的通信网络,影响报文的精确捕获。
发明内容
有鉴于此,本申请实施例提供一种报文捕获方法、装置及设备,以实现利用复杂匹配条件精确捕获报文。
为解决上述问题,本申请实施例提供的技术方案如下:
在本申请实施例第一方面,提供了一种报文捕获方法,所述方法应用于网络设备,所述网络设备包括第一处理器和第二处理器,所述第一处理器通过硬件实现,所述第二处理器通过软件实现,所述方法包括:
所述第一处理器接收网络报文;
确定所述网络报文对于第i个匹配条件所对应的匹配结果;其中,i分别取值为1至n的整数,n为匹配条件个数;
根据所述网络报文针对所有匹配条件分别对应的匹配结果,在匹配线性表中进行查找,获得最终匹配结果;所述匹配线性表由第二处理器生成;所述第二处理器根据所有匹配条件之间的逻辑组合所对应的匹配结果生成所述匹配线性表;
当所述最终匹配结果满足预设条件时,保存所述网络报文。
在一种可能的实现方式中,所述根据所述网络报文针对所有匹配条件分别对应的匹配结果,在匹配线性表中进行查找,获得最终匹配结果,包括:
根据所述网络报文针对所有匹配条件分别对应的匹配结果,生成索引集合,所述索引集合包括每个匹配条件对应的匹配结果;
根据所述索引集合,在所述匹配线性表中进行查找,获得所述最终匹配结果。
在一种可能的实现方式中,所述网络报文对于第i个匹配条件所对应的匹配结果为一位二进制,当所述匹配结果为1时表示所述网络报文匹配,当所述匹配结果为0时表示所述网络报文不匹配。
在一种可能的实现方式中,所述所有匹配条件之间的逻辑组合为所有匹配条件之间与、或、非的一种或多种组合。
在本申请实施例第二方面,提供了一种报文捕获方法,所述方法应用于网络设备,所述网络设备包括第一处理器和第二处理器,所述第一处理器通过硬件实现,所述第二处理器通过软件实现,所述方法包括:
第二处理器获取每个匹配条件所对应的所有匹配结果,并对所有匹配条件的匹配结果进行组合,以获得不同匹配组合;所述匹配组合包括每个匹配条件所对应的一个匹配结果;
根据所有匹配条件之间的逻辑组合确定每个所述匹配组合所对应的最终结果,并生成匹配线性表;
将所述匹配线性表发送给第一处理器,以使得所述第一处理器在接收到网络报文时,确定所述网络报文对于第i个匹配条件所对应的匹配结果;其中,i分别取值为1至n的整数,n为匹配条件个数;根据所述网络报文针对所有匹配条件分别对应的匹配结果,在所述匹配线性表中进行查找,获得最终匹配结果;当所述最终匹配结果满足预设条件时,保存所述网络报文。
在本申请实施例第三方面,提供了一种报文捕获装置,所述报文捕获装置位于网络设备,所述网络设备包括第一处理器和第二处理器,所述第一处理器通过硬件实现,所述第二处理器通过软件实现,所述装置包括:
接收单元,用于接收网络报文;
确定单元,用于确定所述网络报文对于第i个匹配条件所对应的匹配结果;其中,i分别取值为1至n的整数,n为匹配条件个数;
查找单元,用于根据所述网络报文针对所有匹配条件分别对应的匹配结果,在匹配线性表中进行查找,获得最终匹配结果;所述匹配线性表由第二处理器生成;所述第二处理器根据所有匹配条件之间的逻辑组合所对应的匹配结果生成所述匹配线性表;
保存单元,用于当所述最终匹配结果满足预设条件时,保存所述网络报文。
在一种可能的实现方式中,所述查找单元,包括:
生成子单元,用于根据所述网络报文针对所有匹配条件分别对应的匹配结果,生成索引集合,所述索引集合包括每个匹配条件对应的匹配结果;
查找子单元,用于根据所述索引集合,在所述匹配线性表中进行查找,获得所述最终匹配结果。
在一种可能的实现方式中,所述网络报文对于第i个匹配条件所对应的匹配结果为一位二进制,当所述匹配结果为1时表示所述网络报文匹配,当所述匹配结果为0时表示所述网络报文不匹配。
在一种可能的实现方式中,所述所有匹配条件之间的逻辑组合为所有匹配条件之间与、或、非的组合。
在本申请实施例第四方面,提供了一种报文捕获装置,所述装置应用于网络设备,所述网络设备包括第一处理器和第二处理器,所述第一处理器通过硬件实现,所述第二处理器通过软件实现,所述装置包括:
组合单元,用于获取每个匹配条件所对应的所有匹配结果,并对所有匹配条件的匹配结果进行组合,以获得不同匹配组合;所述匹配组合包括每个匹配条件所对应的一个匹配结果;
生成单元,用于根据所有匹配条件之间的逻辑组合确定每个所述匹配组合所对应的最终结果,并生成匹配线性表;
发送单元,用于将所述匹配线性表发送给第一处理器,以使得所述第一处理器在接收到网络报文时,确定所述网络报文对于第i个匹配条件所对应的匹配结果;其中,i分别取值为1至n的整数,n为匹配条件个数;根据所述网络报文针对所有匹配条件分别对应的匹配结果,在所述匹配线性表中进行查找,获得最终匹配结果;当所述最终匹配结果满足预设条件时,保存所述网络报文。
在本申请实施例第五方面,提供了一种网络设备,所述网络设备包括:第一处理器和第二处理器;所述第一处理器通过硬件实现,所述第二处理器通过软件实现;
所述第一处理器,用于所述第一处理器接收网络报文;确定所述网络报文对于第i个匹配条件所对应的匹配结果;其中,i分别取值为1至n的整数,n为匹配条件个数;根据所述网络报文针对所有匹配条件分别对应的匹配结果,在匹配线性表中进行查找,获得最终匹配结果;所述匹配线性表由第二处理器生成;所述第二处理器根据所有匹配条件之间的逻辑组合所对应的匹配结果生成所述匹配线性表;当所述最终匹配结果满足预设条件时,保存所述网络报文;
所述第二处理器,用于获取每个匹配条件所对应的所有匹配结果,并对所有匹配条件的匹配结果进行组合,以获得不同匹配组合;所述匹配组合包括每个匹配条件所对应的一个匹配结果;根据所有匹配条件之间的逻辑组合确定每个所述匹配组合所对应的最终结果,并生成匹配线性表;将所述匹配线性表发送给第一处理器,以使得所述第一处理器在接收到网络报文时,确定所述网络报文对于第i个匹配条件所对应的匹配结果;其中,i分别取值为1至n的整数,n为匹配条件个数;根据所述网络报文针对所有匹配条件分别对应的匹配结果,在所述匹配线性表中进行查找,获得最终匹配结果;当所述最终匹配结果满足预设条件时,保存所述网络报文。
由此可见,本申请实施例具有如下有益效果:
本申请实施例首先由第二处理器获取每个匹配条件可能对应的所有匹配结果,并将所有匹配条件对应的可能的匹配结果进行组合,以获得多个不同匹配组合。再根据不同匹配条件之间的逻辑组合,确定每个匹配组合对应的最终结果,然后生成匹配线性表发送给第一处理器。当第一处理器接收到网络报文时,确定该网络报文对于每个匹配条件对应的匹配结果,然后利用所有匹配条件分别对应的匹配结果在匹配线性表中进行查找,以获得该报文对应的最终匹配结果。当最终匹配结果满足预设条件时,将该网络报文进行保存,以便进行后续分析。
可见,通过本申请实施例提供的方法,由于第一处理器可以进行高速率匹配,则由第一处理器独立执行针对每个匹配条件的匹配结果,无需考虑匹配条件之间的复杂逻辑,只需获取每个匹配条件的匹配结果,然后在匹配线性表进行查找以获得该网络报文的最终匹配结果。由于第二处理器适用于计算复杂逻辑,因此由第二处理器考虑匹配条件之间的复杂逻辑,获得每种匹配组合对应的最终结果,并生成匹配线性表,从而使得第一处理器和第二处理器充分发挥各自优势,实现报文捕获的高速性和准确性。
附图说明
图1为本申请实施例提供的一种报文捕获方法的流程图;
图2为本申请实施例提供的另一种报文捕获方法的流程图;
图3为本申请实施例提供的一种报文捕获方法框架图;
图4为本申请实施例提供的一种报文捕获装置结构图;
图5为本申请实施例提供的另一种报文捕获装置结构图;
图6为本申请实施例提供的一种网络设备结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
为便于理解本申请提供的方案,下面将先对本申请的背景技术进行说明。
发明人在对传统的报文捕获方法研究中发现,传统的报文捕获方法通常采用两种方式实现,一种是利用报文捕获软件进行报文捕获,该方法实现简单,只需在相应操作系统上安装对应软件即可,而且可以实现比较复杂的匹配条件,对接收的报文进行精确捕获。但这种方法只能在较低的网络速率下应用,无法匹配越来越高的网络速率。另一种是采用硬件芯片,例如现场可编程门阵列(Field-Programmable Gate Array,FPGA),实现报文捕获。这种方法可以匹配越来越高的网络速率,保证报文捕获的高速性,但无法对复杂的匹配条件进行准确匹配,影响报文捕获的精确性。
基于此,本申请提供了一种报文捕获方法,将软件的精确性和硬件的高速性进行结合。首先,由第二处理器考虑匹配条件之间的复杂逻辑,获得每种匹配组合对应的最终结果,并生成匹配线性表,将该匹配线性表下发给第二处理器。当第一处理器接收到网络报文时,由第一处理器独立执行针对每个匹配条件的匹配结果,无需考虑匹配条件之间的复杂逻辑,只需获取每个匹配条件的匹配结果,然后在匹配线性表进行查找以获得该网络报文的最终匹配结果,从而使得第一处理器和第二处理器充分发挥各自优势,实现报文捕获的高速性和准确性。
为便于理解本申请提供的技术方案,下面将结合附图对本申请提供的报文捕获方法进行说明。
参见图1,该图为本申请实施例提供的一种报文捕获方法流程图,如图1所示,所述方法应用于网络设备,所述网络设备包括第一处理器和第二处理器,所述第一处理器通过硬件实现,所述第二处理器通过软件实现,该方法可以包括:
S101:第一处理器接收网络报文。
本实施例中,由于第一处理器通过硬件实现,具有报文捕获的高速性,因此,由第一处理器接收网络报文,以便利用接收的网络报文进行匹配。
S102:确定网络报文对于第i个匹配条件所对应的匹配结果;其中,i分别取值为1至n的整数,n为匹配条件个数。
本实施例中,当第一处理器接收到网络报文后,需要针对每个匹配条件均进行匹配,以获得每个匹配条件对应的匹配结果。当存在n个匹配条件时,该网络报文可以得到n个匹配条件分别对应的匹配结果。
其中,每个匹配条件可以包括偏移量、匹配内容、匹配关系、掩码、源地址、目的地址、协议类型等其中的一种或多种。例如,第一个匹配条件为偏移量为0,匹配内容为48bit-hfffdffefffff,掩码为48bit-hffffffffffff,其中,h标识十六进制。具体含义为,网络报文的第一子字段开始,向后的48bit的报文内容为fffdffefffff,且该网络报文的掩码为48bit且掩码为ffffffffffff。第二个匹配条件为偏移量为8,匹配内容为48bit-hfffdffeffefc,掩码48bit-hffffffffffff。具体含义为,从网络的第8个字段开始,向后的48bit的报文内容为fffdffeffefc,且该网络报文的掩码为48bit且掩码为ffffffffffff。
在具体实现时,第一处理器针对接收到的网络报文对每个匹配条件均单独进行匹配,获得该匹配条件的匹配结果。在实际应用时,每个匹配条件对应的匹配结果可以用一位二进制表示。具体为,网络报文对于第i个匹配条件所对应的匹配结果为一位二进制,当匹配结果为1时表示网络报文匹配,匹配结果为0时表示所述网络报文不匹配。
可以理解的是,当每个匹配条件的匹配结果用一位二进制表示时,当存在n个匹配条件时,可以获得n位二进制数。例如,共存在5个匹配条件,第一个匹配条件的匹配结果为1,第二个匹配条件的匹配结果为1,第三个匹配条件的匹配结果为0,第四个匹配条件的匹配结果为1,第五个匹配条件的匹配结果为0,从而第一处理器针对所有匹配条件分别对应的匹配结果为11010。
S103:根据网络报文针对所有匹配条件分别对应的匹配结果,在匹配线性表中进行查找,获得最终匹配结果。
本实施例中,当第一处理器确定出网络报文针对每个匹配条件对应的匹配结果后,根据所有匹配条件分别对应的匹配结果,在匹配线性表中进行查找,以获得该网络报文对应的最终匹配结果。其中,匹配线性表由第二处理器生成;第二处理器是根据所有匹配条件之间的逻辑组合所对应的匹配结果生成所述匹配线性表。在实际应用时,所有匹配条件之间的逻辑组合为所有匹配条件之间与、或、非的组合。例如,第一个匹配条件的匹配结果与第二个匹配条件的匹配结果为进行与运算,两个匹配条件对应的与结果再与第三个匹配条件进行或运算。其中,关于匹配线性表的生成将在后续实施例进行说明。
在具体实现时,将网络报文针对所有匹配条件分别对应的匹配结果,生成索引集合,该索引集合中包括每个匹配条件对应的匹配结果;然后,根据索引集合在匹配线性表中进行查找,获得最终匹配结果。其中,匹配线性表中包括所有匹配条件对应的不同匹配结果的组合,以及该组合对应的最终匹配结果。
也就是,将网络报文针对每个匹配条件的匹配结果按顺序进行组合,生成该网络报文针对所有匹配条件的索引集合,利用该索引集合在匹配线性表中查找与该索引集合对应的组合,并将该组合对应的最终匹配结果作为该索引集合的最终匹配结果。例如,存在5个匹配条件,每个匹配条件对应的匹配结果用一位二进制表示,则共存在25个组合,则匹配线性表中共包括32个组合,每个组合对应一个最终匹配结果。当某网络报文的针对5个匹配条件生成的索引集合为11010,则通过查找匹配线性表查找到11010对应的最终匹配结果,并将该最终匹配结果作为该网络报文的最终匹配结果。
S104:当最终匹配结果满足预设条件时,保存网络报文。
本实施例中,当第一处理器通过查找匹配线性表获得最终匹配结果后,判断该最终匹配结果是否满足预设条件,如果是,则保存该网络报文,否则丢弃该网络报文。
在具体实现时,当每个匹配条件的匹配结果用一位二进制数表示时,该最终匹配结果也可以用一位二进制数表示。当最终匹配结果为1时,表示该网络报文满足匹配条件,则保存在报文,当最终匹配结果为0时,表示该网络报文不满足匹配条件,则丢弃报文,从而实现报文的高效和准确捕获。
通过本实施例提供的方法,由于第一处理器可以进行高速率匹配,则由第一处理器独立执行针对每个匹配条件的匹配结果,无需考虑匹配条件之间的复杂逻辑,只需获取每个匹配条件的匹配结果,然后在匹配线性表进行查找以获得该网络报文的最终匹配结果。由于第二处理器适用于计算复杂逻辑,因此由第二处理器考虑匹配条件之间的复杂逻辑,获得每种匹配组合对应的最终结果,并生成匹配线性表,从而使得第一处理器和第二处理器充分发挥各自优势,实现报文捕获的高速性和准确性。
在上述实施例描述中可知,匹配线性表由第二处理器根据所有匹配条件之间的逻辑组合所对应的匹配结果生成的,下面将结合附图对匹配线性表的生成过程进行说明。
参见图2,该图为本申请实施例提供的一种报文捕获方法的流程图,所述方法应用于网络设备,所述网络设备包括第一处理器和第二处理器,所述第一处理器通过硬件实现,所述第二处理器通过软件实现,所述方法包括:
S201:第二处理器获取每个匹配条件所对应的所有匹配结果,并对所有匹配条件的匹配结果进行组合,以获得不同匹配组合,该匹配组合包括每个匹配条件所对应的一个匹配结果。
本实施例中,第二处理器可以获取每个匹配条件可能对应的所有匹配结果,然后将所有匹配条件的所有可能匹配结果进行不同组合,从而获得多个不同匹配组合。其中,每个匹配组合中包括所有匹配条件分别对应的一个匹配结果。
例如,每个匹配条件所对应的所有匹配结果包括两种:一种是符合匹配条件,用1表示;另一种是不符合匹配条件,用0表示。当共存在3个匹配条件时,则共存在8个匹配组合,分别为000、001、010、011、100、101、110、111。
S202:根据所有匹配条件之间的逻辑组合确定每个匹配组合所对应的最终结果,并生成匹配线性表。
本实施例中,当第二处理器获得所有可能的匹配组合后,根据所有匹配条件之间的逻辑组合,确定每个匹配组合对应的最终匹配结果,再将每个匹配组合以及该匹配组合对应的最终匹配结果写入匹配线性表中,从而生成匹配线性表。其中,所有匹配条件之间的逻辑组合可以为所有匹配条件之间与、或、非其中一种或多种组合。
例如,共存在三个匹配条件,第一个匹配条件的匹配结果与第二个匹配条件的匹配结果为进行与运算,前两个匹配条件对应的与结果再与第三个匹配条件进行或运算。则匹配组合000对应的最终匹配结果为0,匹配组合001对应的最终匹配结果1,匹配组合010对应的最终匹配结果0,匹配组合011对应的最终匹配结果1,匹配组合100对应的最终匹配结果0,匹配组合101对应的最终匹配结果1,匹配组合110对应的最终匹配结果1、111对应的最终匹配结果1。
S203:将匹配线性表发送给第一处理器,以使得第一处理器在接收到网络报文时,确定网络报文对于第i个匹配条件所对应的匹配结果;其中,i分别取值为1至n的整数,n为匹配条件个数;根据网络报文针对所有匹配条件分别对应的匹配结果,在所述匹配线性表中进行查找,获得最终匹配结果;当最终匹配结果满足预设条件时,保存网络报文。
本实施例中,当第二处理器生成匹配线性表后,将该匹配线性表发送给第一处理器,以便第一处理器可以根据匹配线性表确定所接收的网络报文的最终匹配结果。
例如,第一处理器接收的网络报文针对三个匹配条件分别对应的匹配结果为001,则通过查找线性匹配表获知001对应的最终匹配结果为1,表明该网络报文符合捕获条件,则将该网络报文进行保存,以便进行后续分析。
通过本实施例提供的方法,首先由第二处理器获取每个匹配条件可能对应的所有匹配结果,并将所有匹配条件对应的可能的匹配结果进行组合,以获得多个不同匹配组合。再根据不同匹配条件之间的逻辑组合,确定每个匹配组合对应的最终结果,然后生成匹配线性表发送给第一处理器。当第一处理器接收到网络报文时,确定该网络报文对于每个匹配条件对应的匹配结果,然后利用所有匹配条件分别对应的匹配结果在匹配线性表中进行查找,以获得该报文对应的最终匹配结果。当最终匹配结果满足预设条件时,将该网络报文进行保存,以便进行后续分析。
为便于理解本申请实施例整体实现框架,参见图3,该图为本申请实施例提供的报文捕获框架图,软件,即第二处理器生成匹配线性表,并将该匹配线性表发送给硬件,即第一处理器。第一处理器接收网络报文,并对每个匹配条件Qi进行匹配,获得每个匹配条件对应的匹配结果Ri,从而获得索引集合R。然后利用R在线性配置表中进行查找,获得最终匹配结果。
基于上述方法实施例,本申请实施例还提供了一种报文捕获装置,下面将结合附图对该捕获装置进行说明。
参见图4,该图为本申请实施例提供的一种报文捕获装置结构图,所述报文捕获装置位于网络设备,所述网络设备包括第一处理器和第二处理器,所述第一处理器通过硬件实现,所述第二处理器通过软件实现,所述装置包括:
接收单元401,用于接收网络报文;
确定单元402,用于确定所述网络报文对于第i个匹配条件所对应的匹配结果;其中,i分别取值为1至n的整数,n为匹配条件个数;
查找单元403,用于根据所述网络报文针对所有匹配条件分别对应的匹配结果,在匹配线性表中进行查找,获得最终匹配结果;所述匹配线性表由第二处理器生成;所述第二处理器根据所有匹配条件之间的逻辑组合所对应的匹配结果生成所述匹配线性表;
保存单元404,用于当所述最终匹配结果满足预设条件时,保存所述网络报文。
在一种可能的实现方式中,所述查找单元,包括:
生成子单元,用于根据所述网络报文针对所有匹配条件分别对应的匹配结果,生成索引集合,所述索引集合包括每个匹配条件对应的匹配结果;
查找子单元,用于根据所述索引集合,在所述匹配线性表中进行查找,获得所述最终匹配结果。
在一种可能的实现方式中,所述网络报文对于第i个匹配条件所对应的匹配结果为一位二进制,当所述匹配结果为1时表示所述网络报文匹配,当所述匹配结果为0时表示所述网络报文不匹配。
在一种可能的实现方式中,所述所有匹配条件之间的逻辑组合为所有匹配条件之间与、或、非的组合。
需要说明的是,本实施例中各个单元的具体实现可以参见方法实施例,本实施例在此不再赘述。
参见图5,该图为本申请实施例提供的另一种报文捕获装置结构图,所述装置应用于网络设备,所述网络设备包括第一处理器和第二处理器,所述第一处理器通过硬件实现,所述第二处理器通过软件实现,所述装置包括:
组合单元501,用于获取每个匹配条件所对应的所有匹配结果,并对所有匹配条件的匹配结果进行组合,以获得不同匹配组合;所述匹配组合包括每个匹配条件所对应的一个匹配结果;
生成单元502,用于根据所有匹配条件之间的逻辑组合确定每个所述匹配组合所对应的最终结果,并生成匹配线性表;
发送单元503,用于将所述匹配线性表发送给第一处理器,以使得所述第一处理器在接收到网络报文时,确定所述网络报文对于第i个匹配条件所对应的匹配结果;其中,i分别取值为1至n的整数,n为匹配条件个数;根据所述网络报文针对所有匹配条件分别对应的匹配结果,在所述匹配线性表中进行查找,获得最终匹配结果;当所述最终匹配结果满足预设条件时,保存所述网络报文。
需要说明的是,本实施例中各个单元的实现可以参见上述方法实施例,本实施例在此不再赘述。
参见图6,该图为本申请实施例提供的一种网络设备结构图,所述网络设备包括:第一处理器601和第二处理器602;所述第一处理器601通过硬件实现,所述第二处理器602通过软件实现;
所述第一处理器601,用于所述第一处理器接收网络报文;确定所述网络报文对于第i个匹配条件所对应的匹配结果;其中,i分别取值为1至n的整数,n为匹配条件个数;根据所述网络报文针对所有匹配条件分别对应的匹配结果,在匹配线性表中进行查找,获得最终匹配结果;所述匹配线性表由第二处理器生成;所述第二处理器根据所有匹配条件之间的逻辑组合所对应的匹配结果生成所述匹配线性表;当所述最终匹配结果满足预设条件时,保存所述网络报文;
所述第二处理器602,用于获取每个匹配条件所对应的所有匹配结果,并对所有匹配条件的匹配结果进行组合,以获得不同匹配组合;所述匹配组合包括每个匹配条件所对应的一个匹配结果;根据所有匹配条件之间的逻辑组合确定每个所述匹配组合所对应的最终结果,并生成匹配线性表;将所述匹配线性表发送给第一处理器,以使得所述第一处理器在接收到网络报文时,确定所述网络报文对于第i个匹配条件所对应的匹配结果;其中,i分别取值为1至n的整数,n为匹配条件个数;根据所述网络报文针对所有匹配条件分别对应的匹配结果,在所述匹配线性表中进行查找,获得最终匹配结果;当所述最终匹配结果满足预设条件时,保存所述网络报文。
需要说明的是,本实施例中各个处理器的实现可以参见上述方法实施例,本实施例在此不再赘述。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (5)
1.一种报文捕获方法,其特征在于,所述方法应用于网络设备,所述网络设备包括第一处理器和第二处理器,所述第一处理器通过硬件实现,所述第二处理器通过软件实现,所述方法包括:
所述第一处理器接收网络报文;
确定所述网络报文对于第 i 个匹配条件所对应的匹配结果;其中,i 分别取值为 1至 n 的整数,n 为匹配条件个数;
根据所述网络报文针对所有匹配条件分别对应的匹配结果,在匹配线性表中进行查找,获得最终匹配结果;所述匹配线性表由第二处理器生成;所述第二处理器根据所有匹配条件之间的逻辑组合所对应的匹配结果生成所述匹配线性表;所述所有匹配条件之间的逻辑组合为所有匹配条件之间与、或、非的一种或多种组合;
当所述最终匹配结果满足预设条件时,保存所述网络报文。
2.根据权利要求 1 所述的方法,其特征在于,所述根据所述网络报文针对所有匹配条件分别对应的匹配结果,在匹配线性表中进行查找,获得最终匹配结果,包括:
根据所述网络报文针对所有匹配条件分别对应的匹配结果,生成索引集合,所述索引集合包括每个匹配条件对应的匹配结果;
根据所述索引集合,在所述匹配线性表中进行查找,获得所述最终匹配结果。
3.根据权利要求 1 所述的方法,其特征在于,所述网络报文对于第 i个匹配条件所对应的匹配结果为一位二进制,当所述匹配结果为 1 时表示所述网络报文匹配,当所述匹配结果为 0 时表示所述网络报文不匹配。
4.一种报文捕获方法,其特征在于,所述方法应用于网络设备,所述网络设备包括第一处理器和第二处理器,所述第一处理器通过硬件实现,所述第二处理器通过软件实现,所述方法包括:
第二处理器获取每个匹配条件所对应的所有匹配结果,并对所有匹配条件的匹配结果进行组合,以获得不同匹配组合;所述匹配组合包括每个匹配条件所对应的一个匹配结果;
根据所有匹配条件之间的逻辑组合确定每个所述匹配组合所对应的最终结果,并生成匹配线性表;所述所有匹配条件之间的逻辑组合为所有匹配条件之间与、或、非的一种或多种组合;
将所述匹配线性表发送给第一处理器,以使得所述第一处理器在接收到网络报文时,确定所述网络报文对于第 i 个匹配条件所对应的匹配结果;其中,i 分别取值为 1 至 n的整数,n 为匹配条件个数;根据所述网络报文针对所有匹配条件分别对应的匹配结果,在所述匹配线性表中进行查找,获得最终匹配结果;当所述最终匹配结果满足预设条件时,保存所述网络报文。
5.一种网络设备,其特征在于,所述网络设备包括:第一处理器和第二处理器;所述第一处理器通过硬件实现,所述第二处理器通过软件实现;
所述第一处理器,用于所述第一处理器接收网络报文;确定所述网络报文对于第 i 个匹配条件所对应的匹配结果;其中,i 分别取值为 1 至 n 的整数,n 为匹配条件个数;根据所述网络报文针对所有匹配条件分别对应的匹配结果,在匹配线性表中进行查找,获得最终匹配结果;所述匹配线性表由第二处理器生成;所述第二处理器根据所有匹配条件之间的逻辑组合所对应的匹配结果生成所述匹配线性表;当所述最终匹配结果满足预设条件时,保存所述网络报文;所述所有匹配条件之间的逻辑组合为所有匹配条件之间与、或、非的组合;
所述第二处理器,用于获取每个匹配条件所对应的所有匹配结果,并对所有匹配条件的匹配结果进行组合,以获得不同匹配组合;所述匹配组合包括每个匹配条件所对应的一个匹配结果;根据所有匹配条件之间的逻辑组合确定每个所述匹配组合所对应的最终结果,并生成匹配线性表;将所述匹配线性表发送给第一处理器,以使得所述第一处理器在接收到网络报文时,确定所述网络报文对于第 i 个匹配条件所对应的匹配结果;其中,i 分别取值为1 至 n 的整数,n 为匹配条件个数;根据所述网络报文针对所有匹配条件分别对应的匹配结果,在所述匹配线性表中进行查找,获得最终匹配结果;当所述最终匹配结果满足预设条件时,保存所述网络报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910208556.2A CN109802872B (zh) | 2019-03-19 | 2019-03-19 | 一种报文捕获方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910208556.2A CN109802872B (zh) | 2019-03-19 | 2019-03-19 | 一种报文捕获方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109802872A CN109802872A (zh) | 2019-05-24 |
CN109802872B true CN109802872B (zh) | 2021-07-30 |
Family
ID=66563617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910208556.2A Active CN109802872B (zh) | 2019-03-19 | 2019-03-19 | 一种报文捕获方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109802872B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134757B (zh) * | 2020-09-21 | 2022-08-19 | 北京信而泰科技股份有限公司 | 一种报文生成方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852253A (zh) * | 2006-02-17 | 2006-10-25 | 华为技术有限公司 | 一种arp报文处理方法 |
CN101488949A (zh) * | 2008-10-28 | 2009-07-22 | 江苏集群信息产业股份有限公司 | 报文内容检测与流控装置 |
CN102571531A (zh) * | 2010-12-16 | 2012-07-11 | 上海博达数据通信有限公司 | 一种访问控制列表的分类匹配方法 |
CN103618733A (zh) * | 2013-12-06 | 2014-03-05 | 北京中创信测科技股份有限公司 | 一种应用于移动互联网的数据过滤系统及方法 |
CN104486240A (zh) * | 2014-12-08 | 2015-04-01 | 福建星网锐捷网络有限公司 | 一种数据包分类方法及装置 |
CN106572034A (zh) * | 2016-11-07 | 2017-04-19 | 深圳市楠菲微电子有限公司 | 一种应用于交换机芯片的网络报文可编程处理方法 |
CN106790170A (zh) * | 2016-12-29 | 2017-05-31 | 杭州迪普科技股份有限公司 | 一种数据包过滤方法及装置 |
CN108512776A (zh) * | 2018-03-07 | 2018-09-07 | 深圳市风云实业有限公司 | 交换芯片中tcam表的灵活组合方法、装置及芯片 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002031647A2 (en) * | 2000-10-12 | 2002-04-18 | Celoxica Limited | System, method and article of manufacture for using a microprocessor emulation in a hardware application with non time-critical functions |
US7809927B2 (en) * | 2007-09-11 | 2010-10-05 | Texas Instruments Incorporated | Computation parallelization in software reconfigurable all digital phase lock loop |
US8572251B2 (en) * | 2008-11-26 | 2013-10-29 | Microsoft Corporation | Hardware acceleration for remote desktop protocol |
CN101478488B (zh) * | 2009-02-13 | 2013-06-05 | 华为技术有限公司 | 报文转发方法、转发引擎芯片和路由设备 |
WO2011140148A1 (en) * | 2010-05-03 | 2011-11-10 | Cambridgesoft Corporation | Method and apparatus for processing documents to identify chemical structures |
CN105591923B (zh) * | 2015-10-28 | 2018-11-27 | 新华三技术有限公司 | 一种转发表项的存储方法和装置 |
CN105656786B (zh) * | 2016-01-22 | 2019-04-12 | 中国人民解放军国防科学技术大学 | 一种基于快、慢表的路由器查表方法 |
CN105591989B (zh) * | 2016-01-25 | 2019-12-20 | 盛科网络(苏州)有限公司 | 一种协议报文上送cpu的芯片实现方法 |
CN107196776A (zh) * | 2016-03-14 | 2017-09-22 | 中兴通讯股份有限公司 | 一种报文转发的方法和装置 |
CN106161114A (zh) * | 2016-08-31 | 2016-11-23 | 北京信而泰科技股份有限公司 | 支持故障点快速定位的以太网环网模块 |
CN106789727B (zh) * | 2016-12-27 | 2020-01-21 | 锐捷网络股份有限公司 | 报文分类方法和装置 |
CN107181663A (zh) * | 2017-06-28 | 2017-09-19 | 联想(北京)有限公司 | 一种报文处理方法、相关设备及计算机可读存储介质 |
CN108200086B (zh) * | 2018-01-31 | 2020-03-17 | 四川九洲电器集团有限责任公司 | 一种高速网络数据包过滤装置 |
CN109274592B (zh) * | 2018-11-22 | 2021-03-09 | 新华三技术有限公司 | Mac地址表项处理方法、装置以及计算机可读介质 |
CN109413225B (zh) * | 2018-11-28 | 2021-11-02 | 新华三技术有限公司 | 一种mac表项处理方法和设备 |
-
2019
- 2019-03-19 CN CN201910208556.2A patent/CN109802872B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852253A (zh) * | 2006-02-17 | 2006-10-25 | 华为技术有限公司 | 一种arp报文处理方法 |
CN100454901C (zh) * | 2006-02-17 | 2009-01-21 | 华为技术有限公司 | 一种arp报文处理方法 |
CN101488949A (zh) * | 2008-10-28 | 2009-07-22 | 江苏集群信息产业股份有限公司 | 报文内容检测与流控装置 |
CN102571531A (zh) * | 2010-12-16 | 2012-07-11 | 上海博达数据通信有限公司 | 一种访问控制列表的分类匹配方法 |
CN103618733A (zh) * | 2013-12-06 | 2014-03-05 | 北京中创信测科技股份有限公司 | 一种应用于移动互联网的数据过滤系统及方法 |
CN104486240A (zh) * | 2014-12-08 | 2015-04-01 | 福建星网锐捷网络有限公司 | 一种数据包分类方法及装置 |
CN106572034A (zh) * | 2016-11-07 | 2017-04-19 | 深圳市楠菲微电子有限公司 | 一种应用于交换机芯片的网络报文可编程处理方法 |
CN106790170A (zh) * | 2016-12-29 | 2017-05-31 | 杭州迪普科技股份有限公司 | 一种数据包过滤方法及装置 |
CN108512776A (zh) * | 2018-03-07 | 2018-09-07 | 深圳市风云实业有限公司 | 交换芯片中tcam表的灵活组合方法、装置及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN109802872A (zh) | 2019-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984662B (zh) | 一种区块链数据同步方法 | |
CN101286936B (zh) | 数据报文的处理方法及装置 | |
CN109639579B (zh) | 组播报文的处理方法及装置、存储介质、处理器 | |
CN112347377B (zh) | Ip地址段查找方法与业务调度方法、装置、电子设备 | |
CN1282332C (zh) | 一种快速数据包过滤方法 | |
US11386228B2 (en) | Real-time session-based anonymization and blurring of high-resolution GPS data | |
CN107580079B (zh) | 一种报文传输方法和装置 | |
CN110061921B (zh) | 一种云平台数据包分发方法及系统 | |
WO2020019833A1 (zh) | 隐私数据的上报方法、装置与存储介质 | |
CN103326925B (zh) | 一种消息推送方法及装置 | |
CN109802872B (zh) | 一种报文捕获方法、装置及设备 | |
CN108282531A (zh) | 一种基于分布式系统的唯一性id生成方法 | |
CN107070719B (zh) | 一种设备管理方法和装置 | |
CN109802891B (zh) | 一种提高大象流流表利用率的方法及装置 | |
CN109951430B (zh) | 一种数据处理方法及装置 | |
CN111245726A (zh) | 一种ip网段高效匹配的实现方法 | |
CN114244752A (zh) | 流量统计方法、装置和设备 | |
CN106878030B (zh) | 一种计费方法和装置 | |
CN112787938B (zh) | 一种路由表项配置方法及装置 | |
CN103716236A (zh) | 一种基于is-is协议的路由计算方法和设备 | |
CN107547390B (zh) | 流表创建以及查询的方法及装置 | |
CN110838924B (zh) | 区块传输方法及装置 | |
CN109218196B (zh) | 一种信息收集方法、装置、设备及机器可读存储介质 | |
CN112995353B (zh) | 基于流量分析的IPv6地址存活性扫描系统及扫描方法 | |
CN109547389B (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 |