欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多路徑路由的管理方法及裝置與流程

文檔序號:12131960閱讀:490來源:國知局
多路徑路由的管理方法及裝置與流程

本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種多路徑路由的管理方法及裝置。



背景技術(shù):

路由的多路徑技術(shù)提供了一種簡單的機制來分配通信量、平衡網(wǎng)絡(luò)負載,以及提供容錯能力,所以一直在電路交換網(wǎng)絡(luò)和分組交換網(wǎng)絡(luò)中受到人們的青睞。

基于數(shù)據(jù)共享和提高性能的考慮,一般而言路由裝置中的多路徑數(shù)據(jù)都是獨立于路由數(shù)據(jù)的,兩者之間通過索引或其他唯一性鍵值進行一對多關(guān)聯(lián);而基于內(nèi)存容量的限制,路由裝置一般都會對這兩者的極限容量進行限制。由于通常情況下,配置多路徑路由的場景遠少于配置單路徑路由的場景,而且一個多路徑的數(shù)據(jù)往往被多個路由數(shù)據(jù)共享,所以在定義多路徑的極限容量時,一般只會定義一個相對于路由數(shù)據(jù)的極限容量來說很小的參數(shù)。

但是,在一些情況下,會因為上述原因,導(dǎo)致一個無法避免的問題,即當(dāng)有新的路由更新到達并要求創(chuàng)建新的多路徑數(shù)據(jù)時,因為配置的可用容量已經(jīng)耗盡,路由裝置會拒絕生成多路徑數(shù)據(jù)并返回錯誤,如果沒有一個方法管理這些多路徑路由的信息,即使隨后有現(xiàn)存的多路徑數(shù)據(jù)被釋放了,那么除非上游重新下發(fā)路由信息,否則再無法由多路徑模塊自主重新創(chuàng)建該多路徑信息。



技術(shù)實現(xiàn)要素:

本發(fā)明提供了一種多路徑路由的管理方法及裝置,以至少解決在多路徑路由的配置資源耗盡時因丟棄信息而導(dǎo)致后續(xù)出現(xiàn)空余資源時路由設(shè)備不能自主創(chuàng)建多路徑的問題。

根據(jù)本發(fā)明的一個方面,提供了一種多路徑路由的管理方法,包括:在路由設(shè)備中的真實多路徑的資源已經(jīng)用盡時,根據(jù)接收到的多路徑路由更新消息在已創(chuàng)建的虛擬多路徑索引庫中申請與當(dāng)前需要創(chuàng)建的多路徑對應(yīng)的索引和條目空間;保存所述路由更新消息的路由數(shù)據(jù),并在所述當(dāng)前需要創(chuàng)建的多路徑中選擇一條可用路徑下發(fā)給所述路由設(shè)備的轉(zhuǎn)發(fā)面;在所述路由設(shè)備中的真實多路徑的資源釋放時,查找與待釋放的真實多路徑類型相同的指定虛擬多路徑;將所述指定虛擬多路徑的路由數(shù)據(jù)復(fù)制到所述待釋放的真實多路徑的空間并指示所述轉(zhuǎn)發(fā)面進行真實多路徑轉(zhuǎn)發(fā)。

進一步地,在在根據(jù)接收到的多路徑路由更新消息在已創(chuàng)建的虛擬多路徑索引庫中申請與當(dāng)前需要創(chuàng)建的多路徑對應(yīng)的索引和條目空間之前,所述方法還包括:在所述路由設(shè)備上為所述真實多路徑和所述虛擬多路徑預(yù)留配置資源;獲取所述路由設(shè)備可配置的最大路由條目數(shù)并得到與所述最大路由條目數(shù)同級別的最小整數(shù);創(chuàng)建以所述最小整數(shù)作為最大條目數(shù)的所述虛擬多路徑的索引庫。

進一步地,所述根據(jù)接收到的路由更新消息在已創(chuàng)建的虛擬多路徑索引庫中申請與當(dāng)前需要創(chuàng)建的多路徑對應(yīng)的索引和條目空間包括:判斷已創(chuàng)建的多路徑中是否存在與所述路由更新消息所指示的多路徑相同的路徑;在判斷結(jié)果為否時,在所述虛擬多路徑索引庫中申請與所述路由更新消息指示的多路徑對應(yīng)的索引和條目空間。

進一步地,所述方法還包括:在判斷結(jié)果為是時,將所述路由更新消息所指示的多路徑復(fù)用在所述路由設(shè)備的待更新路由上。

進一步地,查找與待釋放的真實多路徑類型相同的指定虛擬多路徑包括:獲取所述待釋放的真實多路徑的路徑類型和條目數(shù),其中,所述路徑類型包括:負荷分擔(dān)類型和快速重路由類型;根據(jù)所述待釋放的真實多路徑的路徑類型在已創(chuàng)建的虛擬多路徑索引庫中搜索相同類型的虛擬多路徑;分別獲取所述相同類型的虛擬多路徑的條目數(shù)并將條目數(shù)與所述待釋放的真實多路徑的條目數(shù)相同的虛擬多路徑確定為所述指定虛擬多路徑,或,將所述虛擬多路徑索引庫中的第一個與所述待釋放的真實多路徑的路徑類型相同的虛擬多路徑確定為所述指定虛擬多路徑。

根據(jù)本發(fā)明的另一方面,提供了一種多路徑路由的管理裝置,包括:申請模塊,用于在路由設(shè)備中的真實多路徑的資源已經(jīng)用盡時,根據(jù)接收到的多路徑路由更新消息在已創(chuàng)建的虛擬多路徑索引庫中申請與當(dāng)前需要創(chuàng)建的多路徑對應(yīng)的索引和條目空間;下發(fā)模塊,用于保存所述路由更新消息的路由數(shù)據(jù),并在所述當(dāng)前需要創(chuàng)建的多路徑中選擇一條可用路徑下發(fā)給所述路由設(shè)備的轉(zhuǎn)發(fā)面;查找模塊,用于在所述路由設(shè)備中的真實多路徑的資源釋放時,查找與待釋放的真實多路徑類型相同的指定虛擬多路徑;重建模塊,用于將所述指定虛擬多路徑的路由數(shù)據(jù)復(fù)制到所述待釋放的真實多路徑的空間并指示所述轉(zhuǎn)發(fā)面進行真實多路徑轉(zhuǎn)發(fā)。

進一步地,所述裝置還包括:預(yù)留模塊,用于在根據(jù)接收到的多路徑路由更新消息在已創(chuàng)建的虛擬多路徑索引庫中申請與當(dāng)前需要創(chuàng)建的多路徑對應(yīng)的索引和條目空間之前,在所述路由設(shè)備上為所述真實多路徑和所述虛擬多路徑預(yù)留配置資源;獲取模塊,用于獲取所述路由設(shè)備可配置的最大路由條目數(shù)并得到與所述最大路由條目數(shù)同級別的最小整數(shù);創(chuàng)建模塊,用于創(chuàng)建以所述最小整數(shù)作為最大條目數(shù)的所述虛擬多路徑的索引庫。

進一步地,申請模塊包括:判斷單元,用于判斷已創(chuàng)建的多路徑中是否存在與所述路由更新消息所指示的多路徑相同的路徑;申請單元,用于在判斷結(jié)果為否時,在所述虛擬多路徑索引庫中申請與所述路由更新消息指示的多路徑對應(yīng)的索引和條目空間。

進一步地,所述申請模塊還包括:復(fù)用單元,用于在判斷結(jié)果為是時,將所述路由更新消息所指示的多路徑復(fù)用在所述路由設(shè)備的待更新路由上。

進一步地,查找模塊包括:獲取單元,用于獲取所述待釋放的真實多路徑的路徑類型和條目數(shù),其中,所述路徑類型包括:負荷分擔(dān)類型和快速重路由類型;搜索單元,用于根據(jù)所述待釋放的真實多路徑的路徑類型在已創(chuàng)建的虛擬多路徑索引庫中搜索相同類型的虛擬多路徑;確定單元,用于分別獲取所述相同類型的虛擬多路徑的條目數(shù)并將條目數(shù)與所述待釋 放的真實多路徑的條目數(shù)相同的虛擬多路徑確定為所述指定虛擬多路徑,或,將所述虛擬多路徑索引庫中的第一個與所述待釋放的真實多路徑的路徑類型相同的虛擬多路徑確定為所述指定虛擬多路徑。

通過本發(fā)明,采用在路由設(shè)備中的真實多路徑的資源已經(jīng)用盡時,根據(jù)接收到的多路徑路由更新消息在已創(chuàng)建的虛擬多路徑索引庫中申請與當(dāng)前需要創(chuàng)建的多路徑對應(yīng)的索引和條目空間;保存所述路由更新消息的路由數(shù)據(jù),并在所述當(dāng)前需要創(chuàng)建的多路徑中選擇一條可用路徑下發(fā)給所述路由設(shè)備的轉(zhuǎn)發(fā)面;在所述路由設(shè)備中的真實多路徑的資源釋放時,查找與待釋放的真實多路徑類型相同的指定虛擬多路徑;將所述指定虛擬多路徑的路由數(shù)據(jù)復(fù)制到所述待釋放的真實多路徑的空間并指示所述轉(zhuǎn)發(fā)面進行真實多路徑轉(zhuǎn)發(fā)。解決了在多路徑的配置資源耗盡后因為丟棄或過濾部分路徑信息造成路由設(shè)備不能在后續(xù)出現(xiàn)空閑多路徑資源時自主創(chuàng)建超容量多路徑的問題,進而達到了無需上游下發(fā)路由更新消息而自主重新創(chuàng)建多路徑路由的效果。

針對相關(guān)技術(shù)中在多路徑路由的配置資源耗盡時因丟棄信息而導(dǎo)致后續(xù)出現(xiàn)空余資源時路由設(shè)備不能自主創(chuàng)建多路徑的問題,目前尚未存在有效的解決方案。

附圖說明

此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:

圖1是根據(jù)本發(fā)明實施例的多路徑路由的管理方法的流程圖;

圖2是根據(jù)本發(fā)明實施例的多路徑路由的管理裝置的結(jié)構(gòu)框圖;

圖3是根據(jù)本發(fā)明實施例的多路徑路由的管理裝置的可選結(jié)構(gòu)框圖一;

圖4是根據(jù)本發(fā)明實施例的多路徑路由的管理裝置的可選結(jié)構(gòu)框圖二;

圖5是根據(jù)本發(fā)明實施例的多路徑路由的管理裝置的可選結(jié)構(gòu)框圖三;

圖6是根據(jù)本發(fā)明實施例的多路徑路由的管理裝置的可選結(jié)構(gòu)框圖四;

圖7是根據(jù)本發(fā)明可選實施例的路由和真實多路徑之間的關(guān)聯(lián)關(guān)系圖;

圖8是根據(jù)本發(fā)明可選實施例的處理真實多路徑路由的流程圖;

圖9是根據(jù)本發(fā)明可選實施例生成的路由和多路徑之間的關(guān)聯(lián)關(guān)系圖;

圖10是根據(jù)本發(fā)明可選實施例的處理多路徑路由的流程圖;

圖11是根據(jù)本發(fā)明可選實施例的釋放超容量多路徑的流程圖;

圖12是根據(jù)本發(fā)明可選實施例的真實多路徑數(shù)據(jù)被釋放后自主恢復(fù)因容量受限未創(chuàng)建的多路徑信息的流程圖。

具體實施方式

下文中將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。

需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。

在本實施例中提供了一種多路徑路由的管理方法,圖1是根據(jù)本發(fā)明實施例的多路徑路由的管理方法的流程圖,如圖1所示,該流程包括如下步驟:

步驟S102,在路由設(shè)備中的真實多路徑的資源已經(jīng)用盡時,根據(jù)接收到的多路徑路由更新消息在已創(chuàng)建的虛擬多路徑索引庫中申請與當(dāng)前需要創(chuàng)建的多路徑對應(yīng)的索引和條目空間;

可選的,路由設(shè)備中的可配置路由資源有限,路由資源又包括單路徑路由和多路徑路由,在本實施例中,以多路徑為例進行說明,在路由設(shè)備中,配置多路徑的資源也是有限的,其與路由設(shè)備本身的硬件和存儲器件的容量有關(guān)。在真實路由路徑的配置過程中,配置一條多路徑路由需要在路由設(shè)備的索引庫中申請一個索引和條目空間,以配置一條完整可轉(zhuǎn)發(fā)的路徑,通常在接收到上游設(shè)備發(fā)送的路由更新消息后,創(chuàng)建一條新的多路徑,路由更新消息攜帶路由前綴、下一跳信息、路徑類型等,其中,路由前綴包括目的地址等。

在本實施例中,考慮的是路由設(shè)備預(yù)先配置的多路徑資源用盡的場景,但是,在路由資源沒有用盡的情況下,也可以創(chuàng)建虛擬多路徑,如實現(xiàn)備份等。本實施例中的虛擬多路徑的索引和條目空間除了配置資源不同外,其余與真實多路徑一致,申請創(chuàng)建的虛擬多路徑除了不能轉(zhuǎn)發(fā)數(shù)據(jù)外,其余都是和真實多路徑一致的,包括多路徑的生成和維護。

步驟S104,保存多路徑路由更新消息的路由數(shù)據(jù),并在當(dāng)前需要創(chuàng)建的多路徑中選擇一條可用路徑下發(fā)給路由設(shè)備的轉(zhuǎn)發(fā)面;

在本實施例中,路由設(shè)備在軟件層面從上至下大致包括協(xié)議面、支撐面、轉(zhuǎn)發(fā)面三層,其中轉(zhuǎn)發(fā)面負責(zé)路由的實際轉(zhuǎn)發(fā)。由于虛擬多路徑數(shù)量不受除內(nèi)存外其他硬件條件的限制,這是一個“人造”的多路徑,不會真正下發(fā)轉(zhuǎn)發(fā)面來指導(dǎo)轉(zhuǎn)發(fā),路由更新消息的路由數(shù)據(jù)和多路徑信息保存在支撐面,我們下發(fā)時,會選擇其中一條路徑,偽裝成一條單路徑下發(fā)來指導(dǎo)轉(zhuǎn)發(fā),以告知路由設(shè)備當(dāng)前有待轉(zhuǎn)發(fā)的報文。

步驟S106,在路由設(shè)備中的真實多路徑的資源釋放時,查找與待釋放的真實多路徑類型相同的指定虛擬多路徑;

可選的,真實多路徑的資源釋放,表示,使用此條多路徑進行轉(zhuǎn)發(fā)的一條或多條路由條目釋放,可供其他的多路徑配置加入和使用,在已經(jīng)創(chuàng)建的虛擬多路徑的所有條目空間中查找可加入真實多路徑的路由條目,由于多路徑的路徑信息不盡相同,查找到的待加入真實多路徑的虛擬多路徑的路由條目的路徑類型與釋放的真實多路徑的路徑類型一致。

步驟S108,將指定虛擬多路徑的路由數(shù)據(jù)復(fù)制到待釋放的真實多路徑的空間,并指示轉(zhuǎn) 發(fā)面進行真實多路徑轉(zhuǎn)發(fā)。

在本實施例中,由于虛擬多路徑的生成和維護是和真實多路徑的處理流程是一致的,是對應(yīng)的,在根據(jù)虛擬多路徑創(chuàng)建真實多路徑時,即,在將虛擬多路徑轉(zhuǎn)變?yōu)檎鎸嵍嗦窂綍r,可以直接將虛擬多路徑的路由數(shù)據(jù)復(fù)制到真實多路徑的空間,可選的,在具體復(fù)制過程中,可以通過先刪除待釋放的真實多路徑的索引和對應(yīng)的路由數(shù)據(jù),然后修改為虛擬多路徑的索引和路由數(shù)據(jù),或者直接修改多路徑的索引指示的地址,修改待釋放的真實多路徑索引關(guān)聯(lián)的多路徑信息的內(nèi)存地址為所述指定虛擬多路徑的內(nèi)存地址,該內(nèi)存地址保存了虛擬多路徑的路由數(shù)據(jù),虛擬多路徑轉(zhuǎn)變?yōu)檎鎸嵍嗦窂?,并通告所有關(guān)聯(lián)該虛擬多路徑的路由按照真實多路徑方式進行轉(zhuǎn)發(fā)。

通過本實施例,采用在路由設(shè)備中的真實多路徑的資源已經(jīng)用盡時,根據(jù)接收到的多路徑路由更新消息在已創(chuàng)建的虛擬多路徑索引庫中申請與當(dāng)前需要創(chuàng)建的多路徑對應(yīng)的索引和條目空間;保存路由更新消息的路由數(shù)據(jù),并在當(dāng)前需要創(chuàng)建的多路徑中選擇一條可用路徑下發(fā)給路由設(shè)備的轉(zhuǎn)發(fā)面;在路由設(shè)備中的真實多路徑的資源釋放時,查找與待釋放的真實多路徑類型相同的指定虛擬多路徑;將指定虛擬多路徑的路由數(shù)據(jù)復(fù)制到待釋放的真實多路徑的空間或者直接修改待釋放的真實多路徑索引關(guān)聯(lián)的多路徑信息的內(nèi)存地址為所述指定虛擬多路徑的內(nèi)存地址并指示轉(zhuǎn)發(fā)面進行真實多路徑轉(zhuǎn)發(fā)。解決了在多路徑的配置資源耗盡后因為丟棄或過濾部分路徑信息造成路由設(shè)備不能在后續(xù)出現(xiàn)空閑多路徑資源時自主創(chuàng)建超容量多路徑的問題,進而達到了無需上游下發(fā)路由更新消息而自主重新創(chuàng)建多路徑路由的效果。

在根據(jù)本發(fā)明實施例的可選實施方式中,在在根據(jù)接收到的多路徑路由更新消息在已創(chuàng)建的虛擬多路徑索引庫中申請與當(dāng)前需要創(chuàng)建的多路徑對應(yīng)的索引和條目空間之前,方法還包括創(chuàng)建虛擬多路徑的索引庫,具體可通過以下方式實現(xiàn),包括:

S11,在路由設(shè)備上為真實多路徑和虛擬多路徑預(yù)留配置資源;

S12,獲取路由設(shè)備可配置的最大路由條目數(shù)并得到與最大路由條目數(shù)同級別的最小整數(shù);

S13,創(chuàng)建以最小整數(shù)作為最大條目數(shù)的虛擬多路徑的索引庫。

在本實施方式中,需要預(yù)留除了真實多路徑的配置資源之外的虛擬多路徑的配置資源。在具體的分配過程中,可讀取路由設(shè)備的性能配置參數(shù),得到路由設(shè)置的最大路由條目數(shù),開辟索引范圍從1至真實多路徑的最大數(shù)量(以下簡稱為NORMAL_MAX_INDEX),讀取真實性能配置參數(shù)中定義的路由條目的最大數(shù)量,得到一個同級別的整數(shù),作為虛擬多路徑的最大條目數(shù)。如,路由設(shè)備可配置的最大路由條目數(shù)為250萬,則取100萬作為虛擬多路徑的索引庫的最大路由條目,以下簡稱為VIRTUAL_MAX_NUM),接著開辟一段虛擬多路徑的索引空間,其索引范圍從NORMAL_MAX_INDEX+1至NORMAL_MAX_INDEX+VIRTUAL_MAX_NUM。

由于真實多路徑的數(shù)量受到轉(zhuǎn)發(fā)面的限制,是在配置文件中明確定義的一個很小的數(shù)字,但是虛擬多路徑的數(shù)量,是不受轉(zhuǎn)發(fā)面限制的,我們可以設(shè)置一個很大的值,可以和路由條 目數(shù)同級別,比如最大路由條目數(shù)是250萬,那我們可以規(guī)定虛擬多路徑數(shù)量是100萬,這樣基本就不存在虛擬多路徑資源耗盡的問題。

在根據(jù)本發(fā)明實施例的可選實施方式中,在根據(jù)接收到的路由更新消息在已創(chuàng)建的虛擬多路徑索引庫中申請與當(dāng)前需要創(chuàng)建的多路徑對應(yīng)的索引和條目空間包括:

S21,判斷已創(chuàng)建的多路徑中是否存在與路由更新消息所指示的多路徑相同的路徑;

S22,在判斷結(jié)果為否時,在虛擬多路徑索引庫中申請與路由更新消息指示的多路徑對應(yīng)的索引和條目空間。

可選的,在收到上游的路由更新消息,由于真實多路徑的配置資源已經(jīng)耗盡了,只能去通過虛擬多路徑進行處理,而在需要創(chuàng)建虛擬多路徑時,可能在已創(chuàng)建的多路徑中存在與路由更新消息所指示的多路徑相同的路徑,也可能沒有,在沒有的情況下,需要在虛擬多路徑索引庫中申請新的虛擬多路徑索引和條目空間,并將條目空間和索引進行關(guān)聯(lián)創(chuàng)建新的虛擬多路徑。

根據(jù)上述可選實施方式,另一方面,已創(chuàng)建的多路徑中存在與路由更新消息所指示的多路徑相同的路徑,在判斷結(jié)果為是時,將路由更新消息所指示的多路徑復(fù)用在路由設(shè)備的待更新路由上。其中,所述待更新路由為路由設(shè)備在后續(xù)恢復(fù)多路徑的路由后更新的路由。

在根據(jù)本發(fā)明實施例的可選實施方式中,查找與待釋放的真實多路徑類型相同的指定虛擬多路徑包括:

S41,獲取待釋放的真實多路徑的路徑類型和條目數(shù),其中,路徑類型包括:負荷分擔(dān)類型和快速重路由類型;

S42,根據(jù)待釋放的真實多路徑的路徑類型在已創(chuàng)建的虛擬多路徑索引庫中搜索相同類型的虛擬多路徑;

S43,分別獲取相同類型的虛擬多路徑的條目數(shù)并將條目數(shù)與待釋放的真實多路徑的條目數(shù)相同的虛擬多路徑確定為指定虛擬多路徑,或,將虛擬多路徑索引庫中的第一個與待釋放的真實多路徑的路徑類型相同的虛擬多路徑確定為指定虛擬多路徑。

可選的,具體在虛擬多路徑索引庫中搜索相同類型的虛擬多路徑時,可通過遍歷虛擬多路徑索引庫,找到第一個同類型的虛擬多路徑的路由條目,或者找到所有同類型的虛擬多路徑的路由條目通過篩選找出優(yōu)先級最高的路由條目。如果待釋放的是負荷分擔(dān)的也應(yīng)該找一個負荷分擔(dān)類型的虛擬多路徑條目,如果待釋放的是快速重路由的也應(yīng)該找一個快速重路由類型的虛擬多路徑條目。

由于在實際轉(zhuǎn)變過程中,待轉(zhuǎn)發(fā)的虛擬多路徑和待釋放的真實多路徑的路徑類型需要相同,當(dāng)一個真實多路徑釋放時,就到虛擬多路徑庫中搜索同類型的,可以將選定的第一個作為指定虛擬多路徑,也可以是其他方式,比如同條目數(shù)的,也就是釋放的真實多路徑是3下一跳的負荷分擔(dān),我們在選哪個虛擬多路徑恢復(fù)的時候,也可以優(yōu)選一個3下一跳的負荷分 擔(dān)的虛擬多路徑進行恢復(fù),這樣不涉及內(nèi)存調(diào)整,利用效率高??蛇x的,考慮到虛擬多路徑的創(chuàng)建和維護過程與真實多路徑一致,可以直接將待釋放的真實多路徑索引關(guān)聯(lián)的真實多路徑信息的內(nèi)存地址修改為所述指定虛擬多路徑信息的內(nèi)存地址,然后再更新所有關(guān)聯(lián)該虛擬多路徑的路由并下發(fā)轉(zhuǎn)發(fā)面。

通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機,計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例的方法。

在本實施例中還提供了一種多路徑路由的管理裝置,該裝置用于實現(xiàn)上述實施例及優(yōu)選實施方式,已經(jīng)進行過說明的不再贅述。如以下所使用的,術(shù)語“模塊”可以實現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構(gòu)想的。

圖2是根據(jù)本發(fā)明實施例的多路徑路由的管理裝置的結(jié)構(gòu)框圖,如圖2所示,該裝置包括:申請模塊20、下發(fā)模塊22、查找模塊24、重建模塊26,其中

申請模塊20,用于在路由設(shè)備中的真實多路徑的資源已經(jīng)用盡時,根據(jù)接收到的多路徑路由更新消息在已創(chuàng)建的虛擬多路徑索引庫中申請與當(dāng)前需要創(chuàng)建的多路徑對應(yīng)的索引和條目空間;

可選的,路由設(shè)備中的可配置路由資源有限,路由資源又包括單路徑路由和多路徑路由,在本實施例中,以多路徑為例進行說明,在路由設(shè)備中,配置多路徑的資源也是有限的,其與路由設(shè)備本身的硬件和存儲器件的容量有關(guān)。在真實路由路徑的配置過程中,配置一條多路徑路由需要在路由設(shè)備的索引庫中申請一個索引和條目空間,以配置一條完整可轉(zhuǎn)發(fā)的路徑,通常在接收到上游設(shè)備發(fā)送的路由更新消息后,創(chuàng)建一條新的多路徑,路由更新消息攜帶路由前綴、下一跳信息、路徑類型等,其中,路由前綴包括目的地址等。

在本實施例中,考慮的是路由設(shè)備預(yù)先配置的多路徑資源用盡的場景,但是,在路由資源沒有用盡的情況下,也可以創(chuàng)建虛擬多路徑,如實現(xiàn)備份等。本實施例中的虛擬多路徑的索引和條目空間除了配置資源不同外,其余與真實多路徑一致,申請創(chuàng)建的虛擬多路徑除了不能轉(zhuǎn)發(fā)數(shù)據(jù)外,其余都是和真實多路徑一致的,包括多路徑的生成和維護。

下發(fā)模塊22,用于保存多路徑路由更新消息的路由數(shù)據(jù),并在當(dāng)前需要創(chuàng)建的多路徑中選擇一條可用路徑下發(fā)給路由設(shè)備的轉(zhuǎn)發(fā)面;

在本實施例中,路由設(shè)備在軟件層面從上至下大致包括協(xié)議面、支撐面、轉(zhuǎn)發(fā)面三層,其中轉(zhuǎn)發(fā)面負責(zé)路由的實際轉(zhuǎn)發(fā)。由于虛擬多路徑數(shù)量不受除內(nèi)存外其他硬件條件的限制,這是一個“人造”的多路徑,不會真正下發(fā)轉(zhuǎn)發(fā)面來指導(dǎo)轉(zhuǎn)發(fā),路由更新消息的路由數(shù)據(jù)和 多路徑信息保存在支撐面,我們下發(fā)時,會選擇其中一條路徑,偽裝成一條單路徑下發(fā)來指導(dǎo)轉(zhuǎn)發(fā)。

查找模塊24,與下發(fā)模塊22耦合連接,用于在路由設(shè)備中的真實多路徑的資源釋放時,查找與待釋放的真實多路徑類型相同的指定虛擬多路徑;

可選的,真實多路徑的資源釋放,表示,使用此條多路徑進行轉(zhuǎn)發(fā)的一條或多條路由條目釋放,可供其他的多路徑配置加入和使用,在已經(jīng)創(chuàng)建的虛擬多路徑的所有條目空間中查找可加入真實多路徑的路由條目,由于多路徑的路徑信息不盡相同,查找到的待加入真實多路徑的虛擬多路徑的路由條目的路徑類型與釋放的真實多路徑的路徑類型一致。

重建模塊26,與查找模塊24耦合連接,用于將指定虛擬多路徑的路由數(shù)據(jù)復(fù)制到待釋放的真實多路徑的空間并指示轉(zhuǎn)發(fā)面進行真實多路徑轉(zhuǎn)發(fā)。

在本實施例中,由于虛擬多路徑的生成和維護是和真實多路徑的處理流程是一致的,是對應(yīng)的,在根據(jù)虛擬多路徑創(chuàng)建真實多路徑時,即,在將虛擬多路徑轉(zhuǎn)變?yōu)檎鎸嵍嗦窂綍r,可以直接將虛擬多路徑的路由數(shù)據(jù)復(fù)制到真實多路徑的空間,可選的,在具體復(fù)制過程中,可以通過先刪除待釋放的真實多路徑的索引和對應(yīng)的路由數(shù)據(jù),然后修改為虛擬多路徑的索引和路由數(shù)據(jù),或者直接修改多路徑的索引指示的地址,修改待釋放的真實多路徑索引關(guān)聯(lián)的多路徑信息的內(nèi)存地址為所述指定虛擬多路徑的內(nèi)存地址,該內(nèi)存地址保存了虛擬多路徑的路由數(shù)據(jù),虛擬多路徑轉(zhuǎn)變?yōu)檎鎸嵍嗦窂?,并通告所有關(guān)聯(lián)該虛擬多路徑的路由按照真實多路徑轉(zhuǎn)發(fā)。

圖3是根據(jù)本發(fā)明實施例的多路徑路由的管理裝置的可選結(jié)構(gòu)框圖一,如圖3所示,該裝置除包括圖2所示的所有模塊外,還包括:預(yù)留模塊30、獲取模塊32、創(chuàng)建模塊34,其中

預(yù)留模塊30,用于在根據(jù)接收到的多路徑路由更新消息在已創(chuàng)建的虛擬多路徑索引庫中申請與當(dāng)前需要創(chuàng)建的多路徑對應(yīng)的索引和條目空間之前,在路由設(shè)備上為真實多路徑和虛擬多路徑預(yù)留配置資源;

獲取模塊32,用于獲取路由設(shè)備可配置的最大路由條目數(shù)并得到與最大路由條目數(shù)同級別的最小整數(shù);

創(chuàng)建模塊34,用于創(chuàng)建以最小整數(shù)作為最大條目數(shù)的虛擬多路徑的索引庫。

在本實施方式中,需要預(yù)留出了真實多路徑的配置資源之外的虛擬多路徑的配置資源,需要路由設(shè)備重新分配已有的可配置資源。在具體的分配過程中,可讀取路由設(shè)備的性能配置參數(shù),得到路由設(shè)置的最大路由條目數(shù),開辟索引范圍從1至真實多路徑的最大數(shù)量(以下簡稱為NORMAL_MAX_INDEX),讀取真實性能配置參數(shù)中定義的路由條目的最大數(shù)量,得到一個同級別的整數(shù),作為虛擬多路徑的最大條目數(shù)。如,路由設(shè)備可配置的最大路由條目數(shù)為250萬,則取100萬作為虛擬多路徑的索引庫的最大路由條目,以下簡稱為VIRTUAL_MAX_NUM),接著開辟一段虛擬多路徑的索引空間,其索引范圍從 NORMAL_MAX_INDEX+1至NORMAL_MAX_INDEX+VIRTUAL_MAX_NUM。

由于真實多路徑的數(shù)量受到轉(zhuǎn)發(fā)面的限制,是在配置文件中明確定義的一個很小的數(shù)字,但是虛擬多路徑的數(shù)量,是不受轉(zhuǎn)發(fā)面限制的,我們可以設(shè)置一個很大的值,可以和路由條目數(shù)同級別,比如最大路由條目數(shù)是250萬,那我們可以規(guī)定虛擬多路徑數(shù)量是100萬,這樣基本就不存在虛擬多路徑資源耗盡的問題。

圖4是根據(jù)本發(fā)明實施例的多路徑路由的管理裝置的可選結(jié)構(gòu)框圖二,如圖4所示,該裝置除包括圖2所示的所有模塊外,申請模塊20還包括:判斷單元40、申請單元42,其中

判斷單元40,用于判斷已創(chuàng)建的多路徑中是否存在與路由更新消息所指示的多路徑相同的路徑;

申請單元42,與判斷單元40耦合連接,用于在判斷結(jié)果為否時,在虛擬多路徑索引庫中申請與路由更新消息指示的多路徑對應(yīng)的索引和條目空間。

可選的,在收到上游的路由更新消息,由于真實多路徑的配置資源已經(jīng)耗盡了,只能去通過虛擬多路徑進行處理,而在需要創(chuàng)建虛擬多路徑時,可能在已創(chuàng)建的多路徑中存在與路由更新消息所指示的多路徑相同的路徑,也可能沒有,在沒有的情況下,需要在虛擬多路徑索引庫中申請新的虛擬多路徑索引和條目空間,并將條目空間和索引進行關(guān)聯(lián)創(chuàng)建新的虛擬多路徑。

圖5是根據(jù)本發(fā)明實施例的多路徑路由的管理裝置的可選結(jié)構(gòu)框圖三,如圖5所示,該裝置除包括圖4所示的所有模塊外,申請模塊20還包括:復(fù)用單元50,與判斷單元40耦合連接,用于在判斷結(jié)果為是時,將路由更新消息所指示的多路徑復(fù)用在路由設(shè)備的待更新路由上。

圖6是根據(jù)本發(fā)明實施例的多路徑路由的管理裝置的可選結(jié)構(gòu)框圖四,如圖6所示,該裝置除包括圖2所示的所有模塊外,查找模塊24包括:獲取單元60、搜索單元62、確定單元64,其中

獲取單元60,用于獲取待釋放的真實多路徑的路徑類型和條目數(shù),其中,路徑類型包括:負荷分擔(dān)類型和快速重路由類型;

搜索單元62,與獲取單元60耦合連接,用于根據(jù)待釋放的真實多路徑的路徑類型在已創(chuàng)建的虛擬多路徑索引庫中搜索相同類型的虛擬多路徑;

確定單元64,與搜索單元62耦合連接,用于分別獲取相同類型的虛擬多路徑的條目數(shù)并將條目數(shù)與待釋放的真實多路徑的條目數(shù)相同的虛擬多路徑確定為指定虛擬多路徑,或,將虛擬多路徑索引庫中的第一個與待釋放的真實多路徑的路徑類型相同的虛擬多路徑確定為指定虛擬多路徑。

可選的,具體在虛擬多路徑索引庫中搜索相同類型的虛擬多路徑時,可通過遍歷虛擬多路徑索引庫,找到第一個同類型的虛擬多路徑的路由條目,或者找到所有同類型的虛擬多路 徑的路由條目通過篩選找出優(yōu)先級最高的路由條目。如果待釋放的是負荷分擔(dān)的也應(yīng)該找一個負荷分擔(dān)類型的虛擬多路徑條目,如果待釋放的是快速重路由的也應(yīng)該找一個快速重路由類型的虛擬多路徑條目。

由于在實際轉(zhuǎn)變過程中,待轉(zhuǎn)發(fā)的虛擬多路徑和待釋放的真實多路徑的路徑類型需要相同,當(dāng)一個真實多路徑釋放時,就到虛擬多路徑庫中搜索同類型的,可以將選定的第一個作為指定虛擬多路徑,也可以是其他方式,比如同條目數(shù)的,也就是釋放的真實多路徑是3下一跳的負荷分擔(dān),我們在選哪個虛擬多路徑恢復(fù)的時候,也可以優(yōu)選一個3下一跳的負荷分擔(dān)的虛擬多路徑進行恢復(fù),這樣不涉及內(nèi)存調(diào)整,利用效率高;或者直接修改待釋放的真實多路徑索引關(guān)聯(lián)的多路徑信息的內(nèi)存地址為所述指定虛擬多路徑的內(nèi)存地址。

下面結(jié)合根據(jù)本發(fā)明的可選實施例對本發(fā)明進行進一步的說明,本可選的實施例首先

用“虛擬多路徑”存儲和管理超配置容量的多路徑數(shù)據(jù),然后偵聽現(xiàn)存的真實多路徑數(shù)據(jù)的釋放信息并通告,在發(fā)現(xiàn)真實多路徑數(shù)據(jù)的釋放時,從“虛擬多路徑”選擇合適條目轉(zhuǎn)換為真正的多路徑信息。

其中,本可選實施例的實現(xiàn)流程包括:

S51,創(chuàng)建“虛擬多路徑”索引庫,其配置容量和路由前綴容量同規(guī)模;

S52,收到路由更新后觸發(fā)多路徑更新,在多路徑創(chuàng)建過程中發(fā)現(xiàn)因為配置的可用容量已經(jīng)耗盡,無法創(chuàng)建該多路徑;

S53,申請一個“虛擬多路徑”的索引和條目空間,按照真實的多路徑處理流程來生成和維護該多路徑數(shù)據(jù),該數(shù)據(jù)除了不能用于轉(zhuǎn)發(fā)外,其他處理與真實多路徑數(shù)據(jù)一致;

S54,在路由條目上記錄該“虛擬多路徑”條目的索引并設(shè)置標(biāo)記表明其為虛擬多路徑,隨后對該路由的處理,均取“虛擬多路徑”信息中首路徑信息,按照單路由處理。

S55,如果有其他路由條目也要求創(chuàng)建相同的多路徑,則復(fù)用該虛擬多路徑。

S56,當(dāng)有現(xiàn)存的真實多路徑釋放時,通告并觸發(fā)“虛擬多路徑”遍歷索引庫,找到其中的第一個同類型(負荷分擔(dān)多路徑/FRR多路徑)的虛擬多路徑;

S57,用找到的虛擬多路徑信息創(chuàng)建真實的多路徑,因為S53中已經(jīng)說明,虛擬多路徑的信息是按照真實多路徑的相同處理流程生成和維護的,所以可以直接復(fù)制其數(shù)據(jù)到待釋放的真實多路徑空間或者直接修改待釋放的真實多路徑索引關(guān)聯(lián)的多路徑信息的內(nèi)存地址為所述指定虛擬多路徑的內(nèi)存地址即可;

S58,通知所有持有該“虛擬多路徑”的路由條目修改索引和標(biāo)記,后續(xù)該路由的處理流程,按照多路徑路由進行。

S59,當(dāng)所有的持有該“虛擬多路徑”的路由條目都釋放了對該虛擬多路徑的持有后,該虛擬多路徑條目刪除,其索引釋放回“虛擬多路徑”索引庫。

圖7是根據(jù)本發(fā)明可選實施例的路由和真實多路徑之間的關(guān)聯(lián)關(guān)系圖,如圖7所示,在路由設(shè)備的配置可用容量耗盡前,與現(xiàn)有的路由裝置生成的路由和多路徑之間的關(guān)聯(lián)關(guān)系一致。

圖8是根據(jù)本發(fā)明可選實施例的處理真實多路徑路由的流程圖,在路由設(shè)備的配置可用容量耗盡前,與現(xiàn)有的路由裝置處理多路徑路由的流程一致,如圖8所示,該流程包括:

S801,接收上游路由更新消息;

S802,判斷是否為多路徑路由;是則執(zhí)行S803,否則執(zhí)行S809。

S803,是否已存在相同多路徑信息;是則執(zhí)行S804,否則執(zhí)行S807。

S804,是否有空閑的多路徑容量;是則執(zhí)行S805,否則執(zhí)行S809。

S805,申請新的多路徑索引和空間;

S806,創(chuàng)建多路徑信息;

S807,多路徑被引用流程處理;

S808,多路徑路由更新流程處理;

S809,單路徑路由更新流程處理。

至此流程結(jié)束。

圖9是根據(jù)本發(fā)明可選實施例生成的路由和多路徑之間的關(guān)聯(lián)關(guān)系圖,如圖9所示,包括真實索引庫對應(yīng)的真實多路徑和虛擬索引庫對應(yīng)的虛擬多路徑,多路徑信息包括:多路徑索引、被引用計數(shù)、多路徑基本信息。

下面結(jié)合附圖9對具體實施方式進行說明。本可選實施例在初始化階段為超容量的多路徑條目準(zhǔn)備索引空間的具體流程。

應(yīng)用場景:多路徑模塊初始化,為超容量的多路徑條目準(zhǔn)備索引空間;

具體實施步驟:

步驟S301:為正常多路徑開辟索引空間

讀取性能配置參數(shù),得到正常多路徑的最大數(shù)量,接著開辟一段索引空間,其索引范圍從1至正常多路徑的最大數(shù)量(以下簡稱為NORMAL_MAX_INDEX);

步驟S302:為虛擬多路徑開辟索引空間

讀取性能配置參數(shù)中定義的路由條目的最大數(shù)量,求出一個同級別的整數(shù),作為虛擬多路徑的最大條目數(shù)(比如最大路由數(shù)量為250萬,則取100萬,以下簡稱為VIRTUAL_MAX_NUM),接著開辟一段索引空間,其索引范圍從NORMAL_MAX_INDEX+1 至NORMAL_MAX_INDEX+VIRTUAL_MAX_NUM;

圖10是根據(jù)本發(fā)明可選實施例的處理多路徑路由的流程圖,如圖10所示,包括處理真實多路徑和虛擬多路徑的流程。包括:

步驟S401:接收上游路由更新消息;

步驟S402:判斷是否為多路徑路由;是則執(zhí)行S403,否則執(zhí)行S413;

步驟S403:判斷是否已存在相同的真實多路徑信息;否則執(zhí)行S404,是則執(zhí)行S408;

步驟S404:判斷是否已存在相同的虛擬多路徑信息,否則執(zhí)行S405,是則執(zhí)行S408;

步驟S405:是否有空閑的多路徑容;是則執(zhí)行S406,否則執(zhí)行S409;

步驟S406:申請新的多路徑索引和空間;

步驟S407:創(chuàng)建多路徑信息;

步驟S408:多路徑被引用流程處理;

步驟S409:判斷是否有空閑的虛擬多路徑容量;是則執(zhí)行S410,否則執(zhí)行S413;

步驟S410:申請新的虛擬多路徑索引和空間;

步驟S411:創(chuàng)建虛擬多路徑信息;

步驟S412:虛擬多路徑被引用流程處理;

步驟S413:單路徑路由更新流程處理;

步驟S414:多路徑路由更新流程處理;

至此,流程結(jié)束

結(jié)合圖10,介紹本可選實施例在處理全新超容量多路徑的具體流程:

應(yīng)用場景:路由模塊收到上游的路由更新消息,而且此路由更新消息要求生成全新的多路徑信息,可是此時性能配置參數(shù)中定義的正常多路徑的容量已經(jīng)耗盡。

實施步驟包括:

S61:收到上游路由更新后觸發(fā)多路徑更新,經(jīng)比對,該多路徑信息在真實多路徑和虛擬多路徑中都不存在,要求新建;

S62:經(jīng)判斷,此時性能參數(shù)配置的真實多路徑可用容量已經(jīng)耗盡,無法正常創(chuàng)建該多路徑;申請一個虛擬多路徑的索引和信息空間,該多路徑信息中的索引值設(shè)置為申請得到的虛擬多路徑的索引,設(shè)置其被持有計數(shù)為零;

S63:按照真實的多路徑處理流程生成和維護收到的多路徑更新信息。

S64:在路由條目上記錄該虛擬多路徑條目的索引并設(shè)置標(biāo)記表明其下一跳為虛擬多路徑;將該虛擬多路徑信息中的被引用計數(shù)加一。

可選的,結(jié)合圖10,介紹本可選實施例在處理重復(fù)的超容量多路徑的具體流程:

應(yīng)用場景:路由模塊收到上游的路由更新消息,而且此路由更新消息要求生成多路徑信息在虛擬多路徑中已經(jīng)存在;

具體實施步驟:

S71:收到上游路由更新后觸發(fā)多路徑更新,經(jīng)比對,該多路徑信息在虛擬多路徑中已經(jīng)存在;

S72:在路由條目上記錄該虛擬多路徑條目的索引并設(shè)置標(biāo)記表明其下一跳為虛擬多路徑;

S73:將該虛擬多路徑信息中的被引用計數(shù)加一。

根據(jù)本可選的實施例,當(dāng)發(fā)生配置的可用容量已經(jīng)耗盡的情況時,由于現(xiàn)有技術(shù)無法支持超配置容量的多路徑信息的存儲和管理,現(xiàn)有路由裝置會拒絕生成該多路徑數(shù)據(jù)并返回錯誤,而且即使隨后有現(xiàn)存的多路徑數(shù)據(jù)被釋放了,那么除非上游重新下發(fā)路由信息,否則無法由多路徑模塊自主重新創(chuàng)建該多路徑信息。

本可選實施例在接收到超過性能配置的容量限制的多路徑路由時,通過合理有效的維護方法和裝置,最終能夠保證,即使因為多路徑配置的可用容量已經(jīng)耗盡而暫時無法創(chuàng)建,也可以無需上游重新下發(fā)路由更新信息而由多路徑模塊自主的重新創(chuàng)建該多路徑信息。

圖11是根據(jù)本發(fā)明可選實施例的釋放超容量多路徑的流程圖,如圖11所示,包括:

步驟S501:接收上游路由刪除消息;

步驟S502:判斷是否為多路徑路由,是則執(zhí)行S503,否則執(zhí)行S509;

步驟S503:查找該路由持有的多路徑信息;

步驟S504:判斷該路由持有的多路徑計數(shù)是否大于1,是則執(zhí)行S507,否則執(zhí)行S505;

步驟S505:釋放該多路徑內(nèi)存;

步驟S506:釋放該多路徑占用的索引;

步驟S507:將該多路徑的計數(shù)減一;

步驟S508:多路徑路由刪除流程處理;

步驟S509:單路徑路由刪除流程處理;

至此,流程結(jié)束。

結(jié)合圖11介紹下本發(fā)明在釋放超容量多路徑的具體流程,應(yīng)用場景:路由模塊收到上游的 路由刪除消息,而且該路由持有了一個虛擬多路徑;

具體實施步驟:

S81:收到上游的路由刪除消息,此路由持有了一個虛擬多路徑;

S82:通過路由記錄的持有虛擬多路徑索引,查找到該虛擬多路徑信息,檢查該多路徑的被引用計數(shù);

S83:如果該虛擬多路徑的被引用計數(shù)大于1,則將該虛擬多路徑信息中的被引用計數(shù)減一后結(jié)束流程,否則轉(zhuǎn)S84;

S84:釋放該虛擬多路徑的內(nèi)存和索引。

圖12是根據(jù)本發(fā)明可選實施例的真實多路徑數(shù)據(jù)被釋放后自主恢復(fù)因容量受限未創(chuàng)建的多路徑信息的流程圖,如圖12所示,包括:

步驟S601:接收到真實多路徑的刪除消息;

步驟S602:遍歷虛擬多路徑;

步驟S603:判斷是否存在合適的虛擬多路徑,是則執(zhí)行S605,否則執(zhí)行S604;

步驟S604:判斷是否已經(jīng)遍歷完虛擬多路徑,是則執(zhí)行S608;

步驟S605:用該虛擬多路徑信息創(chuàng)建真實的多路徑;

步驟S606:設(shè)置新建的真實多路徑索引為待釋放的真實多路徑索引;

步驟S607:通知所有持有該虛擬多路徑的路由更新持有的多路徑類型和索引;

步驟S608:待釋放的真實多路徑釋放內(nèi)存;

至此,流程結(jié)束。

結(jié)合圖12,介紹下本發(fā)明在有現(xiàn)存的真實多路徑數(shù)據(jù)被釋放后,自主恢復(fù)因容量受限未創(chuàng)建的多路徑信息的流程,應(yīng)用場景:現(xiàn)存的真實多路徑數(shù)據(jù)被釋放,且存在因容量受限未創(chuàng)建的多路徑信息;具體實施包括:

S91:有現(xiàn)存的真實多路徑釋放;

S92:遍歷“虛擬多路徑”索引庫,找到第一個同類型的虛擬多路徑條目,即如果待釋放的是負荷分擔(dān)的也應(yīng)該找一個負荷分擔(dān)類型的虛擬多路徑條目,如果待釋放的是FRR的也應(yīng)該找一個FRR類型的虛擬多路徑條目;

S93:用找到的虛擬多路徑信息覆蓋或替換待釋放的真實的多路徑數(shù)據(jù);

S94:通知所有持有該“虛擬多路徑”的路由條目修改索引和標(biāo)記。

S95:S94完成后,已經(jīng)沒有路由持有該“虛擬多路徑”,此時其被引用計數(shù)減至0,觸發(fā)刪除流程釋放其空間和索引。

需要說明的是,上述各個模塊是可以通過軟件或硬件來實現(xiàn)的,對于后者,可以通過以下方式實現(xiàn),但不限于此:上述模塊均位于同一處理器中;或者,上述模塊分別位于多個處理器中。

本發(fā)明的實施例還提供了一種存儲介質(zhì)??蛇x地,在本實施例中,上述存儲介質(zhì)可以被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:

S1,在路由設(shè)備中的真實多路徑的資源已經(jīng)用盡時,在已創(chuàng)建的虛擬多路徑索引庫中的索引和虛擬多路徑的條目空間中申請與當(dāng)前需要創(chuàng)建的真實多路徑對應(yīng)的索引和條目空間;

S2,在路由設(shè)備中的真實多路徑的資源釋放時,依據(jù)索引庫在虛擬多路徑中查找與待釋放的真實多路徑類型相同的虛擬多路徑;

S3,將查找到的與待釋放的真實多路徑類型相同的虛擬多路徑的路由數(shù)據(jù)復(fù)制到釋放的真實多路徑空間,或,直接修改待釋放的真實多路徑索引關(guān)聯(lián)的多路徑信息的內(nèi)存地址為所述指定虛擬多路徑的內(nèi)存地址。

可選地,在本實施例中,上述存儲介質(zhì)可以包括但不限于:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。

以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
雷山县| 石阡县| 龙山县| 潍坊市| 鄂托克旗| 凤凰县| 开远市| 广元市| 营山县| 高台县| 明水县| 阳东县| 玉山县| 竹北市| 特克斯县| 旌德县| 汉寿县| 加查县| 石泉县| 边坝县| 绥宁县| 庆元县| 临海市| 广德县| 基隆市| 西畴县| 博白县| 永吉县| 大同市| 保山市| 叶城县| 仙居县| 竹山县| 潮州市| 承德县| 泰来县| 荔浦县| 云浮市| 湄潭县| 东城区| 鄂温|