一种会话表项的管理方法和装置与流程

文档序号:12135239阅读:225来源:国知局
一种会话表项的管理方法和装置与流程

本申请涉及网络通信技术领域,特别涉及一种会话表项的管理方法和装置。



背景技术:

为了提高转发设备的转发性能,简化报文上送至协议栈的处理流程,当报文上送至对应的CPU在协议栈中处理完成后,通常可以根据协议栈的业务处理结果,创建对应的会话表项,然后由所述会话表项生成会话表。设备接收到报文后,首先将该报文与会话表中的会话表项均进行匹配,如果匹配不成功,则将报文上送至对应的CPU在协议栈进行业务处理,并在业务处理完成后,基于该报文的五元组、以及对应的业务类型信息生成对应的会话表项,下发至所述会话表。如果匹配成功,则可以根据会话表项中记录的信息进行相应的转发,通过这种方式,可以减少将报文上送至对应的CPU在协议栈中执行重复的业务处理,从而可以提升设备的转发性能。



技术实现要素:

有鉴于此,本申请提供一种会话表项的管理方法和装置,应用于多核转发设备,提升设备的转发性能。

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

一种会话表项的管理方法,应用于多核转发设备,包括:

将接收到的报文与所述多个会话表中的会话表项依次执行匹配,如果所述与所述多个会话表中的会话表项均未匹配成功,则将该报文上送至对应的CPU执行转发;

所述CPU生成与该报文对应的会话表项,并基于预设平均算法计算与该会话表项对应的目标会话表,并将该会话表项下发至所述目标会话表;

针对各会话表分别启用对应的老化线程,并基于各老化线程针对各会话表执行并行老化处理。

一种会话表项的管理装置,应用于多核转发设备,包括:

匹配单元,用于将接收到的报文与所述多个会话表中的会话表项依次执行匹配,如果所述报文与所述多个会话表中的会话表项均未匹配成功,则将该报文上送至对应的CPU执行转发;

生成单元,用于所述CPU生成与该报文对应的会话表项,并基于预设平均算法计算与该会话表项对应的目标会话表,并将该会话表项下发至所述目标会话表;

老化单元,用于针对各会话表分别启用对应的老化线程,并基于各老化线程针对各会话表执行并行老化处理。

由以上本申请提供的技术方案可见,在本申请中,多核转发设备通过预先配置多个会话表,在接收到报文时,将接收到的报文与所述多个会话表中的会话表项依次执行匹配,如果所述报文与所述多个会话表中的会话表项均未匹配成功,则将该报文上送至对应的CPU执行转发,并由该CPU生成与该报文对应的会话表项,以及基于预设平均算法计算与该会话表项对应的目标会话表,将该会话表项下发至所述目标会话表;同时还可以针对各会话表分别启用对应的老化线程,并基于各老化线程针对各会话表执行并行老化处理。

由于在本申请中多核转发设备可以使用多个会话表,并且每个会话表分别由独立的老化线程进行并行的老化处理,因此可以提高转发设备的性能。

附图说明

图1a是本申请示出的一种在相关技术中一对会话表项进行管理的示意图;

图1b是本申请示出的一种在相关技术中另一对会话表项进行管理的示意图;

图1c是本申请示出的一种在相关技术中另一对会话表项进行管理的示意图;

图2是本申请一示例性实施例示出的一种会话表项的管理方法的流程图;

图3是本申请一示例性实施例示出的一种会话表项的管理方法的示意图;

图4是本申请另一示例性实施例示出的一种会话表项的管理方法的示意图;

图5是本申请一示例性实施例示出的控制CPU对各会话表执行老化处理的流程图;

图6是本申请一示例性实施例示出的一种会话表项的管理装置所在多核转发设备的一种硬件结构图;

图7是本申请一示例性实施例示出的一种会话表项的管理装置。

具体实施方式

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

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

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

请参见图1a,图1a为本申请示出的一种在相关技术中一对会话表项进行管理的示意图。

相关技术中,转发设备首次收到报文后,会将该报文上送至对应CPU在协议栈中处理,当报文上送至对应的CPU在协议栈中处理完成后,通常可以根据协议栈的业务处理结果,创建对应的会话表项,然后由所述会话表项生成相应的会话表。

上述会话表,可以是转发设备在完成设备初始化后,预先申请分配的一定数量规格的会话表项所组成的链表。其中,为了便于对会话表项进行更好地管理,将所述会话表分为使用链表和空闲链表,所述空闲链表中的会话表项为空闲表项,没有储存会话资源;所述使用链表中的会话表项可以用于存储会话资源。

请参见图1b,图1b是本申请示出的一种在相关技术中另一对会话表项进行管理的示意图。当报文第一次发送至设备时,设备可以将该报文上送至CPU,由CPU在协议栈中对报文进行业务处理。

当在协议栈中完成对应的业务处理,并将报文成功转发后,CPU可以获得该报文的五元组、与该报文对应的业务类型信息,接着可以从空闲链表中分配一个空闲表项,将该报文的五元组、与该报文对应的业务类型信息存储至该空闲表项中,生成对应的会话表项,然后将该会话表项下发至使用链表中。

请参见图1c,图1c是本申请示出的一种在相关技术中另一对会话表项进行管理的示意图。为了充分利用会话表中的存储资源,可以对该会话表启用老化机制,启用老化线程。该老化线程可以实时遍历使用链表中的会话表项,当会话表项的老化时间到达预设的阈值时,可以释放该会话表项的存储资源,并将该空闲的会话表项添加至空闲链表。

然而,当使用链表中的会话表项数量比较多的时候,由于老化线程是采用遍历的模式,对使用链表中的会话表项进行检测,因此针对使用链表中老化时间到达预设的时间的会话表项,无法及时释放该会话表项的存储资源,并将该空闲的会话表项添加至空闲链表。

为了解决现有技术中的问题,本申请提供了一种技术方案,多核转发设备通过预先配置多个会话表,在接收到报文时,将接收到的报文与所述多个会话表中的会话表项依次执行匹配,如果所述报文与所述多个会话表中的会话表项均未匹配成功,则将该报文上送至对应的CPU执行转发,并由该CPU生成与该报文对应的会话表项,以及基于预设平均算法计算与该会话表项对应的目标会话表,将该会话表项下发至所述目标会话表;同时还可以针对各会话表分别启用对应的老化线程,并基于各老化线程针对各会话表执行并行老化处理。

由于在本申请中多核转发设备可以使用多个会话表,并且每个会话表分别由独立的老化线程进行并行的老化处理,因此可以提高转发设备的性能。

请参见图2,图2是本申请一示例性实施例示出的一种会话表项的管理方法的流程图,应用于多核转发设备,具体执行以下步骤:

步骤201:将接收到的报文与所述多个会话表中的会话表项依次执行匹配,如果所述与所述多个会话表中的会话表项均未匹配成功,则将该报文上送至对应的CPU执行转发;

步骤202:所述CPU生成与该报文对应的会话表项,并基于预设平均算法计算与该会话表项对应的目标会话表,并将该会话表项下发至所述目标会话表;

步骤203:针对各会话表分别启用对应的老化线程,并基于各老化线程针对各会话表执行并行老化处理。

在本实施例中,为了解决现有技术中,老化线程对单一的会话表进行老化检测时,针对单一的会话表中老化时间到达预设的时间的会话表项,老化线程无法及时释放该会话表项的存储资源,并将该空闲的会话表项添加至空闲链表。因此,可以对现有技术中,可以对单一的会话表进行改进,可以通过使用多个会话表,由多个会话表来分担会话表项。其中,会话表的数量可以根据整机的性能来决定,各会话表中会话表项的数量相等。

在示出的一种实施方式中,为了便于对各会话表对应的链表中的会话表项进行管理,可以将各会话表对应的链表划分成使用链表和空闲链表,其中,使用链表用于存放包含会话资源的会话表项,空闲链表用于存放空闲的会话表项。

其中,各会话表可以使用同一个空闲链表。采用各会话表使用同一个空闲链表的方式,可以便于设备对空闲表项的统一管理,提高设备的可靠性。

通过将会话表划分为使用链表和空闲链表,在将报文与会话表项进行匹配时,可以将报文直接与使用链表中的会话表项进行匹配,避免与空闲链表中的会话表项的匹配,从而可以加快报文匹配中目标会话表项的速度。

另外,多核设备包括多个CPU,其中,根据CPU的用途,可以将这些CPU划分为数据CPU和控制CPU,其中,所述数据CPU用于针对上送至本地的报文执行转发,为该报文生成对应的会话表项以及将生成的会话表项下发至对应的目标会话表,所述控制CPU用于针对会话表中的会话表项执行老化处理。

请参见图3,图3是本申请一示例性实施例示出的一种会话表项的管理方法的示意图。

在示出的一种实施方式中,如果各会话表分别对应一个空闲链表,当转发设备接收到报文时,可以将该报文依次与每一个会话表的使用链表中的会话表项进行匹配,如果该报文匹配中各会话表中使用链表中的任一会话表项,则可以基于该会话表项中的转发信息,将该报文进行转发。

如果该报文与所有使用链表中的所有会话表项均未匹配成功,则可以将该报文上送至对应的数据CPU在协议栈中执行业务处理;其中,为了实现各数据CPU的负载均衡,可以基于负载均衡算法确定此时负载最小的数据CPU来处理该报文。

当负载最小的数据CPU将该报文处理完成后,可以从空闲链表中申请一个空闲的会话表项,然后将该报文的五元组,以及与该报文对应的业务类型信息,生成对应的会话表项,然后可以将该会话表项下发至对应的目标会话表中。

其中,为了保证各会话表中的会话表项的数量相等,各数据CPU可以实时查询各会话表中的会话表项的数量,然后可以基于平均算法,计算出储存该会话表项的目标会话表。

在示出的一种实施方式中,处理该报文的数据CPU可以实时查询各会话表中的会话表项的数量,然后查找出会话表项数量最少的会话表,该会话表即为存储该会话表项的目标会话表,确定目标会话表项后,可以从该目标会话表中申请一个空闲的会话表项,将该报文的五元组,以及与该报文对应的业务类型信息存储于该空闲的会话表项中,然后将该会话表项下发至该会话表项最少的会话表。

请参见图4,图4是本申请另一示例性实施例示出的一种会话表项的管理方法的示意图。

在该实施方式中,当各会话表使用同一个空闲链表时,数据CPU查找到目标会话表后,可以从该目标会话表的空闲链表中申请一个空闲表项,然后可以将该报文的五元组,以及与该报文对应的业务类型信息添加至该空闲表项中,生成对应的会话表项,然后将该会话表项下发至目标会话表。

在本例中,为了充分利用各会话表中的存储资源,还可以针对各会话表启用老化机制,针对各会话表分别启用对应的老化线程,由各老化线程针对各会话表并行的执行老化操作。

在示出的一种实施方式中,在多核系统下,可以选用该多核系统中的控制CPU来完成针对各会话表中会话表项中的老化操作。控制CPU可以针对各会话表分别启动一个对应的老化线程。其中,控制CPU为各会话表启动的老化线程互相独立,当任一老化线程被唤醒进行老化操作时,该老化线程只对对应的使用链表进行老化操作。

当然,如果没有控制CPU启用老化线程,可以由相应的数据CPU来启用老化线程;如果多核转发设备中存在多个控制CPU时,也可以由不同的控制CPU分别启用对应的老化线程。

请参见图5,图5是本申请一示例性实施例示出的控制CPU对各会话表执行老化处理的流程图。

如图5所示,控制CPU可以控制各会话表的老化线程,对各会话表执行并行老化处理。当任一老化线程被唤醒后,该老化线程可以实时遍历会话表中的会话表项,判断是否存在会话表项的老化时间达到预设的时间,如果会话表中任一会话表项的老化时间达到预设的时间,则可以释放该会话表项的存储资源,并将该空闲的会话表项添加至空闲链表。如果会话表中所有的会话表项的老化时间均未达到预设的时间,则老化线程继续对会话表进行遍历。

通过这种方式,可以充分地使用会话表中的存储资源,进而提高转发设备的性能。

通过以上实施例可知,多核转发设备通过预先配置多个会话表,在接收到报文时,将接收到的报文与所述多个会话表中的会话表项依次执行匹配,如果所述报文与所述多个会话表中的会话表项均未匹配成功,则将该报文上送至对应的CPU执行转发,并由该CPU生成与该报文对应的会话表项,以及基于预设平均算法计算与该会话表项对应的目标会话表,将该会话表项下发至所述目标会话表;同时还可以针对各会话表分别启用对应的老化线程,并基于各老化线程针对各会话表执行并行老化处理。

由于在本申请中多核转发设备可以使用多个会话表,并且每个会话表分别由独立的老化线程进行并行的老化处理,因此可以提高转发设备的性能。

与前述一种会话表项的管理的方法的实施例相对应,本申请还提供了一种会话表项的管理的装置的实施例。

本申请一种会话表项的管理的装置的实施例可以应用在多核转发设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在多核转发设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请一种会话表项的管理装置所在多核转发设备的一种硬件结构图,除了图6所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的多核转发设备通常根据该会话表项的管理的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图7,图7是本申请示出的一种会话表项的管理装置,应用于多核转发设备,所述转发设备中预先配置了多个会话表,所述装置包括:匹配单元710,生成单元720,老化单元730。

其中,所述匹配单元710,用于将接收到的报文与所述多个会话表中的会话表项依次执行匹配,如果所述报文与所述多个会话表中的会话表项均未匹配成功,则将该报文上送至对应的CPU执行转发。

所述生成单元720,用于所述CPU生成与该报文对应的会话表项,并基于预设平均算法计算与该会话表项对应的目标会话表,并将该会话表项下发至所述目标会话表。

所述老化单元730,用于针对各会话表分别启用对应的老化线程,并基于各老化线程针对各会话表执行并行老化处理。

在本实施例中,所述生成单元720,具体用于实时查询各会话表中的会话表项的数量;查找会话表项数量最少的会话表;将该会话表项数量最少的会话表确定为与该会话表项对应的目标会话表。

当所述多核转发设备至少包括一个数据CPU以及至少一个控制CPU;其中,所述数据CPU用于针对上送至本地的报文执行转发,为该报文生成对应的会话表项以及将生成的会话表项下发至对应的目标会话表;所述控制CPU用于针对会话表中的会话表项执行老化处理时,所述老化单元730,具体用于所述控制CPU针对各会话表分别启用对应的老化线程,并由所述控制CPU基于各老化线程针对各会话表执行并行老化处理。

当各会话表包含使用链表和空闲链表时,所述老化单元730,具体用于各老化线程遍历对应的使用链表中的会话表项;判断使用链表中的会话表项的老化时间是否超时;如果使用链表中任一会话表项的老化时间超时,则释放该会话表项的存储资源,并将该会话表项添加至空闲链表。

在另一实施方式中,当各会话表包含使用链表和空闲链表,其中,各会话表对应的空闲链表相同时,所述生成单元720,进一步用于从空闲链表中为该报文分配空闲会话表项;向该会话表项中记录该报文的五元组以及对应的业务类型信息,生成会话表项。

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

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

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

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1