一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

会话检索方法、装置、设备及计算机可读存储介质与流程

2021-11-02 11:45:00 来源:中国专利 TAG:
会话检索方法、装置、设备及计算机可读存储介质与流程

本申请涉及通信技术领域,特别涉及一种会话检索方法、装置、设备及计算机可读存储介质。

背景技术

目前,由于IPv4协议的网络地址面临消耗殆尽、服务质量难以保证等制约性问题,而IPv6协议能够提供充足的网络地址和广阔的创新空间,因此,大力发展基于IPv6的下一代互联网,有助于显著提升互联网的承载能力和服务水平。

随着IPv6协议的普及与大规模部署,针对IPv6协议的会话管理需求也伴随而来。在IPv6协议部署进程中,原有的IPv4协议网络还在使用,这就对会话管理提出了新的要求,即,需要同时支持IPv4和IPv6双协议以及高性能的会话检索功能。

通常,会话检索是通过哈希散列技术进行快速检索,由于原有会话仅支持IPv4协议,为了兼容IPv6协议,第一种方案是使IPv6协议保持独立,以分别有IPv4会话表与IPv6会话表,但由于IPv4协议与IPv6协议各自有独立的会话表,这会导致会话规格下降,或者扩大内存占用。第二种方案是将IPv6协议与IPv4协议的会话进行融合,形成支持IPv4协议与IPv6协议的统一会话表,虽然该方案避免了第一种方案的缺陷,但由于融合成统一的会话表,当会话五元组哈希散列值冲突时,在冲突链上会存在IPv4协议和IPv6协议两种会话,这使得在进行会话检索时,存在会话检索延时增大的问题。



技术实现要素:

有鉴于此,本申请提供了一种会话检索方法、装置、设备及计算机可读存储介质,能够解决会话检索延时增大的问题。

具体地,本申请是通过如下技术方案实现的:

一种会话检索方法,包括:

获取目标报文,并生成所述目标报文的会话哈希值,作为目标哈希值;

确定目标索引冲突链,其中,所述目标索引冲突链包括会话哈希值为所述目标哈希值的至少一个会话的会话索引节点;

利用所述目标报文的会话指纹和网络层协议,遍历所述目标索引冲突链;

若遍历到目标索引节点,则从所述目标索引节点中提取会话索引值,其中,所述目标索引节点是所述目标索引冲突链中包含所述目标报文的会话指纹和网络层协议的会话索引节点;

若提取的会话索引值对应的会话结构所包含的会话要素,与所述目标报文的会话要素相匹配,则会话检索成功。

一种会话检索装置,包括:

哈希值生成单元,用于获取目标报文,并生成所述目标报文的会话哈希值,作为目标哈希值;

冲突链确定单元,用于确定目标索引冲突链,其中,所述目标索引冲突链包括会话哈希值为所述目标哈希值的至少一个会话的会话索引节点;

冲突链遍历单元,用于利用所述目标报文的会话指纹和网络层协议,遍历所述目标索引冲突链;

索引值提取单元,用于若遍历到目标索引节点,则从所述目标索引节点中提取会话索引值,其中,所述目标索引节点是所述目标索引冲突链中包含所述目标报文的会话指纹和网络层协议的会话索引节点;

会话要素匹配单元,用于若提取的会话索引值对应的会话结构所包含的会话要素,与所述目标报文的会话要素相匹配,则会话检索成功。

一种电子设备,包括:处理器、存储器;

所述存储器,用于存储计算机程序;

所述处理器,用于通过调用所述计算机程序,执行上述会话检索方法。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述会话检索方法。

在以上本申请提供的技术方案中,当生成目标报文的会话哈希值,并基于该会话哈希值找到目标索引冲突链后,若目标索引冲突链中同时涉及IPv4和IPv6协议的会话,则说明该目标会话冲突链上有冲突,要遍历目标索引冲突链,以从中找到目标报文所属会话对应的会话索引节点,即目标索引节点。本申请实施例在遍历目标索引冲突链时,仅需要比较目标索引冲突链中的各个会话索引节点的网络层协议字段,便可以将不涉及目标报文的网络层协议的会话排除掉,而无须访问被排除会话所对应的会话节点,从而减少了内存访问、降低了内存的cache miss,进而解决了现有技术中因IPv4协议与IPv6协议会话融合统一所带来的会话检索延时增大的问题。

附图说明

图1为本申请示出的一种会话检索方法的流程示意图;

图2为本申请示出的一种会话检索方法的另一流程示意图;

图3为本申请示出的一种会话检索装置的组成示意图;

图4为本申请示出的一种电子设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

为了解决因IPv4协议与IPv6协议会话融合统一所带来的会话检索延时增大的问题,本申请实施例提供了一种会话检索方法,这是一种IPv4/IPv6双栈会话索引检索方法。

参见图1,为本申请实施例提供的会话检索方法的流程示意图,该方法包括以下步骤S101-S105:

S101:获取目标报文,并生成目标报文的会话哈希值,作为目标哈希值。

在本申请实施例中,会话是指一个终端用户与交互系统进行通讯的过程,而目标报文可以是任一会话过程中产生的任一报文。

其中,会话由会话结构与会话索引结构表示。具体地,会话结构包含网络层协议、源IP地址、目的IP地址、源端口、目的端口、传输层协议等代表会话的要素;会话索引结构,即会话索引表,通常使用哈希表表示,哈希表的冲突链由多路静态的会话索引节点组成,每一个会话索引节点包含会话指纹、网络层协议、会话索引值、状态(状态分为空闲、使用)等信息。

在本申请实施例的一种实现方式中,S101中的“生成目标报文的会话哈希值”,可以包括:根据目标报文的会话五元组,生成目标报文的会话哈希值。

具体来讲,在会话检索过程中,当获取到目标报文后,提取该目标报文的会话基本要素,其中,会话基本要素包含网络层协议、源IP地址、目的IP地址、源端口、目的端口、传输层协议等要素信息。然后,根据目标报文的会话五元组(包括源IP地址、目的IP地址、源端口、目的端口、传输层协议)计算会话哈希值,为便于区分,将基于目标报文的会话五元组计算得到的会话哈希值,定义为目标哈希值。

S102:确定目标索引冲突链,其中,目标索引冲突链包括会话哈希值为目标哈希值的至少一个会话的会话索引节点。

在本申请实施例中,当计算得到目标报文的会话哈希值后,即得到目标哈希值后,可以通过该目标哈希值访问会话索引表对应的各个索引冲突链,找到会话哈希值为目标哈希值的索引冲突链,为便于区分,这里将找到的索引冲突链定义为目标索引冲突链。在目标索引冲突链中,其包括一个或多个已有会话各自对应的会话索引节点,且每个会话索引节点所对应会话的会话哈希值均相同。

举例说明,当会话表示为(源IP,源端口,目的IP,目的端口,协议)时,假设有IPv4会话A(1.1.1.1,1234,2.2.2.2,80,TCP)、IPv4会话B(1.1.1.1,5678,2.2.2.2,80,TCP)、IPv6会话C(1000::1,1234,2000::1,80,TCP)、以及IPv6会话C(1000::1,5678,2000::1,80,TCP),且假设会话A和会话C的会话哈希值均为H1,会话B的会话哈希值为H2,会话D的会话哈希值为H3。这样,会话A和会话C会被存储在会话哈希值为H1的会话索引冲突链1上,会话B存储在会话哈希值为H2的会话索引冲突链2上,会话D存储在会话哈希值为H3的会话索引冲突链3上。基于此,当目标报文的会话哈希值为H1时,则目标索引冲突链为会话哈希值为H1的会话索引冲突链1,类似的,当目标报文的会话哈希值为H2时,则目标索引冲突链为会话哈希值为H2的会话索引冲突链2,当目标报文的会话哈希值为H3时,则目标索引冲突链为会话哈希值为H3的会话索引冲突链3。

S103:利用目标报文的会话指纹和网络层协议,遍历目标索引冲突链。

其中,目标报文的会话指纹,可以根据目标报文的会话五元组(包括源IP地址、目的IP地址、源端口、目的端口、传输层协议)计算得到。

可以理解的是,由于目标报文的会话哈希值与目标索引冲突链的会话哈希值相同,均为目标哈希值,基于此,如果目标报文所属会话已经被创建,则目标索引冲突链中将包含目标报文所属会话对应的会话索引节点。

由于目标索引冲突链中可能仅涉及IPv4或IPv6协议的会话、也可能同时涉及IPv4和IPv6协议的会话,而目标报文的网络层协议是IPv4或IPv6,因此,当目标索引冲突链中仅涉及IPv4或IPv6协议的会话时,可以很快的检索到目标报文所属的会话。但是,当目标索引冲突链中同时涉及IPv4和IPv6协议的会话时,由于目标索引冲突链上有冲突,要遍历目标索引冲突链,在遍历目标索引冲突链时,仅需要比较目标索引冲突链中的各个会话索引节点的网络层协议字段,便可以将不涉及目标报文的网络层协议的会话排除掉,而无须访问被排除会话所对应的会话节点,从而减少了内存访问、降低了内存的cache miss,进而解决了现有技术中因IPv4协议与IPv6协议会话融合统一所带来的会话检索延时增大的问题。

举例说明,继续S102中的例子,会话B由于会话索引冲突链2没有冲突,会很快被检索到,同理,会话D由于会话索引冲突链3没有冲突,也会很快被检索到。但在检索会话A时,由于会话索引冲突链1上有冲突,要遍历会话索引冲突链1,在遍历会话索引冲突链1时,仅需要比较会话索引冲突链1中各个会话索引节点的网络协议字段,即可排除会话C,而无须访问会话C所对应的会话节点,减少了内存访问,降低了内存的cache miss。

在本申请实施例的一种实现方式中,S103中的“利用目标报文的会话指纹和网络层协议,遍历目标索引冲突链”,可以包括:依次遍历目标索引冲突链的各个会话索引节点;若当前遍历到的会话索引节点所包含的会话指纹和网络层协议,与目标报文的会话指纹和网络层协议不同,则继续遍历下一个会话索引节点;若当前遍历到的会话索引节点所包含的会话指纹和网络层协议,与目标报文的会话指纹和网络层协议相同,则将当前会话索引节点作为目标索引节点。

在本实现方式中,参见图2所示的会话检索方法的另一流程示意图,在步骤S1031-S1033中,按照一定的顺序遍历目标冲突链的各个会话索引节点,对于当前遍历的会话索引节点,判断该当前会话索引节点所包含的会话指纹和网络层协议,是否与目标报文的会话指纹和网络层协议相同,若是,则执行S1033,将当前会话索引节点作为目标索引节点,若否,则返回S1031,遍历下一个未被遍历的会话索引节点。

其中,目标索引节点是目标索引冲突链中包含目标报文的会话指纹和网络层协议的会话索引节点。

S104:若遍历到目标索引节点,则从目标索引节点中提取会话索引值。

S105:若提取的会话索引值对应的会话结构所包含的会话要素,与目标报文的会话要素相匹配,则会话检索成功。

在本申请实施例中,可以从目标索引节点中提取会话索引值,并基于提取的会话索引值访问其对应的会话结构,然后,判断该会话结构中包含的会话要素(该会话结构中填充的网络层协议、源IP地址、目的IP地址、源端口、目的端口、传输层协议等会话要素),与目标报文的会话要素(包含目标报文的网络层协议、源IP地址、目的IP地址、源端口、目的端口、传输层协议等会话要素)是否相匹配;若匹配,则说明针对目标报文的会话检索成功。

进一步地,本申请实施例还可以包括:若提取的会话索引值对应的会话结构所包含的会话要素,与目标报文的会话要素不匹配,并且,未遍历完目标索引冲突链,则继续遍历下一个会话索引节点,并继续执行图2所示的S1032;若提取的会话索引值对应的会话结构所包含的会话要素,与目标报文的会话要素不匹配,并且,已遍历完目标索引冲突链(说明会话检索失败),则创建目标报文所属会话的会话索引节点。

若针对目标报文的会话检索失败,则进入会话创建流程,此时,需要在会话索引表中,创建目标报文所属会话的会话索引节点,除此之外,还需要为目标报文所属会话创建一个会话结构。

在为目标报文所属会话创建一个会话结构时,可以从空闲会话链中申请一个会话结构,在该会话结构中填充目标报文的会话要素,包含网络层协议、源IP地址、目的IP地址、源端口、目的端口、传输层协议等会话基本要素。

在为目标报文所属会话创建一个会话索引节点时,可以在目标索引冲突链中找到一个空闲的会话索引节点,基于目标报文的会话信息,填充该空闲的会话索引节点,其中,在寻找空闲的会话索引节点时,可以通过遍历目标索引冲突链,在目标索引冲突链中找到一个空闲的会话索引节点。具体来讲,首先,可以根据目标报文的会话五元组,计算会话哈希值与会话指纹,当然,也可以直接使用上述会话检索过程计算得到的会话哈希值与会话指纹;然后,通过目标报文的会话哈希值,访问会话索引表对应的目标索引冲突链;最后,遍历目标索引冲突链中的会话索引节点,判断当前遍历的会话索引节点是否空闲,若空闲,则继续遍历下一会话索引节点,直至找到第一个空闲的会话索引节点,此时,将目标报文的会话指纹、网络层协议、会话索引值填充至该空闲的会话索引节点中,并标记起为“使用”状态。

在以上本申请实施例提供的会话检索方法中,当生成目标报文的会话哈希值,并基于该会话哈希值找到目标索引冲突链后,若目标索引冲突链中同时涉及IPv4和IPv6协议的会话,则说明该目标会话冲突链上有冲突,要遍历目标索引冲突链,以从中找到目标报文所属会话对应的会话索引节点,即目标索引节点。本申请实施例在遍历目标索引冲突链时,仅需要比较目标索引冲突链中的各个会话索引节点的网络层协议字段,便可以将不涉及目标报文的网络层协议的会话排除掉,而无须访问被排除会话所对应的会话节点,从而减少了内存访问、降低了内存的cache miss,进而解决了现有技术中因IPv4协议与IPv6协议会话融合统一所带来的会话检索延时增大的问题。

参见图3,为本申请实施例提供的一种会话检索装置的组成示意图,该装置包括:

哈希值生成单元310,用于获取目标报文,并生成所述目标报文的会话哈希值,作为目标哈希值;

冲突链确定单元320,用于确定目标索引冲突链,其中,所述目标索引冲突链包括会话哈希值为所述目标哈希值的至少一个会话的会话索引节点;

冲突链遍历单元330,用于利用所述目标报文的会话指纹和网络层协议,遍历所述目标索引冲突链;

索引值提取单元340,用于若遍历到目标索引节点,则从所述目标索引节点中提取会话索引值,其中,所述目标索引节点是所述目标索引冲突链中包含所述目标报文的会话指纹和网络层协议的会话索引节点;

会话要素匹配单元350,用于若提取的会话索引值对应的会话结构所包含的会话要素,与所述目标报文的会话要素相匹配,则会话检索成功。

在本申请实施例的一种实现方式中,哈希值生成单元310,具体用于:

获取目标报文,并根据所述目标报文的会话五元组,生成所述目标报文的会话哈希值,作为目标哈希值。

在本申请实施例的一种实现方式中,冲突链遍历单元330,具体用于:

依次遍历所述目标索引冲突链的各个会话索引节点;

若当前遍历到的会话索引节点所包含的会话指纹和网络层协议,与所述目标报文的会话指纹和网络层协议不同,则继续遍历下一个会话索引节点;

若当前遍历到的会话索引节点所包含的会话指纹和网络层协议,与所述目标报文的会话指纹和网络层协议相同,则将当前会话索引节点作为所述目标索引节点。

在本申请实施例的一种实现方式中,冲突链遍历单元330,还用于若提取的会话索引值对应的会话结构所包含的会话要素,与所述目标报文的会话要素不匹配,并且,未遍历完所述目标索引冲突链,则继续遍历下一个会话索引节点;

所述装置还包括会话创建单元,用于若提取的会话索引值对应的会话结构所包含的会话要素,与所述目标报文的会话要素不匹配,并且,已遍历完所述目标索引冲突链,则创建所述目标报文所属会话的会话索引节点。

在本申请实施例的一种实现方式中,会话创建单元,包括:

空闲节点寻找子单元,用于若提取的会话索引值对应的会话结构所包含的会话要素,与所述目标报文的会话要素不匹配,并且,已遍历完所述目标索引冲突链,则在所述目标索引冲突链中找到一个空闲的会话索引节点;

索引节点填充子单元,用于基于所述目标报文的会话信息,填充该空闲的会话索引节点。

在本申请实施例的一种实现方式中,空闲节点寻找子单元,具体用于:

若提取的会话索引值对应的会话结构所包含的会话要素,与所述目标报文的会话要素不匹配,并且,已遍历完所述目标索引冲突链,则通过遍历所述目标索引冲突链,在所述目标索引冲突链中找到一个空闲的会话索引节点。

在本申请实施例的一种实现方式中,会话创建单元,还包括:

会话结构填充子单元,用于从空闲会话链中申请一个会话结构,在该会话结构中填充所述目标报文的会话要素。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本申请实施例还提供了一种电子设备,该电子设备的结构示意图如图4所示,该电子设备4000包括至少一个处理器4001、存储器4002和总线4003,至少一个处理器4001均与存储器4002电连接;存储器4002被配置用于存储有至少一个计算机可执行指令,处理器4001被配置用于执行该至少一个计算机可执行指令,从而执行如本申请中任意一个实施例或任意一种可选实施方式提供的任意一种会话检索方法的步骤。

进一步,处理器4001可以是FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其它具有逻辑处理能力的器件,如MCU(Microcontroller Unit,微控制单元)、CPU(Central Process Unit,中央处理器)。

应用本申请实施例,在遍历目标索引冲突链时,仅需要比较目标索引冲突链中的各个会话索引节点的网络层协议字段,便可以将不涉及目标报文的网络层协议的会话排除掉,而无须访问被排除会话所对应的会话节点,从而减少了内存访问、降低了内存的cache miss,进而解决了现有技术中因IPv4协议与IPv6协议会话融合统一所带来的会话检索延时增大的问题。

本申请实施例还提供了另一种计算机可读存储介质,存储有计算机程序,该计算机程序用于被处理器执行时实现本申请中任意一个实施例或任意一种可选实施方式提供的任意一种会话检索方法的步骤。

本申请实施例提供的计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。

应用本申请实施例,在遍历目标索引冲突链时,仅需要比较目标索引冲突链中的各个会话索引节点的网络层协议字段,便可以将不涉及目标报文的网络层协议的会话排除掉,而无须访问被排除会话所对应的会话节点,从而减少了内存访问、降低了内存的cache miss,进而解决了现有技术中因IPv4协议与IPv6协议会话融合统一所带来的会话检索延时增大的问题。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献