CN104243212A - 会话维护方法及装置 - Google Patents
会话维护方法及装置 Download PDFInfo
- Publication number
- CN104243212A CN104243212A CN201410495911.6A CN201410495911A CN104243212A CN 104243212 A CN104243212 A CN 104243212A CN 201410495911 A CN201410495911 A CN 201410495911A CN 104243212 A CN104243212 A CN 104243212A
- Authority
- CN
- China
- Prior art keywords
- thread
- sessions
- session
- active thread
- active
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种会话维护方法及装置,应用于多核网络设备,该方法包括:当有新建会话时,选择当前运行线程中维护会话数量最少的运行线程作为目标线程;将所述新建会话分配给所述目标线程进行维护。本申请采用多线程的会话维护机制,提高会话维护的稳定性和效率。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种会话维护方法及装置。
背景技术
在大型的网络拓扑中,一台网络设备往往需要维护与其它网络设备之间建立的大量会话,以保证与不同网络设备之间的信息交互。
现有技术方案对于会话的维护通常采用单CPU(Central Processing Unit,中央处理器)单线程的方式,即在网络设备中选择一个CPU,并在该CPU中启动一个线程进行会话维护。这种单CPU单线程的会话维护方式处理能力有限,当存在大量会话需要维护时,容易出现会话振荡。
发明内容
有鉴于此,本申请提供了一种会话维护方法,应用于多核网络设备,该方法包括:
当有新建会话时,选择当前运行线程中维护会话数量最少的运行线程作为目标线程;
将所述新建会话分配给所述目标线程进行维护。
本申请还提供了一种会话维护装置,应用于多核网络设备,该装置包括:
线程选择单元,用于当有新建会话时,选择当前运行线程中维护会话数量最少的运行线程作为目标线程;
会话分配单元,用于将所述新建会话分配给所述目标线程进行维护。
在本申请中,充分利用多核网络设备的特点,同时运行多个线程进行会话维护,避免了由于大规模会话的出现而导致的会话振荡,同时,提高了会话的维护效率。
附图说明
图1是本申请一种实施例的会话应用场景示意图。
图2是本申请一种实施例的会话维护方法的处理流程图。
图3-1是本申请一种实施例的当前会话维护状态示意图。
图3-2是本申请一种实施例的新建会话分配示意图。
图4-1是本申请另一种实施例的当前会话维护状态示意图。
图4-2是本申请另一种实施例的新建会话分配示意图。
图5-1是本申请另一种实施例的当前会话维护状态示意图。
图5-2是本申请另一种实施例的新建会话分配示意图。
图5-3是本申请另一种实施例的新建会话分配示意图。
图6是本申请一种实施例的会话维护装置的基础硬件示意图。
图7-1是本申请一种实施例的会话维护装置的结构示意图。
图7-2是本申请另一种实施例的会话维护装置的结构示意图。
图7-3是本申请另一种实施例的会话维护装置的结构示意图。
图7-4是本申请另一种实施例的会话维护装置的结构示意图。
图7-5是本申请另一种实施例的会话维护装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案及优点更加清楚明白,以下参照附图对本申请所述方案作进一步地详细说明。
图1所示为一种大规模会话的应用场景示意图。本实施例以BGP(BorderGateway Protocol,边界网关协议)会话为例,介绍会话维护过程,但本申请并不对会话类型进行限制。图1中示出了n(n为大于2的自然数)个路由器,分别为路由器RT1至路由器RTn,这些路由器可以为BGP路由器,其中,路由器RT1可以分别与其它路由器建立会话连接。
随着网络规模的不断扩大,路由器RT1需要维护的会话数量不断增加。现有技术方案中通常采用单CPU单线程的会话维护机制,可以维护的会话数量有限,会话维护的周期长、效率低。在大规模的会话应用场景中,容易出现会话振荡现象。
针对上述问题,本申请实施例提出一种会话维护方法。在采用多核CPU的网络设备中,每一个CPU核启动一个会话维护线程,通过多CPU核多线程的方式并行维护会话,提高会话的维护效率,同时避免会话振荡现象的出现。
请参见图2,为本申请会话维护方法的一个实施例流程图,该实施例对会话维护的过程进行描述,应用于多核网络设备上,包括以下步骤:
步骤210,当有新建会话时,选择当前运行线程中维护会话数量最少的运行线程作为目标线程。
目前,多核网络设备普遍应用于网络,以便提高网络数据的处理效率。本实施例中,可以利用多核网络设备中的多核CPU,同时启动多个运行线程对会话进行并行维护,以便提高会话的维护效率。
在会话维护过程中,当有新建会话时,可以先判断当前运行线程中每一个线程维护的会话数量是否均达到预设会话数量阈值。该会话数量阈值通常根据多核网络设备的处理能力以及实际网络的会话维护需求进行设置。根据对每个线程维护的会话数量是否达到预设会话数量阈值的判断结果的不同,进行如下处理:
在当前运行线程中有维护的会话数量未达到预设会话数量阈值的线程时,可以从维护的会话数量未达到预设会话数量阈值的线程中选择维护会话数量最少的线程作为目标线程。
在当前运行线程中每个线程维护的会话数量均已达到预设会话数量阈值时,可以先判断当前运行线程的数量是否达到当前可启动的运行线程的数量上限,在当前运行线程的数量未达到当前可启动的运行线程的数量上限时,启动新的运行线程。其中,当前可启动的运行线程的数量上限可以根据当前可使用的CPU资源进行确定。如果当前运行线程的数量达到当前可启动的运行线程的数量上限,则不再启动新的运行线程,此时可以从当前运行线程中任选一个运行线程作为目标线程。需要说明的是,虽然当前运行线程中每个线程维护的会话数量均已达到预设会话数量阈值,但该预设会话数量阈值并不表示运行线程可以维护的会话数量上限,每个运行线程都可以继续维护新建会话,只是会话维护的效率不是最优的。
在选择当前运行线程中维护会话数量最少的运行线程作为目标线程时,如果找到多个维护会话数量最少的运行线程,由于这些运行线程的会话维护能力相同,因此,可以任选一个维护会话数量最少的运行线程作为目标线程,例如,最先建立的运行线程。
步骤220,将所述新建会话分配给所述目标线程进行维护。
如果步骤210中从当前运行线程中选择了目标线程,则可以将新建会话分配给该目标线程进行维护。可选的,在当前运行线程中每个线程维护的会话数量均已达到预设会话数量阈值时,如果启动了新的运行线程,则可以将新建会话分配给该新的运行线程进行维护。
可选的,当由于会话删除导致运行线程中的第一线程维护的会话数量为零时,可以为该第一线程添加待删除标记,其中,该第一线程可以表示当前维护会话数量为零的任意一个运行线程。然后判断第一线程的删除时长是否达到预设删除时长,根据判断结果的不同进行如下处理:
当第一线程的删除时长达到预设删除时长时,如果第一线程维护的会话数量仍然为零,可以删除第一线程,以节省对内存和CPU资源的占用。其中,判断第一线程的删除时长是否达到预设删除时长可以通过为第一线程启动定时器的方式,当定时器超时时,即第一线程的删除时长达到了预设删除时长。
当第一线程的删除时长未达到预设删除时长时,如果有新建会话,且当前除第一线程以外的其它运行线程维护的会话数量均已达到预设会话数量阈值,此时,可以重新激活该第一线程,将新建会话分配给第一线程维护,并删除第一线程的待删除标记。可见,通过为第一线程预设删除时长,避免了对线程的频繁启动和删除,可以进一步提高会话维护效率。
由上述方法实施例可见,在进行会话维护时,本申请实施例充分利用多核网络设备的特点,同时运行多个线程进行会话维护,避免了由于大规模会话的出现而导致的会话振荡,同时,提高了会话的维护效率。
现仍以图1所示会话应用场景为例,结合图3-1至图5-3的会话维护示意图详细介绍会话维护过程。
图1所示BGP路由器RT1至RTn,其中RT1可以分别与RT2至RTn的路由器建立BGP会话。假设,RT1启动线程维护BGP会话,且为每一个线程预设会话数量阈值为6。当RT1通过BGP协议中的OPEN(会话建立)报文与RT2创建新会话(以下称此新会话为会话30)时,首先可以判断当前运行线程中每一个线程维护的会话数量是否均达到预设会话数量阈值。图3-1示出当前会话的维护状态,其中,线程1当前维护的会话数量为5,线程2当前维护的会话数量为4,线程3当前维护的会话数量为3,3个线程维护的会话数量均未达到预设会话数量阈值6,因此,如图3-2所示,将新建会话16分配给维护会话数量最少的线程3进行维护。
如果创建会话30时,当前会话维护状态如图4-1所示,线程1、线程2以及线程3中维护的会话数量均已达到预设会话数量阈值6,可以判断当前运行线程的数量是否达到当前可启动的运行线程的数量上限。假设当前可启动的运行线程的数量上限为4,从图4-1中可知,当前运行线程的数量为3,未达到当前可启动的运行线程的数量上限4,因此,如图4-2所示,启动线程4,将会话30分配给线程4进行维护。
如果创建会话30时,当前会话维护状态如图5-1所示,线程1当前维护的会话数量为5,线程2和线程3当前维护的会话数量均为3,即存在两个维护会话数量最少的运行线程,此时,如图5-2所示,可以将会话30分配给线程2进行维护,也可以如图5-3所示将会话30分配给线程3进行维护。
与上述会话维护方法的实施例相对应,本申请还提供会话维护装置的实施例。
本申请会话维护装置的实施例可以应用在多核网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本申请会话维护装置所在设备的一种硬件结构图,除了图6所示的CPU、内存以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件。
请参考图7-1,为本申请一个实施例中的会话维护装置的结构示意图。该会话维护装置包括:线程选择单元701和会话分配单元702,其中:
线程选择单元701,用于当有新建会话时,选择当前运行线程中维护会话数量最少的运行线程作为目标线程;
会话分配单元702,用于将所述新建会话分配给所述目标线程进行维护。
请参考图7-2,为本申请另一个实施例中的会话维护装置的结构示意图。该会话维护装置在图7-1所示基础上,还可以包括:会话数量判断单元703,其中:
会话数量判断单元703,用于在所述线程选择单元701选择当前运行线程中维护会话数量最少的运行线程作为目标线程之前,判断所述当前运行线程中每个线程维护的会话数量是否均达到预设会话数量阈值;
所述线程选择单元701,具体用于当所述当前运行线程中有维护的会话数量未达到所述预设会话数量阈值的线程时,从所述维护的会话数量未达到所述预设会话数量阈值的线程中选择维护会话数量最少的线程作为目标线程。
请参考图7-3,为本申请另一个实施例中的会话维护装置的结构示意图。该会话维护装置在图7-2所示基础上,还可以包括:线程启动单元704,其中:
线程启动单元704,用于当所述当前运行线程中每个线程维护的会话数量均已达到所述预设会话数量阈值时,启动新的运行线程;
所述会话分配单元702,还用于将所述新建会话分配给所述新的运行线程。
请参考图7-4,为本申请另一个实施例中的会话维护装置的结构示意图。该会话维护装置在图7-3所示基础上,还可以包括:线程数量判断单元705,其中:
线程数量判断单元705,用于在所述线程启动单元704启动新的运行线程之前,判断所述当前运行线程的数量是否达到当前可启动的运行线程的数量上限;
所述线程启动单元704,具体用于当所述当前运行线程的数量未达到所述当前可启动的运行线程的数量上限时,启动新的运行线程。
所述线程选择单元701,还具体用于当存在多个所述维护会话数量最少的运行线程时,任选一个维护会话数量最少的运行线程作为目标线程。
请参考图7-5,为本申请另一个实施例中的会话维护装置的结构示意图。该会话维护装置在图7-1所示基础上,还可以包括:标记添加单元706和线程处理单元707,其中:
标记添加单元706,用于当所述当前运行线程中的第一线程维护的会话数量为零时,为所述第一线程添加待删除标记;
线程处理单元707,用于当所述第一线程的删除时长未达到预设删除时长时,如果有新建会话,且当前除所述第一线程以外的其它运行线程维护的会话数量均已达到预设会话数量阈值,则将所述新建会话分配给所述第一线程维护,并删除所述待删除标记;当所述第一线程的删除时长达到所述预设删除时长时,如果所述第一线程维护的会话数量仍然为零,则删除所述第一线程。
上述图7-1至7-5示出的会话维护装置的实施例,其具体实现过程可参见前述方法实施例的说明,在此不再赘述。
由上述装置实施例可见,在进行会话维护时,本申请实施例充分利用多核网络设备的特点,同时运行多个线程进行会话维护,避免了由于大规模会话的出现而导致的会话振荡,同时,提高了会话的维护效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种会话维护方法,应用于多核网络设备,其特征在于,该方法包括:
当有新建会话时,选择当前运行线程中维护会话数量最少的运行线程作为目标线程;
将所述新建会话分配给所述目标线程进行维护。
2.如权利要求1所述的方法,其特征在于,在选择当前运行线程中维护会话数量最少的运行线程作为目标线程之前,还包括:
判断所述当前运行线程中每个线程维护的会话数量是否均达到预设会话数量阈值;
所述选择当前运行线程中维护会话数量最少的运行线程作为目标线程具体为:
当所述当前运行线程中有维护的会话数量未达到所述预设会话数量阈值的线程时,从所述维护的会话数量未达到所述预设会话数量阈值的线程中选择维护会话数量最少的线程作为目标线程。
3.如权利要求2所述的方法,其特征在于,还包括:
当所述当前运行线程中每个线程维护的会话数量均已达到所述预设会话数量阈值时,启动新的运行线程;
将所述新建会话分配给所述新的运行线程。
4.如权利要求3所述的方法,其特征在于,在启动新的运行线程之前,还包括:
判断所述当前运行线程的数量是否达到当前可启动的运行线程的数量上限;
所述启动新的运行线程具体为:
当所述当前运行线程的数量未达到所述当前可启动的运行线程的数量上限时,启动新的运行线程。
5.如权利要求1至4任一所述的方法,其特征在于,所述选择当前运行线程中维护会话数量最少的运行线程作为目标线程,包括:
当存在多个所述维护会话数量最少的运行线程时,任选一个维护会话数量最少的运行线程作为目标线程。
6.如权利要求1所述的方法,其特征在于,还包括:
当所述当前运行线程中的第一线程维护的会话数量为零时,为所述第一线程添加待删除标记;
当所述第一线程的删除时长未达到预设删除时长时,如果有新建会话,且当前除所述第一线程以外的其它运行线程维护的会话数量均已达到预设会话数量阈值,则将所述新建会话分配给所述第一线程维护,并删除所述待删除标记;
当所述第一线程的删除时长达到所述预设删除时长时,如果所述第一线程维护的会话数量仍然为零,则删除所述第一线程。
7.一种会话维护装置,应用于多核网络设备,其特征在于,该装置包括:
线程选择单元,用于当有新建会话时,选择当前运行线程中维护会话数量最少的运行线程作为目标线程;
会话分配单元,用于将所述新建会话分配给所述目标线程进行维护。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
会话数量判断单元,用于在所述线程选择单元选择当前运行线程中维护会话数量最少的运行线程作为目标线程之前,判断所述当前运行线程中每个线程维护的会话数量是否均达到预设会话数量阈值;
所述线程选择单元,具体用于当所述当前运行线程中有维护的会话数量未达到所述预设会话数量阈值的线程时,从所述维护的会话数量未达到所述预设会话数量阈值的线程中选择维护会话数量最少的线程作为目标线程。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:
线程启动单元,用于当所述当前运行线程中每个线程维护的会话数量均已达到所述预设会话数量阈值时,启动新的运行线程;
所述会话分配单元,还用于将所述新建会话分配给所述新的运行线程。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
线程数量判断单元,用于在所述线程启动单元启动新的运行线程之前,判断所述当前运行线程的数量是否达到当前可启动的运行线程的数量上限;
所述线程启动单元,具体用于当所述当前运行线程的数量未达到所述当前可启动的运行线程的数量上限时,启动新的运行线程。
11.如权利要求7至10任一所述的装置,其特征在于:
所述线程选择单元,具体用于当存在多个所述维护会话数量最少的运行线程时,任选一个维护会话数量最少的运行线程作为目标线程。
12.如权利要求7所述的装置,其特征在于,所述装置还包括:
标记添加单元,用于当所述当前运行线程中的第一线程维护的会话数量为零时,为所述第一线程添加待删除标记;
线程处理单元,用于当所述第一线程的删除时长未达到预设删除时长时,如果有新建会话,且当前除所述第一线程以外的其它运行线程维护的会话数量均已达到预设会话数量阈值,则将所述新建会话分配给所述第一线程维护,并删除所述待删除标记;当所述第一线程的删除时长达到所述预设删除时长时,如果所述第一线程维护的会话数量仍然为零,则删除所述第一线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410495911.6A CN104243212A (zh) | 2014-09-24 | 2014-09-24 | 会话维护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410495911.6A CN104243212A (zh) | 2014-09-24 | 2014-09-24 | 会话维护方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104243212A true CN104243212A (zh) | 2014-12-24 |
Family
ID=52230612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410495911.6A Pending CN104243212A (zh) | 2014-09-24 | 2014-09-24 | 会话维护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104243212A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105391968A (zh) * | 2015-11-03 | 2016-03-09 | 浙江大华技术股份有限公司 | 一种视频会话分配方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080177835A1 (en) * | 2005-04-29 | 2008-07-24 | International Business Machines Corporation | Methods and Apparatus for Managing and Distinguishing Instant Messaging Sessions and Threads |
US20100157800A1 (en) * | 2008-12-19 | 2010-06-24 | Inventec Corporation | Method for processing network traffic loading balance |
CN101882089A (zh) * | 2009-05-07 | 2010-11-10 | 中兴通讯股份有限公司 | 一种采用多线程处理业务会话应用的方法及装置 |
CN101982955A (zh) * | 2010-11-19 | 2011-03-02 | 深圳华大基因科技有限公司 | 高性能文件传输系统及方法 |
-
2014
- 2014-09-24 CN CN201410495911.6A patent/CN104243212A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080177835A1 (en) * | 2005-04-29 | 2008-07-24 | International Business Machines Corporation | Methods and Apparatus for Managing and Distinguishing Instant Messaging Sessions and Threads |
US20100157800A1 (en) * | 2008-12-19 | 2010-06-24 | Inventec Corporation | Method for processing network traffic loading balance |
CN101882089A (zh) * | 2009-05-07 | 2010-11-10 | 中兴通讯股份有限公司 | 一种采用多线程处理业务会话应用的方法及装置 |
CN101982955A (zh) * | 2010-11-19 | 2011-03-02 | 深圳华大基因科技有限公司 | 高性能文件传输系统及方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105391968A (zh) * | 2015-11-03 | 2016-03-09 | 浙江大华技术股份有限公司 | 一种视频会话分配方法及装置 |
CN105391968B (zh) * | 2015-11-03 | 2019-05-24 | 浙江大华技术股份有限公司 | 一种视频会话分配方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xu et al. | Bandwidth-aware energy efficient flow scheduling with SDN in data center networks | |
CN103780679B (zh) | 基于http协议的长延时远程调用方法 | |
CN105159775A (zh) | 基于负载均衡器的云计算数据中心的管理系统和管理方法 | |
CN105408863A (zh) | 具有不同的租户集的端点数据中心 | |
WO2018121334A1 (zh) | 一种提供网页应用服务的方法、装置、电子设备及系统 | |
CN113625589B (zh) | 一种设备控制方法、装置、电子设备和存储介质 | |
CN105630607B (zh) | 一种资源池管理方法、容器创建方法及电子设备 | |
CN113259415B (zh) | 一种网络报文处理方法、装置及网络服务器 | |
CN104951352A (zh) | 一种数据流的迁移方法和设备 | |
CN107436817B (zh) | 一种以同步方式进行远程过程调用的方法及装置 | |
CN104965727A (zh) | 一种重启服务器的方法及装置 | |
WO2015123974A1 (zh) | 一种数据分发策略的调整方法、装置及系统 | |
CN104320347B (zh) | 一种主动更新lldp的方法及设备 | |
CN106911741B (zh) | 一种虚拟化网管文件下载负载均衡的方法及网管服务器 | |
US20170295452A1 (en) | Method and Registration Node for Managing Application Resource in Machine to Machine (M2M) | |
US11700189B2 (en) | Method for performing task processing on common service entity, common service entity, apparatus and medium for task processing | |
CN108600349B (zh) | 连接池中的连接管理方法及装置 | |
CN104702534A (zh) | 一种实现多进程共享端口的数据处理的方法及装置 | |
CN109495526A (zh) | 一种报文发送方法、装置、系统、电子设备及存储介质 | |
CN102833158B (zh) | 网络数据发送方法和装置、网络数据系统 | |
CN104243212A (zh) | 会话维护方法及装置 | |
CN106210159A (zh) | 一种域名解析方法和设备 | |
CN105117401A (zh) | 一种并行传输图片的方法、装置及系统 | |
CN109327705A (zh) | 一种直播视频的传输方法、装置、服务器及介质 | |
CN107402826A (zh) | 一种以异步方式进行远程过程调用的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141224 |