本發(fā)明屬于網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種虛擬網(wǎng)構(gòu)造及優(yōu)化方法。
背景技術(shù):
計算機網(wǎng)絡(luò)通常由大量的路由器、交換機和功能各異的網(wǎng)絡(luò)中間件組成。為了有效管理網(wǎng)絡(luò),管理員根據(jù)當(dāng)前網(wǎng)絡(luò)所承載的業(yè)務(wù)(如:視頻、語言、web等)來制定各種策略,由于缺少可用工具,管理員需要將這些高級策略手動地轉(zhuǎn)化為可被網(wǎng)絡(luò)設(shè)備識別的低級配置命令,這項工作富有挑戰(zhàn)性且極易出錯。
對網(wǎng)絡(luò)從業(yè)和研究人員而言,另一個幾乎不能被克服的困難就是互聯(lián)網(wǎng)的“僵化”問題?;ヂ?lián)網(wǎng)的龐大部署規(guī)模,使得其成為社會中的關(guān)鍵基礎(chǔ)設(shè)施,部署規(guī)模的不斷擴張,隨之而來的是互聯(lián)網(wǎng)自身的演進和變革越來越困難,幾十年前為解決基礎(chǔ)互聯(lián)問題而設(shè)計的互聯(lián)網(wǎng)面對當(dāng)前日新月異的各種顯得越來越力不從心。
上述背景下,以ietfforces(forwardingandcontrolseperation,forces)為代表的可編程網(wǎng)絡(luò)作為一種促進網(wǎng)絡(luò)演化的手段被提出。而軟件定義網(wǎng)絡(luò)(softwaredefinednetwork,sdn)是可編程網(wǎng)絡(luò)的新形式,提供了一種新型的網(wǎng)絡(luò)架構(gòu)。sdn通過分離網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)平面和控制平面,旨在簡化網(wǎng)絡(luò)管理、支持網(wǎng)絡(luò)創(chuàng)新和演進,有望從根本上解決互聯(lián)網(wǎng)的“僵化”問題。
網(wǎng)絡(luò)虛擬化是轉(zhuǎn)發(fā)與控制分離技術(shù)實現(xiàn)網(wǎng)絡(luò)可編程的基礎(chǔ),它們一直來都是研究者重點關(guān)注的對象。根據(jù)服務(wù)部署的基本概念,sdn控制器收到服務(wù)鏈請求后,首先確定其所需的服務(wù)組件和組合方式,而后構(gòu)建虛擬網(wǎng)并在虛擬網(wǎng)中為服務(wù)請求分配合適的路徑進行服務(wù)部署。虛擬網(wǎng)是底層物理網(wǎng)在sdn控制器中的映射,具體的映射關(guān)系由轉(zhuǎn)移矩陣確定。
虛擬網(wǎng)針對特定類型的服務(wù)而被構(gòu)建,它并不是底層物理網(wǎng)的簡單投影,底層物理網(wǎng)由具備服務(wù)提供能力的服務(wù)節(jié)點和提供路由傳輸?shù)钠胀ü?jié)點組成,而虛擬網(wǎng)只包含那些具有服務(wù)提供能力的節(jié)點,虛擬網(wǎng)中節(jié)點之間的鏈路不與底層物理網(wǎng)一一對應(yīng)而只是一種邏輯上的連通。
虛擬網(wǎng)因服務(wù)請求而構(gòu)建,多個相似的服務(wù)請求共用一個虛擬網(wǎng)。針對服務(wù)請求,為其提供服務(wù)路徑是虛擬網(wǎng)的根本目的。服務(wù)請求的到來無法預(yù)測,虛擬網(wǎng)總是盡力滿足它們的要求,理論上,虛擬網(wǎng)的拓撲越接近真實的物理網(wǎng)絡(luò),其滿足服務(wù)請求的能力也越強。然而,實際的情況是,虛擬網(wǎng)的構(gòu)建過程中,sdn控制器為減少物理節(jié)點和鏈路的查詢次數(shù),在滿足已有服務(wù)請求的前提下,總是希望所構(gòu)建的虛擬網(wǎng)越簡單越好。因此,對于服務(wù)路徑發(fā)現(xiàn)而言,一方面,如何在已有虛擬網(wǎng)的基礎(chǔ)上,通過合理的路徑查找算法,找到更多的服務(wù)路徑以滿足服務(wù)請求,另一方面,在路徑查找算法無法找到更多路徑的情況下,以最小的代價調(diào)整虛擬網(wǎng),增加虛擬網(wǎng)中的可用路徑數(shù)量,進一步滿足更多的服務(wù)請求,是兩個必須面對、且需要解決的問題。
對于一個服務(wù)請求,虛擬網(wǎng)中可能存在多條服務(wù)路徑。然而,如果所構(gòu)建的虛擬網(wǎng)由于沒有包含足夠的鏈路、所提供的服務(wù)路徑數(shù)量相對有限,將影響服務(wù)請求的成功率;另一方面,由于一條服務(wù)路徑只能連接一對終端,因此對于虛擬網(wǎng)而言,針對每條服務(wù)路徑分配的服務(wù)節(jié)點數(shù)量越少越好,然而在一個最大鏈路數(shù)較低的虛擬網(wǎng)中受限于服務(wù)節(jié)點之間的候選鏈路數(shù)量不足,反而需要更多的服務(wù)節(jié)點,因此虛擬網(wǎng)構(gòu)建過程中為防止上述問題的出現(xiàn),我們反而需要更大的節(jié)點最大鏈路數(shù),然而這不可避免地帶來探測開銷的快速增加。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提出一種虛擬網(wǎng)構(gòu)造及優(yōu)化方法。
本發(fā)明的目的通過以下技術(shù)方案實現(xiàn):一種虛擬網(wǎng)構(gòu)造及優(yōu)化方法,該方法包括以下步驟:
步驟(1)從物理網(wǎng)中選取具備服務(wù)提供能力的節(jié)點,構(gòu)成服務(wù)節(jié)點集合(記作set);
步驟(2)虛擬網(wǎng)初始狀態(tài)時,管理員針對set中的每個節(jié)點設(shè)置最大鏈路數(shù)和鄰居集合,其中鄰居集合為空;
虛擬網(wǎng)記錄了的信息包括:set中每個節(jié)點的最大鏈路數(shù)、鄰居集合、非鄰居集合、節(jié)點能力、節(jié)點之間的鏈路帶寬;
步驟(3)從set中選取一個節(jié)點(記作pi),從pi的鄰居集合(記作nbr(pi))中選取一個節(jié)點(記作px),以物理網(wǎng)為探測對象,探測從pi到px的帶寬和能力,將新探測到的從pi到px的帶寬b寫入虛擬網(wǎng),將新探測到的px能力也寫入虛擬網(wǎng);如果nbr(pi)為空,進入步驟(4);
步驟(4)確定pi的非鄰居集合(記作
步驟(5)從
步驟(6)判斷
步驟(7)比較pi的最大鏈路數(shù)(記作linksmax(pi))和nbr(pi)集合中的節(jié)點數(shù)量(記作|nbr(pi)|),如果|nbr(pi)|小于linksmax(pi),將py添加到nbr(pi);否則py將不會被添加到nbr(pi);
步驟(8)判斷針對set中的每一個節(jié)點是否都進入過步驟(3),如果是則進入步驟(9);否則進入步驟(3);
步驟(9)回溯步驟(3)至步驟(7),針對每一個未被加入到nbr(pi)的py,將探測到的從pi到py鏈路的帶寬和能力記入一個新的集合(記作coldlinks);
步驟(10)此后,步驟(3)和步驟(5)所述的探測過程,首先選擇coldlinks為探測對象,其次再選擇物理網(wǎng)為探測對象。
本發(fā)明有益效果如下:本發(fā)明提出了一種虛擬網(wǎng)構(gòu)造及優(yōu)化方法。在虛擬網(wǎng)構(gòu)建過程中,為了讓虛擬網(wǎng)能夠提供更多的服務(wù)路徑,進而提高服務(wù)請求的成功率,本發(fā)明方法可以在不增加探測開銷的前提下構(gòu)建一個具有高度連接性的虛擬網(wǎng)。
附圖說明
圖1服務(wù)路徑、虛擬網(wǎng)和物理網(wǎng)。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步說明。
本發(fā)明提出的一種虛擬網(wǎng)構(gòu)造及優(yōu)化方法,該方法包括以下步驟:
步驟(1)從物理網(wǎng)中選取具備服務(wù)提供能力的節(jié)點,構(gòu)成服務(wù)節(jié)點集合(記作set);
步驟(2)虛擬網(wǎng)初始狀態(tài)時,管理員針對set中的每個節(jié)點設(shè)置最大鏈路數(shù)和鄰居集合,其中鄰居集合為空;
虛擬網(wǎng)記錄了的信息包括:set中每個節(jié)點的最大鏈路數(shù)、鄰居集合、非鄰居集合、節(jié)點能力、節(jié)點之間的鏈路帶寬;
步驟(3)從set中選取一個節(jié)點(記作pi),從pi的鄰居集合(記作nbr(pi))中選取一個節(jié)點(記作px),以物理網(wǎng)為探測對象,探測從pi到px的帶寬和能力,將新探測到的從pi到px的帶寬b寫入虛擬網(wǎng),將新探測到的px能力也寫入虛擬網(wǎng);如果nbr(pi)為空,進入步驟(4);
步驟(4)確定pi的非鄰居集合(記作
步驟(5)從
步驟(6)判斷
步驟(7)比較pi的最大鏈路數(shù)(記作linksmax(pi))和nbr(pi)集合中的節(jié)點數(shù)量(記作|nbr(pi)|),如果|nbr(pi)|小于linksmax(pi),將py添加到nbr(pi);否則py將不會被添加到nbr(pi);
步驟(8)判斷針對set中的每一個節(jié)點是否都進入過步驟(3),如果是則進入步驟(9);否則進入步驟(3);
步驟(9)回溯步驟(3)至步驟(7),針對每一個未被加入到nbr(pi)的py,將探測到的從pi到py鏈路的帶寬和能力記入一個新的集合(記作coldlinks);
步驟(10)此后,步驟(3)和步驟(5)所述的探測過程,首先選擇coldlinks為探測對象,其次再選擇物理網(wǎng)為探測對象。
實施例
為了便于本領(lǐng)域一般技術(shù)人員理解和實現(xiàn)本發(fā)明,現(xiàn)結(jié)合附圖進一步說明本發(fā)明的技術(shù)方案,給出一種本發(fā)明的具體實施方式。
1、基本方法
服務(wù)路徑查找算法工作的基礎(chǔ)是虛擬網(wǎng),虛擬網(wǎng)由sdn控制器針對特定類型服務(wù)而構(gòu)建。
以下采用符號p代表虛擬網(wǎng)中的服務(wù)節(jié)點,對于每個p而言,定義其最大鏈路數(shù)為dmax(p),鄰居集合為nbr(p),nbr(p)的初始值在虛擬網(wǎng)創(chuàng)建時可由管理員自行設(shè)定。運行過程中,p根據(jù)查詢到的帶寬結(jié)果動態(tài)調(diào)整nbr(p)。為了虛擬網(wǎng)構(gòu)建過程中,p定期執(zhí)行如下動作:
1)探測:在每次的鄰居節(jié)點探測過程tp中,p探測鏈路(p,px|px∈nbr(p))的帶寬和能力。
2)虛擬網(wǎng)調(diào)整:在每次的非鄰居節(jié)點探測過程tq(tq>tp)中,p探測鏈路
(a)b(p,px)表示新探測到的從p到px鏈路帶寬,b(p→px)表示當(dāng)前虛擬網(wǎng)中從p到px的鏈路帶寬,如果b(p,px)<=b(p→px),那么px將不會被添加到nbr(p)。
(b)如果p的鄰居數(shù)量小于dmax(p),px將被添加到nbr(p)。
(c)p檢查nbr(p)∪{px}中的每一個節(jié)點,如果存在節(jié)點pv使得在虛擬網(wǎng)拓撲中添加一條從p到px的邊后再刪除邊(p,px),而從p到pv的端到端帶寬相較于當(dāng)前的b(p,pv)只是輕微的變小,那么pv將被從nbr(p)中刪除。這說明pv在包含邊(p,pv)的服務(wù)路徑中作用很小。
一方面,對于一條以源節(jié)點ps和目的節(jié)點pd標記的服務(wù)請求,虛擬網(wǎng)中可能存在多條服務(wù)路徑,前面所構(gòu)建的虛擬網(wǎng)由于沒有包含足夠的鏈路,因此所提供的服務(wù)路徑數(shù)量相對有限,進而影響服務(wù)請求的成功率;另一方面,由于一條服務(wù)路徑只能連接一對終端,因此對于虛擬網(wǎng)而言,針對每條服務(wù)路徑分配的服務(wù)節(jié)點數(shù)量越少越好,然而在一個dmax(p)較低的虛擬網(wǎng)中受限于服務(wù)節(jié)點之間的候選鏈路數(shù)量不足,反而需要更多的服務(wù)節(jié)點。
虛擬網(wǎng)構(gòu)建過程中為防止上述問題的出現(xiàn),我們需要更大的dmax(p),然而這不可避免地帶來探測開銷的快速增加。
2、優(yōu)化方法
針對“基本方法”的不足,接下來基于“冷”鏈路啟動方法對虛擬網(wǎng)進行優(yōu)化調(diào)整。該“優(yōu)化方法”與“基本方法”同時使用,可以在不增加探測開銷的前提下構(gòu)建一個具有高度連接性的虛擬網(wǎng),其核心思想是發(fā)掘探測過程中的“冷”鏈路,具體工作過程如下:
1)啟用“冷”鏈路:在“基本方法”的“虛擬網(wǎng)調(diào)整”動作中,tq過程所探測到的“冷”鏈路
2)消極的鏈路監(jiān)控:如果鏈路(p,px)被服務(wù)路徑發(fā)現(xiàn)算法選中,它將被啟用成為一個“熱”鏈路。p跟蹤通過鏈路(p,px)的最大數(shù)據(jù)傳輸率并將其作為鏈路的測量帶寬。該鏈路保持“熱”狀態(tài)直到?jīng)]有任何服務(wù)路徑經(jīng)過(p,px)。
通過啟用“冷”鏈路,虛擬網(wǎng)的范圍被擴大、包含了多更多的可行路徑,而探測開銷卻沒有增加。虛擬網(wǎng)的擴張效果與參數(shù)dmax(p)、服務(wù)請求達到率和服務(wù)路徑會話的持續(xù)時間密切相關(guān)。直觀地來說,具有較小dmax(p)的p更容易啟用“冷”鏈路,而且較高的服務(wù)請求到達率和服務(wù)路徑會話時間,也更容易啟用“冷”鏈路且保持它的“熱”狀態(tài)。由于上述特點,在一個高度連接的虛擬網(wǎng)中,“優(yōu)化方法”能有效地彌補“基本方法”的不足。