胡海巖,康巧燕*,趙朔,王建峰,付有斌
(1.空軍工程大學 信息與導航學院,西安 710077;2.中國人民解放軍93107部隊,沈陽 110141)
網(wǎng)絡功能虛擬化(Network Function Virtualization,NFV)技術是云服務提供商為了降低投資與運營成本,將服務功能與底層硬件進行解耦的產(chǎn)物。NFV 可以在傳統(tǒng)的專用硬件設備上實現(xiàn)虛擬網(wǎng)絡功能(Virtualized Network Function,VNF)[1],將這些VNF 根據(jù)請求按照一定的邏輯順序連接形成服務功能鏈(Service Function Chain,SFC)。
隨著5G 網(wǎng)絡時代的到來,網(wǎng)絡通信系統(tǒng)需要更低的時延,在有些特殊場景下甚至到達了毫秒級[2],且在非理想環(huán)境下,基于軟件的網(wǎng)絡功能更容易出現(xiàn)硬件或軟件故障,從而導致網(wǎng)絡服務的中斷,造成不可估量的損失。因此在部署SFC 的過程中,提高部署可靠性、降低端到端的時延成為了研究熱點。本文在該熱點問題的基礎上,同時考慮降低節(jié)點、帶寬資源的開銷以達到降低運營商部署成本的目的。
針對可靠性問題,部分學者通過故障發(fā)生后的恢復機制進行研究,如文獻[3]中用蒙特卡洛樹搜索算法實現(xiàn)物理鏈路發(fā)生故障后的重映射問題;但這種恢復機制會暫停服務,影響服務質(zhì)量。因此大部分學者通過備份增加冗余的方式進行研究:文獻[4]中對整條鏈路進行備份;文獻[5]中采用共享備份的方式以降低資源消耗;文獻[6]中對VNF 進行聯(lián)合備份,在提高可靠性的同時優(yōu)化網(wǎng)絡資源分配;文獻[7]中提出一種相鄰VNF 備份、實例資源共享的備份機制,在降低節(jié)點和帶寬資源開銷的同時提高了網(wǎng)絡服務的映射成功率。但上述通過備份提高部署可靠性的方法會擴展SFC 的長度,不但會增加資源開銷,而且也會在一定程度上增加時延,導致運營商部署成本增加,傳輸效率降低。因此,本文通過聚合VNF 來減少部署的網(wǎng)絡節(jié)點,從而提高鏈路可靠性。
針對VNF 部署的問題,許多研究采用基于迭代的啟發(fā)式算法,如文獻[8]中將SFC 構建與映射同時混合編碼,并采用改進的遺傳粒子群算法對問題進行求解;文獻[9]中提出將遺傳算法與模擬退火算法相結合的求解策略,通過判斷個體約束性與糾正遺傳的方法避免局部最優(yōu)的出現(xiàn),大幅降低了端到端時延。但這種啟發(fā)式算法需要反復迭代,消耗時間較多,不利于VNF 的快速部署,難以應用于某些低時延的場景。文獻[10]中使用深度強化學習進行SFC 的部署,在保證可靠性的同時最大化映射成功率。文獻[11-12]使用機器學習來部署VNF,這類方法能夠明顯提高SFC 的優(yōu)化效果,但又依賴于利用大量準確的數(shù)據(jù)集訓練模型。因此,本文依據(jù)可靠性、時延與拓撲屬性定義了節(jié)點綜合重要度以實現(xiàn)底層網(wǎng)絡節(jié)點的排序,優(yōu)化VNF 的部署。
針對VNF 聚合[13]問題,文獻[14]中通過聚合功能相同的VNF 以達到降低映射成本的目的,但僅局限于相同功能的VNF 聚合,且未考慮到聚合后資源需求的增多會降低映射時的映射成功率。文獻[15]在聚合相同VNF 的基礎上,發(fā)現(xiàn)貪婪算法能夠有效降低總帶寬的消耗。文獻[16]中通過共享節(jié)點來節(jié)省節(jié)點資源,并通過遷移調(diào)整提高資源利用率,此外還詳細描述了帶寬消耗與節(jié)點資源消耗之間存在的矛盾,但并未直接解決這種矛盾。文獻[13]中為了解決這種矛盾,首先通過聚合不同的VNF 來降低節(jié)點資源消耗;然后通過一種能進行映射反饋的閉環(huán)算法有效地在降低節(jié)點資源消耗的同時降低帶寬消耗;并且引入了節(jié)點親密度的概念,通過降低節(jié)點跳數(shù)來降低需求帶寬。文獻[17]中介紹了6 種反映不同拓撲屬性的互補特征,并根據(jù)這6 種特征的不同特點提出了三種基于拓撲感知的虛擬網(wǎng)絡映射算法。文獻[18]中針對節(jié)點資源與帶寬的沖突設計了三種有效的策略,分別是重用虛擬機(即聚合相同VNF)、組合相鄰不同的VNF 與臨時鏈路映射,然后通過性別戰(zhàn)博弈(Battle of Sexes,BoS)模型解決這類沖突問題,但并未給出具體的聚合方式。文獻[19]中通過功能性約束、資源約束對節(jié)點進行聚合,有效地提高了可靠性,但并未考慮到不同VNF 對鏈路流量的影響不同。文獻[20]中根據(jù)虛擬鏈路流量變化對VNF 進行聚合,從而提高可靠性。本文通過改進基于流量改變率的VNF 聚合方法以減少部署的網(wǎng)絡節(jié)點,提高可靠性。
針對上述問題,本文以提高鏈路可靠性、降低節(jié)點資源與帶寬消耗為目標,首先針對不同帶寬需求的VNF,引入了流量改變率的概念[21],通過流量改變率聚合VNF,聚合方式是將相鄰的、流量改變率同小于等于1 或大于等于1 的不同VNF 進行聚合,從而減少部署的物理節(jié)點,提高鏈路可靠性,節(jié)約節(jié)點資源消耗與鏈路帶寬開銷,同時隨著鏈路跳數(shù)的減少,端到端的時延也會隨之降低;其次通過節(jié)點的度、可靠性、綜合時延與鏈路跳數(shù)定義了節(jié)點綜合重要度,對節(jié)點進行評價、排序,提高VNF 的映射效率;然后將聚合后的VNF依次映射到完成排序的底層節(jié)點上,映射過程要求映射的第i個節(jié)點到目標點的跳數(shù)不能大于第i-1 個節(jié)點到目標點的跳數(shù),以此減少流量“乒乓效應”(在兩節(jié)點之間往返傳輸)的出現(xiàn),從而降低帶寬開銷;最后用k-最短路徑算法映射虛擬鏈路,完成整個SFC 的部署。
物理網(wǎng)絡表示為一個加權無向圖GS=(N,L),其中:N為物理節(jié)點的集合,每個物理節(jié)點能夠承載多個服務器,用來實例化VNF;L為物理鏈路集合。對于任意節(jié)點n∈N,Cn表示剩余可用計算資源,Mn表示剩余可用存儲資源,F(xiàn)n表示剩余可用轉發(fā)資源,Ha,b表示物理節(jié)點a與節(jié)點b之間的跳數(shù),rn為物理節(jié)點的可靠性,dn為實例化VNF 后產(chǎn)生的時延(節(jié)點時延)。對于任意物理鏈路La,b∈L,用Ba,b表示剩余帶寬資源,Da,b表示鏈路時延。
SFC 請求為有向圖Gv=(Ig,Og,Dg,Tg,Rg,Vg,Lg),將SFC的集合表示為S={Sg|g=1,2,…},Ig與Og分別表示第g條SFC 的源點與目標點。對于任意一條Sg,Ig與Og的物理節(jié)點確定后,Dg為SFC 的最大時延限制,Tg為SFC 的生存時間,Rg為SFC 的可靠性要求下限,Vg={fi|i=1,2,…} 表示Sg所有的VNF 集合,對于任意一個fi∈Vg,Cg,i、Fg,i和Mg,i分別表示它的計算資源需求、轉發(fā)資源需求與存儲資源需求。用ηg表示流量改變率,Sg的路由集合表示為Lg=(l0,1,l1,2,…,li-1,i),用li-1,i表示第i-1 到第i個節(jié)點的路由,其中:0 為源點,i為目標點。bi-1,i表示第i-1 到第i個節(jié)點的帶寬需求,可用式(1)表示,即經(jīng)過任意VNF 后,帶寬需求為流入的流量與VNF 流量改變率的乘積,Ball為鏈路總帶寬消耗。
如果Sg中第k個VNF 成功部署在底層網(wǎng)絡第i個節(jié)點上,則設μk,i=1;若不是則μk,i=0。若虛擬鏈路li-1,i成功映射到物理鏈路La,b上,則否則的可靠性可用式(3)表示,其中Rg為鏈路可靠性,即各部署成功的網(wǎng)絡節(jié)點可靠性之積。
設節(jié)點資源開銷為costall,可用式(4)表示,即節(jié)點的計算、存儲與轉發(fā)能力之和。
本文的主要目標是在提高鏈路可靠性的同時降低帶寬開銷與節(jié)點資源開銷,由此設定目標函數(shù)為:
式(8)保證SFC 中的一個虛擬功能只能映射到一個底層節(jié)點,防止VNF 分割;式(9)保證虛擬鏈路能夠映射在一條或多條物理鏈路上;式(10)表示一條物理鏈路上只允許布置至多一次虛擬鏈路;式(11)~(13)分別為計算、存儲與轉發(fā)能力約束,不等式左邊為每個節(jié)點的資源消耗,為了實現(xiàn)負載均衡[19],保證每個節(jié)點的資源消耗不超過它的總資源的90%;式(14)表示鏈路帶寬約束,式(15)表示時延約束,不等式左邊為節(jié)點時延與鏈路時延之和。
SFC 的部署問題分為SFC 的構建與映射兩個部分。
SFC 的構建過程需要考慮VNF 的依賴關系,若VNF2 依賴于VNF1,則流量必須先經(jīng)過VNF1 的處理后才能到VNF2。如入侵檢測系統(tǒng)要在網(wǎng)絡保密器之前執(zhí)行,解碼器在編碼器之后執(zhí)行,本文假設VNF 順序已知,不考慮構建問題。SFC 的映射過程需要考慮兩個問題:
1)網(wǎng)絡節(jié)點的資源限制。一個節(jié)點可部署的VNF 有限,如5G 邊緣數(shù)據(jù)中心處理數(shù)據(jù)的能力十分有限。
2)VNF 映射節(jié)點的位置。VNF 會改變流量速率,例如防火墻會丟掉某些數(shù)據(jù)包導致輸出速率小于輸入速率,而虛擬專用網(wǎng)絡(Virtual Private Network,VPN)代理會給數(shù)據(jù)報文新增頭部開銷從而導致輸出速率大于輸入速率。
圖1~4 展示了同一條SFC 在相同的網(wǎng)絡結構中的不同部署方法,其中:VNF 上的數(shù)字代表流量改變率[22];B為鏈路總帶寬,箭頭與序號代表數(shù)據(jù)流經(jīng)過的順序。
不同的VNF 部署位置會產(chǎn)生不同的帶寬消耗,圖1(a)為將流量改變率小的VNF 靠后部署的方法;圖1(b)為將流量改變率大的VNF 靠后部署的方法。通過對比可以看出圖1(a)方法的所需帶寬高于圖1(b)方法,所以相同路徑的不同VNF 部署位置所需帶寬不同。
圖1 不同部署位置的VNF部署方法Fig.1 VNF deployment methods with different deployment locations
不同路徑的帶寬消耗也不同,如圖2 所示,對VNF 進行聚合,聚合后的VNF 節(jié)點資源需求為各VNF 節(jié)點資源需求之和,流量改變率為各VNF 節(jié)點改變率之積,可以看出圖2(b)方法的帶寬消耗小于圖2(a),所以鏈路跳數(shù)越小帶寬消耗越少。
圖2(c)展示了兩節(jié)點之間的“乒乓效應”。圖中兩節(jié)點中的一條鏈路經(jīng)過了往返兩次傳輸,與圖1(b)相比,VNF 部署位置相同,但流量所經(jīng)路徑不同,可以看出圖2(c)方法所需帶寬遠高于圖1(b),因此在鏈路傳輸中應盡量減少“乒乓效應”以提高傳輸效率,降低帶寬消耗。
圖2 不同路徑的VNF部署方法Fig.2 VNF deployment methods with different paths
不同的VNF 聚合方式的帶寬消耗也不同,如圖3 所示。圖3(a)與圖3(b)的部署方式相同,但是兩者采用了不同的聚合方式,可以看出圖3(b)方法的帶寬消耗大于圖3(a)。
圖2(a)、圖2(b)、圖3(b)方法都采用了聚合的方式將3個VNF 部署到兩個節(jié)點上,假設每個節(jié)點的可靠度為0.95,則這種聚合后的鏈路可靠度為0.952=0.902 5。圖1(a)、圖1(b)、圖2(c)方法將3 個VNF 分別部署到3 個節(jié)點上,鏈路可靠度為0.953=0.857 4。因此同樣數(shù)量的VNF 下,對VNF 進行聚合處理能夠減少映射的網(wǎng)絡節(jié)點數(shù)量,從而提高鏈路的可靠性。
圖3 不同聚合方式的VNF部署方法Fig.3 VNF deployment methods with different aggregation methods
經(jīng)過比較可得,圖2(b)方法在6 種部署方法中帶寬消耗最小。因此在理想狀態(tài)下,以最優(yōu)的聚合規(guī)則對VNF 進行聚合,再將帶寬需求較小的VNF 靠前部署、帶寬需求較大的VNF 靠后部署,并且選擇鏈路跳數(shù)最小的節(jié)點依次部署,同時減少鏈路的“乒乓效應”,就能以最優(yōu)的方式降低鏈路帶寬消耗并提高鏈路可靠性。但在非理想狀態(tài)下,由于部分VNF具有依賴關系,映射到底層網(wǎng)絡也應保持這種依賴關系,因此本文不考慮VNF 的靠前部署與靠后部署,而是依次對VNF 進行部署。
圖4 為非理想狀態(tài)下的VNF 部署方法,帶寬消耗相較于圖1、圖2(a)、圖2(c)方法仍具有優(yōu)勢。同時,將圖4 方法與圖1(a)相比較可以看出,通過VNF 聚合也可達到將流量改變率小于1 的VNF 靠前部署的目的,從而降低鏈路的帶寬消耗。
圖4 最終VNF部署方法(B=337.6 MB/s)Fig.4 Final VNF deployment method(B=337.6 MB/s)
本章首先采用基于流量改變率的VNF 聚合方法對VNF進行處理,然后對底層節(jié)點按照節(jié)點綜合重要度進行評價與排序,將聚合后的VNF 依次映射到完成排序的底層節(jié)點上,最后采用k-最短路徑算法映射虛擬鏈路。
本節(jié)涉及兩個概念:聚合與流量改變率。
文獻[13]中指出當一個多功能物理設備能夠提供多種網(wǎng)絡功能與足夠的計算能力時,可以將來自同一SFC 請求的多個VNF 映射到同一物理設備上,即聚合原SFC 序列中資源需求與功能不同的VNF,以提高物理資源利用率與鏈路的可靠性。本文通過流量改變率聚合VNF,而流量改變率η[21]即流量通過VNF 后,流出的流速率與流入的流速率之比,可將它分為三類:1)η<1 的VNF,即流出流量小于流入流量,如防火墻、網(wǎng)絡加速器、解碼器等;2)η=1 的VNF,即流出流量等于流入流量,如入侵檢測、負載均衡器等;3)η>1 的VNF,即流出流量大于流入流量,如編碼器、網(wǎng)絡保密器、VPN 代理等。
本文聚合VNF 的主要思路為:在一個序列已知的SFC中,分別聚合η≤1、η≥1 的相鄰VNF,由于“1”不改變聚合后的VNF 流量改變率,因此既可與η<1 的相鄰VNF 聚合,也可與η>1 的相鄰VNF 聚合,這樣能夠最小化聚合后的VNF 數(shù)量。本文將η=1 的VNF 與前一個VNF 做相同處理,即當前一個VNF的η<1 時,η=1 的VNF 當作小于1 處理;當前一個VNF的η>1 時,當作大于1 處理。聚合后的VNF將映射到同一物理節(jié)點上,其中聚合后的VNF 節(jié)點資源需求為各VNF 節(jié)點資源需求之和,流量改變率為各VNF 節(jié)點改變率之積。
如圖5 所示,VNF 下的數(shù)字為流量改變率η,聚合方法1中VNF1 與VNF2的η<1,可以進行聚合;VNF3 與VNF4的η>1,可以進行聚合,聚合完成后,部署VNF 的節(jié)點由原始的4 個變?yōu)? 個,不僅可以提高鏈路的可靠性,同時也可達到將η<1 的VNF 靠前部署的目的,以降低鏈路帶寬消耗。在聚合方法2 與聚合方法3 中,η=1 的VNF3 既可與η<1 的相鄰VNF 聚合,也可與η>1 的相鄰VNF 聚合。在聚合方法4 與聚合方法5 中,當η=1 的VNF3 既與η<1 的VNF 相鄰,又與η>1 的VNF 相鄰時,則規(guī)定VNF3 與前一個相鄰的VNF 聚合。聚合方法6 為特殊情況,由于相鄰的VNF 之間沒有同小于等于1 或同大于等于1 的VNF,所以無法進行聚合。設本文的聚合方式為J1。
圖5 不同流量改變率的VNF聚合方法Fig.5 VNF aggregation method based on different traffic change rate
文獻[20]中同樣采取基于帶寬需求變化的VNF 聚合方式進行處理,它的聚合方法為將η>1 的VNF 與之后的所有η≤1 的VNF 進行聚合,直到下一個η>1 的VNF 為止。設文獻[20]的聚合方式為J2。為了與文獻[20]具有相同的VNF 聚合條件,設置一種新的聚合方式J3:在一個序列已知的SFC 中,分別聚合η≤1、η>1 的VNF。
如圖6 所示,將SFC 中VNF 數(shù)量為4 的情況通過樹狀圖的方式 全部列 出,其中:A為η>1 的VNF;B為η≤1 的VNF。數(shù)字為以不同方式聚合后的VNF 數(shù)量,J3為40,J2為47,可看出按照J3聚合的VNF 數(shù)量小于按照J2聚合的VNF數(shù)量,因此相較于J2,J3的聚合效果更好。
圖6 J2與J3的對比結果Fig.6 Comparison result of J2 and J3
而本文的聚合方法J1與J3相比,聚合判定條件由η=1的VNF 只能與小于1 的VNF 聚合,更改為η=1 的VNF 既能與小于1 的VNF 聚合也能與大于1 的VNF 聚合,聚合效果更好。如圖7 所示,在相同情況下,按照J1方法聚合可將VNF數(shù)量從4 個聚合成2 個,而按照J3方法聚合仍然是4 個VNF,因此可得出J1的聚合效果優(yōu)于J3。
圖7 J1與J3的對比結果Fig.7 Comparison result of J1 and J3
因為J3的聚合效果優(yōu)于J2,可以說明:在相同情況下,J1的聚合效果優(yōu)于J2。因此在VNF 數(shù)量較小的情況下(本文為3~6 個),本文的聚合效果更好,能夠節(jié)省更多的帶寬資源,提高鏈路可靠性,降低時延?;诹髁扛淖兟实腣NF 聚合的具體步驟如算法1 所示:
算法1 基于流量改變率的VNF 聚合方法。
輸入 VNF 集合V,集合中每個VNF 的對應流量改變率η;
輸出 完成聚合的VNF 集合V′。
聚合后的VNF 節(jié)點資源需求為各VNF 節(jié)點資源需求之和,流量改變率為各VNF 節(jié)點改變率之積。
VNF 聚合完成后,需要將它們映射到底層物理節(jié)點上。受文獻[20,22]工作的啟發(fā),本文綜合考慮物理網(wǎng)絡節(jié)點之間的關系與時延感知,通過分析節(jié)點的度、鏈路跳數(shù)、可靠性、綜合時延四者與節(jié)點綜合重要度的相關性對節(jié)點進行評價與降序排序,然后將2.1 節(jié)完成聚合的VNF 依次映射至完成排序的節(jié)點上,最后通過k-最短路徑算法映射虛擬鏈路,完成整個SFC 的部署。
根據(jù)節(jié)點綜合重要度對網(wǎng)絡節(jié)點進行排序,可分為兩個部分:1)對底層網(wǎng)絡拓撲進行感知,主要考慮節(jié)點的度與鏈路跳數(shù);2)在此基礎上綜合考慮節(jié)點綜合時延與可靠性。具體如下:
①根據(jù)節(jié)點的拓撲結構考慮節(jié)點的重要度。首先衡量一個節(jié)點n的重要度的關鍵是節(jié)點的度,即節(jié)點與鄰近節(jié)點之間直接鏈接的鏈路數(shù)目。相同情況下,節(jié)點的度越大,節(jié)點重要度越大,二者呈正相關。節(jié)點的度NDn為節(jié)點n與鄰近節(jié)點之間相連的鏈路數(shù)量之和,可表示為:
由圖2 的分析可知,鏈路跳數(shù)越小,它的映射節(jié)點距離越近、范圍越小,帶寬消耗就越小,越有利于節(jié)點的排序,因此鏈路跳數(shù)與節(jié)點重要度呈負相關。本文用節(jié)點n與源點Ig的跳數(shù)hn,Ig、節(jié)點n與目標點Og的跳數(shù)hn,Og之和表示鏈路跳數(shù),鏈路跳數(shù)Hn可表示為:
綜上所述,節(jié)點的度與節(jié)點重要度呈正相關,鏈路跳數(shù)與節(jié)點重要度呈負相關,因此可將節(jié)點的重要度Xn表示為:
②除了考慮節(jié)點重要度外,還綜合考慮了節(jié)點的可靠性與綜合時延。節(jié)點的可靠性rn即節(jié)點的故障間隔Fn占故障間隔Fn與修復時間Rn之和的比值[23],可表示為:
節(jié)點可靠性越高,越有利于節(jié)點的排序,因此節(jié)點可靠性與節(jié)點的重要度呈正相關。
網(wǎng)絡時延即一個報文或分組從網(wǎng)絡一端到另一端所消耗的時間,通常由節(jié)點的處理時延、排隊時延、傳輸時延與鏈路的傳播時延組成,本文用節(jié)點的綜合時延表示。節(jié)點的綜合時延ZDn為節(jié)點時延dn與相鄰鏈路綜合時延之和,其中相鄰鏈路的綜合時延為節(jié)點相鄰鏈路時延Dn之和與節(jié)點的度NDn的比值:
節(jié)點綜合時延越小,越有利于節(jié)點的排序,因此節(jié)點綜合時延與節(jié)點的重要度呈負相關。
綜合考慮上述各指標與節(jié)點重要度的關系,可將節(jié)點綜合重要度Yn表示為:
由此可通過多指標計算出各個節(jié)點的綜合重要度,并按照綜合重要度對各節(jié)點進行評價與排序,能夠顯著提高映射效率。具體流程如算法2 所示。
算法2 基于節(jié)點綜合重要度的節(jié)點排序。
輸入 物理網(wǎng)絡GS=(N,Ln);
輸出 完成排序的節(jié)點集合N′。
在VNF 聚合映射策略中,為了減少鏈路的“乒乓效應”,降低帶寬消耗,要求映射的第i個節(jié)點到目標點的跳數(shù)不能大于第i-1 個節(jié)點到目標點的跳數(shù)(如圖2(c)所示的“乒乓效應”,映射的第3 個節(jié)點到目標點的跳數(shù)大于映射的第2 個節(jié)點到目標點的跳數(shù)),對于不符合要求的節(jié)點直接刪除;然后依次將完成聚合的VNF 映射到完成排序的節(jié)點上,完成VNF 的部署;最后通過計算鏈路的可靠性判斷是否達到標準要求,若不達標則VNF 部署失敗。具體流程如算法3 所示。
算法3 基于節(jié)點綜合重要度的節(jié)點排序。
輸入 聚合VNF 后的SFC 序列(I,O,D,T,R,V′,L′),排序后的物理鏈路Gs=(N′,Ln′) ;
輸出 VNF 映射List。
最后在滿足約束式(9)、(14)~(15)的條件下,采用k-最短路徑算法,將兩個虛擬節(jié)點間的虛擬鏈路映射到相對應的底層物理鏈路上,完成整個SFC 的部署。
為了驗證方法的有效性,采用Matlab 仿真軟件對本文方法進行評估分析,通過特定的評價指標,與基于服務質(zhì)量(Quality of Service,QoS)保障的服務功能鏈動態(tài)部署方法[2]、基于流量優(yōu)化的可靠服務功能鏈部署方法[20]、可靠性感知的資源節(jié)約型虛擬網(wǎng)絡功能部署方法[24]作對比。同時本文為了與文獻[20]中提出的聚合方式進行比較,為驗證圖6 的樹狀圖結果,設置了一個對照實驗,該實驗采用文獻[20]中的聚合方式,其余設置與本文一致。
本文通過SFC 平均可靠性、平均端到端時延、平均帶寬開銷、長期平均開銷比、映射成功率評價方法的性能。
1)Sg的可靠性Rg由式(3)可得,則它的平均可靠性為:
其中:Nsuc為成功部署SFC 的數(shù)量。
2)Sg的端到端時延Dg為:
則它的平均端到端時延可定義為:
3)Sg的平均帶寬開銷Bcostave可定義為:
其中:Bcostg為部署成功后Sg消耗的帶寬。
4)Sg的映射成功率ωacc可定義為:
其中:Nsuc(T)表示在時間T內(nèi)SFC 部署成功的數(shù)量;Nv(T)表示在時間T內(nèi)SFC 請求到達的數(shù)量;δ為無窮小,防止Nv(T)為0。
5)在t時刻,將成功部署一個Sg的收益定義為:
在t時刻,成功部署一個Sg,底層物理網(wǎng)絡的開銷為:
其中:α、β、χ和γ分別表示收益與開銷中節(jié)點計算資源、存儲資源、轉發(fā)資源以及鏈路帶寬資源各自所占的比重,本文均設定為1。
Sg的長期平均收益開銷比為:
本文基于Matlab R2016b 仿真軟件對方法進行評估。物理網(wǎng)絡為100 個節(jié)點與525 條鏈路組成的連通圖,是一個中型網(wǎng)絡拓撲圖。具體參數(shù)設置如表1 所示。
表1 物理網(wǎng)絡參數(shù)設置Tab.1 Physical network parameter setting
SFC 設置:SFC 請求到達率服從λ=1/20 的泊松分布,生存周期服從μ=1 000 的指數(shù)分布,仿真實驗持續(xù)6× 104個時間單位。具體參數(shù)設置如表2 所示。
表2 SFC參數(shù)設置Tab.2 SFC parameter setting
為降低隨機因素的影響,仿真實驗共進行了10 次,并選取每次結果的平均值作為實驗的最終結果。
在相同的物理網(wǎng)絡環(huán)境與SFC 請求下將本文方法與文獻[2,20,24]中的方法和本文對照實驗方法進行對比實驗仿真,5 種方法的具體對比如表3 所示,所有方法均采用k-最短路徑映射虛擬鏈路。其中:本文的VNF 聚合方法用J1表示,文獻[20]中的聚合方法用J2表示。
表3 不同VNF部署方法對比Tab.3 Comparison of different VNF deployment methods
分別從SFC 平均可靠性、重復映射鏈路跳數(shù)、平均端到端時延、平均帶寬開銷、長期平均收益開銷比與映射成功率6 個方面進行分析。
從圖8 可以看出,本文方法、文獻[20]方法與對照實驗方法的映射成功率遠高于文獻[2]與文獻[24]方法,達到了0.95 以上。因為在部署的過程中,這3 種方法不僅考慮了節(jié)點的拓撲位置,還考慮了節(jié)點的可靠性與綜合時延,約束條件更加完善,大幅提高了映射成功率。文獻[2]方法沒有考慮鏈路時延,文獻[24]方法不僅沒有考慮鏈路時延,也沒考慮節(jié)點時延,只關注鏈路的可靠性,使SFC 部署成功后的時延約束不足,導致映射成功率較低。
圖8 SFC映射成功率Fig.8 SFC mapping success rate
如圖9 所示,相較于文獻[20]方法,本文方法的長期平均收益開銷比θ提高約16%。本文方法、文獻[20]方法與對照實驗方法的θ遠高于文獻[2]與文獻[24]方法,本文方法的θ更是達到了0.95 以上,明顯優(yōu)于其他方法。由于本文方法、文獻[20]方法與對照實驗方法首先考慮了VNF 的聚合,大幅降低了節(jié)點的資源消耗與帶寬消耗,其次考慮了“乒乓效應”,有效降低了帶寬的開銷,顯著提高了θ。對照實驗方法與文獻[20]方法相比,節(jié)點排序方式不同,收益開銷比卻大幅提升,說明用節(jié)點綜合重要度對節(jié)點進行評價與排序更加有效,能夠讓不同的評價指標對節(jié)點的排序起到更加有效的作用,從而降低了節(jié)點資源與帶寬的開銷,提高了θ。本文方法與對照實驗方法相比,VNF 聚合方式不同,收益開銷比結果也有所提高,說明本文的聚合方式更加有效,能夠減少更多的部署節(jié)點,從而降低節(jié)點資源消耗與鏈路帶寬消耗,提高θ。
圖9 長期平均收益開銷比Fig.9 Average long-term revenue-to-cost ratio
由圖10 可以看出,本文方法、文獻[20]方法、對照實驗方法與文獻[2]、文獻[24]方法相比,平均重復映射鏈路條數(shù)更少。因為這3 種方法都考慮了“乒乓效應”,而文獻[2]、文獻[24]方法未考慮這種特殊情況,“乒乓效應”會顯著增加鏈路重復映射條數(shù),從而增加鏈路帶寬消耗。本文方法、文獻[20]方法與對照實驗方法在VNF 映射時考慮了鏈路跳數(shù)的約束,從而降低了鏈路重復映射條數(shù)。
圖10 鏈路重復映射條數(shù)Fig.10 Link number of duplicated mapping
由圖11 可以看出,本文方法、文獻[20]方法、對照實驗方法、文獻[24]方法與文獻[2]方法相比,SFC 的平均可靠性Rg都在0.9 以上,本文方法的Rg更是達到了0.92 以上,相較于文獻[20]方法提升了約2%。因為本文方法、文獻[20]方法、對照實驗方法都對VNF 進行聚合處理,大幅降低了底層物理節(jié)點的數(shù)量,有效提高了鏈路的可靠性。而文獻[24]方法提高Rg的方法是將VNF 部署在可靠性最高的節(jié)點上,后續(xù)再不斷對此進行動態(tài)調(diào)整,因此Rg也可維持在0.9 以上。文獻[2]方法雖然考慮到了節(jié)點的可靠性,但卻未進行聚合處理,所以Rg較低,維持在0.87 左右。對照實驗方法與文獻[20]方法相比,節(jié)點排序方式不同,Rg基本持平,因為兩個節(jié)點排序中的限制條件并不會嚴重影響部署節(jié)點的數(shù)量,從而對鏈路的可靠性影響較低。本文方法與對照實驗方法相比,VNF 聚合方式不同,Rg明顯提高,說明本文的VNF 聚合方式更加有效,能夠減少更多的部署節(jié)點,從而提高鏈路的可靠性。
圖11 SFC平均可靠性Fig.11 Average SFC reliability
由圖12 可看出,本文方法與文獻[20]方法相比,SFC 端到端平均時延Dg降低約22%。本文方法、文獻[20]方法、對照實驗方法與文獻[2]、文獻[24]方法相比,Dg更低,因為這3 種方法都將綜合時延作為評價指標對節(jié)點進行排序,同時在VNF 映射時考慮“乒乓效應”,有效地降低了鏈路時延,從而顯著地降低了Dg。相較于文獻[20]方法,對照實驗方法的節(jié)點排序方式不同,Dg更低,說明用節(jié)點綜合重要度對節(jié)點進行排序更加有效,能夠使綜合時延對節(jié)點的排序起到更加有效的作用,從而降低Dg。本文方法與對照實驗方法相比,VNF 聚合方式不同,端到端平均時延更低,說明本文的VNF 聚合方式更加有效,能夠減少更多的部署的節(jié)點,從而降低節(jié)點時延與鏈路時延,進而降低了Dg。
由圖13 可看出,本文方法與文獻[20]方法相比,SFC 端到端平均帶寬開銷Bcostave降低約29%。本文方法、文獻[20]方法、對照實驗方法與文獻[2]、文獻[24]方法相比,Bcostave更低,因為這三種方法首先進行了VNF 的聚合處理,能夠顯著降低帶寬消耗,同時減少了鏈路的“乒乓效應”,能夠減少鏈路的重復映射,從而使帶寬消耗更低。對照實驗方法與文獻[20]方法相比,節(jié)點排序方式不同,平均帶寬開銷卻大幅降低,說明用節(jié)點綜合重要度對節(jié)點進行排序更加有效,能夠讓節(jié)點的跳數(shù)對于節(jié)點的排序起到更加有效的作用,從而降低Bcostave。本文方法與對照實驗方法相比,VNF 聚合方式不同,平均帶寬開銷有所降低,說明本文的聚合方式更加有效,能夠減少更多的部署節(jié)點,從而減少鏈路帶寬消耗,降低平均帶寬開銷。
圖13 平均帶寬開銷Fig.13 Average bandwidth overhead
針對5G 網(wǎng)絡環(huán)境中低時延、高可靠性的要求,本文研究了NFV 環(huán)境下關于服務功能鏈(SFC)的部署問題,提出了基于節(jié)點綜合重要度排序的服務功能鏈部署方法。首先通過流量改變率將VNF 進行聚合,從而減少部署的物理節(jié)點,進而提高鏈路可靠性,節(jié)約節(jié)點資源消耗與鏈路帶寬開銷;然后通過節(jié)點綜合重要度對節(jié)點進行排序,提高VNF 映射效率;其次將聚合后的VNF 依次映射到完成排序的底層節(jié)點上,同時在VNF 映射階段考慮“乒乓效應”,以減少重復映射鏈路跳數(shù),降低鏈路帶寬消耗;最后通過k-最短路徑算法進行虛擬鏈路映射,完成整個SFC 的部署。仿真結果表明,本文方法能夠有效提高鏈路可靠性、降低時延、降低資源開銷,起到了良好的優(yōu)化效果。未來將結合深度學習模型對節(jié)點綜合重要度的權重進行動態(tài)調(diào)整,進一步實現(xiàn)對SFC 的優(yōu)化部署。