一種基于虛擬網(wǎng)絡(luò)連接特性的虛擬網(wǎng)絡(luò)映射方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體設(shè)及一種基于虛擬網(wǎng)絡(luò)連接特性的虛擬網(wǎng)絡(luò)映射 方法。
【背景技術(shù)】
[0002] 隨著云計(jì)算的發(fā)展,物理網(wǎng)絡(luò)基礎(chǔ)設(shè)施逐漸集中地由少數(shù)設(shè)備提供商 (In化astruc化reProvider,In巧供應(yīng),而業(yè)務(wù)開發(fā)商只需要向InP發(fā)出虛擬網(wǎng)絡(luò)請求,定 制個性化的虛擬拓?fù)渚W(wǎng)絡(luò),隨著業(yè)務(wù)的變化業(yè)務(wù)開發(fā)商也能夠靈活地調(diào)整虛擬網(wǎng)絡(luò)結(jié)構(gòu), 該樣不僅省去物理網(wǎng)絡(luò)基礎(chǔ)設(shè)施的自備問題,同時有助于提高業(yè)務(wù)開發(fā)效率。InP實(shí)時地接 收各個業(yè)務(wù)開發(fā)商多樣化的虛擬網(wǎng)絡(luò)請求并把它們映射到同一公共物理網(wǎng)絡(luò)上,為了提高 資源利用率獲得更高的收益,必須合理地分配底層物理網(wǎng)絡(luò)資源,同時也需要考慮網(wǎng)絡(luò)虛 擬資源負(fù)載均衡問題,W避免少數(shù)節(jié)點(diǎn)或鏈路負(fù)載過熱而降低虛擬網(wǎng)絡(luò)映射成功率。
[0003] 網(wǎng)絡(luò)虛擬化技術(shù)是對網(wǎng)絡(luò)的一種抽象技術(shù),W解決現(xiàn)有網(wǎng)絡(luò)僵化問題,提供靈活 可變的虛擬拓?fù)渚W(wǎng)絡(luò)。由于虛擬網(wǎng)絡(luò)拓?fù)涞亩鄻踊?,而且映射時不僅要考慮虛擬節(jié)點(diǎn)W及 鏈路的資源請求問題,同時還需要綜合考慮各種映射效益問題,如最大化資源利用率、盡量 均衡使用公共物理網(wǎng)絡(luò)資源W提供更好的服務(wù)體驗(yàn);同時,虛擬網(wǎng)絡(luò)可能還包含其他限制, 如節(jié)點(diǎn)的地理位置、鏈路時延等等,因此,將多個不同的虛擬網(wǎng)絡(luò)映射到同一公共物理網(wǎng)絡(luò) 是一個NP-hard問題。
[0004] 虛擬網(wǎng)絡(luò)映射問題主要包括虛擬節(jié)點(diǎn)映射和虛擬鏈路映射,一般而言,每一個虛 擬節(jié)點(diǎn)被映射到一個不同的物理節(jié)點(diǎn),而每一條虛擬鏈路映射到一條物理路徑,該路徑至 少包含一條物理鏈路。目前虛擬網(wǎng)絡(luò)映射的解決方法根據(jù)節(jié)點(diǎn)映射和鏈路映射是否分階 段進(jìn)行,分為一步映射和二步映射。二步映射一般先進(jìn)行虛擬節(jié)點(diǎn)映射,再進(jìn)行鏈路映射。 由于二步映射中節(jié)點(diǎn)映射和鏈路分階段進(jìn)行,會造成節(jié)點(diǎn)映射基本沒有考慮虛擬節(jié)點(diǎn)之間 的連接特性,因此會導(dǎo)致較大的映射成本,最終導(dǎo)致較低的資源利用率。在鏈路映射階段, 如果虛擬鏈路可分流,那么一般將鏈路映射問題看作多物網(wǎng)絡(luò)流問題(Multi-commodity FlowProblem,MCF);如果不可分時,貝ij采用K最短路徑算法尋找一條可行映射路徑。一步 映射一般有二個解決方向。一個方向是虛擬網(wǎng)絡(luò)映射進(jìn)行混合整數(shù)規(guī)劃(MixedInteger Program,MI巧建模,然后得到最優(yōu)解。由于解法太過復(fù)雜,因此該解決方向不可取。如 《Virtualnetworkembeddingwithcoordinatednodeandlinkmapping》(INFOCOM 2009,I邸E.IE邸,2009:783-791) -文將有位置限制的虛擬節(jié)點(diǎn)擴(kuò)展到原物理網(wǎng)絡(luò)某個區(qū) 域,然后進(jìn)行MIP建模,最后采用松弛技術(shù)將原MIP問題簡化為一個指數(shù)時間可解決的線性 規(guī)劃問題(LinearProgram,LP)。另外一個方向是對網(wǎng)絡(luò)進(jìn)行簡化,然后采用捜索回溯的 方法來尋找可行的映射方案。如《Virtualnetworkembeddingt虹0U曲topolog}f-aware noderanking))(ACMSIGCOMMComputerCommunicationReview, 2011, 41 (2) : 38-47) 一文 采用類似網(wǎng)頁排名算法對網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行排序,然后將原虛擬網(wǎng)絡(luò)簡化成一個W排名最大節(jié) 點(diǎn)為根的寬度優(yōu)先捜索樹,最后采用寬度優(yōu)先捜索算法尋找可映射節(jié)點(diǎn)。此算法只是考慮 了部分虛擬網(wǎng)絡(luò)連接特性而且引入固定的捜索寬度限制。
[0005] W往虛擬網(wǎng)絡(luò)映射算法的節(jié)點(diǎn)映射要么沒有考慮對鏈路映射的影響,要么平等地 看待所有虛擬鏈路。也就是說映射簡單地采用跳數(shù)化op)來度量對鏈路映射的影響,基本 都認(rèn)為中間隱藏節(jié)點(diǎn)對物理節(jié)點(diǎn)的資源消耗為0。而現(xiàn)實(shí)情況是中間隱藏節(jié)點(diǎn)也會消耗 物理節(jié)點(diǎn)一定的CPU資源;此外,對于優(yōu)先級一樣的不同虛擬請求,不同的是請求到達(dá)的時 間,那么一些較優(yōu)資源都會被到達(dá)時間較早的虛擬請求"霸占"。目前基本沒有一種有針對 性的重映射策略,要么定期重映射包含負(fù)載過重節(jié)點(diǎn)或鏈路的虛擬請求,如《Rethinking virtualnetworkembedding:substratesupportforpathsplittingandmigration》 (ACMSIGCOMMComputerCommunicationReview, 2008, 38 (2) : 17-29);要么簡單地根據(jù)優(yōu) 先級進(jìn)行遷移,女曰《Topology-awarenessandreoptimizationmechanismforvirtual networkembedding》(SpringerBerlinHeidelberg, 2010)。
[0006] 《Optimalmappingofvirtualnetworkswithhiddenhops》 (TelecommunicationSystems, 2012, 51 (4) :273-282) 一文在虛擬網(wǎng)絡(luò)映射考慮中間隱藏 化iddenhops)對物理節(jié)點(diǎn)CPU資源請求,但是該文并沒有解決節(jié)點(diǎn)映射,只是假設(shè)所有節(jié) 點(diǎn)已經(jīng)映射完成,然后為每條虛擬鏈路W貪婪的方式選擇一條最短可映射路徑,W此來盡 量減少中間隱藏節(jié)點(diǎn)?!禩opolog}f-awarePartialVirtualClusterMappingAlgorithm onSharedDistributedInfrastructures》(ParallelandDistributedSystems,IEEE Transactionson, 2014, 25(10) :2721-2730) -文認(rèn)為不同的虛擬節(jié)點(diǎn)或鏈路具有不同重 要性,提出一種部分虛擬集群映射(VirtualClusterMapping,VCM)算法,但是該通過設(shè)定 闊值的方式來確定節(jié)點(diǎn)和鏈路的重要與否,而且算法只是映射被認(rèn)為"重要"的鏈路,不適 合虛擬網(wǎng)絡(luò)全映射情景。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的目的是提供一種基于虛擬網(wǎng)絡(luò)連接特性的虛擬網(wǎng)絡(luò)映射方法,W克服現(xiàn) 有技術(shù)的全部或部分缺陷。
[0008] 為了實(shí)現(xiàn)上述目的,利用本發(fā)明的虛擬網(wǎng)絡(luò)的映射方法將虛擬網(wǎng)絡(luò)請求映射到物 理網(wǎng)絡(luò)包括W下步驟:
[0009] (1)根據(jù)虛擬網(wǎng)絡(luò)鄰接節(jié)點(diǎn)對的親密度將待映射虛擬網(wǎng)絡(luò)劃分成映射等級遞增或 遞減的星型子網(wǎng)和鏈路;
[0010] 似利用物理網(wǎng)絡(luò)的所有節(jié)點(diǎn)的剩余資源聚集度,將所述星型子網(wǎng)和鏈路按照映 射等級從高到低的順序映射到物理網(wǎng)絡(luò)。
[0011] 進(jìn)一步地,本發(fā)明所述虛擬網(wǎng)絡(luò)為簡單圖,物理網(wǎng)絡(luò)為簡單連通圖。
[0012] 進(jìn)一步地,本發(fā)明所述星型子網(wǎng)的節(jié)點(diǎn)的個數(shù)大于等于1 ;其中,當(dāng)所述星型子網(wǎng) 的節(jié)點(diǎn)的個數(shù)大于1時,所述星型子網(wǎng)為連通圖且至多只有一個節(jié)點(diǎn)的度值大于1。
[0013] 進(jìn)一步地,在本發(fā)明的一種實(shí)施方式中,所述步驟一按W下方法執(zhí)行:
[0014] 步驟(1);計(jì)算虛擬網(wǎng)絡(luò)所有鄰接節(jié)點(diǎn)對的親密度,設(shè)置映射等級變量 QirrentLevel的初始值為LevelO,LevelO為任意實(shí)數(shù);
[0015] 步驟(2);判斷當(dāng)前虛擬網(wǎng)絡(luò)是否包含節(jié)點(diǎn);如果不包含節(jié)點(diǎn),則結(jié)束對虛擬網(wǎng)絡(luò) 的劃分;否則,執(zhí)行步驟(3);
[0016] 步驟(3);判斷當(dāng)前虛擬網(wǎng)絡(luò)是否屬于所述星型子網(wǎng):如果屬于,則將當(dāng)前虛擬網(wǎng) 絡(luò)的映射等級設(shè)置為當(dāng)前映射等級變量化rrentLevel的值,并結(jié)束對虛擬網(wǎng)絡(luò)的劃分;
[0017] 如果當(dāng)前虛擬網(wǎng)絡(luò)不屬于所述星型子網(wǎng),則將當(dāng)前虛擬網(wǎng)絡(luò)中親密度最小的鄰接 節(jié)點(diǎn)對之間的虛擬鏈路的映射等級設(shè)置為當(dāng)前映射等級變量化rrentLevel的值,進(jìn)而將 當(dāng)前映射等級變量化rrentLevel的值更新為"化rrentLevel+Al",其中,A1為可變的定 向非零數(shù);然后,從當(dāng)前虛擬網(wǎng)絡(luò)中移除該親密度最小的鄰接節(jié)點(diǎn)對之間的虛擬鏈路;接 著,執(zhí)行步驟(4);
[0018] 步驟(4)):檢測當(dāng)前虛擬網(wǎng)絡(luò)中是否存在星型子網(wǎng);如果檢測到星型子網(wǎng),則從 當(dāng)前虛擬網(wǎng)絡(luò)中移除所有檢測到的星型子網(wǎng)所包含的虛擬節(jié)點(diǎn)和虛擬鏈路;然后執(zhí)行步驟 妨姻果未檢測到星型子網(wǎng),則返回執(zhí)行步驟似;
[0019] 步驟巧);按照星型子網(wǎng)的節(jié)點(diǎn)的個數(shù)從少到多的順序,自當(dāng)前映射等級變量的 值開始,W逐級加A1的方式相應(yīng)地設(shè)置步驟(4)所檢測到的星型子網(wǎng)的映射等級;然后返 回執(zhí)行步驟(2)。
[0020] 進(jìn)一步地,在本發(fā)明的另一種實(shí)施方式中,所述步驟一按W下方法執(zhí)行:
[0021] 步驟(1);計(jì)算虛擬網(wǎng)絡(luò)所有鄰接節(jié)點(diǎn)對的親密度,設(shè)置映射等級變量 CurrentLevel的初始值為LevelO,LevelO為任意實(shí)數(shù);
[002引步驟(2);判斷當(dāng)前虛擬網(wǎng)絡(luò)是否包含節(jié)點(diǎn);如果不包含節(jié)點(diǎn),則結(jié)束對虛擬網(wǎng)絡(luò) 的劃分;否則,執(zhí)行步驟(3);
[0023] 步驟(3);判斷當(dāng)前虛擬網(wǎng)絡(luò)是否屬于所述星型子網(wǎng):如果屬于,則將當(dāng)前虛擬網(wǎng) 絡(luò)的映射等級設(shè)置為當(dāng)前映射等級變量的值,并結(jié)束對虛擬網(wǎng)絡(luò)的劃分;
[0024] 如果當(dāng)前虛擬網(wǎng)絡(luò)不屬于所述星型子網(wǎng),則將當(dāng)前虛擬網(wǎng)絡(luò)中親密度最小的鄰接 節(jié)點(diǎn)對之間的虛擬鏈路的映射等級設(shè)置為當(dāng)前映射等級變量化rrentLevel的值,進(jìn)而將 當(dāng)前映射等級變量化rrentLevel的值更新為"化rrentLevel+A1";然后,從當(dāng)前虛擬網(wǎng)絡(luò) 中移除該親密度最小的鄰接節(jié)點(diǎn)對之間的虛擬鏈路,并將星型子網(wǎng)的個數(shù)n的值重置為0 ; 接著,執(zhí)行步驟(4);其中,A1為可變的定向非零數(shù);
[00巧]步驟(4);檢測當(dāng)前虛擬網(wǎng)絡(luò)中是否存在星型子網(wǎng);如果檢測到星型子網(wǎng),則將星 型子網(wǎng)的個數(shù)n更新為檢測到的星型子網(wǎng)的總數(shù)量,并從當(dāng)前虛擬網(wǎng)絡(luò)中移除所有檢測到 的星型子網(wǎng)所包含的虛擬節(jié)點(diǎn)和虛擬鏈路;然后執(zhí)行步驟巧);
[0026] 如果未檢測到星型子網(wǎng),則執(zhí)行步驟巧);
[0027] 步驟巧);判斷當(dāng)前星型子網(wǎng)的個數(shù)n是否大于0;如果當(dāng)前星型子網(wǎng)的個數(shù)n大 于0,則按照星型子網(wǎng)的節(jié)點(diǎn)的個數(shù)從少到多的順序,自當(dāng)前映射等級變量化rrentLevel 的值開始,W逐級加A1的方式相應(yīng)地設(shè)置該n個星型子網(wǎng)的映射等級,進(jìn)而將當(dāng)前映射等 級變量的值更新為化rrentLevel+n*A1,并將星型子網(wǎng)的個數(shù)n的值重置為0,然后返回執(zhí) 行步驟(2);
[002引如果當(dāng)前星型子網(wǎng)的個數(shù)n等于0,則返回執(zhí)行步驟(2)。
[0029] 進(jìn)一步地,本發(fā)明所述虛擬網(wǎng)絡(luò)鄰接節(jié)點(diǎn)對的親密度按W下公式(1)所示的方法 計(jì)算:
[0030] (1)
[OOW 其中,K的',嗎表示虛擬網(wǎng)絡(luò)中的鄰接節(jié)點(diǎn)對<一";之間的親密度,C,"、c";分 別表示虛擬節(jié)點(diǎn)<、n;請求的CPU資源,的?";)表示虛擬鏈路(皆,<)請求的帶寬資 源,Mar(0表示由物理網(wǎng)絡(luò)設(shè)備提供商預(yù)先設(shè)定的虛擬節(jié)點(diǎn)請求的CPU資源的最大值,入 為壓縮常數(shù)。
[0032] 進(jìn)一步地,本發(fā)明所述壓縮常數(shù)A的取值為4。
[0033] 進(jìn)一步地,本發(fā)明所述步驟二的方法是按照映射等級從高到低的順序分別對每個 待映射的星型子網(wǎng)和鏈路執(zhí)行W下步驟:
[0034] 如果虛擬網(wǎng)絡(luò)請求所要映射的是鏈路,則計(jì)算得到可映射的物理路徑;
[0035] 如果虛擬網(wǎng)絡(luò)請求所要映射的是星型子網(wǎng),則根據(jù)星型子網(wǎng)的節(jié)點(diǎn)的個數(shù)分別采 取W下映射策略:
[0036] 如果星型子網(wǎng)的節(jié)點(diǎn)的個數(shù)大于1,則在物理網(wǎng)絡(luò)中選取剩余資源聚集度最大且 滿足CPU資源請求和鏈路資源請求的物理節(jié)點(diǎn),然后將該星型子網(wǎng)的中屯、節(jié)點(diǎn)映射到該物 理節(jié)點(diǎn);按照端節(jié)點(diǎn)與該星型子網(wǎng)的中屯、節(jié)點(diǎn)的親密度從大到小的順序確定該星型子網(wǎng)的 各端節(jié)點(diǎn)的先后映射順序,均W該星型子網(wǎng)的中屯、節(jié)點(diǎn)所映射的物理節(jié)點(diǎn)為起點(diǎn),采用寬 度優(yōu)先捜索方法為每一個端節(jié)點(diǎn)捜索可映射的物理節(jié)點(diǎn)和物理路徑,將該星型子網(wǎng)的各端 節(jié)點(diǎn)映射到可映射的物理節(jié)點(diǎn),并將各端節(jié)點(diǎn)與中屯、節(jié)點(diǎn)之間的虛擬鏈路映射到為該端節(jié) 點(diǎn)選取可映射的物理節(jié)點(diǎn)的過程中所確定的寬度