付瓊霄 孫恩昌 王倩雯 李 萌 張延華
(北京工業(yè)大學信息學部信息與通信工程學院 北京 100124)
隨著云計算、大數(shù)據(jù)等技術的興起,數(shù)據(jù)中心網(wǎng)絡規(guī)模不斷擴大[1]。具有多條并行路徑的Fat-tree[2]、VL2[3]、hypercube[4]等拓撲結構為數(shù)據(jù)中心網(wǎng)絡提供了高帶寬、高拓展性以及良好的容錯能力,從而被廣泛應用。但受限于傳統(tǒng)網(wǎng)絡管理部署困難等問題,網(wǎng)絡性能無法得到保障[5]。軟件定義網(wǎng)絡(software defined network, SDN)的出現(xiàn)為解決以上問題提供了新思路,并越來越多地被部署到數(shù)據(jù)中心網(wǎng)絡中。其借助集中控制的優(yōu)勢,實時獲取網(wǎng)絡全局視圖和網(wǎng)絡狀態(tài),為網(wǎng)絡管理與流量控制提供了有利條件。OpenFlow作為一種標準南向接口協(xié)議被廣泛部署于SDN交換機中。然而,由于芯片的功耗和成本較高,大多數(shù)與OpenFlow協(xié)議兼容的交換機的流表容量有限。當網(wǎng)絡中流量爆發(fā)時,容易引起流表溢出,網(wǎng)絡丟包率升高[6]。
為了在數(shù)據(jù)中心網(wǎng)絡中實現(xiàn)有效的流量管理,流量通常被分為兩大類:大象流(elephant-flows)和老鼠流(mice-flows)[7]。大象流攜帶數(shù)據(jù)量多,持續(xù)時間長;老鼠流攜帶數(shù)據(jù)量少,持續(xù)時間短。特別地,在所有流中,大象流的占比不到10%,但卻承載了全網(wǎng)80%的帶寬[8]。由此可知,大象流容易引發(fā)鏈路負載不均衡,導致鏈路擁塞。而老鼠流容易引發(fā)流表負載不均衡,導致流表溢出。
目前,基于SDN的數(shù)據(jù)中心網(wǎng)絡負載均衡策略大多只考慮了鏈路負載均衡。L2RM[9]通過為網(wǎng)絡中到來的流量提供備份路徑來分擔主路徑流量,均衡網(wǎng)絡鏈路負載。LABERIO[10]通過設置負載均衡閾值來判斷網(wǎng)絡鏈路負載均衡情況,根據(jù)鏈路狀態(tài)計算網(wǎng)絡負載均衡度,當負載均衡度超過閾值時,選擇負載最高鏈路上的最大流進行調度。Sehery 等人[11]提出了 SRL 和 FlowFit 2個鏈路負載均衡算法,SRL 作為路由初始化算法,隨機選擇2條等價最短路徑,其中負載最小的路徑作為初始路徑;當某條鏈路出現(xiàn)擁塞時,F(xiàn)lowFit 依次選擇該鏈路上對負載影響最大的流進行調度,直到鏈路的負載小于擁塞閾值。以上策略只考慮到了網(wǎng)絡中的鏈路情況,忽略了SDN中流表容量有限的問題,容易引發(fā)流表溢出。并且,后2種方案當網(wǎng)絡鏈路負載不均衡時選擇最大流進行調度,容易造成調度路徑負載過高甚至發(fā)生擁塞,不利于網(wǎng)絡的鏈路負載均衡。
對于上述算法中的流表溢出問題,DIFF算法[12]提出了流表負載均衡的概念。路由初始化時執(zhí)行流表負載均衡策略以緩解流表溢出;在最大最小公平帶寬分配原則下,對大象流進行重路由,以實現(xiàn)最大吞吐量。在這里,大象流大小被視為一致,并且流量也被假設為不可分割的。在大象流大小差異大、網(wǎng)絡負載較重的環(huán)境下,該方案難以達到好的負載均衡效果。
針對以上算法的缺點,本文提出一種高效的數(shù)據(jù)中心網(wǎng)絡流表與鏈路聯(lián)合均衡算法(joint load balancing algorithm for flow tables and links, JLBFTL)。結合數(shù)據(jù)中心網(wǎng)絡流量特點,將新到達網(wǎng)絡中的流量視為老鼠流進行流表負載均衡,并把新流中監(jiān)測到的大象流調度到帶寬資源更多的路徑上。同時當網(wǎng)絡鏈路負載不均衡時,選擇合適的大象流,利用備份路徑和組表實現(xiàn)快速有效的分流來使其恢復均衡。仿真結果表明本文算法能夠有效提升網(wǎng)絡性能。
本文選取Fat-tree拓撲作為數(shù)據(jù)中心網(wǎng)絡拓撲,由SDN控制器對網(wǎng)絡中交換機進行集中控制,如圖1所示[13]。Fat-tree拓撲分為3層,自上而下分別為核心層、匯聚層和邊緣層。對于參數(shù)為k的Fat-tree拓撲,其包含k個Pod,每個Pod中匯聚層和邊緣層交換機數(shù)均為k/2,核心交換機總數(shù)為(k/2)2,各邊緣交換機連接k/2個服務器。最重要的是,各源目的節(jié)點間擁有(k/2)2條等價路徑,為數(shù)據(jù)中心提供了高帶寬及良好的容錯能力?;诖司W(wǎng)絡架構,本文提出一種高效的數(shù)據(jù)中心網(wǎng)絡流表與鏈路聯(lián)合均衡算法。利用SDN集中控制的優(yōu)勢,對網(wǎng)絡中的老鼠流和大象流進行有效管理,實現(xiàn)網(wǎng)絡的流表負載均衡與鏈路負載均衡,從而緩解流表溢出和鏈路擁塞。
圖1 基于SDN的數(shù)據(jù)中心網(wǎng)絡架構
本文提出的流表與鏈路聯(lián)合均衡算法架構如圖2所示。主要包括備選路徑集計算模塊、路由初始化模塊、大象流監(jiān)測模塊、大象流調度模塊、分流模塊以及流表下發(fā)模塊。
圖2 流表與鏈路聯(lián)合均衡算法架構
2.1.1 備選路徑集計算模塊
網(wǎng)絡初始化時,該模塊針對Fat-tree拓撲特點,采用動態(tài)負載均衡(dynamic load balancing,DLB)中的分層路由算法[14],得到各接入層交換機間的k條路徑,并將所得路徑存儲到備選路徑集中,為后續(xù)的路由算法所使用。本文僅考慮網(wǎng)絡拓撲變化不頻繁的情況,因此從預生成的備選路徑集中選擇路徑能夠顯著減少控制器路由計算的計算量。
2.1.2 路由初始化模塊
當網(wǎng)絡中有新到來的流量,該模塊從備選路徑集中獲取該流源目的節(jié)點間所有路徑,并按照本文提出的路徑流表評價指標對各條路徑上的流表進行評分,選取評分最高的路徑作為路由路徑。
2.1.3 大象流監(jiān)測模塊
周期性監(jiān)測源交換機傳輸流的總字節(jié)數(shù)和統(tǒng)計周期來估計流大小。流帶寬大小可用式(1)[15]求出:
v=(bt+T-bt)/T
(1)
其中,bt為t時刻統(tǒng)計到的流傳輸字節(jié)數(shù),bt+T為t+T時刻的流傳輸字節(jié)數(shù)。
設置一個流量閾值vth來區(qū)分大小流,當v>vth時,流量被判定為大象流,否則為老鼠流。
2.1.4 大象流調度模塊
當監(jiān)測到大象流,該模塊對該流源目的節(jié)點間各條路徑上的鏈路進行評分,選取評分最高的2條路徑分別作為主路徑和備份路徑。其中,主路徑用于大象流重路由,備份路徑用于后期鏈路負載不均衡時為主路徑分擔部分流量。
2.1.5 分流模塊
周期性監(jiān)測網(wǎng)絡鏈路負載均衡情況,當負載不均衡時,選取要進行分流的大象流,并計算主、備份路徑上的流量分配比例,得到組表權重。
2.1.6 流表下發(fā)模塊
該模塊負責為路由路徑上交換機下發(fā)流表及組表以實現(xiàn)流量轉發(fā)。特別地,對于從大象流調度模塊得到的主備份路徑,為這2條路徑上的所有交換機下發(fā)流表,并為源交換機下發(fā)組表,將大象流路由到主路徑上。當分流模塊被觸發(fā),調整源交換機組表權重以實現(xiàn)流量在主備份路徑間的分配與傳輸。
本文提出的流表與鏈路聯(lián)合均衡算法主要分為流表負載均衡算法與鏈路負載均衡算法。流表負載均衡算法的主要目標是減少由網(wǎng)絡中大量老鼠流導致的交換機流表溢出。同時,為了緩解鏈路擁塞,鏈路負載均衡算法為網(wǎng)絡帶寬的主要承載者大象流選擇帶寬資源最優(yōu)的路徑作為路由路徑,并為其準備備選路徑。在流量高峰期時,網(wǎng)絡中大量的突發(fā)流量可能導致部分鏈路負載過重,造成鏈路負載不均衡,此時可通過選擇合適的大象流,利用備份路徑和組表進行有效分流實現(xiàn)鏈路快速均衡。
2.2.1 流表負載均衡算法
該算法運行于路由初始化模塊中。由數(shù)據(jù)中心網(wǎng)絡流量特點可知:老鼠流帶寬需求小且持續(xù)時間短,對網(wǎng)絡鏈路負載影響不大,但其數(shù)量龐大,占全網(wǎng)流量的絕大多數(shù),會導致大量的流表下發(fā),從而引發(fā)交換機流表溢出,導致網(wǎng)絡丟包率升高。本文采用流表負載均衡策略解決以上問題。由于老鼠流在網(wǎng)絡中的占比超過90%,并且考慮到工程應用中的可行性,本研究將網(wǎng)絡中到來的新流視為老鼠流[15],提出路徑流表評分作為評價指標來評價源目的節(jié)點間的各條路徑的流表質量,選擇評分最高的路徑作為路由路徑,以實現(xiàn)流表均衡。
該指標綜合考慮路徑流表平均質量和路徑瓶頸流表質量。由于本文中選擇Fat-tree拓撲作為網(wǎng)絡拓撲結構,一對源目的服務器間各條路徑上交換機數(shù)一致,即流表數(shù)一致,所以路徑流表平均質量可以由路徑流表總質量表示。特別地,對于一個單獨的流表而言,其剩余容量越大,負載越小,流表質量越好。然而,路徑流表總質量不能簡單地用路徑流表剩余容量之和來評價,這樣會忽略各流表間負載的差異。當各條路徑上的流表剩余容量和均相同,每條路徑的流表負載分布可能不同(例如,2條路徑上流表負載分布為[2,3,7,8]和[4,5,5,6])。但是這種不同不能從剩余容量之和中得到反映。此外,剩余容量之和高的路徑也不一定比剩余容量之和低的路徑更優(yōu)。這是因為路徑上流表的負載可能存在兩極分化,路徑上可能會有多個高負載流表,這樣的路徑是應該避開的。根據(jù)以上分析,本文提出路徑流表負載總增量作為路徑流表總質量的評價指標。
具體地,本文提出的流表負載增量函數(shù)Ti(x)是一個非線性函數(shù),用來增大流表間的差異,如式(2)和式(3)所示。其代表當流量到達已存儲流條目數(shù)為x的交換機i時,給該交換機流表帶來的負擔。其中,f(x)為流表負載評價函數(shù)。特別地,提出流表擁塞閾值,將流表狀態(tài)分為2種:擁塞狀態(tài)和非擁塞狀態(tài)。在式(3)中,不同的函數(shù)被用來評價不同狀態(tài)的流表。一個增長率更高的函數(shù)被用來評價擁塞狀態(tài)的流表。通過這種方式,當流量到達一個部署了擁塞狀態(tài)流表的交換機時,會產(chǎn)生很大的負載增量。
Ti(x)=f(x+1)-f(x)
(2)
其中,
β>α>2 (3)
a、b、α、β取相應值使f(x)滿足連續(xù)、單調增,且為凸函數(shù)。Cmax為交換機流表容量,kCmax為流表擁塞閾值。
考慮到路徑上的瓶頸流表,綜合路徑流表負載總增量和路徑最小流表剩余容量,提出路徑流表評分計算公式,如式(4)所示:
(4)
流量將從源目的交換機間的多條備選路徑中選擇路徑流表評分最大的路徑進行傳輸。
流表負載均衡算法偽代碼如算法1所示。
算法1 Load Balancing for Flow Table 1 while newflow do2 foreach path in paths do3 foreach sw in path do4 iftable(sw)≤kCmaxthen5 load(sw)←f1(table(sw))6 else7 load(sw)←f2(table(sw))8 end if9 if table(sw)+1≤kCmaxthen10 load2(sw)←f1(table(sw)+1)11 else12 load2(sw)←f2(table(sw)+1)13 end if14 inc(sw)←load2(sw)-load(sw)15 inctable(path)←inctable(path)+inc(sw)16 end do17 minfreetable(path)←min{Cmax-table(sw)}18 scoretable(path)←minfreetable(path)inctable(path)19 end do20 path←argmax{scoretable(path)|path∈paths}21 end while
其中,table(sw)為交換機sw中流表所存儲的流條目數(shù),load(sw)和load2(sw)分別為流到達交換機sw前后該交換機中流表負載的評價值,inc(sw)為流表負載增量,min_freetable(path)為路徑path上流表的最小剩余容量,scoretable(path)為路徑流表評分。
2.2.2 鏈路負載均衡算法
鏈路負載均衡算法由大象流調度算法和分流算法組成,它們分別運行于大象流調度模塊和分流模塊中。
鏈路負載均衡的目標是緩解網(wǎng)絡擁塞。由數(shù)據(jù)中心網(wǎng)絡流量特點可知,大象流是網(wǎng)絡鏈路帶寬的主要占用者,網(wǎng)絡鏈路負載均衡與其密切相關。但其數(shù)目只占流量總數(shù)的極小部分,對交換機流表負載影響不大。所以,鏈路負載均衡算法是針對大象流而言的。
(1)大象流調度算法
文獻[9]為網(wǎng)絡中所有流量提供主路徑與備份路徑。受該思想啟發(fā),并考慮到老鼠流占比大,為其成倍地下發(fā)流表會導致流表負擔的急劇加重,且老鼠流數(shù)據(jù)量小、持續(xù)時間短,備份路徑并不是必要的,因此本文只為大象流計算主備份路徑。主路徑用于大象流的重路由,以實現(xiàn)鏈路負載均衡;備份路徑能夠在后期網(wǎng)絡鏈路狀態(tài)不佳時,為主路徑分擔部分流量。此外,文獻[9]并沒有給出主路徑和備份路徑的選擇方法,而本文給出了一種詳細的選路方案。
主路徑與備份路徑的計算方法如下。類似于流表負載均衡算法中的思想,本文提出路徑鏈路評分來評價源目的節(jié)點間的各條路徑。其綜合考慮了路徑鏈路平均質量和瓶頸鏈路質量。因網(wǎng)絡拓撲特點,路徑鏈路平均質量可用路徑鏈路總質量代替,這里路徑鏈路負載總增量作為其評價指標。
具體地,本文提出鏈路負載增量函數(shù)Li, j(x,v),同時考慮大象流大小以及鏈路負載情況,如式(5)所示。其代表將大小為v的大象流調度到已用帶寬為x的鏈路上,給該鏈路帶來的負擔。
Li, j(x,v)=g(x+v)-g(x)
(5)
其中,g(x)為鏈路負載評價函數(shù),同f(x)類似,唯一不同的是分界點的選取。在g(x)中,分界點為鏈路擁塞閾值。當鏈路已用帶寬超過該閾值,則判定該鏈路擁塞,選擇增長速率更高的函數(shù)對該鏈路進行評價。因此,當大象流調度到擁塞鏈路上或大象流的調度導致調度鏈路的擁塞,都會產(chǎn)生很大的負載增量。
同時,考慮到路徑的瓶頸鏈路,路徑鏈路評分計算公式如式(6)所示:
(6)
大象流從源目的交換機間備選路徑中選擇路徑鏈路評分最高和次高的路徑分別作為主路徑和備份路徑。
大象流調度算法偽代碼如算法2所示。
算法2 Elephantflows Rerouting1 while elephantflow do2 v←speed(elephantflow)3 foreach path in paths do4 foreach link in path do5 if bw(link)≤kBmaxthen6 load(link)←g1(bw(link))7 else8 load(link)←g2(bw(link))9 end if10 if bw(link)+v≤kBmaxthen11 load2(link)←g1(bw(link)+v)12 else13 load2(link)←g2(bw(link)+v)14 end if15 inc(link)←load2(link)-load(link)16 inclink(path)←inclink(path)+inc(link)17 end do18 minfreebw(path)←min{Bmax-bw(link)}19 scorelink(path)←minfreebw(path)inclink(path)20 end do21 pathm←argmax{scorelink(path)|path∈paths}22 paths2←remove pathm from paths23 pathb←argmax{scorelink(path)|path∈paths2}24 end while
其中,bw(link)為鏈路link已用帶寬,load(link)和load2(link)分別為流量到達鏈路前后的鏈路負載評價值,inc(link)為鏈路負載增量,min_freebw(path)為路徑path上鏈路的最小剩余容量,scorelink(path)為路徑鏈路評分。
(2)分流算法
當處于流量高峰期時,由于大量突發(fā)流量的到來,網(wǎng)絡中某些鏈路可能會處于高負載狀態(tài),導致鏈路負載不均衡。針對該問題,本文提出分流算法。
該算法首先根據(jù)控制器周期性監(jiān)測到的網(wǎng)絡信息,計算鏈路負載均衡度。當判定網(wǎng)絡鏈路負載不均衡時,選取要分裂的象流并計算組表權重,實現(xiàn)流量在主、備份路徑間的分配。網(wǎng)絡中的脈沖流(流帶寬很大但持續(xù)時間短)可能對鏈路負載均衡度造成很大影響,導致不必要的分流,從而給網(wǎng)絡帶來能量消耗。因此,本文采用文獻[9]中方案,當鏈路負載均衡度連續(xù)m個周期大于負載均衡閾值,則判斷此時網(wǎng)絡鏈路負載不均衡。
鏈路負載均衡度借鑒方差的概念,定義如式(7)[9]所示:
(7)
(8)
其中,Bi, j(t)為t時刻交換機i、j間鏈路的已用帶寬,Ci, j(t)為鏈路最大帶寬,ui, j(t)為鏈路帶寬利用率,uave(t)為全網(wǎng)鏈路平均帶寬利用率,N為網(wǎng)絡中鏈路總數(shù)。由于|ui, j(t)-uave(t)|在0與1之間,添加1可使δ值變化范圍更大,從而更易判斷網(wǎng)絡鏈路負載情況。
當監(jiān)測到網(wǎng)絡鏈路負載不均衡,選擇全網(wǎng)鏈路利用率最高的鏈路上的最大的象流,并判斷該流備份路徑上是否存在擁塞鏈路。若不存在,計算組表權重,在主、備份路徑間分配流量;若存在,從該大象流的多條備選路徑中,選擇除主路徑之外路徑最小剩余帶寬最大的路徑作為新備份路徑并計算組表權重。
組表權重計算公式如下:
(9)
(10)
其中,Bmain、Bback_up分別為主路徑、備份路徑鏈路剩余帶寬最大值,v為選中分割的大象流流帶寬。
分流算法偽代碼如算法3所示。
算法3 Flow Shunting1 while link load imbalance do2 foreach link in links do3 utilization(link)←portstate(link)4 end do5 linkmax← argmax{utilization(link)|link∈links}6 flowset←elephantflow(linkmax)7 foreach flow in flowset do8 v(flow)←flowstate(flow)9 end do10flowmax←argmax{v(flow)|flow∈flowset}11path←pathbackup(flowmax)12if congestion links in path then13calculate new path14 calculate weight15else16 calculate weight17end if18end while
其中,utilization(link)為鏈路link的帶寬利用率,linkmax代表全網(wǎng)鏈路利用率最大的鏈路,flow_set為該鏈路上的大象流集合,flowmax為該集合中的最大流。
Mininet[16]是一款可在Linux下運行的網(wǎng)絡仿真器,能夠方便地創(chuàng)建虛擬網(wǎng)絡,本文的網(wǎng)絡拓撲基于Mininet搭建。同時,選用開源的SDN控制器Ryu[17]作為本文的集中控制器,利用iperf[18]生成網(wǎng)絡數(shù)據(jù)流。交換機選用支持OpenFlow協(xié)議的 Open vSwitch[19]。數(shù)據(jù)中心網(wǎng)絡拓撲選用k=4的Fat-tree拓撲,即包含20臺交換機和16臺主機,如圖1所示。實驗中,鏈路帶寬設置為100 Mbps,交換機流表容量設置為20。為了模擬數(shù)據(jù)中心網(wǎng)絡流量,利用隨機流量模型,各主機等概率地向網(wǎng)絡中其他交換機發(fā)送數(shù)據(jù)流。其中,大象流所占比例小于老鼠流所占比例,且總和小于等于1;大象流持續(xù)時間遠遠大于老鼠流持續(xù)時間。在這里假設大象流數(shù)量占20%,老鼠流占80%,且大象流持續(xù)時間設置為60 s,老鼠流設置為5 s。大象流與老鼠流的區(qū)分閾值設為鏈路帶寬的0.5%[10],即0.5 Mbps。
本文將所提出的JLBFTL算法與SRL+FlowFit、L2RM算法進行對比,并從平均丟包率、平均帶寬利用率及吞吐量3個方面比較了這3種算法的網(wǎng)絡性能。由圖3、圖4可得到表1、表2中信息,從該信息中可以得知,相比于L2RM與SRL+FlowFit,本文所提JLBFTL算法平均丟包率在整個區(qū)間上平均降低了12.6%和11.6%,平均帶寬利用率平均提升了9.3%和14.7%。這是由于SRL+FlowFit只考慮了網(wǎng)絡鏈路負載均衡,而忽視了交換機流表容量有限的問題,容易引發(fā)流表溢出,導致丟包;L2RM雖通過動態(tài)調整流表空閑時間來緩解流表的溢出,但其隨機選取初始化路由,容易使鏈路發(fā)生擁塞,造成丟包和包延遲。JLBFTL同時考慮流表負載均衡與鏈路負載均衡,能夠有效緩解流表溢出和鏈路擁塞,尤其保障了數(shù)目多但攜帶數(shù)據(jù)量少的老鼠流的正常傳輸,減少了丟包和包延遲,使得JLBFTL算法的平均丟包率和平均帶寬利用率得到改善。
圖3 3種算法平均丟包率比較
圖4 3種算法平均帶寬利用率比較
表1 JLBFTL相較于對比方案的平均丟包率下降率
表2 JLBFTL相較于對比方案的平均帶寬利用率增加率
由圖5可知,在吞吐量方面,JLBFTL相較于L2RM有一定的提升。雖然L2RM和JLBFTL在路由初始化時均未考慮鏈路狀態(tài),但JLBFTL對大象流進行了重路由以獲得更高的鏈路帶寬。因此,L2RM在鏈路負載均衡方面效果不佳,無法保證大象流的傳輸,使其吞吐量低于JLBFTL。JLBFTL與SRL+FlowFit相比,當網(wǎng)絡流量到達速率小于280 Mbit/min時,JLBFTL吞吐量低于SRL+FlowFit;隨著流到達速率的增長,JLBFTL吞吐量最終超過了SRL+FlowFit。這是由于SRL+FlowFit在路由初始化時考慮了鏈路狀態(tài),而JLBFTL并未考慮,在該時期JLBFTL可能引發(fā)大象流的擁塞,導致大象流丟包,網(wǎng)絡吞吐量降低。但隨著網(wǎng)絡流量的增多,網(wǎng)絡負載的加重,SRL+FlowFit的最大流調度方案可能導致新鏈路的擁塞。此時,JLBFTL算法的分流機制使得大象流的傳輸?shù)玫奖U希瑥亩雇掏铝康玫接行嵘?/p>
圖5 3種算法吞吐量比較
本文提出的JLBFTL算法,針對數(shù)據(jù)中心網(wǎng)絡流量特征,將流表負載均衡和鏈路負載均衡相結合??紤]路徑上流表負載總增量與最小流表剩余容量初始化路由,實現(xiàn)流表均衡。對于監(jiān)測到的大象流,考慮路徑上鏈路負載總增量與最小鏈路剩余帶寬,將大象流調度到帶寬資源更多的路徑上,實現(xiàn)鏈路負載均衡。當流量高峰期時,網(wǎng)絡中大量的突發(fā)流量可能導致部分鏈路負載過重,造成鏈路負載不均衡,此時可通過選擇合適的大象流,利用備份路徑和組表進行有效分流實現(xiàn)鏈路快速均衡。仿真結果表明,與SRL+FlowFit、L2RM算法相比,本算法在帶寬利用率、丟包率、吞吐量方面都有一定的改善,緩解了網(wǎng)絡擁塞和流表溢出,提升了網(wǎng)絡性能。
由于本文算法在路由初始化時將所有流量都視為老鼠流進行流表均衡,可能會導致大象流的擁塞。這是未來工作中需要解決的問題。同時,基于數(shù)據(jù)中心網(wǎng)絡大小流特點,可以進一步設計流表空閑超時時間以實現(xiàn)流表空間更合理的利用。