李雅波,姜麗芬,劉 濤,張 棟
(天津師范大學(xué)計(jì)算機(jī)與信息工程學(xué)院,天津 300387)
軟件定義網(wǎng)絡(luò)(software defined networking,SDN)是當(dāng)今最熱門(mén)的網(wǎng)絡(luò)技術(shù)之一,SDN利用分層的思想,將控制平面和數(shù)據(jù)平面相分離,分別部署在獨(dú)立的設(shè)備上實(shí)現(xiàn)[1].與傳統(tǒng)網(wǎng)絡(luò)技術(shù)相比,SDN有許多優(yōu)點(diǎn)[1]:(1)控制平面統(tǒng)一控制轉(zhuǎn)發(fā)平面上的網(wǎng)絡(luò)設(shè)備,同時(shí)向上提供便捷的可編程操作;(2)網(wǎng)絡(luò)運(yùn)營(yíng)商和第三方能根據(jù)自身需求開(kāi)發(fā)新的控制方案,提供全新的網(wǎng)絡(luò)應(yīng)用和服務(wù);(3)網(wǎng)絡(luò)用戶不必在意底層設(shè)備的技術(shù)細(xì)節(jié),只需通過(guò)簡(jiǎn)潔的編程操作就能迅速達(dá)成目標(biāo)應(yīng)用的需求;(4)SDN可以提供靈活的網(wǎng)絡(luò)資源管理和基于數(shù)據(jù)流的快速靈活的路由配置,能夠自動(dòng)優(yōu)化網(wǎng)絡(luò)資源的利用.因此,近年來(lái)SDN引起了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注.
SDN需要周期性地進(jìn)行路由更新,更新執(zhí)行的速度是決定網(wǎng)絡(luò)性能的關(guān)鍵[2],更新執(zhí)行越慢,傳輸過(guò)程中數(shù)據(jù)丟失和造成網(wǎng)絡(luò)擁塞的可能性就越高.因此,路由更新是SDN的關(guān)鍵問(wèn)題之一,眾多學(xué)者對(duì)SDN路由更新方法進(jìn)行了深入研究[2-15].其中:一類更新方法[2-3]預(yù)先設(shè)定了轉(zhuǎn)發(fā)規(guī)則更新的次序,但這類方法很難適應(yīng)實(shí)際數(shù)據(jù)量的動(dòng)態(tài)特點(diǎn);文獻(xiàn)[4-5]提出根據(jù)當(dāng)前數(shù)據(jù)流整體狀況進(jìn)行轉(zhuǎn)發(fā)規(guī)則的更新,但隨著執(zhí)行更新的數(shù)據(jù)流逐漸增加,網(wǎng)絡(luò)性能變差,實(shí)驗(yàn)分析表明[6],只更新10 kB數(shù)據(jù)流,完成流表更新尚約80 s,而實(shí)際中等規(guī)模數(shù)據(jù)中心中數(shù)據(jù)流到達(dá)的速度約為1 250~1 667 B/s.文獻(xiàn)[9]針對(duì)更新的帶寬開(kāi)銷和交換機(jī)處理延遲等問(wèn)題,提出基于通配符的請(qǐng)求成本優(yōu)化流統(tǒng)計(jì)收集(CO-FSC)方案,該方案通過(guò)具有近似因子f的基于舍入的算法來(lái)降低帶寬開(kāi)銷和交換機(jī)轉(zhuǎn)發(fā)規(guī)則處理的延遲.文獻(xiàn)[10]提出一種基于時(shí)間的更新實(shí)用方法,使用三態(tài)內(nèi)容尋址存儲(chǔ)器條目中的時(shí)間戳字段,來(lái)實(shí)現(xiàn)原子束更新,以高精度地協(xié)調(diào)網(wǎng)絡(luò)更新.考慮到網(wǎng)絡(luò)功能的隨機(jī)性,文獻(xiàn)[11]對(duì)基于馬爾可夫鏈的路由更新算法進(jìn)行了補(bǔ)充,在更新過(guò)程中,數(shù)據(jù)包通過(guò)選定路由的傳輸以比較所有可能的替代路由,實(shí)現(xiàn)了更新算法的虛擬化服務(wù),并根據(jù)執(zhí)行的算法為選擇最佳路由提供建議.文獻(xiàn)[12]首次提出了動(dòng)態(tài)路由更新期間無(wú)縫保持一致性的方法,避免了頻繁更新而導(dǎo)致數(shù)據(jù)包到達(dá)過(guò)程中出現(xiàn)明顯的不規(guī)則延遲或“通信中斷”.上述工作討論了在路由更新中如何保持更新一致性及避免擁塞的問(wèn)題,而沒(méi)有考慮實(shí)時(shí)更新的問(wèn)題.文獻(xiàn)[13]探討快速路由更新的問(wèn)題,利用線性規(guī)劃方法解決流的選取,其缺點(diǎn)是選擇更新數(shù)據(jù)流時(shí)沒(méi)有考慮當(dāng)前鏈路的負(fù)載狀況和公平性,造成數(shù)據(jù)流的選擇不合理,并且線性規(guī)劃算法執(zhí)行速度較慢.文獻(xiàn)[14]提出一種快速路由更新方法,適用于數(shù)據(jù)中心網(wǎng)絡(luò)和廣域網(wǎng)的更新,文獻(xiàn)[15]提出了一種智能規(guī)則劃分方法(SARD)來(lái)實(shí)現(xiàn)SDN中的快速更新,這2種方法的缺點(diǎn)是更新的數(shù)據(jù)流數(shù)量均較大,可能導(dǎo)致更新延遲過(guò)長(zhǎng).
本文提出一種基于模糊理論的數(shù)據(jù)流選擇及路由更新策略(fuzzy quantified based flow selection and route update,F(xiàn)ANS).首先,使用語(yǔ)言量詞和模糊量化命題確定各數(shù)據(jù)流相對(duì)于路由更新標(biāo)準(zhǔn)的符合程度,并結(jié)合鏈路可用容量決定更新的數(shù)據(jù)流,然后,利用鏈路容量和交換機(jī)存儲(chǔ)容量限制尋找同步更新的數(shù)據(jù)流,進(jìn)一步降低路由更新的延遲.仿真實(shí)驗(yàn)結(jié)果表明,本文的路由更新方法具有較優(yōu)越的性能.
設(shè)網(wǎng)絡(luò)結(jié)構(gòu)為G=(S,L),S={s1,s2,…,sn}表示交換機(jī)構(gòu)成的集合,L為鏈路集.路由更新的目的是將網(wǎng)絡(luò)從狀態(tài)C={f,Pc(f),f∈T}更新為狀態(tài)C′={f,Pd(f),f∈T},其中:T為進(jìn)行路由更新的流的集合,C和C′分別為數(shù)據(jù)流的目前傳輸路徑集合和目標(biāo)傳輸路徑集合,Pc(f)為流f更新之前的傳輸通路,Pd(f)為相應(yīng)更新后的通路.假設(shè)每個(gè)數(shù)據(jù)流僅擁有一條傳輸通路.
交換機(jī)可以記錄通過(guò)它的數(shù)據(jù)流,根據(jù)交換機(jī)的統(tǒng)計(jì)記錄,控制器可以獲知數(shù)據(jù)流的強(qiáng)度.但在實(shí)際情況中,數(shù)據(jù)流的強(qiáng)度可能會(huì)在空間和時(shí)間上呈現(xiàn)動(dòng)態(tài)性,這種情況下控制器無(wú)法獲知數(shù)據(jù)流的強(qiáng)度.文獻(xiàn)[16]利用鏈路能夠負(fù)載數(shù)據(jù)流的數(shù)量進(jìn)行強(qiáng)度估計(jì),鏈路容量為歷史統(tǒng)計(jì)中能夠一次通過(guò)的最大流數(shù).本文中,若數(shù)據(jù)流的強(qiáng)度無(wú)法獲知,則每隔一段時(shí)間記錄該時(shí)間段內(nèi)一次通過(guò)鏈路e的最大流數(shù)max(Tn,e).設(shè)F(n)為當(dāng)前通過(guò)鏈路e的最大流數(shù),由指數(shù)加權(quán)平均法有
其中:F(n-1)為上一次統(tǒng)計(jì)中一次通過(guò)鏈路e的最大流數(shù),β為權(quán)重.式(1)可寫(xiě)為
利用指數(shù)加權(quán)平均法預(yù)測(cè)最大流數(shù),既考慮了歷史狀況,又考慮了網(wǎng)絡(luò)當(dāng)前的流量狀態(tài).優(yōu)化算法中通常取 β≥0.9,此時(shí)有 β1/(1-β)≈1/e.由于越早的 max(Tn,e)權(quán)重越小,因此每次只需考慮最近1/(1-β)次的數(shù)據(jù)流最大個(gè)數(shù)的統(tǒng)計(jì)值,從而大大降低了交換機(jī)的存儲(chǔ)代價(jià).
設(shè)di為插入一個(gè)轉(zhuǎn)發(fā)規(guī)則的時(shí)長(zhǎng),dm為修改一個(gè)流轉(zhuǎn)發(fā)規(guī)則的時(shí)長(zhǎng).令d(s,Pc(f),Pd(f))為交換機(jī)s將流f從Pc(f)更新到Pd(f)的時(shí)長(zhǎng),且dm≈10 ms,di≈3.3 ms,則有
為滿足路由的實(shí)時(shí)更新,利用人工智能的模糊理論確定各數(shù)據(jù)流相對(duì)于更新標(biāo)準(zhǔn)的符合程度.
2.1.1 模糊量詞
令Q、X、A、B分別為模糊語(yǔ)言量詞、論域和2個(gè)模糊謂詞,模糊量化命題的形式為“Q XareA”或“Q B XareA”.相關(guān)研究表明[17-18],模糊量化命題“Q XareA”適用于描述用戶偏好.當(dāng)Q為增量量詞時(shí),模糊量化命題“P:Q XareA”的真值TP是X的子集,
其中μA(x1)≥μA(x2)≥…≥μA(xn).
2.1.2 基于模糊運(yùn)算的路由更新排序及選擇根據(jù)如下因素選擇待更新數(shù)據(jù)流:
(1)數(shù)據(jù)流強(qiáng)度(flow intensity),即流數(shù)大小s(f);
(2)數(shù)據(jù)流當(dāng)前路由的負(fù)載(route load),定義為數(shù)據(jù)流當(dāng)前路由上鏈路的最大負(fù)載,即其中H為鏈路帶寬;
(3)數(shù)據(jù)流當(dāng)前路由的擁塞程度(route congestion level),即負(fù)載較重的鏈路條數(shù)與總鏈路條數(shù)的比值;
(4)選擇優(yōu)先級(jí)(select priority),定義為某數(shù)據(jù)流在前m輪被選為待更新數(shù)據(jù)流的次數(shù).
基于以上因素,每個(gè)數(shù)據(jù)流f被描述為一個(gè)具有4個(gè)對(duì)的集合{(cfk,ofk),k=1、2、3、4},其中:cfk是流f的屬性,of k為其具體取值.為選擇待更新數(shù)據(jù)流,定義選擇標(biāo)準(zhǔn)fselect,相應(yīng)的,fselect具有 4 個(gè)對(duì)(cfk,pfk),k=1、2、3、4,pfk為對(duì)于cfk的選擇偏好.數(shù)據(jù)流f相對(duì)于選擇標(biāo)準(zhǔn)fselect的符合程度(記為τ(fselect|f))是模糊量化命題“幾乎所有的偏好都被滿足”的真值.基于式(4),τ(fselect|f)的取值為
其中μp(cfs′)為數(shù)據(jù)流f的屬性對(duì)選擇偏好的符合程度,由模糊隸屬函數(shù)求出,且μp(cf1′)≥μp(cf2′)≥…≥μp(cfm′).各因素的模糊隸屬函數(shù)見(jiàn)圖1.
圖1 模糊隸屬函數(shù)Fig.1 Fuzzy membership functions
得到各數(shù)據(jù)流相對(duì)于選擇標(biāo)準(zhǔn)的符合程度后,對(duì)于結(jié)果不為零的數(shù)據(jù)流,按照符合程度由大到小排列,形成序列Q.從序列Q的第1個(gè)流開(kāi)始依次選擇,對(duì)于流f的路徑集Rf(所有可選路徑的集合)內(nèi)的各條傳輸路徑,計(jì)算其上各鏈路的目前容量c(e),進(jìn)而得到傳輸路徑P的目前容量C(P)為
從路徑集Rf中選出容量最大的路徑Pmax,由式(7)判斷Pmax能否容納f,若能則將f分配給路徑Pmax.
其中λ為負(fù)載參量.上述路徑分配算法的偽代碼如下:
算法目標(biāo)路徑分配
在保證鏈路無(wú)擁塞的前提下,控制器在相應(yīng)的時(shí)間段內(nèi)選擇多個(gè)流同步更新,可以進(jìn)一步降低路由更新的延遲.為此,在更新部分?jǐn)?shù)據(jù)流的基礎(chǔ)上,從鏈路容量限制和交換機(jī)流表容量限制2個(gè)方面進(jìn)一步挖掘同步更新的數(shù)據(jù)流.
2.2.1 鏈路容量限制
鏈路容量限制保證同步更新數(shù)據(jù)流時(shí)鏈路無(wú)擁塞.對(duì)于Q中的流f,能夠與該流同步更新的數(shù)據(jù)流滿足
其中:Rnu,e為通過(guò)鏈路e且不需要更新路徑的數(shù)據(jù)流集合,Ru,e為源路由通過(guò)鏈路e的數(shù)據(jù)流集合,Rt,e為目標(biāo)路由通過(guò)鏈路e的數(shù)據(jù)流集合.
2.2.2 交換機(jī)流表容量限制
交換機(jī)流表容量限制保證在路由更新過(guò)程中交換機(jī)的流表大小不超過(guò)最大容量.設(shè)交換機(jī)s的流表容量為CP(s),若更新后的路由通過(guò)交換機(jī)s,則其流表大小增加一個(gè)規(guī)則占用的空間rule(1),其大小取決于openflow協(xié)議的版本號(hào).設(shè)Rnu,s為源路由通過(guò)交換機(jī)s且暫不需要更新的數(shù)據(jù)流集合,Ru,s為源路由通過(guò)交換機(jī)s且需要更新的數(shù)據(jù)流集合,Rt,s為目標(biāo)路由通過(guò)交換機(jī)s的數(shù)據(jù)流集合,則有
使用mininet生成網(wǎng)絡(luò)拓?fù)?同時(shí)使用與文獻(xiàn)[16]相同的網(wǎng)絡(luò)拓?fù)渖晒ぞ?,此生成工具是PSGen拓?fù)渖晒ぞ叩囊粋€(gè)修改版,能夠模擬真實(shí)的大規(guī)模網(wǎng)絡(luò)拓?fù)?實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)浒?5臺(tái)交換機(jī),100條鏈路,6 000個(gè)數(shù)據(jù)流,控制器選擇Ryu.模擬的數(shù)據(jù)流遵循標(biāo)準(zhǔn)的2-8原則[19].實(shí)驗(yàn)中設(shè)β=0.9,λ=0.56.
采用2個(gè)性能指標(biāo)評(píng)價(jià)路由更新算法的性能:(1)網(wǎng)絡(luò)負(fù)載率(network load ratio),該指標(biāo)用于衡量網(wǎng)絡(luò)負(fù)載均衡度;(2)路由更新延遲(route update delay),即更新完成數(shù)據(jù)平面的總時(shí)間.
將 FANS 與已有算法 EMCF+DS[16]、GRSU[16]和OSPF進(jìn)行性能比較,本文設(shè)計(jì)了4組實(shí)驗(yàn).
3.2.1 第1組實(shí)驗(yàn)
第1組實(shí)驗(yàn)考察當(dāng)不同數(shù)量的數(shù)據(jù)流存在于網(wǎng)絡(luò)中時(shí),路由更新延遲和網(wǎng)絡(luò)負(fù)載率的變化.
由于OSPF算法始終為數(shù)據(jù)流選擇最短路徑,所以這里不考慮它的更新延遲問(wèn)題,圖2給出了路由更新延遲隨數(shù)據(jù)流數(shù)量的變化情況.
圖2 數(shù)據(jù)流的數(shù)量對(duì)路由更新延遲Fig.2 Number of flows vs.route update delay
由圖2可見(jiàn),F(xiàn)ANS的路由更新延遲要小于EMCF+DS和GRSU,當(dāng)數(shù)據(jù)流數(shù)量為6 000時(shí),F(xiàn)ANS的路由更新延遲分別比EMCF+DS和GRSU低約2.1 s和0.8 s.EMCF+DS每次都要更新網(wǎng)絡(luò)中的全部大象流,因此造成更新延遲較長(zhǎng),GRSU在更新流的選擇時(shí)沒(méi)有考慮數(shù)據(jù)流的強(qiáng)度以及選擇的公平性等因素,導(dǎo)致更新效果略差.
圖3給出了網(wǎng)絡(luò)負(fù)載率隨數(shù)據(jù)流數(shù)量的變化情況.由圖3可見(jiàn),F(xiàn)ANS的網(wǎng)絡(luò)負(fù)載率低于GRSU,略高于EMCF+DS,但FANS的更新延遲遠(yuǎn)低于EMCF+DS,綜合考慮,F(xiàn)ANS算法更具優(yōu)勢(shì).另外,OSPF算法的網(wǎng)絡(luò)負(fù)載率最高,當(dāng)數(shù)據(jù)流數(shù)量為6 000時(shí),其網(wǎng)絡(luò)負(fù)載率約為0.7,這是因?yàn)閿?shù)據(jù)流數(shù)量增大之后,某些主要鏈路的負(fù)載大大加重.
圖3 數(shù)據(jù)流的數(shù)量對(duì)網(wǎng)絡(luò)負(fù)載率Fig.3 Number of flows vs.network load ratio
3.2.2 第2組實(shí)驗(yàn)
第2組實(shí)驗(yàn)在第1組實(shí)驗(yàn)的基礎(chǔ)上為FANS和GRSU設(shè)定一個(gè)最大更新延遲的閾值D0=1.5 s.因?yàn)镚RSU為交換機(jī)設(shè)置了最大更新時(shí)延,另外當(dāng)數(shù)據(jù)流量或網(wǎng)絡(luò)規(guī)模較大時(shí),實(shí)時(shí)更新可能無(wú)法保證,所以通過(guò)設(shè)定這樣一個(gè)閾值來(lái)限制更新延遲.圖4和圖5分別給出了此時(shí)路由更新延遲和網(wǎng)絡(luò)負(fù)載率隨數(shù)據(jù)流數(shù)量的變化情況.
圖4 數(shù)據(jù)流的數(shù)量對(duì)路由更新延遲(D0=1.5 s)Fig.4 Number of flows vs.route update delay(D0=1.5 s)
圖5 數(shù)據(jù)流的數(shù)量對(duì)網(wǎng)絡(luò)負(fù)載率(D0=1.5 s)Fig.5 Number of flows vs.network load ratio(D0=1.5 s)
由圖4可見(jiàn),由于設(shè)定了閾值,此時(shí)數(shù)據(jù)流數(shù)量的增大對(duì)FANS和GRSU的更新延遲沒(méi)有影響,而EMCF+DS的更新延遲依然會(huì)隨數(shù)據(jù)流數(shù)量的增大而增大.對(duì)比圖5和圖3,在設(shè)定閾值的情況下,F(xiàn)ANS的網(wǎng)絡(luò)負(fù)載率增大約5%,這是因?yàn)橄薅ㄩ撝岛髷?shù)據(jù)流較之前增多,能夠更新的數(shù)據(jù)流數(shù)量比無(wú)設(shè)定時(shí)少,因此路由更新后的效果變差.由圖4和圖5可以看出,F(xiàn)ANS的網(wǎng)絡(luò)負(fù)載率稍高于EMCF+DS,但FANS的更新延遲卻大大低于EMCF+DS.當(dāng)數(shù)據(jù)流數(shù)量為4 000時(shí),F(xiàn)ANS的負(fù)載率比EMCF+DS高約5%,但其更新延遲比EMCF+DS低約1.8 s,當(dāng)數(shù)據(jù)流數(shù)量為6 000時(shí),F(xiàn)ANS的更新延遲比EMCF+DS低約2.5 s,而負(fù)載率僅高約8%,說(shuō)明FANS算法通過(guò)更新部分?jǐn)?shù)據(jù)流,達(dá)到了負(fù)載率和更新延遲的平衡.
3.2.3 第3組實(shí)驗(yàn)
在第3組實(shí)驗(yàn)中,在默認(rèn)函數(shù)基礎(chǔ)上將大象流的門(mén)限進(jìn)行擴(kuò)大.當(dāng)大象流的門(mén)限逐漸擴(kuò)大時(shí),圖6和圖7給出了路由更新延遲和網(wǎng)絡(luò)負(fù)載率的變化情況.
由圖6可見(jiàn),隨著大象流門(mén)限值成倍增加,F(xiàn)ANS的更新延遲一直低于其他算法.由圖7可見(jiàn),隨著大象流門(mén)限值增加,4種算法的負(fù)載率均不斷增大,F(xiàn)ANS的負(fù)載率僅高于EMCF+DS,當(dāng)大象流門(mén)限為原來(lái)的4倍時(shí),F(xiàn)ANS的負(fù)載率比EMCF+DS高約5%,但更新延遲卻低約2.5 s,因此FANS的性能更優(yōu).
圖6 大象流門(mén)限對(duì)路由更新延遲Fig.6 Elephant flow threshold vs.route update delay
圖7 大象流門(mén)限對(duì)網(wǎng)絡(luò)負(fù)載率Fig.7 Elephant flow threshold vs.network load ratio
3.2.4 第4組實(shí)驗(yàn)
在第4組實(shí)驗(yàn)中,固定數(shù)據(jù)流數(shù)量,考察最大更新延遲閾值D0對(duì)網(wǎng)絡(luò)負(fù)載率的影響.圖8(a)和(b)分別給出了當(dāng)數(shù)據(jù)流數(shù)量為4 000和6 000時(shí),網(wǎng)絡(luò)負(fù)載率隨D0的變化情況.
圖8 最大更新延遲閾值對(duì)網(wǎng)絡(luò)負(fù)載率Fig.8 Update delay constraint vs.network load ratio
由圖8可見(jiàn),隨著D0的增大,F(xiàn)ANS的負(fù)載率逐漸接近EMCF+DS,并且一直低于GRUS.但由于EMCF+DS需要更新全部大象流,因此其更新延遲會(huì)遠(yuǎn)大于FANS,另外,F(xiàn)ANS采用了模糊邏輯,選擇的數(shù)據(jù)流更加合理,因此負(fù)載率略低于GRSU.
3.2.5 負(fù)載參量λ對(duì)FANS性能的影響
數(shù)據(jù)流更新路徑的選擇與λ有關(guān),因此FANS的性能受λ影響.圖9給出了數(shù)據(jù)流數(shù)量為4 000和6 000時(shí),不同λ值下FANS的網(wǎng)絡(luò)負(fù)載率.由圖9可見(jiàn),λ=0.6時(shí)負(fù)載率最低.當(dāng)λ從0.6緩慢增大時(shí),網(wǎng)絡(luò)負(fù)載率會(huì)逐漸增大,這是因?yàn)棣溯^大會(huì)導(dǎo)致一些主要鏈路負(fù)載較高,所以網(wǎng)絡(luò)負(fù)載率也會(huì)增大.當(dāng)λ較小時(shí),鏈路容量沒(méi)有得到充分利用,也會(huì)造成負(fù)載率較高.因此,選擇合適的負(fù)載參量對(duì)路由更新算法的性能也很重要.
圖9 負(fù)載參量對(duì)網(wǎng)絡(luò)負(fù)載率Fig.9 Network load factor vs.network load ratio
針對(duì)軟件定義網(wǎng)絡(luò)中的實(shí)時(shí)路由更新問(wèn)題,本文利用人工智能算法的語(yǔ)言量詞和模糊量化命題處理數(shù)據(jù)流的選擇問(wèn)題,同時(shí)考慮流的屬性和各流相對(duì)選擇標(biāo)準(zhǔn)的符合程度,盡量選擇符合程度較高的數(shù)據(jù)流進(jìn)行更新,這種策略可以保證在維持網(wǎng)絡(luò)較小的更新延遲與開(kāi)銷的情況下,盡量降低網(wǎng)絡(luò)負(fù)載率.仿真實(shí)驗(yàn)驗(yàn)證了本文所提路由更新方法具有較優(yōu)越的性能.
天津師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2020年6期