本發(fā)明屬于網(wǎng)絡通信技術領域,尤其涉及一種基于虛擬網(wǎng)映射的服務路徑構(gòu)造方法。
背景技術:
計算機網(wǎng)絡通常由大量的路由器、交換機和功能各異的網(wǎng)絡中間件組成。為了有效管理網(wǎng)絡,管理員根據(jù)當前網(wǎng)絡所承載的業(yè)務(如:視頻、語言、web等)來制定各種策略,由于缺少可用工具,管理員需要將這些高級策略手動地轉(zhuǎn)化為可被網(wǎng)絡設備識別的低級配置命令,這項工作富有挑戰(zhàn)性且極易出錯。
對網(wǎng)絡從業(yè)和研究人員而言,另一個幾乎不能被克服的困難就是互聯(lián)網(wǎng)的“僵化”問題?;ヂ?lián)網(wǎng)的龐大部署規(guī)模,使得其成為社會中的關鍵基礎設施,部署規(guī)模的不斷擴張,隨之而來的是互聯(lián)網(wǎng)自身的演進和變革越來越困難,幾十年前為解決基礎互聯(lián)問題而設計的互聯(lián)網(wǎng)面對當前日新月異的各種顯得越來越力不從心。
上述背景下,以ietfforces(forwardingandcontrolseperation,forces)為代表的可編程網(wǎng)絡作為一種促進網(wǎng)絡演化的手段被提出。而軟件定義網(wǎng)絡(softwaredefinednetwork,sdn)是可編程網(wǎng)絡的新形式,提供了一種新型的網(wǎng)絡架構(gòu)。sdn通過分離網(wǎng)絡中的轉(zhuǎn)發(fā)平面和控制平面,旨在簡化網(wǎng)絡管理、支持網(wǎng)絡創(chuàng)新和演進,有望從根本上解決互聯(lián)網(wǎng)的“僵化”問題。
根據(jù)服務部署的基本概念,sdn控制器收到服務鏈請求(以下簡稱為“服務請求”)后,首先確定其所需的服務組件和組合方式,而后構(gòu)建虛擬網(wǎng)并在虛擬網(wǎng)中為服務請求分配合適的路徑進行服務部署。虛擬網(wǎng)是底層物理網(wǎng)在sdn控制器中的映射,具體的映射關系由轉(zhuǎn)移矩陣確定。
虛擬網(wǎng)針對特定類型的服務而被構(gòu)建,它并不是底層物理網(wǎng)的簡單投影,底層物理網(wǎng)由具備服務提供能力的服務節(jié)點(sn)和提供路由傳輸?shù)钠胀ü?jié)點(ri)組成,而虛擬網(wǎng)只包含那些具有服務提供能力的節(jié)點sn,虛擬網(wǎng)中節(jié)點之間的鏈路不與底層物理網(wǎng)一一對應而只是一種邏輯上的連通。
虛擬網(wǎng)因服務請求而構(gòu)建,多個相似的服務請求共用一個虛擬網(wǎng)。針對服務請求,為其提供服務路徑是虛擬網(wǎng)的根本目的。服務請求的到來無法預測,虛擬網(wǎng)總是盡力滿足它們的要求,理論上,虛擬網(wǎng)的拓撲越接近真實的物理網(wǎng)絡,其滿足服務請求的能力也越強。然而,實際的情況是,虛擬網(wǎng)的構(gòu)建過程中,sdn控制器為減少物理節(jié)點和鏈路的查詢次數(shù),在滿足已有服務請求的前提下,總是希望所構(gòu)建的虛擬網(wǎng)越簡單越好。因此,對于服務路徑發(fā)現(xiàn)而言,一方面,如何在已有虛擬網(wǎng)的基礎上,通過合理的路徑查找算法,找到更多的服務路徑以滿足服務請求,另一方面,在路徑查找算法無法找到更多路徑的情況下,以最小的代價調(diào)整虛擬網(wǎng),增加虛擬網(wǎng)中的可用路徑數(shù)量,進一步滿足更多的服務請求,是兩個必須面對、且需要解決的問題。
技術實現(xiàn)要素:
本發(fā)明的目的是克服現(xiàn)有技術的不足,提出一種基于虛擬網(wǎng)映射的服務路徑構(gòu)造方法。
本發(fā)明解決其技術問題所采用的技術方案包含如下步驟:
步驟(1)服務鏈(記作sc)由節(jié)點(記作vsn)和連線組成且不包含環(huán)路;
每一個節(jié)點是一個服務組件,每一個服務組件代表虛擬網(wǎng)中服務節(jié)點(記作sn)對數(shù)據(jù)包的一個處理單元,vsn能力(記作vcap)代表sn為該處理單元運行分配的資源數(shù)量,sn能力是sn中當前可用的資源數(shù)量;每一個sn對應一個或多個vsn,vsn和sn之間存在映射關系(記作m);
所述連線是兩個vsn之間的帶寬要求(記作b)。
步驟(2)選取一種可行的m(記作mk),計算所有sn的能力度量(記作fc(mk)),具體包括如下步驟:
2-1選取虛擬網(wǎng)上的一個sn(記作sni);
2-2計算當前sni上所有vsn的vcap之和(記作sumvcap(i));
2-3計算sumvcap(i)與sni能力的比值a(記作a(i));
2-4判斷虛擬網(wǎng)上是否還存在未執(zhí)行過a計算的sn,如果存在則進入步驟2-1;如果不存在則進入步驟2-5;
2-5比較所有的a,fc(mk)為a最大值;
步驟(3)針對步驟(2)所述的mk,計算sn之間的帶寬度量(記作fb(mk)),具體包括如下步驟:
3-1選取sc上的一段連線,該連線的起點為vsnj、終點為vsnj+1,獲取連線上的b值(記作bj);
3-2根據(jù)mk,在虛擬網(wǎng)查找vsnj所對應的sn(記作snj)和vsnj+1所對應的sn(記作snj+1),獲取snj和snj+1之間的鏈路帶寬(記作bwj),如果snj和snj+1是同一個節(jié)點,那么snj+1等于無窮大;否則bwj等于snj和snj+1之間的實際鏈路帶寬;
3-3計算bj與bwj的比值b(記作b(j));
3-4判斷sc上是否還存在未執(zhí)行過b計算的連線,如果存在則進入步驟3-1;如果不存在則進入步驟3-5;
3-5比較所有的b,fb(mk)為b最大值;
步驟(4)針對步驟(2)和步驟(3)所述的mk,獲得虛擬網(wǎng)映射到物理網(wǎng)過程中所包含的普通節(jié)點數(shù)量(記作h(mk)),所述普通節(jié)點是物理網(wǎng)中不包含vsn的物理節(jié)點;
步驟(5)將fb(mk)與h(mk)相乘,所得結(jié)果與fc(mk)相加,最終結(jié)果記作f(mk);
步驟(6)判讀是否還存在其他的m,如果存在進入步驟(2);否則進入步驟(7);
步驟(7)比較所有的f(mk),選定使得f(mk)值最小的mk為最終m。
本發(fā)明有益效果如下:本發(fā)明提出了一種基于虛擬網(wǎng)映射的服務路徑構(gòu)造方法,該方法本質(zhì)是一個基于“f(.)最小”的路徑查找算法,該算法以“最小f(.)最短”作為服務部署中的路徑查找依據(jù),在已知的虛擬網(wǎng)中運行該算法,相較于傳統(tǒng)“最寬最短”的路徑選擇方法,能確保每一條所找到的路徑“f(.)最小”且整體的路徑數(shù)量最多。
附圖說明
圖1服務路徑、虛擬網(wǎng)和物理網(wǎng);
圖2具有不同跳數(shù)的兩條服務路徑;
圖3“最小f()”和“最短最寬”的比較;
圖4映射重要性的說明。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步說明。
本發(fā)明提出的一種基于虛擬網(wǎng)映射的服務路徑構(gòu)造方法,包括如下步驟:
步驟(1)服務鏈(記作sc)由節(jié)點(記作vsn)和連線組成且不包含環(huán)路;
每一個節(jié)點是一個服務組件,每一個服務組件代表虛擬網(wǎng)中服務節(jié)點(記作sn)對數(shù)據(jù)包的一個處理單元,vsn能力(記作vcap)代表sn為該處理單元運行分配的資源數(shù)量,sn能力是sn中當前可用的資源數(shù)量;每一個sn對應一個或多個vsn,vsn和sn之間存在映射關系(記作m);
所述連線是兩個vsn之間的帶寬要求(記作b)。
步驟(2)選取一種可行的m(記作mk),計算所有sn的能力度量(記作fc(mk)),具體包括如下步驟:
2-1選取虛擬網(wǎng)上的一個sn(記作sni);
2-2計算當前sni上所有vsn的vcap之和(記作sumvcap(i));
2-3計算sumvcap(i)與sni能力的比值a(記作a(i));
2-4判斷虛擬網(wǎng)上是否還存在未執(zhí)行過a計算的sn,如果存在則進入步驟2-1;如果不存在則進入步驟2-5;
2-5比較所有的a,fc(mk)為a最大值;
步驟(3)針對步驟(2)所述的mk,計算sn之間的帶寬度量(記作fb(mk)),具體包括如下步驟:
3-1選取sc上的一段連線,該連線的起點為vsnj、終點為vsnj+1,獲取連線上的b值(記作bj);
3-2根據(jù)mk,在虛擬網(wǎng)查找vsnj所對應的sn(記作snj)和vsnj+1所對應的sn(記作snj+1),獲取snj和snj+1之間的鏈路帶寬(記作bwj),如果snj和snj+1是同一個節(jié)點,那么snj+1等于無窮大;否則bwj等于snj和snj+1之間的實際鏈路帶寬;
3-3計算bj與bwj的比值b(記作b(j));
3-4判斷sc上是否還存在未執(zhí)行過b計算的連線,如果存在則進入步驟3-1;如果不存在則進入步驟3-5;
3-5比較所有的b,fb(mk)為b最大值;
步驟(4)針對步驟(2)和步驟(3)所述的mk,獲得虛擬網(wǎng)映射到物理網(wǎng)過程中所包含的普通節(jié)點數(shù)量(記作h(mk)),所述普通節(jié)點是物理網(wǎng)中不包含vsn的物理節(jié)點;
步驟(5)將fb(mk)與h(mk)相乘,所得結(jié)果與fc(mk)相加,最終結(jié)果記作f(mk);
步驟(6)判讀是否還存在其他的m,如果存在進入步驟(2);否則進入步驟(7);
步驟(7)比較所有的f(mk),選定使得f(mk)值最小的mk為最終m。
實施例
為了便于本領域一般技術人員理解和實現(xiàn)本發(fā)明,現(xiàn)結(jié)合附圖進一步說明本發(fā)明的技術方案,給出一種本發(fā)明的具體實施方式。
通常,所述服務鏈以服務請求的形式出現(xiàn),因此在本實施例后續(xù)敘述中,服務請求等同于服務鏈。
1、資源安全函數(shù)f(.)定義
圖1中,ps、pa和pd分別是虛擬網(wǎng)中的3個服務節(jié)點sn,其中ps和pd是源終端和目的終端在虛擬網(wǎng)中的接入點,將從ps到pd的服務路徑表示成p,p由sn組成,用pi(1≤i≤|p|,|p|是路徑p中sn的數(shù)量)表示路徑p上的sn,其中p1=ps,p|p|=pd。
k表示服務請求所包含的服務組件數(shù)量,每個服務組件用虛擬服務節(jié)點vsn來表示,那么k個vsn就構(gòu)成一個虛擬的服務路徑。vsn必須存在于sn之上,vsn與sn之間的對應關系用映射m來表示。
用vpk(1≤k≤k)表示一個vsn,k值的大小代表了它們在服務路徑中的出現(xiàn)次序。為了方便起見,將源和目的終端用vp0和vpk+1來表示,但是vp0和vpk+1并不是真正的sn。vpi和vpj(1≤i≤j≤k)可以被映射到不同的sn,px和py(1≤x≤y≤|p|),也可以被映射到同一個sn。
c(vpk)代表vpk(1≤k≤k)所需的包處理能力,b(vpk,vpk+1)為vpk和vpk+1(1≤k≤k)之間的鏈路帶寬。
路徑發(fā)現(xiàn)算法需要完成兩項任務:1)在虛擬網(wǎng)中查找非環(huán)路徑p;2)沿著路徑p和m將vpk映射到sn。算法的目標就是要找到一組p和m,滿足f(p,m)的最小化。f是資源安全函數(shù),定義如下:
f(p,m)=max(fc(p,m),fb(p,m)*h(p))
1)fc(p,m)是sn能力的資源安全函數(shù),對于p上的每個pi,我們首先計算α(pi),其中α(pi)為服務路徑p所請求的能力和pi可用能力的比值,有:
fc反映了p和m的安全程度:fc(p,m)值越大,服務請求失敗的可能性越高,因為無法提供足夠的sn能力。
2)類似,fb(p,m)是一個關于sn之間帶寬資源的安全函數(shù)。對于路徑p上的每條鏈路(pi,pi+1)而言,假設帶寬請求為b(vpj(i),vpj(i)+1),其中j(i)由m決定,那么:
需要注意的是,如果有兩個以上的vsn被映射到同一個sn,那么這些vsn之間的帶寬將被fb忽略,因為通常認為一個sn內(nèi)的帶寬無窮大。函數(shù)fb反映了p和m的安全程度:fb(p,m)的值越大,服務鏈失敗的可能性越高,說明虛擬網(wǎng)無法提供足夠的vsn間帶寬。
3)h(p)是底層物理網(wǎng)絡中路徑p所穿過的普通節(jié)點(ri)數(shù)量。為了說明h(p)在函數(shù)f()中的作用,我們以圖2為例進行說明。有兩個服務路徑p=(ps→pa→pd)和p′=(ps→pb→pd),假設它們具有相同的fb()和fc(),優(yōu)先選擇p,因為前者在底層物理網(wǎng)中包含較少的ri,即h(p)<h(p′)。具體解釋如下:底層物理網(wǎng)中構(gòu)成路徑p所需的實際路徑為ps→r1→r2→pa→r2→r4→pd,ri的數(shù)量為4;路徑p′所需的實際路徑為ps→r1→r2→r3→pb→r3→r2→r4→pd,ri的數(shù)量為6,顯然路徑p優(yōu)于p′。
2、“最小f(.)最短”的路徑評價方法
服務路徑發(fā)現(xiàn)過程不同于網(wǎng)絡層的qos路由,這是因為,服務鏈中的不同區(qū)段需要不同的帶寬。圖3中的兩個服務鏈都包含了相同的ps和pd,其中ps和pd的能力提供為0,說明ps和pd只提供傳輸帶寬而不提供服務能力。
根據(jù)qos路由的“最寬最短”原則為請求1分配路徑,首先比較路徑(ps→pa→pd)和(ps→pb→pd)的帶寬,由于路徑帶寬取決于帶寬最小的鏈路,因此路徑(ps→pa→pd)的帶寬為min{b(ps,pa),b(pa,pd)}=10,同理路徑(ps→pb→pd)的帶寬為4。兩者比較,帶寬較寬者優(yōu)先,故為請求1選擇路徑(ps→pa→pd)。而后,請求2到達時,虛擬網(wǎng)再也無法找一個路徑滿足其要求,因為僅有的路徑(ps→pb→pd),其上鏈路(pb,pd)無法滿足請求2中vp1到vp2的帶寬請求,因此請求2將被拒絕。
另一方面,如果遵循“最小f(.)”的原則并設定兩條路徑的fc(·)和h(·)相等,那么根據(jù)資源安全函數(shù)f(.)的定義,f(.)只取決于fb(·),即服務路徑上所有
對于請求1而言,路徑(ps→pa→pd)的
而后,請求2到達時,剩余的路徑(ps→pa→pd)顯然也可以滿足其要求。
3、vsn→sn映射的重要性
服務路徑查找和qos路由的第二不同點在于前者包含了vsn→sn映射。圖4中兩個服務鏈都包含了相同的ps和pd。以下說明不同映射m情形下,f(.)的計算過程。圖4中可能的m有:
對請求1而言:
1)若m為m(vp1)=m(vp2)=ps,即vp1和vp2被映射到同一個節(jié)點ps,b(vp1,vp2)的帶寬請求被忽略,f(.)將只取決于fc,有:
2)若m1(vp1)=m1(vp2)=pd,同理可得:
3)若m(vp1)=ps,m(vp2)=pd,有:
此種映射情形下,b(vp1,vp2)的帶寬請求不能被忽略,則:
(2)、(3)和(6)相比取其小,最終請求1采用的m為:m1(vp1)=m1(vp2)=ps。同理可得請求2的m為:m2(vp1)=m2(vp2)=pd。
綜上分析,容易看出,如果請求1的映射如果不是m1,那么請求2將被拒絕。因此,vsn→sn映射是服務路徑發(fā)現(xiàn)中的不可分割的一個組成部分。