馬曉航,廖靈霞,李 智,2,秦 斌,趙涵捷
(1.桂林電子科技大學電子工程與自動化學院,廣西桂林 541004;2.桂林航天工業學院電子信息和自動化學院,廣西桂林 541004;3.臺灣東華大學電機工程系,臺灣花蓮 974301;4.桂林航天工業學院信息中心,廣西桂林 541004)
(?通信作者電子郵箱liaolx@guat.edu.cn)
近年來,互聯網技術的快速發展導致用戶數量激增,網絡環境日益復雜,合理地利用網絡資源成為保證網絡性能的關鍵;但傳統的網絡結構將控制功能和轉發功能緊密耦合,缺乏統一的標準構建全局網絡視圖,導致網絡性能的管理和資源的優化困難。軟件定義網絡(Software Defined Network,SDN)的出現為解決這一問題提供了新的思路[1]。
SDN 是斯坦福大學Cleanslate 研究組提出的一種新型網絡結構[2]。如圖1所示,SDN由應用層、控制層和數據層組成,實現了控制與轉發功能的分離。控制層通過南向接口(OpenFlow 協議[3])構建的控制通道與數據層交互,為數據層的OpenFlow 交換機創建和更新轉發規則(流表項)。SDN 通過控制層的控制器實現了全網視圖的維護和資源調度[4]。
圖1 SDN架構Fig.1 SDN architecture
SDN 交換機本身沒有控制功能,當新數據流到達交換機時,交換機沒有轉發規則指導該流的轉發,所以,交換機會將該流的數據包封裝成Packet-in指令通過控制通道轉發到控制器,由控制器創建流表項并封裝成Packet-out 下發到交換機;交換機再根據下發的流表項完成轉發,并將流表項保存到流表中指導該流后續包的轉發。
SDN 流表項的創建特點決定了流表項的配置和管理是SDN性能和資源管理優化的關鍵。流表項的超時時間決定了流表資源的利用率和網絡的轉發延時。由于存儲SDN 流表的三元內容可尋址存儲器(Ternary Content-Addressable Memories,TCAM)耗電量大、價格昂貴,SDN 交換機的TCAM容量有限。為了提高TCAM 的利用率,SDN 流表項在流表中設置有生存時間,稱為超時時間。OpenFlow 協議定義了兩種流表項超時方式:硬超時(hard-timeout)和空閑超時(idletimeout),并通過控制器對超時進行配置。給定一個超時時間,硬超時和空閑超時分別比較流表項在流表的存在時間和空閑時間,當超過設定值時,流表項失效[5-6]。較短的超時時間能及時刪除不用的流表項,減小交換機內存的消耗,但會使控制器和交換機頻繁交互,消耗大量控制帶寬,增大網絡的轉發延時,降低網絡的整體性能;較長的超時時間減少了控制器和交換機的交互,降低了數據包的轉發延時,但可能導致完成轉發使命的流表項滯留,占用交換機的內存,甚至導致流表溢出。提升流表容量能在一定程度上緩解此問題,但交換機內存價格昂貴,提升空間有限[7],因此,優化超時時間對SDN 性能和資源優化有著重要意義。
當前SDN 控制器一般將流表項設置為固定的空閑超時,很容易造成資源的浪費,甚至影響網絡性能,改進方法是對超時時間進行動態調節。調節方法大致可分為兩類:一類是基于預測算法的動態調節;另一類基于網絡實時信息的動態調節。
文獻[8]通過AR 算法預測每條流數據包的到達時間;文獻[9]通過二次移動平均算法預測下個周期增加的流表項數目;文獻[10]采用指數平滑法預測下一周期中可能新增的流表項數量。上述方法通過統計分析采樣周期內的數據,預測下一周期可能出現的狀況,及時調節流表項的超時時間,預留足夠的流表空間,減少交換機和控制器之間的交互,降低了控制通道負載。文獻[11]通過收集數據流的信息對數據流進行分類,對不同的類型的數據流分配不同的超時時間;文獻[12]提出一種IHTA 超時算法,該算法基于數據包的到達時間,為不同的數據流設置不同超時時間;文獻[13]引入資源偏好度,根據當前網絡資源的占用率安排超時時間;文獻[14]通過獲取流表項匹配次數和生存時間動態調節超時時間。上述方法主要通過對網絡資源使用的監測,實現對超時時間的調節,雖然對SDN 性能在一定程度上進行了優化,但是預測算法大多比較復雜,實現難度較高,而基于網絡實時信息的動態調節則需要對網絡的實時監控,加大了控制器開銷。并且,上述研究只考慮了流表資源和控制通道帶寬占用率的優化,未引入其它影響SDN性能的關鍵指標,如大象流的偵測精度。
大象流是數據中心中只占數據流量總數10%卻消耗90%帶寬的數據流,其余的流稱為老鼠流。當多個大象流共享相同的鏈路時,會造成網絡擁堵[15]。及時偵測大象流,為大象流分配合理的路徑,能避免擁塞、降低網絡能耗[16]。大象流的偵測精度是SDN性能的重要指標之一[17-18]。
當前的研究通常采用基于數據流統計的偵測方案。文獻[19]通過控制器輪詢保存在交換機流表項的數據流統計信息,當某條數據流統計的數據量超過設定閾值時,將該數據流判定為大象流;但由于統計信息數據量大,將統計信息從交換機傳輸到控制器消耗大量的控制通道帶寬。文獻[20]中基于改進的OpenFlow 協議提出DevoFlow 模型,通過監視交換機的數據偵測大象流;但該方法需要特定的硬件設備支持,難以普及,且頻繁的交換機與控制器交互占用大量的控制通道帶寬。文獻[21]使用LightGBM 算法識別大象流,引入了聚焦損失函數,并使用多個門限將流劃分多個類別;但統計數據精度要求高,可能增加交換機和控制器額外通信。
本文考慮通過交換機轉發到控制器的數據包識別大象流,提出一種動態混合超時的SDN 三目標聯立優化方案,創新性地采用超時方式和超時時間的雙維度動態調節,實現對大象流偵測精度、流表項存活數和控制通道帶寬占用率三目標優化,綜合提升SDN性能。本文的主要工作如下:
1)針對大象流偵測精度、流表項存活數和控制通道帶寬占用率三個優化目標建立了優化模型,使用NSGA-Ⅱ算法求解Pareto前沿(Pareto Frontiers)。
2)設計了兩種超時時間的動態調節方法,對比靜態超時并分析性能,在此基礎上結合硬超時和空閑超時的特點,提出了混合超時。
3)評估了混合超時下靜態和兩種動態調節的敏感性,使用貝葉斯多目標優化算法和補充特定點的方法提高Pareto Frontiers 的質量,目前貝葉斯多目標優化求解尚未被用于求解SDN性能優化問題。
本文考慮一個帶內的SDN 系統,通過動態調節流表項的超時方式和超時時間大小對大象流的偵測精度、控制通道帶寬的占用率和交換機內存消耗進行三目標聯立優化。考慮帶內SDN 系統是因為帶內系統的控制信息和業務信息共享相同的鏈路,控制通道的帶寬消耗增大會降低數據傳輸的可用帶寬,引發網絡擁堵。表1為本文優化模型所使用的參數。
表1 優化模型參數描述Tab.1 Optimization model parameter description
大象流偵測精度可由精確率Acc(Accuracy)和召回率Rec(Recall)表示。精確率是正確偵測的大象流數占偵測為大象流數的比例,召回率是正確偵測大象流數占實際大象流數的比例。由于大象流是造成網絡擁堵的主要原因,識別出更多的大象流至關重要,即召回率優先于精確率。本文將大象流偵測遺漏R作為大象流偵測精度衡量指標,則:
其中:FN是標記為大象流而預測為老鼠流的流數,可表示為,即給定一個數據流fi,當其為大象流(標記flagfi=1)但偵測結果G(Pi)=0 時,r的值為1,否則為0。Pi為數據流fi轉發到控制器的數據量,包括第一個數據包(數據流的第一個數據包必須被轉發)和后續被轉發到控制器的數據包大小,可表示為式(2)。
其中:lij表示數據流fi的第j個數據包的大小;aij表示該第j個數據包是否被轉發,可表示為式(3)。
其中:ti_update表示數據流fi的流表項更新時間,受超時方式的影響,當超時方式為硬超時時,ti_update的值為tik,數據流上一個被轉發到控制器的包的時間戳;超時方式為空閑超時時,ti_update的值為ti(j-1)。ti(j-1)_effective表示包pij到達交換機時,數據流fi流表項的超時時間,流表項超時時間在數據包pij通過之后更新。由于轉發的數據包需要使用OpenFlow 協議進行封裝,實際計算中,lij大小要額外增加32 B(Packet-in 消息指定)。周期內所通過的數據總量為P,是數據流fi所轉發的數據量Pi之和。
本文采用桂林航天工業學院數據中心實時抓捕的流量數據為數據集,總時長約345 s,包含571 009條數據流,7 974 581個數據包。其中,數據總量超過10 KB 持續時間超過1 s 的數據流標記為大象流[22]。通過分析,該數據集約8.51%的大象流數據包數小于10,97.02%的老鼠流數據包數小于10,85.03%的老鼠流數據包數小于5。因此本文通過多次測試,將大象流的偵測模型確定為轉發數據量超過2 KB,轉發的包數超過5 個的數據流。該模型在超時時間為0.2 s 時對大象流偵測硬超時有約85%的精確率和90%的召回率,空閑超時有約78%的精確率和80%的召回率。由此可見,當使用轉發到控制器的數據包偵測大象流時,流表項的超時方式和超時大小對大象流的偵測的精確率和召回率影響很大。
控制通道帶寬占用率bu是控制通道傳輸鏈路上實際消耗的帶寬與總帶寬之比。讓bwt表示單位時間控制通道通過的數據量均值,bc為控制通道最大帶寬設為125 MB,則:
由于流表內存所使用的TCAM 資源昂貴,減少流表項的存活數可以降低TCAM 的消耗。流表項溢出問題對網絡性能影響極大,因此本文將偵測周期內流表項的最大存活數作為交換機內存消耗的衡量指標。給定大象流偵測周期為T,T內流表項的存活數目為E,參數Ei為數據流fi的流表項在t時刻存活情況,0 表示流表項已超時,1 表示流表項有效,則流表項的存活數為∑fi∈FEi,而Ei有:
綜上所述,本優化問題可模型化為:
即通過調節流表項超時時間tij_effective,最小化大象流偵測遺漏、控制通道帶寬消耗和交換機內存消耗,提高帶內SDN 系統的綜合性能。通過式(1)、(3)可得,超時時間tij_effective越小,目標R越小;通過式(3)、(4)可得,超時時間tij_effective越大,目標bu越小;通過式(5)可得,超時時間tij_effective越小,目標E越小。因此,三個優化目標之間相互沖突。
本文通過統計捕獲數據流信息得到,52 089 條大象流和452 140 條老鼠流的數據包平均時間間隔在0~10 s,分別占大象流總數的91%和老鼠流總數的88%,因此本文將超時時間的數值限制在(0,10),并采用NSGA-Ⅱ算法求解該優化問題的近似Pareto Frontiers。
當超時時間在0~10 s 內以極小的步長變化時,優化問題的解空間非常大,遍歷算法耗時長,因此,本文采用NSGA-Ⅱ算法對優化問題進行近似求解。NSGA-Ⅱ使用帶精英策略遺傳,擁有復雜性低、運行速度快等優點[23]。
使用NSGA-Ⅱ算法求解主要包括以下幾個步驟:首先確定種群規模并隨機產生初始父群;然后對初代父群的個體按非支配關系排序,再通過選擇、交叉、變異等遺傳算子,生成子代種群,混合父群和子群生成新的種群,對種群中個體按非支配關系排序,并按個體支配數分級;最后根據分級排序結果順序選擇,生成新一代父群;重復上述操作直到達到最大迭代次數[24-25]。
本文將超時時間作為染色體,每一個染色體即為一個種群個體,設置初值種群規模為30,即NSGA-Ⅱ在約束范圍內隨機生成30個超時時間,如0.942 198 s等。本文讓交叉算子以隨機方式選擇均值或均差方式生成新染色體,再以隨機方式賦予某個個體新的數值的方式產生變異。NSGA-Ⅱ在每次迭代中將超時時間以染色體的形式輸入,計算在給定超時時間下優化目標的目標值,并在目標空間坐標系中用點表示。NSGA-Ⅱ對目標空間的多點進行擁擠度計算后完成非支配排序,最后生成Pareto Frontiers[26],流程如圖2所示。
圖2 NSGA-Ⅱ求解優化問題的流程Fig.2 NSGA-Ⅱflowchart to solve optimization problem
NSGA-Ⅱ算法在求解優化目標的Pareto Frontiers 有很大的隨機性,可能導致對解空間的探索不夠,生成的Pareto Frontiers 質量較差,部分Pareto Frontiers 較短。雖然該問題能通過增加種群規模和迭代次數改善,但這種改善非常有限,且需要耗費大量時間。針對此問題,本文通過求解特定超時時間和采用貝葉斯多目標優化算法的方法對Pareto Frontiers 進行完善。本文使用文獻[27]中的貝葉斯多目標優化的最新程序。貝葉斯多目標優化算法基于目標函數建模的思想,通過貝葉斯網絡概率模型反映可行解的分布。與NSGA-Ⅱ算法相比,貝葉斯優化算法能更快更好地逼近Pareto Frontiers[28]。
求解過程中,流表項有靜態和動態兩種調節方式:靜態調節是指流表項的超時時間大小設定后不再變化,即在流的持續時間內不對超時時間大小做調整;動態調節則是超時時間的大小會在流持續時間的不同階段動態調整。
靜態調節是當前運用最廣泛的超時時間設置方式,該方式通過控制器為交換機的所有流表項配置統一的超時方式和時間,配置完成后不作調整。這種調節方式簡單,但是缺乏靈活性,不能合理地配置資源。本文通過NSGA-Ⅱ算法,得到靜態調節下兩種超時方式的Pareto Frontiers,如圖3。
圖3(a)顯示了采用硬超時和空閑超時對大象流偵測遺漏和帶寬占用率的Pareto Frontiers。盡管兩個Pareto Frontiers 交叉在一起也可以看到硬超時在局部更靠近原點,所以硬超時方式會優于空閑超時方式。圖3(b)中空閑超時方式生成的Pareto Frontiers 比硬超時方式生成的靠近原點,說明在降低流表項存活數和控制通道帶寬消耗上空閑超時優于硬超時。
圖3 靜態調節下兩種超時方式的Pareto FrontiersFig.3 Pareto Frontiers of two timeout methods under static adjustment
動態調節指在流持續時間內動態調節超時時間的大小。該策略基于大象流持續時間長、老鼠流持續時間短的基本思想,一般在數據流到達前期設置一個較短的超時時間,增加轉發的控制器的數據包,提升大象流的偵測精度;在偵測出該數據流為大象流后,調整為較長超時時間,降低帶寬的占用率,同時也要盡可能地減少流表項的存活數,避免流表溢出情況的發生。
對于偵測出大象流后超時時間的動態調節,本文設計了兩種調節方法:方差均值(ave_sig)法和翻倍(multiple)法。
方差均值法是在偵測出該數據流為大象流前,對數據包時間戳統計,計算數據包間隔時間的均值和方差;在偵測出大象流后,將超時時間調整為均值與方差之和。用NSGA-Ⅱ求解該調節方式下優化目標的Pareto Frontiers,并與靜態調節方式對比,得到圖4。
圖4 方差均值動態超時調節方式下硬超時與空閑超時Pareto FrontiersFig.4 Pareto Frontiers of hard-timeout and idle-timeout under ave_sig dynamic timeout adjustment method
當采用硬超時,圖4(a)中的動態超時的Pareto Frontiers與靜態調節交錯,在優化目標側重于大象流偵測時優于靜態調節;圖4(b)中動態調節的效果甚至比靜態調節要更差。但采用空閑超時,圖4(a)和(b)中針對兩個優化目標的Pareto Frontiers 都有了明顯的改善。由于均值與方差之和在正態分布圖中可表示大概率發生事件,即設置的超時時間大概率大于數據流包的達到時間間隔,因此,采用空閑超時能降低流表項存活的概率,減少了控制通道帶寬占用;但硬超時沒有此效果,甚至還會因為時間設置不合理,既增加了控制通道帶寬占用,也未能降低流表項的存活數。
翻倍法是在偵測出某條數據流為大象流后,每當數據包到達控制器,則將該數據流流表項的超時時間調節為原來的倍數,本文設置為1.2倍,得到圖5。
圖5 翻倍動態超時調節方式下硬超時與空閑超時的Pareto FrontiersFig.5 Pareto Frontiers of hard-timeout and idle-timeout under multiple dynamic timeout adjustment method
通過對比圖5(b)中的Pareto Frontiers 可以看到,針對降低流表項存活數和控制通道帶寬占用這兩個優化目標,空閑超時的效果要強于硬超時;但針對大象流偵測和控制通道占用的優化上,硬超時要略強于空閑超時,如圖5(a)所示。總體而言,翻倍法對三個優化目標的Pareto Frontiers都有明顯的改善,其原因在于翻倍法在偵測出大象流后,對超時時間進行延長,所以能在不影響低大象流的偵測精度的前提下相對延長流表項的存活時間,減少控制通道帶寬的消耗;而且因為倍數較小,對周期內的最大存活數增加較小。
本文嘗試將超時時間調節更高的倍數,但提升效果不明顯,在增加到2 倍后,Pareto Frontiers 基本無變化,且增加較多的有效時間會導致流表溢出,因此不建議調節過高倍數。
對比上述靜態和動態調節方式下兩種超時方式的效果,空閑超時方式的優化效果總體上要強于硬超時,但靜態調節和翻倍動態調節中針對大象流偵測遺漏和帶寬占用率的優化中,硬超時方式的優化效果要略強于空閑超時。這是因為硬超時方式可以相對增加流表項的失效次數,增大轉發到控制器的數據包,從而提高大象流的偵測精度,同時也能減少一定的交換機內存;而空閑超時方式相對延長了流表項的存活時間,降低轉發次數,減少帶寬使用的同時不利于大象流的偵測精度。
本文針對兩種超時方式對三個優化目標產生的不同影響,結合二者的特性,提出了一種混合超時方式(mixedtimeout)。
混合超時方式是將默認超時狀態設為硬超時,增加轉發到控制器的數據包,提升大象流偵測精度,減少流表項存活數。若該數據流被偵測為大象流,則調節超時方式為空閑超時,相對延長流表項存活時間,降低控制通道帶寬占用率。該超時方式的超時時間調節也分為靜態調節和動態調節。
通過上文對動態調節和靜態的對比分析,動態調節的效果要優于靜態調節,因此本文提出將動態調節與混合超時結合,對流表項的超時方式和超時時間進行雙維度動態調節。在數據流前期,為硬超時設置更短的超時時間,盡可能增加流表項的超時和轉發到控制器的數據包;偵測出大象流后,調整為空閑超時,并適當地延長超時時間,降低控制通道帶寬和流表項的存活數。
沿用上述實測的數據集,采用Python 語言編寫仿真程序對數據集進行回放仿真。本文將先分析靜態混合超時的效果,再對比靜態混合與動態混合超時,最后對比動態混合超時與另兩種超時方式動態調節的效果。
圖6為靜態調節下三種超時方式的效果對比。圖6(a)中混合超時對大象流的偵測精度和控制通道帶寬占用的優化效果要明顯優于其他兩種方式;圖6(b)中混合超時對交換機流表項存活數與控制通道帶寬占用的優化優于硬超時,但基本與空閑超時相同。
圖6 靜態調節下三種超時方式的Pareto FrontiersFig.6 Pareto Frontiers of three timeout methods under static adjustment
圖7 為靜態混合超時和動態混合超時下兩種超時時間調節方式的對比。通過圖7 對比,采用翻倍法的動態混合超時的效果在三目標優化中都要優于靜態混合超時,而采用方差均值法也僅在優化目標側重于控制通道帶寬占用率時,優化效果遜色于靜態混合超時。
圖7 動態混合超時與靜態混合超時的Pareto FrontiersFig.7 Pareto Frontiers of dynamic mixed timeout and static mixed timeout
圖8 顯示了采用方差均值調節法下三種超時方式的Pareto Frontiers。圖8(a)中,空閑超時的優化效果要略優于混合,但混合超時在優化目標側重大象流偵測遺漏時有優于空閑超時的趨勢;圖8(b)中混合超時與空閑超時的優化效果基本相同。
圖8 方差均值動態超時調節方式下三種超時方式的Pareto FrontiersFig.8 Pareto Frontiers of three timeout methods under ave_sig dynamic timeout adjustment method
圖9 顯示了采用翻倍調節法下三種超時方式的Pareto Frontiers。其中,混合超時在圖9(a)中優于硬超時和空閑超時,在圖9(b)中,混合超時的優化效果優于硬超時,與空閑超時效果幾乎相同。所以,混合超時的綜合優化效果要優于另外兩種超時方式。
圖9 翻倍動態超時調節方式下三種超時方式的Pareto FrontiersFig.9 Pareto Frontiers of three timeout methods under multiple dynamic timeout adjustment method
綜上,動態混合超時通過對流表項的超時時間和超時方式進行雙維度動態調節,有效提高了大象流的偵測精度,降低了控制通道帶寬的占用率和交換機的內存,避免了因流表項存活數過多而出現溢出的情況。動態混合超時的雙維度調節方式對優化網絡性能有顯著提升。
本節以給定初值下不同優化目標值為基準,測試了混合超時調節方式下不同時間段的超時時間初值增加一倍時優化目標的變化率,如圖10 中0.000 01 s 的變化率表示優化目標初值為0.000 01 s 和初值為0.000 02 s 的比值,分析了不同優化目標在不同階段對超時時間初值的敏感性,結果如圖10。
1)大象流偵測遺漏的敏感性:由于混合超時將數據流的初始超時設置為硬超時,當識別該流為大象流時,調節超時方式為空閑超時,并動態調節超時時間,即偵測精度只與超時時間初值有關,因此圖中靜態、方差均值和翻倍法的變化率完全相同。由圖10 可知,當初始時間較小時,偵測遺漏的敏感性很低,變化率趨于不變,但超出0.004 s 后明顯上升,并在0.1 s附近敏感性最高。
2)帶寬占用率的敏感性:從圖10 可知,帶寬占用率的敏感性對超時時間初值變化的敏感性不高,方差均值和翻倍法的敏感性幾乎相同,即使初值超過4 s,變化率也能保持在0.9左右。而靜態調節的敏感性相對較高初值超過4 s,變化率達到了0.7。
圖10 混合超時敏感性分析Fig.10 Mixed timeout sensitivity analysis
3)流表項存活數的敏感性:流表項的存活數受初值的變化影響較高,翻倍法和靜態調節在初值超過0.004 s 時,變化率都有明顯的上升,初值超過4 s 后,變化率維持在1.4 左右。方差均值法雖然在初值小于0.4 s 時的敏感性不高,但超過0.4 s 后,變化率顯著增加,在初值4 s 時超過了翻倍法和靜態調節。
本文通過貝葉斯多目標優化求解三目標聯立優化問題的Pareto Frontiers,并將得到的解集與原解集混合,再混合特定超時時間初始值下的解,并對新的解集進行了篩選,生成了新的Pareto Frontiers。圖11 顯示了翻倍法下的動態混合超時的解集完善情況,圖中●表示靜態的混合超時,▲和◆分別表示采用方差均值法和翻倍法的動態混合超時,形狀相同的空心圖形分別表示貝葉斯多目標優化得到的解集,和×分別表示特定點補充的靜態、方差均值法和翻倍法的圖形。
圖11 動態混合超時與靜態混合超時的Pareto Frontiers(優化后)Fig.11 Pareto Frontiers of dynamic mixed timeout and static mixed timeout(after improvement)
混合貝葉斯和特定點后的Pareto Frontiers 更長且更靠近原點,質量得到很大的改進。進一步說明,動態混合調節方式,特別是采用翻倍法的動態混合調節法對優化目標最為有效,也驗證了貝葉斯和特定點的補充對Pareto Frontiers的有非常好的改善效果。
NSGA-Ⅱ在一次迭代中的步驟包括非支配排序、擁擠度計算和排序,對應最壞情況的復雜度分別是O(MN2)、O(MNlogN)和O(NlogN),因此NSGA-Ⅱ算法的總體復雜度由非支配排序主導為O(MN2),其中:M為目標函數個數,N為種群規模[29],本文將N設為30;貝葉斯多目標優化算法與NSGA-Ⅱ相似,每次迭代通過貝葉斯網絡、擁擠度計算和非支配排序求解下一代種群,算法的復雜度由非支配排序主導為O(MN2),本文將貝葉斯多目標優化的種群規模設置30[27];計算特定點的算法,僅需要將超時時間代入依次求解,計算復雜度為O(MN),本文在0.001 s 到10 s 范圍內生成了15 個特定點,即N為15,因此對優化目標求解的整體復雜度為O(MN2),M為目標函數個數,N為種群規模。綜上,使用貝葉斯多目標優化算法和指定特定點對NSGA-Ⅱ算法得到的Pareto Frontiers改進的方式沒有增加求解的復雜度。
由于本優化問題的三個優化目標之間相互沖突,本文僅分析了三個優化目標之間的影響,以及如何調節流表項超時時間達到對三個優化目標的同時優化。具體如何設置流表項的超時時間大小,需要在今后的研究中根據不同的場景進行討論。
本文根據SDN 的三個性能指標,建立了數學模型,提出了通過動態調節流表項的超時方式和超時時間大小對大象流的偵測精度、控制通道帶寬的占用率和交換機內存消耗進行三目標聯立優化問題。對比流表項現有的兩種超時方式的特點,提出了一種混合超時方式,并與動態調節超時時間大小相結合,雙維度動態調節流表項。本文設計了兩種動態調節方案,通過NSGA-Ⅱ算法進行問題的求解,并針對Pareto Frontiers 質量不高的問題,通過貝葉斯多目標優化算法和補充特定點,改進了Pareto Frontiers。結果表明動態混合超時能有效改善大象流偵測精度、控制通道帶寬占用和交換機內存消耗的問題。
但是本文實驗所使用識別大象流的模型相對簡單,精度上有很大的提升空間;流表項的超時時間調節方法也相對簡單,缺乏對數據流本身特性的針對性;對優化目標求得解集的精度和分布也有待改善。下一步工作中,將對多目標求解方法進行相應研究,著手提高大象流識別模型的精度,使其能適應多變的網絡環境,然后分析對比多種數據流的特性,設計新的超時時間調節方案。