首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 系统软件 / 操作系统 / 内核 / 基于哈希算法的千万级网络会话表管理方法、系统、介质和设备

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

阅读:1发布:2020-09-24

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

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任一项所述的基于哈希算法的千万级网络会话表管理方法。

说明书全文

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

设备

技术领域

[0001] 本发明涉及一种网络会话管理方法,尤其是一种基于哈希算法的千万级网络会话表管理方法、系统、介质和设备

背景技术

[0002] 一般的网络分析系统,对于会话的管理,通常使用线性链表、动态分配的方法,在数据包到来时,通过顺序查找或二分查找方法,确定会话链表中是否存在对应的会话,如果不存在,则动态分配内存用于创建新的会话。在会话老化时(正常结束或超时),则通过定链表,将会话记录删除,再释放链表锁。
[0003] 这种会话管理方式,可适应网络流量不大的场景。但对于网络规模大的环境,由于会话内存管理、查找方式性能不高,会导致数据包来不及处理产生丢弃的问题。因此,为了实时快速定位某一个数据包对应的会话,并对会话信息进行更新,需要设计一种能支持千万会话表的管理方法,包括会话的创建、查找、删除。

发明内容

[0004] 本发明的第一个目的是为了解决上述现有技术缺陷,提供了一种基于哈希算法的千万级网络会话表管理方法,该方法能支持千万会话的高性能的会话表管理,可以实时快速定位某一个数据包对应的会话,从而实现包括会话的创建、查找、删除等关键操作。
[0005] 本发明的第二个目的在于提供一种基于哈希算法的千万级网络会话表管理系统。
[0006] 本发明的第三个目的在于提供一种存储介质。
[0007] 本发明的第四个目的在于提供一种计算设备。
[0008] 本发明的第一个目的可以通过采取如下技术方案达到:
[0009] 基于哈希算法的千万级网络会话表管理方法,所述方法包括:
[0010] 基于预分配的会话表内存管理;
[0011] 根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化;
[0012] 将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置
[0013] 当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用;
[0014] 基于哈希算法的会话定位;
[0015] 当采集到某一数据包时,判断此数据包对应的会话是否已创建;
[0016] 如果已创建,则直接更新已有会话的状态信息;如果没有创建,则进行会话的创建工作,再记录会话状态信息;
[0017] 通过5元组信息确定不同的会话,并将数据包与会话进行关联;
[0018] 通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而用于快速定位到会话表位置。
[0019] 作为优选的技术方案,所述根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化的步骤中,所述会话表容量=会话数*单个会话大小。
[0020] 作为优选的技术方案,所述会话节点的偏移位置是指:
[0021] 会话表的开始位置加上会话节点的偏移位置,即为可用的会话节点;
[0022] 所述偏移位置为会话节点大小乘于其序号,通过会话表起始内存地址加上该偏移值即为该会话节点的内存地址。
[0023] 作为优选的技术方案,所述判断此数据包对应的会话是否已创建的步骤中,判断方法如下:
[0024] 根据五元组的哈希计算出哈希值,然后利用哈希查找算法判断改哈希值是否已经存在哈希表中,如果存在则会话存在,反之则不存在。
[0025] 作为优选的技术方案,所述将数据包与5元组进行关联的步骤中,关联方法具体为:
[0026] 在会话单元中记录一个链表,把当前会话的相关数据包的存储位置都记录保存到链表中。
[0027] 作为优选的技术方案,5元组的组合顺序为:
[0028] min(源IP,目的IP),max(源IP,目的IP),min(源端口,目的端口),max(源端口,目的端口),协议号(1/6/17);通过上述组合,都得到相同的组合数值。
[0029] 作为优选的技术方案,对于5元组组合得到的组合数值,通过哈希函数转换,得到对应的哈希值,将此哈希值作为会话哈希链表主键,,所述哈希函数是基于Linux内核的jhash函数。
[0030] 本发明的第二个目的可以通过采取如下技术方案达到:
[0031] 基于哈希算法的千万级网络会话表管理系统,所述系统包括:
[0032] 会话表内存管理模,用于对基于预分配的会话表进行内存空间分配以及会话表的管理,所述会话表内存管理模块包括:内存空间分配模块、节点链表生成模块以及第一操作模块;
[0033] 所述内存空间分配模块,用于根据预先设置的会话表容量,预先分配连续的全部内存空间,并进行初始化;
[0034] 所述节点链表生成模块,用于将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置;
[0035] 所述第一操作模块,用于当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用;
[0036] 会话定位模块,用于基于哈希算法对会话进行定位;所述会话定位模块包括:判断模块、关联模块以及第二操作模块;
[0037] 所述判断模块,用于当采集到某一数据包时,判断此数据包对应的会话是否已创建;
[0038] 所述关联模块,用于通过5元组信息确定不同的会话,并将数据包与会话进行关联;
[0039] 所述第二操作模块,用于通过对5元组信息进行组合、转换,最终形成一个32位的数值化特征,并基于此特征进行哈希值计算,作为会话哈希链表主键,从而可用于快速定位到会话表位置。
[0040] 本发明的第三个目的可以通过采取如下技术方案达到:
[0041] 存储介质,存储有程序,所述程序被处理器执行时,实现上述的基于哈希算法的千万级网络会话表管理方法。
[0042] 本发明的第四个目的可以通过采取如下技术方案达到:
[0043] 计算设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现上述的基于哈希算法的千万级网络会话表管理方法。
[0044] 本发明相对于现有技术具有如下的有益效果:
[0045] 1、本发明在进行会话表预分配时,根据预先设置的会话表容量,预先分配连续的全部内存空间,并将可用的会话表单元,形成一个可用的节点链表,所述节点链表包括了会话节点的偏移位置;当会话表单元删除时,不释放节点内存给操作系统,重新进入可用节点链表,供新会话使用,通过上述机制,最大程度减少了分配内存带来的系统开销;在进行哈希算法定位时,利用5元组将数据包与会话进行关联,并将5元组进行组合转换,处理后的特征值作为哈希表主键,从而实现高速的会话查找。
[0046] 2、本发明5元组的组合顺序是:min(源IP,目的IP),max(源IP,目的IP),min(源端口,目的端口),max(源端口,目的端口),协议号(1/6/17),按照该种顺序进行组合,可以保证同一个会话的双向通信的数据包(IP、端口位置相反),都得到相同的组合数值。
[0047] 3、通过综合使用预分配会话内存空间、基于5元组的会话哈希查找算法,对比一般的会话表管理方法,具有更高的性能,能不丢包支持千万级别会话的高性能的会话表管理,可以实时快速定位某一个数据包对应的会话,从而实现包括会话的创建、查找、删除等关键操作。附图说明
[0048] 图1为本发明实施例1的基于哈希算法的千万级网络会话表管理方法的流程图
[0049] 图2为本发明实施例2的基于哈希算法的千万级网络会话表管理方法的结构方框图

具体实施方式

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

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈