會話維護方法及裝置制造方法
【專利摘要】本申請提供一種會話維護方法及裝置,應用于多核網絡設備,該方法包括:當有新建會話時,選擇當前運行線程中維護會話數量最少的運行線程作為目標線程;將所述新建會話分配給所述目標線程進行維護。本申請采用多線程的會話維護機制,提高會話維護的穩定性和效率。
【專利說明】會話維護方法及裝置
【技術領域】
[0001]本發明涉及網絡通信【技術領域】,尤其涉及一種會話維護方法及裝置。
【背景技術】
[0002]在大型的網絡拓撲中,一臺網絡設備往往需要維護與其它網絡設備之間建立的大量會話,以保證與不同網絡設備之間的信息交互。
[0003]現有技術方案對于會話的維護通常采用單CPU (Central Processing Unit,中央處理器)單線程的方式,即在網絡設備中選擇一個CPU,并在該CPU中啟動一個線程進行會話維護。這種單CPU單線程的會話維護方式處理能力有限,當存在大量會話需要維護時,容易出現會話振蕩。
【發明內容】
[0004]有鑒于此,本申請提供了一種會話維護方法,應用于多核網絡設備,該方法包括:
[0005]當有新建會話時,選擇當前運行線程中維護會話數量最少的運行線程作為目標線程;
[0006]將所述新建會話分配給所述目標線程進行維護。
[0007]本申請還提供了一種會話維護裝置,應用于多核網絡設備,該裝置包括:
[0008]線程選擇單元,用于當有新建會話時,選擇當前運行線程中維護會話數量最少的運行線程作為目標線程;
[0009]會話分配單元,用于將所述新建會話分配給所述目標線程進行維護。
[0010]在本申請中,充分利用多核網絡設備的特點,同時運行多個線程進行會話維護,避免了由于大規模會話的出現而導致的會話振蕩,同時,提高了會話的維護效率。
【專利附圖】
【附圖說明】
[0011]圖1是本申請一種實施例的會話應用場景不意圖。
[0012]圖2是本申請一種實施例的會話維護方法的處理流程圖。
[0013]圖3-1是本申請一種實施例的當前會話維護狀態示意圖。
[0014]圖3-2是本申請一種實施例的新建會話分配示意圖。
[0015]圖4-1是本申請另一種實施例的當前會話維護狀態示意圖。
[0016]圖4-2是本申請另一種實施例的新建會話分配示意圖。
[0017]圖5-1是本申請另一種實施例的當前會話維護狀態示意圖。
[0018]圖5-2是本申請另一種實施例的新建會話分配示意圖。
[0019]圖5-3是本申請另一種實施例的新建會話分配示意圖。
[0020]圖6是本申請一種實施例的會話維護裝置的基礎硬件示意圖。
[0021]圖7-1是本申請一種實施例的會話維護裝置的結構示意圖。
[0022]圖7-2是本申請另一種實施例的會話維護裝置的結構示意圖。
[0023]圖7-3是本申請另一種實施例的會話維護裝置的結構示意圖。
[0024]圖7-4是本申請另一種實施例的會話維護裝置的結構示意圖。
[0025]圖7-5是本申請另一種實施例的會話維護裝置的結構示意圖。
【具體實施方式】
[0026]為使本申請的目的、技術方案及優點更加清楚明白,以下參照附圖對本申請所述方案作進一步地詳細說明。
[0027]圖1所示為一種大規模會話的應用場景示意圖。本實施例以BGP (Border GatewayProtocol,邊界網關協議)會話為例,介紹會話維護過程,但本申請并不對會話類型進行限制。圖1中示出了 n(n為大于2的自然數)個路由器,分別為路由器RTl至路由器RTn,這些路由器可以為BGP路由器,其中,路由器RTl可以分別與其它路由器建立會話連接。
[0028]隨著網絡規模的不斷擴大,路由器RTl需要維護的會話數量不斷增加。現有技術方案中通常采用單CPU單線程的會話維護機制,可以維護的會話數量有限,會話維護的周期長、效率低。在大規模的會話應用場景中,容易出現會話振蕩現象。
[0029]針對上述問題,本申請實施例提出一種會話維護方法。在采用多核CPU的網絡設備中,每一個CPU核啟動一個會話維護線程,通過多CPU核多線程的方式并行維護會話,提高會話的維護效率,同時避免會話振蕩現象的出現。
[0030]請參見圖2,為本申請會話維護方法的一個實施例流程圖,該實施例對會話維護的過程進行描述,應用于多核網絡設備上,包括以下步驟:
[0031]步驟210,當有新建會話時,選擇當前運行線程中維護會話數量最少的運行線程作為目標線程。
[0032]目前,多核網絡設備普遍應用于網絡,以便提高網絡數據的處理效率。本實施例中,可以利用多核網絡設備中的多核CPU,同時啟動多個運行線程對會話進行并行維護,以便提高會話的維護效率。
[0033]在會話維護過程中,當有新建會話時,可以先判斷當前運行線程中每一個線程維護的會話數量是否均達到預設會話數量閾值。該會話數量閾值通常根據多核網絡設備的處理能力以及實際網絡的會話維護需求進行設置。根據對每個線程維護的會話數量是否達到預設會話數量閾值的判斷結果的不同,進行如下處理:
[0034]在當前運行線程中有維護的會話數量未達到預設會話數量閾值的線程時,可以從維護的會話數量未達到預設會話數量閾值的線程中選擇維護會話數量最少的線程作為目標線程。
[0035]在當前運行線程中每個線程維護的會話數量均已達到預設會話數量閾值時,可以先判斷當前運行線程的數量是否達到當前可啟動的運行線程的數量上限,在當前運行線程的數量未達到當前可啟動的運行線程的數量上限時,啟動新的運行線程。其中,當前可啟動的運行線程的數量上限可以根據當前可使用的CPU資源進行確定。如果當前運行線程的數量達到當前可啟動的運行線程的數量上限,則不再啟動新的運行線程,此時可以從當前運行線程中任選一個運行線程作為目標線程。需要說明的是,雖然當前運行線程中每個線程維護的會話數量均已達到預設會話數量閾值,但該預設會話數量閾值并不表示運行線程可以維護的會話數量上限,每個運行線程都可以繼續維護新建會話,只是會話維護的效率不是最優的。
[0036]在選擇當前運行線程中維護會話數量最少的運行線程作為目標線程時,如果找到多個維護會話數量最少的運行線程,由于這些運行線程的會話維護能力相同,因此,可以任選一個維護會話數量最少的運行線程作為目標線程,例如,最先建立的運行線程。
[0037]步驟220,將所述新建會話分配給所述目標線程進行維護。
[0038]如果步驟210中從當前運行線程中選擇了目標線程,則可以將新建會話分配給該目標線程進行維護。可選的,在當前運行線程中每個線程維護的會話數量均已達到預設會話數量閾值時,如果啟動了新的運行線程,則可以將新建會話分配給該新的運行線程進行維護。
[0039]可選的,當由于會話刪除導致運行線程中的第一線程維護的會話數量為零時,可以為該第一線程添加待刪除標記,其中,該第一線程可以表示當前維護會話數量為零的任意一個運行線程。然后判斷第一線程的刪除時長是否達到預設刪除時長,根據判斷結果的不同進行如下處理:
[0040]當第一線程的刪除時長達到預設刪除時長時,如果第一線程維護的會話數量仍然為零,可以刪除第一線程,以節省對內存和CPU資源的占用。其中,判斷第一線程的刪除時長是否達到預設刪除時長可以通過為第一線程啟動定時器的方式,當定時器超時時,即第一線程的刪除時長達到了預設刪除時長。
[0041]當第一線程的刪除時長未達到預設刪除時長時,如果有新建會話,且當前除第一線程以外的其它運行線程維護的會話數量均已達到預設會話數量閾值,此時,可以重新激活該第一線程,將新建會話分配給第一線程維護,并刪除第一線程的待刪除標記。可見,通過為第一線程預設刪除時長,避免了對線程的頻繁啟動和刪除,可以進一步提高會話維護效率。
[0042]由上述方法實施例可見,在進行會話維護時,本申請實施例充分利用多核網絡設備的特點,同時運行多個線程進行會話維護,避免了由于大規模會話的出現而導致的會話振蕩,同時,提高了會話的維護效率。
[0043]現仍以圖1所示會話應用場景為例,結合圖3-1至圖5-3的會話維護示意圖詳細介紹會話維護過程。
[0044]圖1所示BGP路由器RTl至RTn,其中RTl可以分別與RT2至RTn的路由器建立BGP會話。假設,RTl啟動線程維護BGP會話,且為每一個線程預設會話數量閾值為6。當RTl通過BGP協議中的OPEN(會話建立)報文與RT2創建新會話(以下稱此新會話為會話30)時,首先可以判斷當前運行線程中每一個線程維護的會話數量是否均達到預設會話數量閾值。圖3-1示出當前會話的維護狀態,其中,線程I當前維護的會話數量為5,線程2當前維護的會話數量為4,線程3當前維護的會話數量為3,3個線程維護的會話數量均未達到預設會話數量閾值6,因此,如圖3-2所示,將新建會話16分配給維護會話數量最少的線程3進行維護。
[0045]如果創建會話30時,當前會話維護狀態如圖4-1所示,線程1、線程2以及線程3中維護的會話數量均已達到預設會話數量閾值6,可以判斷當前運行線程的數量是否達到當前可啟動的運行線程的數量上限。假設當前可啟動的運行線程的數量上限為4,從圖4-1中可知,當前運行線程的數量為3,未達到當前可啟動的運行線程的數量上限4,因此,如圖4-2所示,啟動線程4,將會話30分配給線程4進行維護。
[0046]如果創建會話30時,當前會話維護狀態如圖5-1所示,線程I當前維護的會話數量為5,線程2和線程3當前維護的會話數量均為3,即存在兩個維護會話數量最少的運行線程,此時,如圖5-2所示,可以將會話30分配給線程2進行維護,也可以如圖5-3所示將會話30分配給線程3進行維護。
[0047]與上述會話維護方法的實施例相對應,本申請還提供會話維護裝置的實施例。
[0048]本申請會話維護裝置的實施例可以應用在多核網絡設備上。裝置實施例可以通過軟件實現,也可以通過硬件或者軟硬件結合的方式實現。以軟件實現為例,作為一個邏輯意義上的裝置,是通過其所在設備的CPU將非易失性存儲器中對應的計算機程序指令讀取到內存中運行形成的。從硬件層面而言,如圖6所示,為本申請會話維護裝置所在設備的一種硬件結構圖,除了圖6所示的CPU、內存以及非易失性存儲器之外,實施例中裝置所在的設備通常還可以包括其他硬件。
[0049]請參考圖7-1,為本申請一個實施例中的會話維護裝置的結構示意圖。該會話維護裝置包括:線程選擇單元701和會話分配單元702,其中:
[0050]線程選擇單元701,用于當有新建會話時,選擇當前運行線程中維護會話數量最少的運行線程作為目標線程;
[0051]會話分配單元702,用于將所述新建會話分配給所述目標線程進行維護。
[0052]請參考圖7-2,為本申請另一個實施例中的會話維護裝置的結構示意圖。該會話維護裝置在圖7-1所示基礎上,還可以包括:會話數量判斷單元703,其中:
[0053]會話數量判斷單元703,用于在所述線程選擇單元701選擇當前運行線程中維護會話數量最少的運行線程作為目標線程之前,判斷所述當前運行線程中每個線程維護的會話數量是否均達到預設會話數量閾值;
[0054]所述線程選擇單元701,具體用于當所述當前運行線程中有維護的會話數量未達到所述預設會話數量閾值的線程時,從所述維護的會話數量未達到所述預設會話數量閾值的線程中選擇維護會話數量最少的線程作為目標線程。
[0055]請參考圖7-3,為本申請另一個實施例中的會話維護裝置的結構示意圖。該會話維護裝置在圖7-2所示基礎上,還可以包括:線程啟動單元704,其中:
[0056]線程啟動單元704,用于當所述當前運行線程中每個線程維護的會話數量均已達到所述預設會話數量閾值時,啟動新的運行線程;
[0057]所述會話分配單元702,還用于將所述新建會話分配給所述新的運行線程。
[0058]請參考圖7-4,為本申請另一個實施例中的會話維護裝置的結構示意圖。該會話維護裝置在圖7-3所示基礎上,還可以包括:線程數量判斷單元705,其中:
[0059]線程數量判斷單元705,用于在所述線程啟動單元704啟動新的運行線程之前,判斷所述當前運行線程的數量是否達到當前可啟動的運行線程的數量上限;
[0060]所述線程啟動單元704,具體用于當所述當前運行線程的數量未達到所述當前可啟動的運行線程的數量上限時,啟動新的運行線程。
[0061]所述線程選擇單元701,還具體用于當存在多個所述維護會話數量最少的運行線程時,任選一個維護會話數量最少的運行線程作為目標線程。
[0062]請參考圖7-5,為本申請另一個實施例中的會話維護裝置的結構示意圖。該會話維護裝置在圖7-1所示基礎上,還可以包括:標記添加單元706和線程處理單元707,其中:
[0063]標記添加單元706,用于當所述當前運行線程中的第一線程維護的會話數量為零時,為所述第一線程添加待刪除標記;
[0064]線程處理單元707,用于當所述第一線程的刪除時長未達到預設刪除時長時,如果有新建會話,且當前除所述第一線程以外的其它運行線程維護的會話數量均已達到預設會話數量閾值,則將所述新建會話分配給所述第一線程維護,并刪除所述待刪除標記;當所述第一線程的刪除時長達到所述預設刪除時長時,如果所述第一線程維護的會話數量仍然為零,則刪除所述第一線程。
[0065]上述圖7-1至7-5示出的會話維護裝置的實施例,其具體實現過程可參見前述方法實施例的說明,在此不再贅述。
[0066]由上述裝置實施例可見,在進行會話維護時,本申請實施例充分利用多核網絡設備的特點,同時運行多個線程進行會話維護,避免了由于大規模會話的出現而導致的會話振蕩,同時,提高了會話的維護效率。
[0067]以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。
【權利要求】
1.一種會話維護方法,應用于多核網絡設備,其特征在于,該方法包括: 當有新建會話時,選擇當前運行線程中維護會話數量最少的運行線程作為目標線程; 將所述新建會話分配給所述目標線程進行維護。
2.如權利要求1所述的方法,其特征在于,在選擇當前運行線程中維護會話數量最少的運行線程作為目標線程之前,還包括: 判斷所述當前運行線程中每個線程維護的會話數量是否均達到預設會話數量閾值; 所述選擇當前運行線程中維護會話數量最少的運行線程作為目標線程具體為: 當所述當前運行線程中有維護的會話數量未達到所述預設會話數量閾值的線程時,從所述維護的會話數量未達到所述預設會話數量閾值的線程中選擇維護會話數量最少的線程作為目標線程。
3.如權利要求2所述的方法,其特征在于,還包括: 當所述當前運行線程中每個線程維護的會話數量均已達到所述預設會話數量閾值時,啟動新的運行線程; 將所述新建會話分配給所述新的運行線程。
4.如權利要求3所述的方法,其特征在于,在啟動新的運行線程之前,還包括: 判斷所述當前運行線程的數量是否達到當前可啟動的運行線程的數量上限; 所述啟動新的運行線程具體為: 當所述當前運行線程的數量未達到所述當前可啟動的運行線程的數量上限時,啟動新的運行線程。
5.如權利要求1至4任一所述的方法,其特征在于,所述選擇當前運行線程中維護會話數量最少的運行線程作為目標線程,包括: 當存在多個所述維護會話數量最少的運行線程時,任選一個維護會話數量最少的運行線程作為目標線程。
6.如權利要求1所述的方法,其特征在于,還包括: 當所述當前運行線程中的第一線程維護的會話數量為零時,為所述第一線程添加待刪除標記; 當所述第一線程的刪除時長未達到預設刪除時長時,如果有新建會話,且當前除所述第一線程以外的其它運行線程維護的會話數量均已達到預設會話數量閾值,則將所述新建會話分配給所述第一線程維護,并刪除所述待刪除標記; 當所述第一線程的刪除時長達到所述預設刪除時長時,如果所述第一線程維護的會話數量仍然為零,則刪除所述第一線程。
7.一種會話維護裝置,應用于多核網絡設備,其特征在于,該裝置包括: 線程選擇單元,用于當有新建會話時,選擇當前運行線程中維護會話數量最少的運行線程作為目標線程; 會話分配單元,用于將所述新建會話分配給所述目標線程進行維護。
8.如權利要求7所述的裝置,其特征在于,所述裝置還包括: 會話數量判斷單元,用于在所述線程選擇單元選擇當前運行線程中維護會話數量最少的運行線程作為目標線程之前,判斷所述當前運行線程中每個線程維護的會話數量是否均達到預設會話數量閾值; 所述線程選擇單元,具體用于當所述當前運行線程中有維護的會話數量未達到所述預設會話數量閾值的線程時,從所述維護的會話數量未達到所述預設會話數量閾值的線程中選擇維護會話數量最少的線程作為目標線程。
9.如權利要求8所述的裝置,其特征在于,所述裝置還包括: 線程啟動單元,用于當所述當前運行線程中每個線程維護的會話數量均已達到所述預設會話數量閾值時,啟動新的運行線程; 所述會話分配單元,還用于將所述新建會話分配給所述新的運行線程。
10.如權利要求9所述的裝置,其特征在于,所述裝置還包括: 線程數量判斷單元,用于在所述線程啟動單元啟動新的運行線程之前,判斷所述當前運行線程的數量是否達到當前可啟動的運行線程的數量上限; 所述線程啟動單元,具體用于當所述當前運行線程的數量未達到所述當前可啟動的運行線程的數量上限時,啟動新的運行線程。
11.如權利要求7至10任一所述的裝置,其特征在于: 所述線程選擇單元,具體用于當存在多個所述維護會話數量最少的運行線程時,任選一個維護會話數量最少的運行線程作為目標線程。
12.如權利要求7所述的裝置,其特征在于,所述裝置還包括: 標記添加單元,用于當所述當前運行線程中的第一線程維護的會話數量為零時,為所述第一線程添加待刪除標記; 線程處理單元,用于當所述第一線程的刪除時長未達到預設刪除時長時,如果有新建會話,且當前除所述第一線程以外的其它運行線程維護的會話數量均已達到預設會話數量閾值,則將所述新建會話分配給所述第一線程維護,并刪除所述待刪除標記;當所述第一線程的刪除時長達到所述預設刪除時長時,如果所述第一線程維護的會話數量仍然為零,則刪除所述第一線程。
【文檔編號】H04L12/24GK104243212SQ201410495911
【公開日】2014年12月24日 申請日期:2014年9月24日 優先權日:2014年9月24日
【發明者】章海鋒, 周軼凡 申請人:杭州華三通信技術有限公司