CN109634966A - 基于哈希算法的千万级网络会话表管理方法、系统、介质和设备 - Google Patents

基于哈希算法的千万级网络会话表管理方法、系统、介质和设备 Download PDF

Info

Publication number
CN109634966A
CN109634966A CN201811543994.6A CN201811543994A CN109634966A CN 109634966 A CN109634966 A CN 109634966A CN 201811543994 A CN201811543994 A CN 201811543994A CN 109634966 A CN109634966 A CN 109634966A
Authority
CN
China
Prior art keywords
session
node
list
data packet
hash
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.)
Pending
Application number
CN201811543994.6A
Other languages
English (en)
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.)
Guangzhou Tianmao Ltd By Share Ltd Information System
Original Assignee
Guangzhou Tianmao Ltd By Share Ltd Information System
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 Guangzhou Tianmao Ltd By Share Ltd Information System filed Critical Guangzhou Tianmao Ltd By Share Ltd Information System
Priority to CN201811543994.6A priority Critical patent/CN109634966A/zh
Publication of CN109634966A publication Critical patent/CN109634966A/zh
Pending legal-status Critical Current

Links

Abstract

本发明公开了一种基于哈希算法的千万级网络会话表管理方法、系统、介质和设备,所述方法包括:根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化;将可用的会话表单元,形成一个可用的节点链表;当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用;当采集到某一数据包时,判断此数据包对应的会话是否已创建;通过5元组信息确定不同的会话,并将数据包与会话进行关联;通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而用于快速定位到会话表位置。本发明能实时快速定位某一个数据包对应的会话,并对会话信息进行更新。

Description

基于哈希算法的千万级网络会话表管理方法、系统、介质和 设备
技术领域
本发明涉及一种网络会话管理方法,尤其是一种基于哈希算法的千万级网络会话表管理方法、系统、介质和设备。
背景技术
一般的网络分析系统,对于会话的管理,通常使用线性链表、动态分配的方法,在数据包到来时,通过顺序查找或二分查找方法,确定会话链表中是否存在对应的会话,如果不存在,则动态分配内存用于创建新的会话。在会话老化时(正常结束或超时),则通过锁定链表,将会话记录删除,再释放链表锁。
这种会话管理方式,可适应网络流量不大的场景。但对于网络规模大的环境,由于会话内存管理、查找方式性能不高,会导致数据包来不及处理产生丢弃的问题。因此,为了实时快速定位某一个数据包对应的会话,并对会话信息进行更新,需要设计一种能支持千万会话表的管理方法,包括会话的创建、查找、删除。
发明内容
本发明的第一个目的是为了解决上述现有技术的缺陷,提供了一种基于哈希算法的千万级网络会话表管理方法,该方法能支持千万会话的高性能的会话表管理,可以实时快速定位某一个数据包对应的会话,从而实现包括会话的创建、查找、删除等关键操作。
本发明的第二个目的在于提供一种基于哈希算法的千万级网络会话表管理系统。
本发明的第三个目的在于提供一种存储介质。
本发明的第四个目的在于提供一种计算设备。
本发明的第一个目的可以通过采取如下技术方案达到:
基于哈希算法的千万级网络会话表管理方法,所述方法包括:
基于预分配的会话表内存管理;
根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化;
将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置;
当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用;
基于哈希算法的会话定位;
当采集到某一数据包时,判断此数据包对应的会话是否已创建;
如果已创建,则直接更新已有会话的状态信息;如果没有创建,则进行会话的创建工作,再记录会话状态信息;
通过5元组信息确定不同的会话,并将数据包与会话进行关联;
通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而用于快速定位到会话表位置。
作为优选的技术方案,所述根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化的步骤中,所述会话表容量=会话数*单个会话大小。
作为优选的技术方案,所述会话节点的偏移位置是指:
会话表的开始位置加上会话节点的偏移位置,即为可用的会话节点;
所述偏移位置为会话节点大小乘于其序号,通过会话表起始内存地址加上该偏移值即为该会话节点的内存地址。
作为优选的技术方案,所述判断此数据包对应的会话是否已创建的步骤中,判断方法如下:
根据五元组的哈希计算出哈希值,然后利用哈希查找算法判断改哈希值是否已经存在哈希表中,如果存在则会话存在,反之则不存在。
作为优选的技术方案,所述将数据包与5元组进行关联的步骤中,关联方法具体为:
在会话单元中记录一个链表,把当前会话的相关数据包的存储位置都记录保存到链表中。
作为优选的技术方案,5元组的组合顺序为:
min(源IP,目的IP),max(源IP,目的IP),min(源端口,目的端口),max(源端口,目的端口),协议号(1/6/17);通过上述组合,都得到相同的组合数值。
作为优选的技术方案,对于5元组组合得到的组合数值,通过哈希函数转换,得到对应的哈希值,将此哈希值作为会话哈希链表主键,,所述哈希函数是基于Linux内核的jhash函数。
本发明的第二个目的可以通过采取如下技术方案达到:
基于哈希算法的千万级网络会话表管理系统,所述系统包括:
会话表内存管理模块,用于对基于预分配的会话表进行内存空间分配以及会话表的管理,所述会话表内存管理模块包括:内存空间分配模块、节点链表生成模块以及第一操作模块;
所述内存空间分配模块,用于根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化;
所述节点链表生成模块,用于将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置;
所述第一操作模块,用于当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用;
会话定位模块,用于基于哈希算法对会话进行定位;所述会话定位模块包括:判断模块、关联模块以及第二操作模块;
所述判断模块,用于当采集到某一数据包时,判断此数据包对应的会话是否已创建;
所述关联模块,用于通过5元组信息确定不同的会话,并将数据包与会话进行关联;
所述第二操作模块,用于通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而可用于快速定位到会话表位置。
本发明的第三个目的可以通过采取如下技术方案达到:
存储介质,存储有程序,所述程序被处理器执行时,实现上述的基于哈希算法的千万级网络会话表管理方法。
本发明的第四个目的可以通过采取如下技术方案达到:
计算设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现上述的基于哈希算法的千万级网络会话表管理方法。
本发明相对于现有技术具有如下的有益效果:
1、本发明在进行会话表预分配时,根据预先设置的会话表容量,预先分配连续的全部内存空间,并将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置;当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用,通过上述机制,最大程度减少了分配内存带来的系统开销;在进行哈希算法定位时,利用5元组将数据包与会话进行关联,并将5元组进行组合转换,处理后的特征值作为哈希表主键,从而实现高速的会话查找。
2、本发明5元组的组合顺序是:min(源IP,目的IP),max(源IP,目的IP),min(源端口,目的端口),max(源端口,目的端口),协议号(1/6/17),按照该种顺序进行组合,可以保证同一个会话的双向通信的数据包(IP、端口位置相反),都得到相同的组合数值。
3、通过综合使用预分配会话内存空间、基于5元组的会话哈希查找算法,对比一般的会话表管理方法,具有更高的性能,能不丢包支持千万级别会话的高性能的会话表管理,可以实时快速定位某一个数据包对应的会话,从而实现包括会话的创建、查找、删除等关键操作。
附图说明
图1为本发明实施例1的基于哈希算法的千万级网络会话表管理方法的流程图。
图2为本发明实施例2的基于哈希算法的千万级网络会话表管理方法的结构方框图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1:
在企业环境里,可以通过交换机镜像流量,将全网流量集中进行分析,但会产生大量的会话(如果数据包的源IP、目的IP、源端口、目的端口、协议类型相同,则认为属于同一个会话),可达千万级别。
因此,本实施例提供了一种基于哈希算法的千万级网络会话表管理方法,该方法可以实时快速定位某一个数据包对应的会话,并对会话信息进行更新,同时该方法能支持千万会话表的管理,包括会话的创建、查找、删除。
如图1所示,本实施例的基于哈希算法的千万级网络会话表管理方法包括:基于预分配的会话表内存管理和基于哈希算法的会话定位这两大步骤。
在基于预分配的会话表内存管理的步骤中,具体为:
S101、根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化;
该步骤S101进行预分配是为了减少动态分配内存带来的系统开销,从而提高会话创建性能,在预先设置的会话表中,该会话表的容量为会话数*单个会话大小,通过预先设置的容量,进而为会话表分配连续的存储空间;注意在分配内存空间时,需要在某段内存空间中进行连续分配,如果是有间断的,则无法完成会话表的管理。
S102、将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置(会话表开始位置+偏移位置,即时可用的会话节点);
S103、当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用;通过上述机制,最大程度减少了分配内存带来的系统开销。
在基于哈希算法的会话定位的步骤中,具体为:
S104、当采集到某一数据包时,判断此数据包对应的会话是否已创建;
如果已创建,则直接更新已有会话的状态信息;如果没有创建,则进行会话的创建工作,再记录会话状态信息;
判断此数据包对应的会话是否已创建的具体步骤为:根据标准IP协议提取出五元组形成key值;通过哈希查找算法查找出当前哈希表中是否已经存在改key值,若存在则会话已经创建。
S105、通过5元组信息确定不同的会话,并将数据包与会话进行关联;由于每个数据包都包括了5元组(源地址、目的地址、源端口、目的端口、协议)信息,而5元组信息也可以确定不同的会话,所以可以根据5元组,将数据包与会话关联起来。关联的具体步骤为:
在会话单元中记录一个链表,把当前会话的相关数据包的存储位置都记录保存到链表中。
S106、通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而用于快速定位到会话表位置。
为了实现高性能的会话查找,本方法通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而用于快速定位到会话表位置。
5元组的组合顺序是:min(源IP,目的IP),max(源IP,目的IP),min(源端口,目的端口),max(源端口,目的端口),协议号(1/6/17)。这种顺序,可以保证同一个会话的双向通信的数据包(IP、端口位置相反),都得到相同的组合数值(128位)。这个128位的数值,再通过一个哈希函数(基于Linux内核的jhash函数,这个函数的hash冲突较少及具有良好的性能)转换,得到32位的哈希值,作为会话哈希链表主键。
下面以一个具体的实施方式进行进一步的说明:
高性能会话表管理方法主要包括:
1、基于预分配的会话表内存管理
为了减少动态分配内存带来的系统开销,从而提高会话创建性能,本方法根据预先设置的会话表容量(会话数*单个会话大小),预先分配连续的全部内存空间,并进行初始化。可用的会话表单元,形成一个可用节点链表,链表包括了会话节点的偏移位置(会话表开始位置+偏移位置,即时可用的会话节点)。当会话表删除时,节点内存不会释放给操作系统,而是重新进入可用节点链表,可供新会话使用。通过上述机制,最大程度减少了分配内存带来的系统开销。
2、基于哈希算法的会话定位
采集到一个数据包时,需要快速判断此数据包对应的会话是否已经创建。如果创建了,直接更新已有会话的状态信息;如果没有查找到会话,则需要进行会话创建工作,再记录会话状态信息。
由于每个数据包都包括了5元组(源地址、目的地址、源端口、目的端口、协议)信息,而5元组信息也可以确定不同的会话,所以可以根据5元组,将数据包与会话关联起来。
为了实现高性能的会话查找,本方法通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而用于快速定位到会话表位置。
5元组的组合顺序是:min(源IP,目的IP),max(源IP,目的IP),min(源端口,目的端口),max(源端口,目的端口),协议号(1/6/17)。这种顺序,可以保证同一个会话的双向通信的数据包(IP、端口位置相反),都得到相同的组合数值(128位)。这个128位的数值,再通过一个哈希函数(基于Linux内核的jhash函数)转换,得到32位的哈希值,作为会话环行链表主键。
进行会话定位的步骤如下:
(1)设置系统大内存页。在虚拟内存管理中,内核维护着一个将虚拟内存地址映射到物理地址的表,对于每个页面操作,内核都需要做一次物理映射。默认内存页大小一般为4k,而要维护千万级别需要大量内存,页数非常巨大,导致内核频繁映射大量的页,使得性能降低,设置大内存页后,系统具只需要处理较少的页面映射表,提高性能。
(2)设置的会话表容量(会话数*单个会话大小),使用mmap内存映射方式向系统申请在最大会话数情况下会话表所需要的连续内存。将申请的内存按每个会话所需大小均分别建立内存索引,形成一个可用节点链表。建立大小不小于最大会话数哈希表,使用mmap内存映射方式向系统申请在最大会话数情况下哈希表所需要的连续内存。由于每次向系统申请内存都要消耗系统性能,在千万级会话情况下,如果使用常规方式每建立一个会话申请,一次内存则会产生巨大的系统性能开销,一次申请足够的内存,然后程序自己管理,能够最大程度减少了分配内存带来的系统开销。
(3)采集icmp/tcp/udp数据包,提取出五元组信息并按min(源IP,目的IP),max(源IP,目的IP),min(源端口,目的端口),max(源端口,目的端口),协议号(1/6/17)方式排序放到字节数组中,形成哈希查找的key
(4)将哈希查找的key通过一个哈希函数(基于Linux内核的jhash函数)转换,得到32位的哈希值,将哈希值与最大会话数进行与位运算得到哈希表索引。
(5)如果在哈希表索引位置的哈希表节点下的会话链表没有一致key则从会话表和中取出一个可用节点创建新会话并关联到该哈希节点。
(6)找到会话节点后再节点更新会话状态信息,进行当前会话管理。
(7)当会话结束后,从对应哈希索引下的哈希节点链表中删除该会话的哈希节点,然后将会话节点初始化并分别放回会话可用节点中
(8)可用会话节点管理使用索引环方式,在索引环中读取的位置到存入的位置之间的区域都是可用会话节点的索引位置,环的长度和总会话节点数一致。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
实施例2:
如图2所示,本实施例提供了一种基于哈希算法的千万级网络会话表管理系统,该系统包括:会话表内存管理模块1和会话定位模块2;
所述会话表内存管理模块1用于对基于预分配的会话表进行内存空间分配以及绘画表的管理,包括:内存空间分配模块11、节点链表生成模块12以及第一操作模块13;
所述内存空间分配模块11,用于根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化;
所述节点链表生成模块12,用于将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置;
所述第一操作模块13,用于当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用。
所述会话定位模块2用于基于哈希算法对会话进行定位,包括:判断模块21、关联模块22以及第二操作模块23;
所述判断模块21,用于当采集到某一数据包时,判断此数据包对应的会话是否已创建;
所述关联模块22,用于通过5元组信息确定不同的会话,并将数据包与会话进行关联;
所述第二操作模块23,用于通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而用于快速定位到会话表位置。
在此需要说明的是,上述实施例提供的系统仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
可以理解,上述实施例的机器人系统所使用的术语“第一”、“第二”等可用于描述各种模块,但这些模块不受这些术语限制。这些术语仅用于将第一个模块与另一个模块区分。举例来说,在不脱离本发明的范围的情况下,可以将第一操作模块称为第二操作模块,且类似地,可将第二操作模块称为第一操作模块,第一操作模块和第二操作模块两者都是操作模块,但其不是同一操作模块。
实施例3:
本实施例提供了一种存储介质,该存储介质存储有一个或多个程序,所述程序被处理器执行时,实现上述实施例1的基于哈希算法的千万级网络会话表管理方法,如下:
基于预分配的会话表内存管理;
根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化;
将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置;
当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用;
基于哈希算法的会话定位;
当采集到某一数据包时,判断此数据包对应的会话是否已创建;
如果已创建,则直接更新已有会话的状态信息;如果没有创建,则进行会话的创建工作,再记录会话状态信息;
通过5元组信息确定不同的会话,并将数据包与会话进行关联;
通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而用于快速定位到会话表位置。
本实施例中所述的存储介质可以是ROM、RAM、磁盘、光盘等介质。
实施例4:
本实施例提供了一种计算设备,该计算设备包括处理器和存储器,存储器存储有一个或多个程序,处理器执行存储器存储的程序时,实现上述实施例1的基于哈希算法的千万级网络会话表管理方法,如下:
基于预分配的会话表内存管理;
根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化;
将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置;
当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用;
基于哈希算法的会话定位;
当采集到某一数据包时,判断此数据包对应的会话是否已创建;
如果已创建,则直接更新已有会话的状态信息;如果没有创建,则进行会话的创建工作,再记录会话状态信息;
通过5元组信息确定不同的会话,并将数据包与会话进行关联;
通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而用于快速定位到会话表位置。
本实施例中所述的计算设备可以是台式电脑、笔记本电脑、智能手机、PDA手持终端、平板电脑或其他具有显示功能的终端设备。
综上所述,本发明在进行会话表预分配时,根据预先设置的会话表容量,预先分配连续的全部内存空间,并将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置;当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用,通过上述机制,最大程度减少了分配内存带来的系统开销;在进行哈希算法定位时,利用5元组将数据包与会话进行关联,并将5元组进行组合转换,处理后的特征值作为哈希表主键,从而实现高速的会话查找。
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明构思加以等同替换或改变,都属于本发明专利的保护范围。

Claims (10)

1.基于哈希算法的千万级网络会话表管理方法,其特征在于:所述方法包括:
基于预分配的会话表内存管理;
根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化;
将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置;
当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用;
基于哈希算法的会话定位;
当采集到某一数据包时,判断此数据包对应的会话是否已创建;
如果已创建,则直接更新已有会话的状态信息;如果没有创建,则进行会话的创建工作,再记录会话状态信息;
通过5元组信息确定不同的会话,并将数据包与会话进行关联;
通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而用于快速定位到会话表位置。
2.根据权利要求1所述基于哈希算法的千万级网络会话表管理方法,其特征在于:所述根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化的步骤中,所述会话表容量=会话数*单个会话大小。
3.根据权利要求1所述基于哈希算法的千万级网络会话表管理方法,其特征在于:所述会话节点的偏移位置是指:
会话表的开始位置加上会话节点的偏移位置,即为可用的会话节点;
所述偏移位置为会话节点大小乘于其序号,通过会话表起始内存地址加上该偏移值即为该会话节点的内存地址。
4.根据权利要求1所述基于哈希算法的千万级网络会话表管理方法,其特征在于:所述判断此数据包对应的会话是否已创建的步骤中,判断方法如下:
根据五元组的哈希计算出哈希值,然后利用哈希查找算法判断改哈希值是否已经存在哈希表中,如果存在则会话存在,反之则不存在。
5.根据权利要求1所述基于哈希算法的千万级网络会话表管理方法,其特征在于:所述将数据包与5元组进行关联的步骤中,关联方法具体为:
在会话单元中记录一个链表,把当前会话的相关数据包的存储位置都记录保存到链表中。
6.根据权利要求1所述基于哈希算法的千万级网络会话表管理方法,其特征在于:5元组的组合顺序为:
min(源IP,目的IP),max(源IP,目的IP),min(源端口,目的端口),max(源端口,目的端口),协议号(1/6/17);通过上述组合,都得到相同的组合数值。
7.根据权利要求6所述基于哈希算法的千万级网络会话表管理方法,其特征在于:对于5元组组合得到的组合数值,通过哈希函数转换,得到对应的哈希值,将此哈希值作为会话哈希链表主键,所述哈希函数是基于Linux内核的jhash函数。
8.基于哈希算法的千万级网络会话表管理系统,其特征在于:所述系统包括:
会话表内存管理模块,用于对基于预分配的会话表进行内存空间分配以及会话表的管理,所述会话表内存管理模块包括:内存空间分配模块、节点链表生成模块以及第一操作模块;
所述内存空间分配模块,用于根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化;
所述节点链表生成模块,用于将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置;
所述第一操作模块,用于当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用;
会话定位模块,用于基于哈希算法对会话进行定位;所述会话定位模块包括:判断模块、关联模块以及第二操作模块;
所述判断模块,用于当采集到某一数据包时,判断此数据包对应的会话是否已创建;
所述关联模块,用于通过5元组信息确定不同的会话,并将数据包与会话进行关联;
所述第二操作模块,用于通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而可用于快速定位到会话表位置。
9.存储介质,存储有程序,其特征在于:所述程序被处理器执行时,实现权利要求1-7任一项所述的基于哈希算法的千万级网络会话表管理方法。
10.计算设备,包括处理器以及用于存储处理器可执行程序的存储器,其特征在于:所述处理器执行存储器存储的程序时,实现权利要求1-7任一项所述的基于哈希算法的千万级网络会话表管理方法。
CN201811543994.6A 2018-12-17 2018-12-17 基于哈希算法的千万级网络会话表管理方法、系统、介质和设备 Pending CN109634966A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811543994.6A CN109634966A (zh) 2018-12-17 2018-12-17 基于哈希算法的千万级网络会话表管理方法、系统、介质和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811543994.6A CN109634966A (zh) 2018-12-17 2018-12-17 基于哈希算法的千万级网络会话表管理方法、系统、介质和设备

Publications (1)

Publication Number Publication Date
CN109634966A true CN109634966A (zh) 2019-04-16

Family

ID=66074762

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811543994.6A Pending CN109634966A (zh) 2018-12-17 2018-12-17 基于哈希算法的千万级网络会话表管理方法、系统、介质和设备

Country Status (1)

Country Link
CN (1) CN109634966A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111935060A (zh) * 2019-12-26 2020-11-13 长扬科技(北京)有限公司 一种网络通信会话聚合的方法
CN113411380A (zh) * 2021-06-01 2021-09-17 李远平 基于fpga可编程会话表的处理方法、逻辑电路和设备
CN113810392A (zh) * 2021-08-30 2021-12-17 武汉思普崚技术有限公司 一种海量数据的top排名方法、设备及存储介质
CN114221847A (zh) * 2021-12-10 2022-03-22 北京天融信网络安全技术有限公司 网络会话管理方法、装置及设备、存储介质
CN114301632A (zh) * 2021-12-02 2022-04-08 北京天融信网络安全技术有限公司 一种IPsec数据处理方法、终端及存储介质
CN114499889A (zh) * 2022-02-24 2022-05-13 成都北中网芯科技有限公司 一种适合网络处理芯片存储超大规格会话的方法
CN115378848A (zh) * 2022-08-16 2022-11-22 武汉思普崚技术有限公司 一种基于排序算法的流量统计方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127690A (zh) * 2006-08-17 2008-02-20 王玉鹏 一种下一代网络业务流量识别方法
CN102098288A (zh) * 2010-12-17 2011-06-15 天津曙光计算机产业有限公司 一种采用静态链表构造tcp节点池优化tcp连接管理的方法
US20140304499A1 (en) * 2013-04-06 2014-10-09 Citrix Systems, Inc. Systems and methods for ssl session management in a cluster system
CN106790556A (zh) * 2016-12-26 2017-05-31 深圳市风云实业有限公司 一种基于分布式系统的nat会话管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127690A (zh) * 2006-08-17 2008-02-20 王玉鹏 一种下一代网络业务流量识别方法
CN102098288A (zh) * 2010-12-17 2011-06-15 天津曙光计算机产业有限公司 一种采用静态链表构造tcp节点池优化tcp连接管理的方法
US20140304499A1 (en) * 2013-04-06 2014-10-09 Citrix Systems, Inc. Systems and methods for ssl session management in a cluster system
CN106790556A (zh) * 2016-12-26 2017-05-31 深圳市风云实业有限公司 一种基于分布式系统的nat会话管理方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111935060A (zh) * 2019-12-26 2020-11-13 长扬科技(北京)有限公司 一种网络通信会话聚合的方法
CN113411380A (zh) * 2021-06-01 2021-09-17 李远平 基于fpga可编程会话表的处理方法、逻辑电路和设备
CN113810392A (zh) * 2021-08-30 2021-12-17 武汉思普崚技术有限公司 一种海量数据的top排名方法、设备及存储介质
CN114301632A (zh) * 2021-12-02 2022-04-08 北京天融信网络安全技术有限公司 一种IPsec数据处理方法、终端及存储介质
CN114301632B (zh) * 2021-12-02 2023-11-10 北京天融信网络安全技术有限公司 一种IPsec数据处理方法、终端及存储介质
CN114221847A (zh) * 2021-12-10 2022-03-22 北京天融信网络安全技术有限公司 网络会话管理方法、装置及设备、存储介质
CN114221847B (zh) * 2021-12-10 2024-01-23 北京天融信网络安全技术有限公司 网络会话管理方法、装置及设备、存储介质
CN114499889A (zh) * 2022-02-24 2022-05-13 成都北中网芯科技有限公司 一种适合网络处理芯片存储超大规格会话的方法
CN114499889B (zh) * 2022-02-24 2023-06-30 成都北中网芯科技有限公司 一种适合网络处理芯片存储超大规格会话的方法
CN115378848A (zh) * 2022-08-16 2022-11-22 武汉思普崚技术有限公司 一种基于排序算法的流量统计方法及系统
CN115378848B (zh) * 2022-08-16 2024-03-22 武汉思普崚技术有限公司 一种基于排序算法的流量统计方法及系统

Similar Documents

Publication Publication Date Title
CN109634966A (zh) 基于哈希算法的千万级网络会话表管理方法、系统、介质和设备
CN105138592B (zh) 一种基于分布式架构的日志数据存储和检索方法
US8713182B2 (en) Selection of a suitable node to host a virtual machine in an environment containing a large number of nodes
CN106096023B (zh) 数据读取方法、数据写入方法及数据服务器
CN107079060A (zh) 用于运营商级nat优化的系统和方法
EP2352258A1 (en) Storage method and apparatus
CN105991660B (zh) 一种多云存储系统间资源共享的系统
US8271635B2 (en) Multi-tier, multi-state lookup
CN104182393A (zh) 基于hash表的关键字映射处理方法和装置
CN109271113B (zh) 一种基于云存储的数据管理系统及方法
CN102209019A (zh) 一种基于报文净荷的负载均衡方法和负载均衡设备
Hua et al. A multi-attribute data structure with parallel bloom filters for network services
CN104506460B (zh) 一种实现napt端口资源分配的方法
Hsieh et al. A classified multisuffix trie for IP lookup and update
US20230041395A1 (en) Method and Device for Processing Routing Table Entries
WO2017054469A1 (zh) 数据流的镜像处理方法及装置
CN112040029A (zh) Nat转换方法、装置、计算机设备及存储介质
CN107547690A (zh) Nat中的端口分配方法、装置、nat设备及存储介质
CN104539537B (zh) 一种路由查找方法和装置
CN105939404A (zh) Nat资源的获取方法及装置
CN103051544A (zh) 实现IPv4私网接入IPv6网络的方法及接入设备
CN107436848B (zh) 一种实现用户数据和压缩数据间转换的方法及装置
CN101420465A (zh) 在地址转换表中映射源端口的方法及网络地址转换设备
Liu et al. Towards in-network compact representation: Mergeable counting bloom filter vis cuckoo scheduling
WO2023036617A1 (en) Rlc channel management for low memory 5g devices

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190416