CN111683036A - 数据存储方法、装置以及报文识别方法和装置 - Google Patents
数据存储方法、装置以及报文识别方法和装置 Download PDFInfo
- Publication number
- CN111683036A CN111683036A CN202010132992.9A CN202010132992A CN111683036A CN 111683036 A CN111683036 A CN 111683036A CN 202010132992 A CN202010132992 A CN 202010132992A CN 111683036 A CN111683036 A CN 111683036A
- Authority
- CN
- China
- Prior art keywords
- message
- key value
- value
- data
- length
- 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
Images
Classifications
-
- 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种数据存储方法、装置、报文识别方法,其中,数据存储方法包括:获取用于报文匹配的原始数据,原始数据包括固定长度的报文识别编号对应的第一子数据以及与报文载荷部分对应的第二子数据;利用消息摘要算法对第二子数据计算以得到长度固定的摘要值;根据第一子数据以及摘要值生成并存储用于报文匹配的key值。本申请所提供的方法以及装置,生成的key值固定且长度较短,克服了现有技术中由于报文载荷长度不固定所造成的在规划时必须要以最大的key长度进行规划、存储数据条目少的问题,达到了提高了TCAM存储数据条目的目的。
Description
技术领域
本申请涉及网络通信技术,特别涉及一种数据存储方法、装置以及报文识别方法和装置。
背景技术
当前网络环境复杂,网络流量内容更加纷繁复杂,为了保证网络流量时刻处于监管之下,网络设备中存在一种名为流量过滤的设备。该流量过滤设备识别网络流量中的特殊字段,例如ip地址和数据载荷来进行报文的识别,根据报文识别结果来判断该报文是否在网络环境中属于安全报文,从而可以选择将该报文放行或者阻断。
在上述流量过滤识别过程中,为了保证报文能够高速进行查询动作,通常会使用三态内容寻址存储器TCAM(ternary content addressable memory,缩写为TCAM)芯片来进行高速查询。但限制于成本和功耗一般TCAM芯片的存储容量都比较小,比较常见的容量为80/160/320Mb,且对于TCAM这种键-值 key-value的查询芯片而言,其查询key值往往有着长度限制,比较常见的key 值长度一般支持40/80/160/320/640bit。在这样一种容量TCAM有限的情况下, key值长度越短则越能存储较多数据条目。为了匹配IP地址加变长数据载荷的情况,通常情况下针对变长数据载荷只能依靠采用最大key长度640b存储数据,这样以80Mb容量TCAM计算,只能存储125000条数据。
发明内容
本申请提供了一种数据存储方法、装置以及报文识别方法和装置,以解决现有技术中TCAM存储数据过少,资源浪费的问题。
本公开第一方面提供了一种数据存储方法,该方法包括:
获取用于报文匹配的原始数据,所述原始数据包括固定长度的报文识别编号对应的第一子数据以及与报文载荷部分对应的第二子数据;
利用消息摘要算法对第二子数据计算以得到长度固定的摘要值;
根据所述第一子数据以及所述摘要值生成并存储用于报文匹配的key值。
本公开所提供的方法,生成的key值固定且长度较短,克服了现有技术中由于报文载荷长度不固定所造成的在规划时必须要以最大的key长度进行规划、存储数据条目少的问题,达到了提高了TCAM存储数据条目。
可选的,根据所述第一子数据、以及所述摘要值生成并存储用于报文匹配的key值包括:
获取第二子数据中预设位置的数据片段;
根据所述第一子数据、第二子数据中的预设位置的数据片段、所述摘要值生成并存储用于报文匹配的key值。
可选的,所述方法还包括:判断所述用于报文匹配的key值的大小是否大于芯片的存储容量,若大于,则按照所述芯片的存储容量计算待删除的子摘要值;存储删除子摘要值之后的key值。
在生成的key值大于芯片的存储容量时,可以去掉摘要值的部分数据片段, 使得整个摘要值恰好与芯片的存储容量相同,这样得到了固定长度的key值,在这种情况下,能够有效的将TCAM存储数据的条目数提高,另外由于key值长度均统一为芯片的存储容量,所以不需要对TCAM的空间进行提前划分。可选的,所述固定长度的报文识别编号包括:源IP地址、目的IP地址、源端口、目的端口中的任意一个或多个。
本公开的第二方面还提供一种数据存储装置,该装置包括:
第一获取模块,用于获取用于报文匹配的原始数据,所述原始数据包括固定长度的报文识别编号对应的第一子数据以及与报文载荷部分对应的第二子数据;
第一计算模块,用于利用消息摘要算法对第二子数据计算以得到长度固定的摘要值;
第一生成模块,用于根据所述第一子数据以及所述摘要值生成并存储用于报文匹配的key值。
可选的,所述第一获取模块还用于获取第二子数据中预设位置的数据片段;
第一生成模块还用于根据所述第一子数据、第二子数据中的预设位置的数据片段、所述摘要值生成并存储用于报文匹配的key值。
所述数据存储装置还包括第一判断模块和第一存储模块,所述第一判断模块用于判断所述用于报文匹配的key值的大小是否大于芯片的存储容量,若大于,则按照所述芯片的存储容量计算待删除的子摘要值;
第一存储模块还用于存储删除子摘要值之后的key值。
本公开的第三方面还提供一种报文识别方法,该方法包括:
当处理器接收到报文之后,获取报文的固定长度的报文识别编号和报文载荷;
处理器利用消息摘要算法对报文载荷进行计算以得到长度固定的摘要值;
处理器根据所述固定长度的报文识别编号以及所述摘要值生成key值;
处理器向寻址存储器发送查询指令以根据查询指令中包括的所述key值确定所述寻址存储器中是否存在与所述key值匹配的key值;
处理器根据查询结果,确定是否转发报文。
可选的,根据所述固定长度的报文识别编号、以及所述摘要值生成key值包括:获取报文载荷中预设位置的数据片段;根据所述固定长度的报文识别编号、报文载荷中预设位置的数据片段、所述摘要值生成key值。
可选的,判断生成的key值是否大于预设长度,若大于预设长度,则确定待删除的子摘要值,删除所述key值的子摘要值的部分,以使得所述key值的大小等于预设长度;
相应的,则向寻址存储器发送查询指令以根据查询指令中包括的删除子摘要值之后的key值确定所述寻址存储器中是否存在与该key值匹配的key值。
本公开的第四方面还提供了一种报文识别装置,该装置包括:TCAM、存储器、与所述TCAM和所述存储器通信的处理器;
其中,所述存储器已经用软件程序配置,该软件程序包括当被所述处理器执行时使得所述装置能够操作用于执行:
当处理器接收到报文之后,获取报文的固定长度的报文识别编号和报文载荷;
利用消息摘要算法对报文载荷进行计算以得到长度固定的摘要值;
根据所述固定长度的报文识别编号以及所述摘要值生成key值;
向寻址存储器发送查询指令以根据查询指令中包括的所述key值确定所述寻址存储器中是否存在与所述key值匹配的key值;
根据查询结果,确定是否转发报文。
可选的,所述存储器已经用软件程序配置,该软件程序包括当被所述处理器执行时使得所述装置还能够操作用于执行:
获取报文载荷中预设位置的数据片段;
根据所述固定长度的报文识别编号、报文载荷中预设位置的数据片段、所述摘要值生成key值。
可选的,所述存储器已经用软件程序配置,该软件程序包括当被所述处理器执行时使得所述装置还能够操作用于执行:
判断生成的key值是否大于预设长度,若大于预设长度,则确定待删除的子摘要值,删除所述key值的子摘要值的部分,以使得所述key值的大小等于预设长度;
相应的,则向寻址存储器发送查询指令以根据查询指令中包括的删除子摘要值之后的key值确定所述寻址存储器中是否存在与该key值匹配的key值。
本公开的第五方面,还提供一种报文识别装置,该装置包括:
第二接收模块,用于接收报文;
第二获取模块,用于获取报文的固定长度的报文识别编号和报文载荷;
第二计算模块,用于利用消息摘要算法对报文载荷进行计算以得到长度固定的摘要值;
所述第二计算模块还用于,获取报文载荷中预设长度的部分数据,根据所述固定长度的报文识别编号、所述预设长度的部分数据以及所述摘要值生成key 值;
第二发送模块,用于向寻址存储器发送查询指令以根据查询指令中包括的所述key值确定所述寻址存储器中是否存在于所述key值匹配的key值;
第二判断模块,用于根据匹配结果确定是否转发所述报文。
可选的,所述第二获取模块还用于获取报文载荷中预设位置的数据片段;所述第二计算模块还用于根据所述固定长度的报文识别编号、报文载荷中预设位置的数据片段、所述摘要值生成key值。
可选的,所述第二判断模块还用于判断生成的key值是否大于预设长度,若大于预设长度,则确定待删除的子摘要值,删除所述key值的子摘要值的部分,以使得所述key值的大小等于预设长度;
相应的,则所述第二发送模块用于向寻址存储器发送查询指令以根据查询指令中包括的删除子摘要值之后的key值确定所述寻址存储器中是否存在与该 key值匹配的key值。
附图说明
图1为本公开实施例一提供的数据存储方法的流程示意图;
图2为本公开实施例二提供的数据存储方法的流程示意图;
图3为本公开实施例二提供的分片数据的示意图;
图4为本公开实施例二提供的生成的key值的示意图;
图5为本公开实施例三提供的报文识别方法的流程图;
图6为本公开实施例三所提供的用于执行报文识别方法的装置结构示意图;
图7为本公开提供的数据存储装置的结构示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本公开通过对存储在TCAM中的key值进行变换从而使得key值长度统一,从而提高TCAM存储数据的条目数并且统一key值长度。
图1为本公开实施例一提供的数据存储方法的流程示意图,如图1所示,该数据存储方法包括:
步骤202,获取用于报文匹配的原始数据,所述原始数据包括与固定长度的报文识别编号对应的第一子数据以及与报文载荷部分对应的第二子数据。
本实施例中,用于报文匹配的原始数据可以通过手工配置的、或者从服务器获取的匹配规则。这些原始数据可以预先配置好。
固定长度的报文识别编号可以为源IP地址、目的IP地址、源端口、目的端口、协议类型等任意的可以识别报文的编号。具体的可以根据实际需要,即想要过滤或者放行的报文类型等进行确定。例如,若后续想要过滤来自于源IP 地址为A的报文,则报文识别编号可以为源IP地址A;若想要过滤发往目的IP 地址为B的报文,则报文识别编号可以为目的IP地址为;若后续想要过滤源端口为8080的报文,则报文识别编号可以为源端口8080。一般来说,IP地址的长度、端口号长度的长度均比较固定,例如IP地址的长度一般为32bit(IPv4)或者128bit(IPv6),常见的目的端口一般为16字节。
由于报文的载荷部分的长度都是不固定的,即不同的报文的载荷部分的长度可能是不一样的,这里为了与长度不固定的报文载荷部分相区分,因此,本实施例中报文识别编号被被命名为“固定长度”的报文识别编号,但应当理解的是,这里的固定长度,是相对于“可变长度”的报文载荷而言的。
此外,为了与真实接收到的报文的固定长度的报文识别编号和载荷相区分,本实施例中以第一子数据和第二子数据为例进行说明,但应当理解的是,第一子数据可以视为是后续与接收到的报文的固定长度的报文识别编号部分相对应的数据,第二子数据为接收到的报文的报文载荷部分相对应的数据。
步骤204,利用消息摘要算法对第二子数据计算以得到长度固定的摘要值。
消息摘要算法可以为哈希算法、信息摘要算法MD5(Message-Digest Algorithm,缩写为MD5)、安全散列算法SHA(Secure Hash Algorithm)中的任意一个。通过上述任意的消息摘要算法均可以得到长度固定的摘要值。
本实施例中,以MD5算法为例进行说明,MD5算法最终会输出128bit大小的摘要值。
以原始数据长度为640bit、固定长度的报文识别编号为源IP地址为例进行说明,若按照32bit一个数据片段对原始数据进行划分,则原始数据可以划分为20个数据片段。
具体的如图3所示,第一个数据片段为源IP地址,与数据载荷部分相对应的第二子数据被划分为19个片段。进一步的,根据MD5算法对上述19个数据片段计算摘要值。
步骤208,根据所述第一子数据以及所述摘要值生成并存储用于报文匹配的 key值。由于第二子数据是与报文的载荷相对应,因此长度不固定,而本实施例所提供的方法,生成的key值固定且长度较短,克服了现有技术中由于报文载荷长度不固定所造成的在规划时必须要以最大的key长度进行规划、存储数据条目少的问题,达到了提高了TCAM存储数据条目。实施例二
在利用信息摘要算法虽然理论上存在两个不同输入源得出的摘要值是相同的情况,这种概率微乎其微,甚至可以忽略不计。但为了避免这种小概率事件的发生,在实施例一的基础上,本实施例还提供一种数据存储方法,图2为本公开实施例二提供的数据存储方法的流程示意图,如图2所示,该方法包括:
步骤302,获取用于报文匹配的原始数据,所述原始数据包括固定长度的报文识别编号对应的第一子数据以及与报文载荷部分对应的第二子数据;
步骤304,利用消息摘要算法对第二子数据计算以得到长度固定的摘要值;
步骤306,获取第二子数据中预设位置的数据片段;
步骤308,根据所述第一子数据、第二子数据中的预设位置的数据片段、所述摘要值生成并存储用于报文匹配的key值。
其中,步骤302和步骤304与实施例一类似,在此不再赘述。本实施例与实施例一区别之处在于,可以获取第二子数据的预设位置的部分数据,例如,可以获取实施例一中的数据片段1(当然也可以获取数据片段2,只要预先设置好即可)进一步的将该部分数据加入到生成的key值中,一方面长度不固定的第二子数据通过消息摘要算法输出固定长度的摘要值,另一方面,提取第二子数据的一部分参与到key值的构成中,这样两方面保证认为生成的key值可以与第二子数据一一对应。
若依然以实施例一中原始数据长度为640bit、固定长度的报文识别编号为源IP地址为例进行说明,若按照32bit一个数据片段对原始数据进行划分,获取的数据片段为数据片段1,则生成的key值可以类似于图4所示。由此可见,本实施例提供的方法,可以将原始数据压缩为192bit。其中,图4中的摘要值由多个子摘要值组成,这里需要说明的是,这里的多个子摘要值只是为了说明摘要值存储于多个字节中。并且这样图示是为了在后续的实施例中更好的说明如何确定待删除的子摘要值。
由于TCAM芯片的硬件限定key值只能有40/80/160/320/640bit这几个档位,所以在实际情况中,可以判断用于报文匹配的key值的大小是否大于芯片的存储容量,若大于,则按照芯片的存储容量计算待删除的子摘要值,存储删除子摘要值之后的key值。
例如,在本实施例中,可以将192bit去掉摘要值的32bit,使得整个摘要值恰好为160bit。这样得到了固定长度,即160b长度的key值,在这种情况下,能够有效的将TCAM存储数据的条目数提高到512000条,另外由于key值长度均统一为160b长度,所以不需要对TCAM的空间进行提前划分,可以直接在TCAM 初始化阶段将TCAM的空间全部初始化为160b的key值。
在一种具体的实现方式中,按照所述芯片的存储容量计算待删除的子摘要值可以包括:获取芯片以及用于报文匹配的key值之间的差值,根据差值确定待删除的子摘要值的大小,具体的删除哪一部分子摘要值,可以根据实际需要进行选取,本实施例中并不加以限定。
实施例三
在TCAM芯片的初始化阶段完成了上述实施例所提供的方法之后,本实施例还提供一种报文识别方法,图5为本实施例提供的报文识别方法的流程示意图,图6为本实施提供的一种报文识别装置的结构示意图,该装置包括CPU和寻址存储器以及存储器,图6中以寻址存储器为TCAM为例进行说明,存储器已经用软件程序进行配置,该软件程序包括当被CPU执行时使得所述装置能够操作用于执行本实施例所提供的方法。但应当理解的是,寻址存储器并不限于TCAM。如图5和图6所示,该方法包括:
步骤402,当CPU处理器接收到报文之后,获取报文的固定长度的报文识别编号和报文载荷。
其中,固定长度的报文识别编号包括:源IP地址、目的IP地址、源端口、目的端口中的任意一个或多个。
步骤404,利用消息摘要算法对报文载荷进行计算以得到长度固定的摘要值。
步骤406,根据所述固定长度的报文识别编号以及所述摘要值生成key值。
步骤408,向寻址存储器发送查询指令以根据查询指令中包括的所述key值确定所述寻址存储器中是否存在与所述key值匹配的key值。
步骤410,根据查询结果,确定是否转发报文。对于实施例一中所述的原始数据,其可以是白名单,即根据接收到的报文生成的key值与TCAM中存储的key 值匹配,则放行该报文;如果与TCAM中存储的key值不匹配,则视该报文为异常报文,可以丢弃该异常报文。
当然,原始数据可以可以为黑名单,即即根据接收到的报文生成的key值与TCAM中存储的key值匹配,则视该报文为异常报文;如果与TCAM中存储的 key值不匹配,则放行该报文。
本实施例所提供的报文识别方法中,TCAM中存储的key值长度固定且比较短,克服了现有技术中由于报文载荷长度不固定所造成的在规划时必须要以最大的key长度进行规划、存储数据条目少的问题,达到了提高TCAM存储数据条目的目的。
在一种可选的实施方式中,上述步骤406还可以通过下述步骤实现:
步骤4061,获取报文载荷中预设位置的数据片段。
以原始数据长度为640bit、固定长度的报文识别编号为源IP地址为例进行说明,若按照32bit一个数据片段对原始数据进行划分,则原始数据可以划分为20个数据片段。其中预设位置的数据片段可以为上述数据片段中的任意一个。
步骤4062,根据所述固定长度的报文识别编号、报文载荷中预设位置的数据片段、所述摘要值生成key值。
可选的,上述方法还可以包括:判断生成的key值是否大于预设长度,若大于预设长度,则确定待删除的子摘要值,删除所述key值的子摘要值的部分,以使得所述key值的大小等于预设长度。以删除该子摘要值之后的key值向TCAM 发送查询指令。
实施例四
与上述实施例一和二对应的是,本实施例还提供一种数据存储装置,该装置用执行上述实施例一或实施例二所描述的方法,图7为本公开提供的数据存储装置的结构示意图,如图7所示,该装置包括:
第一获取模块701,用于获取用于报文匹配的原始数据,所述原始数据包括固定长度的报文识别编号对应的第一子数据以及与报文载荷部分对应的第二子数据;
第一计算模块702,用于利用消息摘要算法对第二子数据计算以得到长度固定的摘要值;
第一生成模块703,用于根据所述第一子数据以及所述摘要值生成并存储用于报文匹配的key值。
可选的,所述第一获取模块还用于获取第二子数据中预设位置的数据片段;
第一生成模块703还用于根据所述第一子数据、第二子数据中的预设位置的数据片段、所述摘要值生成并存储用于报文匹配的key值。
所述数据存储装置还包括第一判断模块和第一存储模块,所述第一判断模块用于判断所述用于报文匹配的key值的大小是否大于芯片的存储容量,若大于,则按照所述芯片的存储容量计算待删除的子摘要值;
第一存储模块还用于存储删除子摘要值之后的key值。
本实施例中的数据存储装置所执行的方法与上述实施例一和二相对应,具体可参见上述实施例一和二的描述在此不再详细赘述。
实施例五
与上述实施例三相对应的,本实施例还提供一种报文识别装置,该装置包括:
第二接收模块,用于接收报文;
第二获取模块,用于获取报文的固定长度的报文识别编号和报文载荷;
第二计算模块,用于利用消息摘要算法对报文载荷进行计算以得到长度固定的摘要值;
所述第二计算模块还用于,获取报文载荷中预设长度的部分数据,根据所述固定长度的报文识别编号、所述预设长度的部分数据以及所述摘要值生成key 值;
第二发送模块,用于向寻址存储器发送查询指令以根据查询指令中包括的所述key值确定所述寻址存储器中是否存在于所述key值匹配的key值;
第二判断模块,用于根据匹配结果确定是否转发所述报文。
可选的,所述第二获取模块还用于获取报文载荷中预设位置的数据片段;所述第二计算模块还用于根据所述固定长度的报文识别编号、报文载荷中预设位置的数据片段、所述摘要值生成key值。
可选的,所述第二判断模块还用于判断生成的key值是否大于预设长度,若大于预设长度,则确定待删除的子摘要值,删除所述key值的子摘要值的部分,以使得所述key值的大小等于预设长度;
相应的,则所述第二发送模块用于向寻址存储器发送查询指令以根据查询指令中包括的删除子摘要值之后的key值确定所述寻址存储器中是否存在与该 key值匹配的key值。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种数据存储方法,其特征在于,所述方法包括:
获取用于报文匹配的原始数据,所述原始数据包括固定长度的报文识别编号对应的第一子数据以及与报文载荷部分对应的第二子数据;
利用消息摘要算法对第二子数据计算以得到长度固定的摘要值;
根据所述第一子数据以及所述摘要值生成并存储用于报文匹配的key值。
2.根据权利要求1所述的方法,其特征在于,根据所述第一子数据、以及所述摘要值生成并存储用于报文匹配的key值包括:
获取第二子数据中预设位置的数据片段;
根据所述第一子数据、第二子数据中的预设位置的数据片段、所述摘要值生成并存储用于报文匹配的key值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:判断所述用于报文匹配的key值的大小是否大于芯片的存储容量,若大于,则按照所述芯片的存储容量计算待删除的子摘要值;
存储删除子摘要值之后的key值。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述固定长度的报文识别编号包括:源IP地址、目的IP地址、源端口、目的端口中的任意一个或多个。
5.一种报文识别方法,其特征在于,该方法包括:
当处理器接收到报文之后,获取报文的固定长度的报文识别编号和报文载荷;
利用消息摘要算法对报文载荷进行计算以得到长度固定的摘要值;
根据所述固定长度的报文识别编号以及所述摘要值生成key值;
向寻址存储器发送查询指令以根据查询指令中包括的所述key值确定所述寻址存储器中是否存在与所述key值匹配的key值;
根据查询结果,确定是否转发报文。
6.根据权利要求5所述的方法,其特征在于,根据所述固定长度的报文识别编号、以及所述摘要值生成key值包括:
获取报文载荷中预设位置的数据片段;
根据所述固定长度的报文识别编号、报文载荷中预设位置的数据片段、所述摘要值生成key值。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:判断生成的key值是否大于预设长度,若大于预设长度,则确定待删除的子摘要值,删除所述key值的子摘要值的部分,以使得所述key值的大小等于预设长度;
相应的,则向寻址存储器发送查询指令以根据查询指令中包括的删除子摘要值之后的key值确定所述寻址存储器中是否存在与该key值匹配的key值。
8.根据权利要求5所述的方法,其特征在于,所述固定长度的报文识别编号包括:源IP地址、目的IP地址、源端口、目的端口中的任意一个或多个。
9.一种报文识别装置,其特征在于,包括:
TCAM;
存储器;
与所述TCAM和所述存储器通信的处理器;
其中,所述存储器已经用软件程序配置,该软件程序包括当被所述处理器执行时使得所述装置能够操作用于执行权利要求5-8任一项所述的方法。
10.一种报文识别装置,其特征在于,所述装置包括:
第二接收模块,用于接收报文;
第二获取模块,用于获取报文的固定长度的报文识别编号和报文载荷;
第二计算模块,用于利用消息摘要算法对报文载荷进行计算以得到长度固定的摘要值;
所述第二计算模块还用于,获取报文载荷中预设长度的部分数据,根据所述固定长度的报文识别编号、所述预设长度的部分数据以及所述摘要值生成key值;
第二发送模块,用于向寻址存储器发送查询指令以根据查询指令中包括的所述key值确定所述寻址存储器中是否存在于所述key值匹配的key值;
第二判断模块,用于根据匹配结果确定是否转发所述报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010132992.9A CN111683036B (zh) | 2020-02-29 | 2020-02-29 | 数据存储方法、装置以及报文识别方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010132992.9A CN111683036B (zh) | 2020-02-29 | 2020-02-29 | 数据存储方法、装置以及报文识别方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111683036A true CN111683036A (zh) | 2020-09-18 |
CN111683036B CN111683036B (zh) | 2022-05-27 |
Family
ID=72451294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010132992.9A Active CN111683036B (zh) | 2020-02-29 | 2020-02-29 | 数据存储方法、装置以及报文识别方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111683036B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910797A (zh) * | 2021-01-20 | 2021-06-04 | 中国科学院计算技术研究所 | 基于特征匹配的i2p流量识别方法及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002025866A2 (en) * | 2000-09-18 | 2002-03-28 | At & T Corp. | Apparatus, system and method for validating integrity of transmitted data |
CN101719907A (zh) * | 2009-11-26 | 2010-06-02 | 西北工业大学 | 基于BitTorrent的被动式载荷信息监测方法 |
CN201563132U (zh) * | 2009-07-03 | 2010-08-25 | 北京星网锐捷网络技术有限公司 | 网络带宽控制装置与路由器 |
CN101997859A (zh) * | 2009-08-28 | 2011-03-30 | 国际商业机器公司 | 识别tcp流中的数据包的载荷的方法和设备 |
CN106844091A (zh) * | 2016-12-08 | 2017-06-13 | 深圳市金立通信设备有限公司 | 一种压缩、还原方法及终端 |
WO2017097026A1 (zh) * | 2015-12-10 | 2017-06-15 | 深圳市中兴微电子技术有限公司 | 数据报文的识别处理方法及装置、存储介质 |
US20170255674A1 (en) * | 2016-03-07 | 2017-09-07 | International Business Machines Corporation | Query plan optimization for large payload columns |
CN107329827A (zh) * | 2017-06-22 | 2017-11-07 | 平安科技(深圳)有限公司 | 支持哈希调度策略的lvs调度方法、设备及存储介质 |
WO2018076641A1 (zh) * | 2016-10-28 | 2018-05-03 | 深圳市中兴微电子技术有限公司 | 一种减少时延的方法、装置及存储介质 |
CN109558091A (zh) * | 2018-12-11 | 2019-04-02 | 广东省新代通信与网络创新研究院 | 查找表存储方法、装置及计算机可读存储介质 |
-
2020
- 2020-02-29 CN CN202010132992.9A patent/CN111683036B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002025866A2 (en) * | 2000-09-18 | 2002-03-28 | At & T Corp. | Apparatus, system and method for validating integrity of transmitted data |
CN201563132U (zh) * | 2009-07-03 | 2010-08-25 | 北京星网锐捷网络技术有限公司 | 网络带宽控制装置与路由器 |
CN101997859A (zh) * | 2009-08-28 | 2011-03-30 | 国际商业机器公司 | 识别tcp流中的数据包的载荷的方法和设备 |
CN101719907A (zh) * | 2009-11-26 | 2010-06-02 | 西北工业大学 | 基于BitTorrent的被动式载荷信息监测方法 |
WO2017097026A1 (zh) * | 2015-12-10 | 2017-06-15 | 深圳市中兴微电子技术有限公司 | 数据报文的识别处理方法及装置、存储介质 |
US20170255674A1 (en) * | 2016-03-07 | 2017-09-07 | International Business Machines Corporation | Query plan optimization for large payload columns |
WO2018076641A1 (zh) * | 2016-10-28 | 2018-05-03 | 深圳市中兴微电子技术有限公司 | 一种减少时延的方法、装置及存储介质 |
CN106844091A (zh) * | 2016-12-08 | 2017-06-13 | 深圳市金立通信设备有限公司 | 一种压缩、还原方法及终端 |
CN107329827A (zh) * | 2017-06-22 | 2017-11-07 | 平安科技(深圳)有限公司 | 支持哈希调度策略的lvs调度方法、设备及存储介质 |
CN109558091A (zh) * | 2018-12-11 | 2019-04-02 | 广东省新代通信与网络创新研究院 | 查找表存储方法、装置及计算机可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910797A (zh) * | 2021-01-20 | 2021-06-04 | 中国科学院计算技术研究所 | 基于特征匹配的i2p流量识别方法及系统 |
CN112910797B (zh) * | 2021-01-20 | 2023-04-11 | 中国科学院计算技术研究所 | 基于特征匹配的i2p流量识别方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111683036B (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10764181B2 (en) | Pipelined evaluations for algorithmic forwarding route lookup | |
US9495479B2 (en) | Traversal with arc configuration information | |
EP3035613B1 (en) | Ccn routing using hardware-assisted hash tables | |
US6654701B2 (en) | Method and apparatus for measuring protocol performance in a data communication network | |
US6597661B1 (en) | Network packet classification | |
US7600094B1 (en) | Linked list traversal with reduced memory accesses | |
US20050171937A1 (en) | Memory efficient hashing algorithm | |
US20060193159A1 (en) | Fast pattern matching using large compressed databases | |
US20030204703A1 (en) | Multi-pass hierarchical pattern matching | |
US20080111716A1 (en) | Detecting whether an arbitrary-length bit string input matches one of a plurality of known arbitrary-length bit strings using a hierarchical data structure | |
CN109639579B (zh) | 组播报文的处理方法及装置、存储介质、处理器 | |
US9979648B1 (en) | Increasing entropy across routing table segments | |
US20040001492A1 (en) | Method and system for maintaining a MAC address filtering table | |
CN113810337B (zh) | 用于网络报文去重的方法、装置、以及存储介质 | |
Moia et al. | Similarity digest search: A survey and comparative analysis of strategies to perform known file filtering using approximate matching | |
CN111683036B (zh) | 数据存储方法、装置以及报文识别方法和装置 | |
CN111209341B (zh) | 区块链的数据存储方法、装置、设备及介质 | |
CN112437096B (zh) | 加速策略查找方法及系统 | |
CN113411341A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
US9032142B2 (en) | System and method for storing integer ranges in a memory | |
CN112286966A (zh) | 一种数据流处理、恢复方法以及设备和存储介质 | |
CN111353018A (zh) | 基于深度包检测的数据处理方法、装置和网络设备 | |
CN110868388B (zh) | 用于操作联网设备的系统和方法 | |
CN117540071B (zh) | 一种针对查找引擎的属性表项的配置方法和装置 | |
WO2024099078A1 (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 |