一种信息存储方法及装置制造方法及图纸

技术编号:20224517 阅读:22 留言:0更新日期:2019-01-28 22:33
本申请实施例提供了一种信息存储方法及装置,涉及网络技术领域,包括:获得报文,并获得报文的属性信息;对所获得属性信息对应的字符串进行连接,形成新字符串,并对新字符串进行哈希计算,得到第一哈希值;根据第一哈希值和预设哈希链表的大小,确定所获得属性信息在预设哈希链表中的存储位置,作为第一存储位置;判断第一存储位置处是否存在存储有所获得属性信息的第一链表节点;若为是,更新第一链表节点中存储的统计信息;若为否,根据第一存储位置,创建链表节点,将所获得的属性信息存储至所创建链表节点,并更新所创建链表节点中存储的统计信息。应用本申请实施例提供的方案,能够在流表中实现信息存储,提高了流量探针的吞吐性能。

【技术实现步骤摘要】
一种信息存储方法及装置
本申请涉及网络
,特别是涉及一种信息存储方法及装置。
技术介绍
全网流量分析技术已经成为分析网络问题的一个非常重要的手段。在网络规模日益扩大、速度逐渐提升和网络应用日趋复杂的的时代背景下,需要对网络会话上下文进行实时统计与分析。流量跟踪是实现实时统计与分析的基础技术,主要是从网络中采集报文,根据报文的属性信息进行分类,从而统计出流的属性信息,其实质上是对流的统计分析。然后根据流的属性信息进行后续更深层次的统计和分析。现有技术中,可以采用流量探针实现流量跟踪,但是这一方式中需要采用一个流表来跟踪和维护网络流的统计信息。由于网络具有报文量大、速度快等特性,因此,在建立流表后,如何在流表中存储网络流的信息,直接关系到流量探针的吞吐性能。鉴于此,需要提供一种在流表中进行信息存储的方案。
技术实现思路
本申请实施例的目的在于提供一种信息存储方法及装置,以在流表中实现信息存储,提高流量探针的吞吐性能。具体技术方案如下:第一方面,本申请实施例提供了一种信息存储方法,所述方法包括:获得报文,并获得所述报文的属性信息;对所获得属性信息对应的字符串进行连接,形成新字符串,并对所述新字符串进行哈希计算,得到第一哈希值;根据所述第一哈希值和预设哈希链表的大小,确定所获得属性信息在所述预设哈希链表中的存储位置,作为第一存储位置,其中,所述预设哈希链表的大小为素数;判断所述第一存储位置处是否存在存储有所获得属性信息的第一链表节点;若为是,更新所述第一链表节点中存储的统计信息,其中,每一链表节点中存储的统计信息为:已获得报文中属性信息为该链表节点所存储属性信息的报文数量;若为否,根据所述第一存储位置,创建链表节点,将所获得的属性信息存储至所创建链表节点,并更新所创建链表节点中存储的统计信息。第二方面,本申请实施例提供了一种信息存储装置,所述装置包括:信息获得模块,用于获得报文,并获得所述报文的属性信息;哈希值计算模块,用于对所获得属性信息对应的字符串进行连接,形成新字符串,并对所述新字符串进行哈希计算,得到第一哈希值;位置确定模块,用于根据所述第一哈希值和预设哈希链表的大小,确定所获得属性信息在所述预设哈希链表中的存储位置,作为第一存储位置,其中,所述预设哈希链表的大小为素数;节点判断模块,用于判断所述第一存储位置处是否存在存储有所获得属性信息的第一链表节点,若为是,触发信息更新模块,若为否,触发节点创建模块;所述信息更新模块,用于更新所述第一链表节点中存储的统计信息,其中,每一链表节点中存储的统计信息为:已获得报文中属性信息为该链表节点所存储属性信息的报文数量;所述节点创建模块,用于根据所述第一存储位置,创建链表节点;第一信息存储模块,用于将所获得的属性信息存储至所创建链表节点,并更新所创建链表节点中存储的统计信息。第三方面,本申请实施例提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现本申请实施例所述的信息存储方法步骤。第四方面,本申请实施例提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现本申请实施例所述的信息存储方法步骤。由以上可见,本申请实施例提供的方案中,在获得报文后,获得报文的属性信息,对所获得属性信息对应的字符串进行连接,形成新字符串,并对新字符串进行哈希计算,得到第一哈希值,根据第一哈希值和预设哈希链表的大小,确定所获得属性信息在预设哈希链表中的第一存储位置,当第一存储位置处存在存储有所获得属性信息的第一链表节点时,更新第一链表节点中存储的统计信息,在第一存储位置处不存在第一链表节点时,根据第一存储位置创建链表节点,将所获得的属性信息存储至所创建链表节点,并更新所创建链表节点中存储的统计信息。因此,若采用上述预设哈希链表构建流表,则应用本申请实施例提供的方案能够在流表中实现信息存储;又由于基于报文的属性信息对应的字符串连接而形成的新字符串计算哈希值时,计算得到的哈希值能够反映报文的每一属性信息的变化,另外,预设哈希链表的大小为素数,而素数除了1和它本身以外不具有其他因数,因此应用本申请实施例提供的方案存储报文的属性信息时,能够得到较为离散的哈希值,进而能够提高流量探针的吞吐性能。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的第一种信息存储方法的流程示意图;图2为本申请实施例提供的第二种信息存储方法的流程示意图;图3为本申请实施例提供的第三种信息存储方法的流程示意图;图4为本申请实施例提供的一种信息存储装置的结构示意图;图5为本申请实施例提供的一种电子设备的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。由于现有技术中,可以采用流量探针实现流量跟踪,但这一方式中需要采用流表来跟踪和维护网络流的统计信息,为此,本申请实施例提供了一种信息存储方法,以在流量中实现信息存储。本申请的一个实施例中,提供了一种信息存储方法,该方法包括:获得报文,并获得报文的属性信息;对所获得属性信息对应的字符串进行连接,形成新字符串,并对新字符串进行哈希计算,得到第一哈希值;根据第一哈希值和预设哈希链表的大小,确定所获得属性信息在预设哈希链表中的存储位置,作为第一存储位置,其中,预设哈希链表的大小为素数;判断第一存储位置处是否存在存储有所获得属性信息的第一链表节点;若为是,更新第一链表节点中存储的统计信息,其中,每一链表节点中存储的统计信息为:已获得报文中属性信息为该链表节点所存储属性信息的报文数量;若为否,根据第一存储位置,创建链表节点,将所获得的属性信息存储至所创建链表节点,并更新所创建链表节点中存储的统计信息。由以上可见,若采用上述预设哈希链表构建流表,则应用本实施例提供的方案能够在流表中实现信息存储;又由于基于报文的属性信息对应的字符串连接而形成的新字符串计算哈希值时,计算得到的哈希值能够反映报文的每一属性信息的变化,另外,预设哈希链表的大小为素数,而素数除了1和它本身以外不具有其他因数,因此应用本实施例提供的方案存储报文的属性信息时,能够得到较为离散的哈希值,进而能够提高流量探针的吞吐性能。下面通过具体实施例对本申请实施例提供的信息存储方法进行详细说明。图1为本申请实施例提供的第一种信息存储方法的流程示意图,该方法包括:S101:获得报文,并获得报文的属性信息。上述报文的属性信息可以包括报文的五元组信息或者七元组信息。一个实施例中,获得报文后,可以从报文中提取五元组包括的信息:源IP(InternetProtocol,网络之间互连的协议)地址、源端口号、目的IP本文档来自技高网...

【技术保护点】
1.一种信息存储方法,其特征在于,所述方法包括:获得报文,并获得所述报文的属性信息;对所获得属性信息对应的字符串进行连接,形成新字符串,并对所述新字符串进行哈希计算,得到第一哈希值;根据所述第一哈希值和预设哈希链表的大小,确定所获得属性信息在所述预设哈希链表中的存储位置,作为第一存储位置,其中,所述预设哈希链表的大小为素数;判断所述第一存储位置处是否存在存储有所获得属性信息的第一链表节点;若为是,更新所述第一链表节点中存储的统计信息,其中,每一链表节点中存储的统计信息为:已获得报文中属性信息为该链表节点所存储属性信息的报文数量;若为否,根据所述第一存储位置,创建链表节点,将所获得的属性信息存储至所创建链表节点,并更新所创建链表节点中存储的统计信息。

【技术特征摘要】
1.一种信息存储方法,其特征在于,所述方法包括:获得报文,并获得所述报文的属性信息;对所获得属性信息对应的字符串进行连接,形成新字符串,并对所述新字符串进行哈希计算,得到第一哈希值;根据所述第一哈希值和预设哈希链表的大小,确定所获得属性信息在所述预设哈希链表中的存储位置,作为第一存储位置,其中,所述预设哈希链表的大小为素数;判断所述第一存储位置处是否存在存储有所获得属性信息的第一链表节点;若为是,更新所述第一链表节点中存储的统计信息,其中,每一链表节点中存储的统计信息为:已获得报文中属性信息为该链表节点所存储属性信息的报文数量;若为否,根据所述第一存储位置,创建链表节点,将所获得的属性信息存储至所创建链表节点,并更新所创建链表节点中存储的统计信息。2.根据权利要求1所述的方法,其特征在于,所述对所述新字符串进行哈希计算,得到哈希值,包括:采用BKDR算法对所述新字符串进行哈希计算,得到第一哈希值。3.根据权利要求1或2所述的方法,其特征在于,所述预设哈希链表为一级哈希链表;所述判断所述第一存储位置处是否存在存储有所获得属性信息的第一链表节点,包括:判断所述第一存储位置处是否存在二级哈希链表;若存在二级哈希链表,判断所述第一存储位置处的二级哈希链表中是否存在存储有所获得属性信息的第一链表节点;若存在所述第一链表节点,判定所述第一存储位置处存在所述第一链表节点;若不存在所述第一链表节点,判定所述第一存储位置处不存在所述第一链表节点,并在所述二级哈希链表的第二存储位置处创建链表节点,将所获得的属性信息存储至所创建链表节点,并更新所创建链表节点中存储的统计信息,其中,所述第二存储位置为:根据所获得属性信息的哈希值和二级哈希链表的大小计算的二级哈希链表中用于存储所获得属性信息的位置;若不存在二级哈希链表,判定所述第一存储位置处不存在所述第一链表节点。4.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一存储位置,创建链表节点,包括:在不满足预设的二级哈希链表创建条件的情况下,在所述第一存储位置处创建链表节点;在满足预设的二级哈希链表创建条件的情况下,在所述第一存储位置处创建二级哈希链表,并根据所获得属性信息的哈希值和二级哈希链表的大小,在第二存储位置处创建链表节点;其中,所述第二存储位置为:根据所获得属性信息的哈希值和二级哈希链表的大小计算的二级哈希链表中用于存储所获得属性信息的位置。5.根据权利要求4所述的方法,其特征在于,所述预设的二级哈希链表创建条件为:所述第一存储位置处的链表节点数量大于预设阈值。6.根据权利要求5所述的方法,其特征在于,在所述第一存储位置处创建链表节点后,还包括:判断是否满足所述预设的二级哈希链表创建条件;若满足,在所述第一存储位置处创建二级哈希链表;根据创建于所述第一存储位置处的链表节点中存储的属性信息的哈希值和二级哈希链表的大小,将创建于所述第一存储位置处的链表节点中存储的属性信息存储至二级哈希链表中的链表节点中;从所述第一存储位置处,删除属性信息已存储至二级哈希链表的链表节点。7.一种信息存储装置,其特征在于,所述装置包括:信息获得模块,用于获得报文,并获得所述报文的属性信息;哈希值计算模块,用于对所获得属性信息对应的字符串进行连接,形成新字符串,并对所述新字符串进行哈希计算,得到第一哈希值;位置确定模块,用于根据所述第一哈希值和预设哈希链表的大小,确定所获得属性信息在所述预设哈希链表中的存储位置,作为第一存储位置,其中,所述预设哈希链表的...

【专利技术属性】
技术研发人员:赵志伟
申请(专利权)人:新华三信息安全技术有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1