向 雄,田 檢
(1. 廣州大學(xué)華軟軟件學(xué)院網(wǎng)絡(luò)技術(shù)系,廣州510990; 2. 廣州大學(xué)華軟軟件學(xué)院基礎(chǔ)部,廣州510990)
(*通信作者電子郵箱tj@sise.com.cn)
“互聯(lián)網(wǎng)+”的興起,有力地推動(dòng)了云計(jì)算、物聯(lián)網(wǎng)、電子商務(wù)、互聯(lián)網(wǎng)金融的蓬勃發(fā)展,各行各業(yè)開始與信息技術(shù)緊密結(jié)合,這樣導(dǎo)致了以網(wǎng)絡(luò)為基礎(chǔ)的應(yīng)用異常豐富。這種現(xiàn)象具有兩個(gè)明顯的特點(diǎn):一是上層應(yīng)用正在反推底層網(wǎng)絡(luò)架構(gòu)作出改變,軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)[1]就是其中一個(gè)主要變化方向;二是來自于各領(lǐng)域的應(yīng)用比如區(qū)塊鏈、視頻點(diǎn)播、視頻直播等,大多數(shù)都采用或以可選方式采用對等網(wǎng)(Peer-to-Peer,P2P)機(jī)制對信息、文件、帶寬、存儲(chǔ)及處理器周期等各種資源進(jìn)行管理[2]。這樣就使得基于SDN 的P2P傳輸研究成為了一個(gè)很緊迫的問題。
SDN 是一種最具吸引力的未來網(wǎng)絡(luò)體系結(jié)構(gòu),它具有三個(gè)主要特點(diǎn):集中控制、動(dòng)態(tài)可編程、轉(zhuǎn)發(fā)邏輯和控制邏輯相互分離,能夠很好地滿足高帶寬、高數(shù)據(jù)量和拓?fù)鋭?dòng)態(tài)可變的網(wǎng)絡(luò)需求。 SDN 的組成部件分為SDN 控制器(SDN Controller,SDN-C)和SDN 轉(zhuǎn)發(fā)元件(SDN Forward Element,SDN-FE)兩部分,SDN-C 和SDN-FE 之間通過可靠安全的帶外信道連接。SDN-C 是一個(gè)集中式的全局控制器,可部署在高性能的服務(wù)器(或集群)上來監(jiān)控和管理整個(gè)網(wǎng)絡(luò)。SDN-FE是一個(gè)不具有控制功能的純轉(zhuǎn)發(fā)設(shè)備,它依據(jù)流表規(guī)則執(zhí)行轉(zhuǎn)發(fā)。流表規(guī)則由SDN-C 通過帶外信道使用OpenFlow 協(xié)議安裝在SDN-FE上。
P2P 網(wǎng)絡(luò)是一個(gè)建立在TCP 或HTTP 協(xié)議之上的虛擬覆蓋網(wǎng),每個(gè)節(jié)點(diǎn)在這個(gè)虛擬空間中被賦予一個(gè)用作通信地址的唯一ID,有的結(jié)構(gòu)化P2P 網(wǎng)如內(nèi)容尋址網(wǎng)絡(luò)(Content Addressable Network,CAN)、Pastray 等使用ID 號來定位資源。P2P 系統(tǒng)都包含了一套機(jī)制將ID 號映射到IP 地址以進(jìn)行實(shí)際的數(shù)據(jù)傳輸。P2P 系統(tǒng)會(huì)采用一些網(wǎng)絡(luò)測量技術(shù)來使虛擬空間中的距離關(guān)系盡量與底層物理網(wǎng)絡(luò)相一致,比如:文獻(xiàn)[3]提出了一個(gè)能感知節(jié)點(diǎn)位置的改進(jìn)型GnuTella 非結(jié)構(gòu)化P2P 系統(tǒng),它使用一個(gè)爬蟲(crawler)來攜帶和修改網(wǎng)絡(luò)拓?fù)鋱D并獲取節(jié)點(diǎn)的地理位置;文獻(xiàn)[4]則利用Gossip協(xié)議讓節(jié)點(diǎn)相互交換信息來獲取動(dòng)態(tài)實(shí)時(shí)的網(wǎng)絡(luò)狀況。
從網(wǎng)絡(luò)的角度來看,P2P 傳輸優(yōu)化問題重點(diǎn)就是流調(diào)度問題。ECMP(Equal Cost MultiPath Routing)這類傳統(tǒng)的流調(diào)度策略無差別對待所有流,看起來很公平,卻無法根據(jù)網(wǎng)絡(luò)狀態(tài)進(jìn)行優(yōu)化。Al-Fares 等[5]利用模擬退火算法或首次匹配法根據(jù)預(yù)估帶寬進(jìn)行流調(diào)度,成功解決了Clos(發(fā)明者為Charles Clos)網(wǎng)絡(luò)中的大象流沖突問題,取得了遠(yuǎn)高于ECMP的帶寬利用率。類似地,如何根據(jù)P2P 數(shù)據(jù)傳送特點(diǎn)進(jìn)行傳輸調(diào)度優(yōu)化呢?這就是本文要解決的問題。
P2P 網(wǎng)絡(luò)中的數(shù)據(jù)傳輸方式有兩種:1)點(diǎn)對點(diǎn)方式比如BitTorrent,這種方式的流調(diào)度問題可參照傳統(tǒng)方式解決。2)組播方式,這種方式在P2P 系統(tǒng)中特別是P2P 流媒體應(yīng)用中非常普遍。組播樹最合適的結(jié)構(gòu)就是樹結(jié)構(gòu),但樹結(jié)構(gòu)有一個(gè)致命的缺點(diǎn)就是節(jié)點(diǎn)的離開會(huì)導(dǎo)致其子樹上的節(jié)點(diǎn)在組播樹重構(gòu)完成之前無法接收數(shù)據(jù),所以通常都是網(wǎng)狀結(jié)構(gòu),最 典 型 的 就 是ESM(End System Multicast)[6]和ALMI(Application Level Multicast Infrastructure)[7]。學(xué)術(shù)界對于選擇應(yīng)用層組播(Application Layer Multicast,ALM)還是IP 組播是有爭議的[8],ALM 把應(yīng)用與網(wǎng)絡(luò)相分離,體現(xiàn)了分層的原則,但會(huì)產(chǎn)生應(yīng)用層與底層不一致的問題,無法充分利用網(wǎng)絡(luò)。SDN 可以彌補(bǔ)這一不足,通過在SDN-C 中嵌入相應(yīng)的服務(wù),就可以使P2P 系統(tǒng)中實(shí)施ALM 時(shí)能夠根據(jù)網(wǎng)絡(luò)狀態(tài)進(jìn)行實(shí)時(shí)動(dòng)態(tài)的流調(diào)度以滿足體驗(yàn)質(zhì)量(Quality of Experience,QoE)等傳輸需求[9]。
本文設(shè)計(jì)了一個(gè)基于SDN的P2P傳輸調(diào)度優(yōu)化架構(gòu)。其核心過程是從SDN-C 那里獲取流量矩陣,轉(zhuǎn)化成帶權(quán)重的網(wǎng)絡(luò)拓?fù)鋱D,在此基礎(chǔ)上生成組播樹,并利用神經(jīng)網(wǎng)絡(luò)智能化地確定更新周期,能夠?qū)崿F(xiàn)網(wǎng)絡(luò)性能的提升。
本方案假定每個(gè)P2P 系統(tǒng)都使用一個(gè)UUID(Universally Unique IDentifier)作為唯一標(biāo)識,任何需要加入的節(jié)點(diǎn)首先得獲取此標(biāo)識,生成和分發(fā)此標(biāo)識的過程不在本系統(tǒng)范圍之內(nèi)。整個(gè)系統(tǒng)參考架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)Fig. 1 System framework
SDN 實(shí)施組播并不需要通過IGMP(Internet Group Management Protocol)v1/2/3 協(xié)議來實(shí)現(xiàn)[10],故組播路由器地址如224.0.0.2等沒有實(shí)際意義,本文使用它來產(chǎn)生PacketIn事件。當(dāng)一個(gè)節(jié)點(diǎn)加入或退出P2P 系統(tǒng)時(shí),它會(huì)發(fā)送一個(gè)包含了事先協(xié)商好的UUID 的數(shù)據(jù)包給224.0.0.2??刂破魇孪仍诮粨Q機(jī)上安裝流表項(xiàng)讓目的地為224.0.0.2 的數(shù)據(jù)包PacketIn 到控制器;組管理器(Multicast Manager,MM)偵聽控制器的PacketIn 事件,發(fā)現(xiàn)目的地為D 類IP 多播地址的話就產(chǎn)生組播事件(Group Event,GE),對組播感興趣的其他模塊都可以偵聽,比如IGMP 或其他組播實(shí)現(xiàn)方式,這樣就做到了與現(xiàn)有系統(tǒng)兼容。節(jié)點(diǎn)管理器(Node Manager,NM)是GE 事件的偵聽者,它收到GE事件后分析其中內(nèi)容是否符合自己的應(yīng)用規(guī)范,不符合則丟棄;否則轉(zhuǎn)交給拓?fù)涔芾砥鳎═opology Manager,TM)。
TM 負(fù)責(zé)從GE 事件中取出P2P 系統(tǒng)標(biāo)識UUID,然后根據(jù)此標(biāo)識將此節(jié)點(diǎn)加入到對應(yīng)的P2P 拓?fù)渲?。TM 周期性地從控制器那里獲取網(wǎng)絡(luò)流量矩陣并轉(zhuǎn)化成權(quán)重網(wǎng)絡(luò)圖,使用終端優(yōu)先組播樹生成算法(見3.2 節(jié))生成組播樹并交給流管理(Flow Manager,F(xiàn)M)模塊。
FM 根據(jù)組播樹生成相應(yīng)的流表規(guī)則交給控制器下發(fā)到交換機(jī)上。在傳統(tǒng)非SDN 網(wǎng)絡(luò)中,IP 層是無法感知上層應(yīng)用的,不同的IP 組播組是以組播地址來區(qū)分的,無法按應(yīng)用分類。在SDN 中,根據(jù)OpenFlow 協(xié)議,只需在流表項(xiàng)中設(shè)置匹配域:dl_type=0x0800,nw_proto=6,nw_src=源IP,tp_src=應(yīng)用程序所使用的端口,然后actions 中設(shè)置多個(gè)output,轉(zhuǎn)發(fā)到多個(gè)目標(biāo)IP,即可實(shí)現(xiàn)將特定應(yīng)用程序的數(shù)據(jù)包進(jìn)行多播了。FM 根據(jù)OpenFlow 協(xié)議生成SDN 組播規(guī)則。下面對本系統(tǒng)中的關(guān)鍵過程進(jìn)行說明。
一個(gè)包含N個(gè)節(jié)點(diǎn)的系統(tǒng)的流量矩陣如矩陣M所示,其中包含了任意一對節(jié)點(diǎn)在t1到tp時(shí)間點(diǎn)的流量值,共有N2對,它是網(wǎng)絡(luò)設(shè)計(jì)、運(yùn)維、計(jì)帳及安全的關(guān)鍵依據(jù),也是本文中TM模塊進(jìn)行拓?fù)鋬?yōu)化的依據(jù)。
傳統(tǒng)的網(wǎng)絡(luò)測量框架都存在非確定性線性逆問題。這是因?yàn)橹苯訙y量法成本太高,大多數(shù)方法都是分析SNMP(Simple Network Management Protocol)、NetFlow 或sFlow 采集到的抽樣數(shù)據(jù),然后使用最大似然法、貝葉斯方法、PCA(Principal Component Analysis)等算法進(jìn)行估計(jì),都存在一定的誤差,有時(shí)還會(huì)比較大。
SDN 與傳統(tǒng)網(wǎng)絡(luò)相比在網(wǎng)絡(luò)測量時(shí)更為方便。OpenFlow 協(xié)議1.3 中共定義了40 個(gè)計(jì)數(shù)器,其中有9 個(gè)是必需的,特別地有3 個(gè)基于端口必需計(jì)數(shù)器Received Packets、Transmitted Packets 和Duration 可以用來精確地獲取SDN-FE中每個(gè)鏈路上的流量。在SDN 中進(jìn)行網(wǎng)絡(luò)測量就是通過查詢和分析上述計(jì)數(shù)器產(chǎn)生的統(tǒng)計(jì)數(shù)據(jù)來生成基于OD 對(Original-Destination Pair)流 量 矩 陣,OpenTM(OpenFlow Traffic Matrix)[11]、DCM(Distributed and Collaborative traffic Monitoring)[12]等工作很好地解決了此問題。
SDN 演變至今,目前很多SDN-C 傾向于將OpenFlow 網(wǎng)絡(luò)和傳統(tǒng)網(wǎng)絡(luò)混合起來統(tǒng)一處理,比如OpenDaylight 和ONOS(Open Network Operating System),這樣就使得上述基于OpenFlow 端口統(tǒng)計(jì)的流量測量工作難以應(yīng)用到當(dāng)前的實(shí)際網(wǎng)絡(luò)中,iSTAMP[13]等方法不得不擴(kuò)展上述基于流的流量矩陣測量方法來增強(qiáng)其實(shí)用性。iSTAMP 的理論依據(jù)是壓縮感知(Compressed Sensing,CS)技術(shù),它認(rèn)為一個(gè)高波動(dòng)性的稀疏矩陣中的全部數(shù)據(jù)可以通過一個(gè)精心定義的壓縮過的線性測量值估計(jì)出來。具體過程是首先精心挑選一部分流進(jìn)行聚合以獲取壓縮流,然后通過MAB(Multi-Armed Bandit)算法從TCAM(Ternary Content Addressable Memory)流表中選取部分對ALM 系統(tǒng)影響最大的流,分別對這兩類流采樣就可以推斷出整個(gè)流量矩陣。
拓?fù)涔芾砟KTM 根據(jù)網(wǎng)絡(luò)狀態(tài)修改ALM 樹,這需要解決兩個(gè)關(guān)鍵問題:應(yīng)用層組播與底層的不一致問題和可擴(kuò)展性Steiner 樹問題。下面首先闡述這兩個(gè)問題,然后給出解決方式。
圖2 ALM樹與基礎(chǔ)網(wǎng)絡(luò)Fig. 2 ALM tree and basic network
假設(shè)n1是組播源,則其ALM樹為(n1(n2(n3),n4)),由于傳統(tǒng)網(wǎng)絡(luò)中應(yīng)用層的組播在底層仍然是單播,其實(shí)際IP 層的傳播樹可能是(n1(s1(s2(s5(s3(n2(s5(n3)))))))),數(shù)據(jù)包從n1 到n2 時(shí)要經(jīng)過鏈路s5-s3,從n2 到n3 時(shí)也要經(jīng)過鏈路s3-s5,這是一種無意義的重復(fù)流量。
在SDN 中,TM 模塊會(huì)從SDN-C 那里獲取交換機(jī)連接方式,然后將上述ALM樹的IP層傳輸路徑修改為:(n1(s1(s2(s5(s3(n2),n2))))),從而解決應(yīng)用層組播與底層的不一致問題。
在SDN 中實(shí)施多播既可以用一個(gè)流表項(xiàng)對應(yīng)多個(gè)output動(dòng)作來實(shí)現(xiàn),也可以使用組表中的action bucket 來實(shí)現(xiàn),但這二者都面臨著一種可擴(kuò)展性問題。因?yàn)樵赟DN-FE 中,流表是一種受限資源,硬流表如TCAM 價(jià)格昂貴,軟流表如OVSDB(Open Virtual Switch Data-Base)則速度堪憂,都不能有效地應(yīng)對指數(shù)級的組播樹數(shù)目[14]。為了解決此問題,本文提出了一種終端優(yōu)先組播樹(Terminal First Steiner Tree,TFST)。
TM 周期性地與SDN-C 通信獲取網(wǎng)絡(luò)的流量矩陣M并其中的數(shù)據(jù)量化到[1,10]區(qū)間,就可以得到如圖3(a)所示的帶權(quán)重的網(wǎng)絡(luò)。TFST 將實(shí)施多播的流表?xiàng)l目只存儲(chǔ)在分支節(jié)點(diǎn)(至少包含三條邊的節(jié)點(diǎn),用空心圓表示)上,中間節(jié)點(diǎn)(黑色實(shí)心圓)以單播隧道方式進(jìn)行數(shù)據(jù)包的轉(zhuǎn)發(fā),無需安裝組播流表項(xiàng),這樣就減少了流表的數(shù)量,從而可解決多播樹的可擴(kuò)展性問題。
圖2 顯示了由n1~n4 四個(gè)節(jié)點(diǎn)組成的位于應(yīng)用層的ALM樹,節(jié)點(diǎn)之間進(jìn)行通信的基礎(chǔ)網(wǎng)絡(luò)由s1~s5 五個(gè)OpenFlow 交換機(jī)組成。
TFST算法中的起點(diǎn)可以選擇任意一個(gè)終端節(jié)點(diǎn)。算法分為樹的生成和優(yōu)化兩個(gè)階段。第2)步是生成階段,它在經(jīng)典Dijkstra算法基礎(chǔ)上進(jìn)行了兩點(diǎn)改進(jìn):1)若被展開的節(jié)點(diǎn)是終端節(jié)點(diǎn),則將其距離值設(shè)置為0。因?yàn)樗薪K端節(jié)點(diǎn)都是組播樹的必經(jīng)之地,所以每到達(dá)一個(gè)最近的終端節(jié)點(diǎn)就可以把它當(dāng)作新的起點(diǎn)。2)若遍歷到的鄰居已經(jīng)被訪問過了,說明它已經(jīng)在組播樹上但與被展開節(jié)點(diǎn)不在樹的同一分支上,于是將此邊加入樹中并尋找所形成一個(gè)環(huán)路,隨后去掉這個(gè)環(huán)路中的最大邊。這樣就既降低了樹的總代價(jià)又保持了連通性,從而得到一棵近似Steiner樹。優(yōu)化階段分3)4)5)步進(jìn)行,主要過程是第5)步以降低公式c(T)+α*b(T)的值為目標(biāo)將所有分支節(jié)點(diǎn)按度從小到大的順序進(jìn)行重連。由于c(T)是組播樹中所有邊的權(quán)重和,代表流量代價(jià)。b(T)是組播樹中分支節(jié)點(diǎn)數(shù)量,分支數(shù)量越多,意味著要消耗的流表資源越多,組播實(shí)施代價(jià)越高。通過調(diào)整參數(shù)α,就可以在流量代價(jià)和實(shí)施代價(jià)之間進(jìn)行權(quán)衡調(diào)節(jié)。
TFST 算法的時(shí)間復(fù)雜度主要取決于樹生成階段。若節(jié)點(diǎn)數(shù)、終端節(jié)點(diǎn)數(shù)分別用N、M表示,其時(shí)間復(fù)雜度上界為O(N2M),與其他經(jīng)典的Steiner樹生成算法一致。
圖3 TFST的構(gòu)建Fig. 3 Construction of TFST
組播樹的不斷調(diào)整會(huì)導(dǎo)致SDN-C 對SDN-FE 中的分支節(jié)點(diǎn)進(jìn)行大量的流表更新,這樣一方面會(huì)導(dǎo)致數(shù)據(jù)包的丟失,另一方面還可能引起網(wǎng)絡(luò)的不一致性,導(dǎo)致一些安全、認(rèn)證等策略失效。數(shù)據(jù)包的丟失可以通過應(yīng)用層重傳來解決,網(wǎng)絡(luò)不一致性也可以通過一些日志重放方法來恢復(fù),但頻繁更新顯然會(huì)導(dǎo)致網(wǎng)絡(luò)性能下降。本文設(shè)計(jì)了一個(gè)精巧的基于神經(jīng)網(wǎng)絡(luò)的模型來讓其自動(dòng)選擇更新間隔。
網(wǎng)絡(luò)性能的主要指標(biāo)有時(shí)延(Delay)、帶寬、丟包率(Loss)。SDN 環(huán)境下有很多可用的網(wǎng)絡(luò)測量方法及工具[15-16]來測量這三個(gè)指標(biāo)。帶寬通常比較穩(wěn)定,那么衡量網(wǎng)絡(luò)性能變化的主要指標(biāo)就是擁塞指標(biāo)P=Delay+Loss了。用L表示由流量矩陣M′所反映的網(wǎng)絡(luò)負(fù)載,那么P既與L相關(guān),又與更新間隔T有關(guān),所以P是L和T的函數(shù),記作P=f(L,T),P和L都是可測量的,確定T值的問題就是一個(gè)根據(jù)樣本值P,L對參數(shù)T進(jìn)行估計(jì)的問題,顯然f形式未知且非線性,無法采用傳統(tǒng)的參數(shù)估計(jì)和線性回歸等工具來計(jì)算T值。為此,本文設(shè)計(jì)了一個(gè)如圖4 所示的帶反饋環(huán)的逆系統(tǒng)來根據(jù)P自動(dòng)調(diào)整T,其中的下標(biāo)i表示第i次迭代。
圖4 帶反饋環(huán)的逆系統(tǒng)Fig. 4 Inverse system with feedback loop
Hornik已經(jīng)證明,只需一個(gè)包含足夠多神經(jīng)元的隱層,多層前饋網(wǎng)絡(luò)就能以任意精度逼近任意復(fù)雜度的連續(xù)函數(shù)[17]。函數(shù)逼近問題的本質(zhì)是一種有監(jiān)督的學(xué)習(xí)。為了實(shí)現(xiàn)上述逆系統(tǒng),本文設(shè)計(jì)了一個(gè)如圖5 所示的遞歸神經(jīng)網(wǎng)絡(luò)模型來逼近f函數(shù),輸入層中的x1、x2、x3、x4 分別表示流量矩陣M中的流量均值、眾數(shù)、方差、鏈路流量平均變化率,刻畫了網(wǎng)絡(luò)負(fù)載的四個(gè)特征;x5 和x6 分別表示丟包率和平均延遲,反映了網(wǎng)絡(luò)性能特征。x7 是模型的輸出結(jié)果T的反饋輸入。偏置值x0=1(圖并未畫出),隱藏層采用6個(gè)神經(jīng)元,激活函數(shù)采用ReLU(Rectified Liner Uints)。損失函數(shù)定義為當(dāng)前網(wǎng)絡(luò)擁塞指標(biāo)與理想擁塞指標(biāo)之差:|P-Popt|,優(yōu)化器采用隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)算法。為避免數(shù)據(jù)規(guī)模對結(jié)果的影響,P和T等所有數(shù)據(jù)都用雙正切函數(shù)映射到(0,1)區(qū)間。
圖5 遞歸神經(jīng)網(wǎng)絡(luò)模型Fig. 5 Recursive neural network model
本文仿真網(wǎng)絡(luò)采用Mininet,控制器采用ryu,python 版本為3.6,機(jī)器學(xué)習(xí)模塊采用谷歌的TensorFlow。仿真時(shí)使用的網(wǎng)絡(luò)拓?fù)溆蒼etworkx 庫中的函數(shù)random_kernel_graph 隨機(jī)生成,隨機(jī)選擇一定數(shù)量的節(jié)點(diǎn)作為終端節(jié)點(diǎn),終端節(jié)點(diǎn)占全部節(jié)點(diǎn)的比例r是一個(gè)可調(diào)整的參數(shù),鏈路上的帶寬在30 MB/s、40 MB/s、50 MB/s 中隨機(jī)選擇,每個(gè)終端節(jié)點(diǎn)連接一臺主機(jī),主機(jī)上運(yùn)行iperf,每隔1 s向網(wǎng)絡(luò)發(fā)送隨機(jī)10~20 MB/s的隨機(jī)流量。
圖6是有效性仿真結(jié)果,橫軸是以秒為單位的運(yùn)行時(shí)間,縱軸是每隔5 s 計(jì)算所得的P值,也就是歸一化后的Delay+Loss值,Loss通過ryu 控制器的Web 管理界面統(tǒng)計(jì)得出,Delay為所有終端節(jié)點(diǎn)的平均接收延遲。由于注入網(wǎng)絡(luò)的流量總體上小于鏈路的帶寬,整體上網(wǎng)絡(luò)性能都比較好。剛開始時(shí)優(yōu)化網(wǎng)絡(luò)的擁塞指標(biāo)高于原始網(wǎng)絡(luò),這是由于更新周期較小,控制器頻繁地更新流表導(dǎo)致了網(wǎng)絡(luò)性能下降;大約10 s以后,優(yōu)化模塊的效果開始顯現(xiàn),P值一直平穩(wěn)地低于未經(jīng)優(yōu)化的原始網(wǎng)絡(luò)。從總體上看,原始網(wǎng)絡(luò)P均值為0.15,優(yōu)化后為0.08,網(wǎng)絡(luò)擁塞指標(biāo)在原來的基礎(chǔ)上降低了47%。
圖6 優(yōu)化效果Fig. 6 Result of optimization
從表1 所列出的部分結(jié)果可以看出:1)不同的網(wǎng)絡(luò)測量方法istamp(用i表示)和opentm(用o表示)所測得的流量矩陣對優(yōu)化結(jié)果影響不大。2)α值對系統(tǒng)有較大影響,主要原因是α值增加時(shí),TFST 算法主要側(cè)重于組播樹的可擴(kuò)展性,減少了分支節(jié)點(diǎn)數(shù)量,從而加大了組播的流量代價(jià),導(dǎo)致P值增加。3)增加節(jié)點(diǎn)的度可以顯著提升網(wǎng)絡(luò)性能。這是因?yàn)榭蛇x路徑大量增加后,流量可以靈活地被實(shí)時(shí)調(diào)度到空閑的鏈路上。
表1 不同參數(shù)組合運(yùn)行結(jié)果比較Tab. 1 Running results comparison in different parameter combinations
在mininet 中生成仿真網(wǎng)絡(luò)后立即進(jìn)行網(wǎng)絡(luò)性能測量的結(jié)果作為網(wǎng)絡(luò)的最優(yōu)性能Popt。圖7 顯示了運(yùn)行過程中更新周期T隨著性能P的變化情況,從圖中可以看出,當(dāng)性能穩(wěn)定下來之后,更新周期會(huì)逐漸變長,最后逐漸收斂于1,這意味著網(wǎng)絡(luò)性能已經(jīng)趨于穩(wěn)定,優(yōu)化過程對網(wǎng)絡(luò)性能的提升作用已經(jīng)很小了,調(diào)整模塊無需頻繁介入。當(dāng)網(wǎng)絡(luò)性能發(fā)生較大變化時(shí),特別是當(dāng)P增加時(shí),此時(shí)意味著性能下降,調(diào)整模塊會(huì)不斷嘗試最優(yōu)路徑,最終達(dá)到提升網(wǎng)絡(luò)性能的目的。
圖7 T隨P變化的趨勢Fig. 7 Trend of T varying with P
圖8 顯示了當(dāng)組播樹發(fā)生變化時(shí),不同的更新周期管理方式所得到的網(wǎng)絡(luò)性能的對比結(jié)果。PN 是采用神經(jīng)網(wǎng)絡(luò)模塊確定新流表的部署時(shí)機(jī),P0 表示立即部署,P5 表示固定間隔5 s 部署一次。從圖中可以看出P0 方式雖然有時(shí)能取得較好的性能,P 值大幅下降,但總體水平還是略高于神經(jīng)網(wǎng)絡(luò)方式。經(jīng)計(jì)算,PN、P0、P5三種方式得到的網(wǎng)絡(luò)擁塞指標(biāo)均值分別為0.42、0.51 和0.56,前者與后二者相比,分別降低了17.6%和25%;標(biāo)準(zhǔn)差分別為0.06、0.12 和0.13,這說明神經(jīng)網(wǎng)絡(luò)模塊在網(wǎng)絡(luò)中等負(fù)載的情況下既能抑制網(wǎng)絡(luò)性能下降果,又能將網(wǎng)絡(luò)性能穩(wěn)定在一個(gè)相對較為理想的水平。
圖8 不同更新方式的效果對比Fig. 8 Effect comparison between different update methods
SDN 與傳統(tǒng)網(wǎng)絡(luò)相比更能貼近應(yīng)用的需求,能充分利用人工智能和大數(shù)據(jù)技術(shù)向網(wǎng)絡(luò)注入智能。本文提出的方案一方面能夠使SDN 中應(yīng)用層組播像IP 組播一樣節(jié)省流量,無需像IP 組播一樣運(yùn)行繁瑣的組播協(xié)議,另一方面在網(wǎng)絡(luò)智能化方面進(jìn)行了有效的探索。本文雖只是針對P2P應(yīng)用中的ALM特點(diǎn)對網(wǎng)絡(luò)性能優(yōu)化,但這樣的研究對如何針對網(wǎng)絡(luò)中多種多樣流量特點(diǎn)進(jìn)行優(yōu)化調(diào)整[18],促使SDN 在安全模型、運(yùn)行機(jī)制[19]等方面全方位智能化有很大的啟發(fā)作用,這將是我們下一步研究目標(biāo)。