王靈矯,李 文,郭 華
(1.湘潭大學(xué) 自動(dòng)化與電子信息學(xué)院,湖南 湘潭 411105;2.湘潭大學(xué) 智能計(jì)算與信息處理教育部重點(diǎn)實(shí)驗(yàn)室,湖南 湘潭 411105)
軟件定義網(wǎng)絡(luò)(software-defined networks,SDN)[1-2]實(shí)現(xiàn)了轉(zhuǎn)發(fā)平面與控制平面的分離,具有可編程、集中控制和自動(dòng)化等特點(diǎn).集中控制的特點(diǎn)適用于數(shù)據(jù)中心,數(shù)據(jù)中心網(wǎng)絡(luò)(data center network,DCN)的規(guī)模隨著各種云服務(wù)的發(fā)展越來越大,信息服務(wù)的集約化和專業(yè)化使互聯(lián)網(wǎng)上的應(yīng)用、計(jì)算和存儲(chǔ)向數(shù)據(jù)中心遷移容易出現(xiàn)故障、擁塞等問題.網(wǎng)絡(luò)的大部分流量為持續(xù)時(shí)間很短的小流,Benson[3]等對(duì)數(shù)據(jù)中心的實(shí)測(cè)數(shù)據(jù)顯示,80%以上的流量為小流,不到20%的大流卻包含了超過90%的數(shù)據(jù)流量,承載大量數(shù)據(jù)的大流是造成網(wǎng)絡(luò)擁塞的主要原因.
近年來,大量的研究都聚焦于大小流的檢測(cè)和調(diào)度.文獻(xiàn)[4]針對(duì)DCN 的具體拓?fù)浜土髁刻匦?,提出了一種基于SDN 的流量調(diào)度方法,對(duì)源目地址相同的大流進(jìn)行聚合,利用改進(jìn)的果蠅優(yōu)化算法對(duì)聚合后的大流統(tǒng)一調(diào)度,該方法時(shí)間復(fù)雜度較高.文獻(xiàn)[5]給出一種細(xì)粒度流分類方法,通過預(yù)分類和精確分類兩層結(jié)構(gòu)的二分類方案來檢測(cè)大/小流,但該方法缺乏對(duì)分類后的算法設(shè)計(jì).文獻(xiàn)[6]提出了一種針對(duì)大流的低成本的流調(diào)度框架,輪詢周期根據(jù)實(shí)時(shí)網(wǎng)絡(luò)負(fù)載動(dòng)態(tài)調(diào)整,但該方法未考慮時(shí)延.文獻(xiàn)[7]采用差異化的調(diào)度算法DIFFERENCE,使用加權(quán)多路徑路由算法調(diào)度小流,根據(jù)鏈路利用率調(diào)整路徑權(quán)值,提出一種基于阻塞島的大流路徑設(shè)置算法,實(shí)現(xiàn)更小的空間找到最不擁塞的路徑.文獻(xiàn)[8]使用經(jīng)典的多協(xié)議標(biāo)簽交換(multi-protocol label switching,MPLS)技術(shù)聚合多路徑流后傳輸,比傳統(tǒng)的OpenFlow 更能有效減少交換機(jī)的流條目數(shù)量,提高了處理效率,但該方法可能會(huì)導(dǎo)致新的擁塞.文獻(xiàn)[9]對(duì)SDN 網(wǎng)絡(luò)進(jìn)行擁塞感知和流量調(diào)度研究,提出了基于鏈路利用率樣本方差的流量分配優(yōu)化模型,采用了混沌遺傳算法求解這一NP 難問題,但該方法的量化指標(biāo)單一,僅對(duì)帶寬利用率尋優(yōu).文獻(xiàn)[10]提出了一種可擴(kuò)展的動(dòng)態(tài)流調(diào)度系統(tǒng)Hedera,能自適應(yīng)地調(diào)整多級(jí)交換結(jié)構(gòu)和有效地利用聚合的網(wǎng)絡(luò)資源.文獻(xiàn)[11]針對(duì)SDN中基于動(dòng)態(tài)多路徑的流量管理方法提出估計(jì)端到端延遲并計(jì)算最小成本路徑,將流量重新路由到最佳路徑.文獻(xiàn)[12]提出一種基于多路徑傳輸?shù)膭?dòng)態(tài)路由算法,重新定義鏈路關(guān)鍵度并求解鏈路權(quán)值優(yōu)化問題,該算法復(fù)雜度較高.傳統(tǒng)的等價(jià)多路徑路由(equal cost multi-path,ECMP[13-14])算法沒有擁塞感知機(jī)制不能實(shí)時(shí)獲取鏈路狀態(tài),可能會(huì)將多個(gè)大流調(diào)度到同一條鏈路導(dǎo)致?lián)砣?未充分考慮鏈路實(shí)時(shí)狀態(tài),若數(shù)據(jù)中心的流量短期內(nèi)出現(xiàn)隨機(jī)波動(dòng),可能會(huì)造成大流碰撞出現(xiàn)路徑擁塞等問題,影響網(wǎng)絡(luò)性能.目前大量研究對(duì)于時(shí)延的測(cè)量精度較為粗糙,可能影響實(shí)際最優(yōu)路徑的選取.全局最佳擬合算法(global best fit algorithm,GBFA)作為一種貪婪啟發(fā)式算法,處理大部分流量時(shí)表現(xiàn)良好.但在大多數(shù)流量不夠大的情況下,GBFA 會(huì)導(dǎo)致一些路徑被小流占據(jù),而其他路徑處于空閑,造成鏈路存在大量的帶寬碎片.
針對(duì)數(shù)據(jù)中心網(wǎng)絡(luò)流量負(fù)載不均衡問題,本文給出了一種基于SDN 流量的時(shí)延調(diào)度算法(dynamic scheduling algorithm-delay,DSA-D).其基本思想是基于跳數(shù),利用精確的路徑時(shí)延從最短路徑集中篩除部分次優(yōu)路徑.針對(duì)GBFA 易造成帶寬碎片浪費(fèi)帶寬資源的問題,本文將鏈路可用帶寬與流帶寬需求作為權(quán)重引入GBFA,提升流量負(fù)載均衡準(zhǔn)確性和效率.由于大流對(duì)帶寬要求高,算法主要對(duì)大流進(jìn)行調(diào)度計(jì)算,小流則采用ECMP 計(jì)算下發(fā)路徑.
本文主要的貢獻(xiàn)如下:
(1)根據(jù)性能參數(shù)跳數(shù)、時(shí)延和可用帶寬,提出基于SDN 的DSA-D 流量負(fù)載均衡方法為數(shù)據(jù)流尋找最優(yōu)轉(zhuǎn)發(fā)路徑;
(2)提出基于時(shí)延的最優(yōu)路徑模型,通過周期下發(fā)的LLDP 和ECHO 報(bào)文來探測(cè)鏈路時(shí)延,計(jì)算鏈路精確時(shí)延,利用時(shí)延最優(yōu)路徑算法求解流量下發(fā)路徑;
(3)提出將GBFA 算法與概率方法相結(jié)合的概率擬合(GBFA-P)算法,考慮了路徑可用帶寬和流帶寬需求,提高了吞吐量并減少帶寬碎片;
(4)基于Ryu 控制器實(shí)現(xiàn)了DCN 流量負(fù)載均衡的相關(guān)實(shí)驗(yàn),結(jié)果表明:在相同場(chǎng)景下,DSA-D比ECMP、Hedera 和DIFFER 提高了平均吞吐量、鏈路帶寬利用率,降低了平均往返時(shí)延.
1.1 問題描述Fattree[15]是一種經(jīng)典的拓?fù)浣Y(jié)構(gòu),原型為Clos 架構(gòu),具有較優(yōu)的網(wǎng)絡(luò)故障恢復(fù)能力和拓展能力以及通信帶寬,被研究界廣泛使用.圖1 展示了一個(gè)K=4(K為每個(gè)交換機(jī)的端口數(shù)或Pod 的個(gè)數(shù))的Fattree 結(jié)構(gòu).若采用ECMP 轉(zhuǎn)發(fā),可能會(huì)產(chǎn)生沖突,導(dǎo)致交換機(jī)過載或鏈路擁塞(如圖1 所示的由ECMP 采用哈希方法導(dǎo)致的局部沖突).網(wǎng)絡(luò)負(fù)載均衡需要完成兩項(xiàng)主要工作:①檢測(cè)數(shù)據(jù)流的大小;②設(shè)計(jì)有效的調(diào)度算法計(jì)算路徑,提高負(fù)載均衡度.
圖1 ECMP 算法可能導(dǎo)致的網(wǎng)絡(luò)沖突Fig.1 Possible network conflicts caused by ECMP algorithm
1.2 基于DSA-D 的流量負(fù)載均衡技術(shù)
1.2.1 框架介紹 負(fù)載均衡框架由鏈路和時(shí)延探測(cè)模塊、流量分類模塊、流量調(diào)度模塊3 部分構(gòu)成.基于DSA-D 的流量負(fù)載均衡框架如圖2 所示.
圖2 基于DSA-D 算法的流量負(fù)載均衡框架Fig.2 Traffic load balancing framework based on DSA-D algorithm
鏈路和時(shí)延探測(cè)模塊周期調(diào)用控制平面與數(shù)據(jù)平面之間的南向協(xié)議接口,獲取OpenVSwitch 交換機(jī)各個(gè)端口的統(tǒng)計(jì)數(shù)據(jù).流量分類模塊根據(jù)接口統(tǒng)計(jì)數(shù)據(jù)對(duì)流量的速率檢測(cè)后進(jìn)行分類.流量調(diào)度模塊結(jié)合當(dāng)前網(wǎng)絡(luò)狀態(tài)及流的需求,為流量計(jì)算最優(yōu)下發(fā)路徑.
1.2.2 符號(hào)定義 網(wǎng)絡(luò)拓?fù)鋱D表示為G(V,E),V表示交換機(jī)節(jié)點(diǎn)集合,E表示交換機(jī)邊的集合,V={v1,v2,···,vM},E={e1,e2,···,eN},M為網(wǎng)絡(luò)的交換機(jī)總數(shù),N為總邊數(shù),u、v(u≠v)表示任意兩個(gè)交換機(jī)節(jié)點(diǎn),eij表示節(jié)點(diǎn)i和j之間的鏈路,鏈路帶寬為B.G(V,E,t)表示在時(shí)間t時(shí)的網(wǎng)絡(luò)圖,t∈{t1,t2,···,Tc為探測(cè)周期.
1.2.3 流量分類 根據(jù)數(shù)據(jù)中心網(wǎng)絡(luò)流量特征,采用基于流采樣的檢測(cè)方法[16],傳輸速率超過鏈路容量的10%定義為大流,并新增一個(gè)流生存時(shí)間避免流條目生存時(shí)間過短影響計(jì)算,流量傳輸速率計(jì)算如下.
(1)流生存時(shí)間:
式中:ft1和ft2分別為流采樣的兩個(gè)時(shí)刻.
(2)流生存時(shí)間限制:
(3)流傳輸?shù)淖止?jié)數(shù):
(4)流傳輸速率:
式中:fb為流傳輸?shù)淖止?jié)數(shù),B為鏈路容量.
(5)流分類:
DSA-D 算法通過結(jié)合GBFA 與路徑可用帶寬及流帶寬需求,調(diào)度前對(duì)流量進(jìn)行分類,從最短路徑中利用路徑時(shí)延篩除部分次優(yōu)路徑,將可用帶寬與流帶寬需求作為分配權(quán)重,實(shí)現(xiàn)吞吐量和鏈路利用率的提高.
DSA-D 算法的基本流程圖如圖3 所示,主要包括最短路徑初篩、時(shí)延最優(yōu)路徑篩選、GBFA-P概率擬合算法分配路徑3 個(gè)階段.
圖3 DSA-D 算法基本流程圖Fig.3 Basic flow chart of DSA-D algorithm
2.1 最短路徑初篩網(wǎng)絡(luò)鏈路的狀態(tài)信息會(huì)實(shí)時(shí)變化,而在網(wǎng)絡(luò)狀態(tài)沒有異常情況下基于跳數(shù)的網(wǎng)絡(luò)路由相對(duì)穩(wěn)定.在復(fù)雜網(wǎng)絡(luò)中,如果頻繁更新路由會(huì)導(dǎo)致計(jì)算成本增高,考慮成本和開銷,本文將跳數(shù)作為初步篩查指標(biāo).首先計(jì)算源主機(jī)和目的主機(jī)的最短路徑集合,定義每個(gè)流的一個(gè)3 元組信息,分別為源IP,目的IP,流量的帶寬需求fc,采用KSP算法尋找k最短路徑集.
為防止無效查找,限制其路徑跳數(shù)不超過設(shè)定的閾值H.其約束如:
此外,流量的帶寬需求應(yīng)小于被選擇路徑的剩余帶寬,約束如:
式中:b(u,v)為鏈路e(u,v)的剩余帶寬.
除了接入層交換機(jī)節(jié)點(diǎn)以外,網(wǎng)絡(luò)結(jié)構(gòu)的所有節(jié)點(diǎn)的出流量等于入流量,如:
式中:f(u,v)為布爾變量,若u,v之間存在鏈路則f(u,v)=1,否則f(u,v)=0.
2.2 時(shí)延最優(yōu)路徑篩選將篩選后的最短跳數(shù)路徑集進(jìn)行時(shí)延探測(cè),計(jì)算鏈路的真實(shí)時(shí)延Tt(u,v),時(shí)延探測(cè)分別為L(zhǎng)LDP 和ECHO 探測(cè),如圖4 所示.
圖4 LLDP 和ECHO 時(shí)延探測(cè)原理圖Fig.4 Schematic diagram of LLDP and ECHO delay detection
LLDP 探測(cè)過程:控制器下發(fā)含有發(fā)送時(shí)間戳的LLDP 探測(cè)數(shù)據(jù)包,控制器收到返回的Packet/in請(qǐng)求并解析LLDP 數(shù)據(jù)包,獲得發(fā)送時(shí)間節(jié)點(diǎn)計(jì)算LLDP 時(shí)延.LLDP 報(bào)文的發(fā)送與收到時(shí)間之差T1為圖4 紅色虛線和實(shí)線組成的1-2-3 循環(huán);反向的數(shù)據(jù)包發(fā)送與接收時(shí)間差T2為圖4 黑色虛線和實(shí)線組成的4-5-6 循環(huán).
ECHO 探測(cè)過程與LLDP 時(shí)延探測(cè)相似,控制器發(fā)送含有發(fā)送時(shí)間戳的ehco/request 探測(cè)數(shù)據(jù)包,控制器解析交換機(jī)返回的echo/reply 報(bào)文.ECHO報(bào)文的發(fā)送與接收時(shí)間之差為Ta為圖4 黑色橢圓包圍的紅色虛線1 和黑色虛線6,Ta是控制器與交換機(jī)A 的ECHO 時(shí)延;同理控制器與交換機(jī)B 的ECHO 時(shí)延為Tb為圖4 紅色橢圓包圍的黑色虛線4 和紅色虛線3.
假設(shè)鏈路的往返時(shí)延相等,Tt(u,v)可表示為:
為了保證時(shí)延探測(cè)的有效性,對(duì)LLDP 和ECHO探測(cè)時(shí)間進(jìn)行限制,如下所示.
式中:Tl和Te為L(zhǎng)LDP 和ECHO 探測(cè)周期為L(zhǎng)LDP 和ECHO 實(shí)際探測(cè)時(shí)間.
網(wǎng)絡(luò)的狀態(tài)是實(shí)時(shí)變化的,為了求出k/2 最優(yōu)傳輸時(shí)延路徑集,研究某一探測(cè)周期內(nèi)的k/2 最優(yōu)傳輸時(shí)延路徑,最小化傳輸時(shí)延可寫成
式中:Tt(u,v)為在t時(shí)刻鏈路e(u,v)的時(shí)延.
通過上述步驟可得到一個(gè)由時(shí)延優(yōu)先級(jí)構(gòu)成的路徑集p={p1,p2,···,pk/2},用概率擬合算法對(duì)路徑集P進(jìn)行處理,實(shí)現(xiàn)流量負(fù)載均衡的目的.
2.3 概率擬合算法(GBFA-P)用改進(jìn)的GBFAP 算法對(duì)k/2 時(shí)延最優(yōu)模塊的路徑集進(jìn)行計(jì)算,采用GBFA 算法和概率方法消除帶寬碎片.假設(shè)源目地址之間經(jīng)過跳數(shù)和時(shí)延最優(yōu)路徑篩選得到路徑集p={p1,p2,···,pk/2},第i條路徑pi={pi1,pi2,···,pix},由x條鏈路組成.令Pb表示第pi條路徑源目地址間的剩余可用帶寬,可表示為:
式中:B為鏈路容量,bij為路徑pi上第j條鏈路的已用帶寬.
假設(shè)網(wǎng)絡(luò)存在y條數(shù)據(jù)流y={f1,f2,···,fc,···,fy},有n條不同的路徑可以容納數(shù)據(jù)流Fc,用ri表示第i條可選路徑剩余帶寬(Pb)與流的帶寬需求(fc)之比.可表示為:
最終得到第i條路徑被選擇的概率計(jì)算公式為:
在一個(gè)時(shí)間周期內(nèi),流的所有候選路徑剩余帶寬都是確定的,概率擬合算法的關(guān)鍵是根據(jù)流的剩余帶寬和帶寬需求的比值分配路徑的選擇概率.候選路徑被選中的概率與其剩余帶寬成反比,剩余帶寬與帶寬需求差值越小,被選擇的概率越大.
2.4 DSA-D 算法總結(jié)DSA-D 算法步驟如下:
步驟1接收來自流量分類模塊的大小流,若為小流,則通過ECMP 分配轉(zhuǎn)發(fā)路徑,否則繼續(xù)步驟2;
步驟2若為大流則請(qǐng)求控制器調(diào)用鏈路拓?fù)湫畔?,?jì)算k最短跳數(shù)路徑集.并進(jìn)入步驟3;
步驟3根據(jù)步驟2 得到的k最短跳數(shù)路徑集合,對(duì)集合中的鏈路進(jìn)行LLDP 和ECHO 時(shí)延探測(cè),進(jìn)入步驟4;
步驟4計(jì)算鏈路的精確時(shí)延,采用時(shí)延最優(yōu)算法尋找k/2 時(shí)延的最優(yōu)路徑集;
步驟5將流帶寬需求與鏈路可用帶寬的比值作為權(quán)重,GBFA-P 結(jié)合權(quán)重選擇最佳路徑,控制器按所選路徑下發(fā)流條目.
DSA-D 算法引入LLDP 和ECHO 時(shí)延探測(cè),利用鏈路時(shí)延對(duì)路徑優(yōu)先級(jí)排序,提高了篩選指標(biāo)的精度;GBFA-P 對(duì)最優(yōu)時(shí)延路徑計(jì)算其剩余帶寬,分配方案結(jié)合了概率方法,可以消除一定的帶寬碎片,提高鏈路利用率和吞吐量.
3.1 仿真環(huán)境本文在Linux 系統(tǒng)上使用Ryu 控制器實(shí)現(xiàn)了DSA-D 算法,使用mininet 模擬SDN網(wǎng)絡(luò)環(huán)境,采用Iperf 軟件模擬發(fā)包測(cè)試算法.主機(jī)配置為2.40 GHz,8 GiB 內(nèi)存CPU,操作系統(tǒng)為Ubantu 14.04.
在如圖1 所示的4-Pod Fattree 網(wǎng)絡(luò)拓?fù)渲?,核心層交換機(jī)的n個(gè)端口分別連接到每個(gè)Pod 的某一個(gè)匯聚層交換機(jī).設(shè)置KSP 算法的候選路徑k=12,鏈路拓?fù)涮綔y(cè)周期Tc為2 s.鏈路帶寬為10 Mibit/s,使用Iperf 發(fā)包測(cè)試,每組實(shí)驗(yàn)測(cè)試時(shí)長(zhǎng)60 s.
仿真使用2 種流量模式:
(1)Random:每臺(tái)主機(jī)以相同的概率向其他主機(jī)發(fā)送數(shù)據(jù);
(2)Stag(EdgeP,PodP)[17]:主機(jī)以概率EdgeP發(fā)送到同一接入交換機(jī)中的另一個(gè)主機(jī),稱為Pod內(nèi)流量.以概率PodP 發(fā)送到相同的Pod 且不在同一接入交換機(jī)的主機(jī).以概率1-EdgeP-PodP 發(fā)送到網(wǎng)絡(luò)的其余部分.采用一組隨機(jī)模型和最接近數(shù)據(jù)中心的4 種流量模型進(jìn)行發(fā)包測(cè)試,每組重復(fù)20 次,每種流量模型結(jié)果取平均值:{random、stag_0.5_0.3、stag_0.6_0.2、stag_0.7_0.2、stag_0.8_0.1}.
3.2 性能評(píng)估指標(biāo)實(shí)驗(yàn)比較DSA-D 與ECMP、Hedera 和DIFFER 算法,性能評(píng)估指標(biāo)主要包括平均吞吐量(Ca)、鏈路帶寬利用率(Bu)、平均往返時(shí)延(Td)3 個(gè)指標(biāo).
(1)平均吞吐量 網(wǎng)絡(luò)系統(tǒng)在當(dāng)前流量模型下獲得的吞吐量的平均值,表示如下:
式中:Ci為路徑Pi的吞吐量,n為路徑總數(shù).
(2)鏈路帶寬利用率 每條鏈路實(shí)際使用的平均帶寬和鏈路帶寬的比例,表示如下:
式中:bij為路徑Pi上第j條鏈路的已用帶寬,m為路徑上的鏈路總數(shù).
(3)平均往返時(shí)延 數(shù)據(jù)包從客戶端發(fā)出到收到服務(wù)器端回復(fù)的數(shù)據(jù)包平均時(shí)延,表示如下:
式中:Tbi為第i個(gè)數(shù)據(jù)包的往返時(shí)延,x為數(shù)據(jù)包總數(shù).
3.3 結(jié)果分析圖5 所示的柱狀圖直觀地顯示了DSA-D 算法與ECMP、Hedera 和DIFFER 算法的平均吞吐量對(duì)比.stag_0.5_0.3 表示Pod 內(nèi)流量占50%,同一Pod 但不在同一接入層交換機(jī)占30%,其余部分占20%,random 則表示3 部分相等.從總體上看,隨著Pod 內(nèi)流量從50%增加到80%,ECMP、Hedera、DIFFER、DSA-D 的平均吞吐量也隨之提高.在Pod 內(nèi)流量較低的情況下,DSA-D 對(duì)平均吞吐量的提升較為明顯.
Hedera 在調(diào)度網(wǎng)絡(luò)流量時(shí),初始利用ECMP算法進(jìn)行調(diào)度,通過重新調(diào)度鏈路上發(fā)現(xiàn)的大流,DSA-D 始終采用SDN 的集中調(diào)度來處理.從實(shí)驗(yàn)結(jié)果可以看出,DSA-D 在大部分情況下都比ECMP、Hedera 和DIFFER 能取得更好的吞吐量,證明了基于SDN 的DSA-D 調(diào)度方法在數(shù)據(jù)中心的有效性.
表1 顯示了各算法在不同流量模型下的平均吞吐量的對(duì)比,DSA-D 比ECMP、Hedera 和DIFFER提高了12%、7.6%、6.1%的總平均吞吐量.其中,在random 流量模型下,DSA-D 算法相對(duì)ECMP、Hedera、DIFFER 分別提升37.9%、8.1%、11.1%;在stag_0.5_0.3 流量模型下,DSA-D 算法相對(duì)ECMP、Hedera、DIFFER 分別提升13.3%、11.1%、4.7%;在stag_0.6_0.2 流量模型下,DSA-D 算法相對(duì)ECMP、Hedera、DIFFER 分別提升6.5%、9.2%、5.4%;在stag_0.7_0.2 流量模型下,DSA-D 算法相對(duì)ECMP、Hedera、DIFFER 分別提升8.5%、5.5%、2.7%;在stag_0.8_0.1 流量模型下,DSA-D 算法相對(duì)ECMP、Hedera、DIFFER 分別提升5.3%、4.3%、2.6%.可以看出,在5 種流量模型中,DSA-D 算法在random流量模型中最為有效,但隨著Pod 內(nèi)流量的增加,DSA-D 算法的提升程度逐漸下降.
表1 各算法在不同流量模型下的平均吞吐量對(duì)比Tab.1 Comparison of average throughput of algorithms under different traffic models Mbit
不同流量模型下的鏈路利用率如圖6 所示,在Pod 內(nèi)流量較低時(shí),網(wǎng)絡(luò)中被使用到的鏈路較多.隨著Pod 內(nèi)流量提高,鏈路利用率逐漸降低.ECMP 和Hedera 在Pod 內(nèi)流量占比較高時(shí),大流的碰撞較多,容易造成鏈路擁塞,鏈路帶寬利用不均衡.DSA-D 和DIFFER 算法對(duì)大小流的傳輸分別優(yōu)化,更好地利用了鏈路,兩者相比DSA-D 鏈路利用率更高.在5 種流量模型中,DSA-D 始終取得最高的鏈路利用率.
圖6 不同流量模型下各算法的鏈路帶寬利用率Fig.6 Link bandwidth utilization of algorithms under different traffic models
圖7 展示了各流量模型的平均往返時(shí)延結(jié)果,在數(shù)據(jù)流的傳輸過程中,由于大流的干擾,ECMP和Hedera 的平均往返時(shí)延起伏較大.DSA-D 采用SDN 集中控制的方法,當(dāng)數(shù)據(jù)包非首包時(shí),交換機(jī)會(huì)利用已有的策略處理數(shù)據(jù)包的流條目,將數(shù)據(jù)包快速轉(zhuǎn)發(fā)出去.所以DSA-D 方案的平均往返時(shí)延較為穩(wěn)定,性能最好.
圖7 不同流量模型下各算法的平均往返時(shí)延Fig.7 Average round trip delay of algorithms under different traffic models
表2 顯示了各算法在不同流量模型下的的平均往返時(shí)延對(duì)比,DSA-D 算法相較于 ECMP、Hedera、DIFFER 分別降低了30.01%、10.84%、5.07%的總平均往返時(shí)延,其中,在random 流量模型下,DSA-D 算法相對(duì)ECMP、Hedera、DIFFER 分別提升17.3%、8%、2.5%;在stag_0.5_0.3 流量模型下,DSA-D 算法相對(duì)ECMP、Hedera、DIFFER 分別提升45.5%、13.7%、7.5%;在stag_0.6_0.2 流量模型下,DSA-D 算法相對(duì)ECMP、Hedera、DIFFER 分別提升35.6%、17.2%、11.7%;在stag_0.7_0.2 流量模型下,DSA-D 算法相對(duì)ECMP、Hedera、DIFFER分別提升17.3%、8.1%、0.2%;在stag_0.8_0.1 流量模型下,DSA-D 算法相對(duì)ECMP、Hedera、DIFFER分別提升25.9%、6%、2.8%.可以看出,DSA-D 算法在stag_0.5_0.3 提升效果最好.隨著Pod 內(nèi)流量的增加,DSA-D 提升程度逐漸下降.
表2 各算法在不同流量模型下的平均往返時(shí)延對(duì)比Tab.2 Comparison of average round-trip delay of algorithms under different traffic models ms
本文針對(duì)網(wǎng)絡(luò)流量日益增長(zhǎng)導(dǎo)致的數(shù)據(jù)中心網(wǎng)絡(luò)擁塞和負(fù)載不均衡等問題,綜合考慮控制開銷、鏈路時(shí)延以及可用帶寬,實(shí)時(shí)檢測(cè)鏈路時(shí)延狀態(tài),將SDN 應(yīng)用于數(shù)據(jù)中心網(wǎng)絡(luò)環(huán)境,對(duì)流量的大小進(jìn)行分類并采用不同的調(diào)度算法,對(duì)大流進(jìn)行k最短跳數(shù)篩選.根據(jù)LLDP 和ECHO 探測(cè)的時(shí)延計(jì)算得到精確的鏈路時(shí)延,篩除時(shí)延較大的路徑,求解k/2 最優(yōu)時(shí)延鏈路集,利用GBFA-P 將可用帶寬與流需求作為權(quán)重選擇最佳路徑.實(shí)驗(yàn)結(jié)果表明,DSA-D 算法提升了網(wǎng)絡(luò)的吞吐量、鏈路帶寬利用率,降低了平均往返時(shí)延.雖然該算法一定程度上提高了負(fù)載均衡,但在Pod 內(nèi)流量較高時(shí)仍有提升空間.今后的工作將集中在控制器的負(fù)載研究,以及減少流的平均完成時(shí)間,從而提高傳輸效率.