魏波
(鄭州工業(yè)應用技術(shù)學院信息工程學院,河南鄭州451100)
樹形結(jié)構(gòu)的以太網(wǎng)交換機構(gòu)成了傳統(tǒng)的分層結(jié)構(gòu)網(wǎng)絡,是一種靜態(tài)體系結(jié)構(gòu).這種網(wǎng)絡雖然在一定程度上可以滿足數(shù)據(jù)交換以及信息傳遞的需求,但是在面對日益增大的網(wǎng)絡規(guī)模和人們對高效便捷生活的需求時,其網(wǎng)絡架構(gòu)的可擴展性不足、網(wǎng)絡的動態(tài)計算性能弱以及可管理性差等缺點便暴露出來,增加了網(wǎng)絡優(yōu)化的難度及網(wǎng)絡管理人員的工作量[1].2006 年斯坦福大學的研究團隊提出了軟件定義網(wǎng)絡(SDN)的概念,SDN 是一種新型的網(wǎng)絡體系結(jié)構(gòu),為了實現(xiàn)網(wǎng)絡控制器邏輯層面的集中,采用轉(zhuǎn)發(fā)層面分離的路由決策,通過解耦控制層與數(shù)據(jù)傳輸層,實現(xiàn)控制器決定路由選擇,進而實現(xiàn)網(wǎng)絡控制的集中化,從而得到簡單方便的網(wǎng)絡管理,在減少企業(yè)運營成本的同時,使得路由技術(shù)更加靈活精確[2].本文在傳統(tǒng)路由選擇算法的基礎上,提出基于軟件定義網(wǎng)絡的多路徑路由選擇算法,通過定義權(quán)重變量,對控制器進行多方面均衡考慮,最終實現(xiàn)多路徑路由選擇.
傳統(tǒng)的網(wǎng)絡是一種靜態(tài)、封閉的體系結(jié)構(gòu),系統(tǒng)的更新發(fā)展嚴重依賴于廠商硬件設備的更新,導致了維護費用高、網(wǎng)絡刷新速度慢等問題[3].SDN 是一種新型網(wǎng)絡,以OpenFlow 為基礎,具有靈活的網(wǎng)絡可編程性,能夠?qū)崿F(xiàn)應用與創(chuàng)新網(wǎng)絡協(xié)議之間的融合,具體講只要滿足可編程化、集中式軟件管理以及分開管理的控制轉(zhuǎn)發(fā)層就屬于軟件定義網(wǎng)絡[4].而在廣義上也在不斷對SDN 的定義進行擴充,涉及到軟件驅(qū)動、軟件定義安全等深層次的概念[5].
SDN 架構(gòu)作為一種新型的網(wǎng)絡架構(gòu),設計理念主要分為3 層:基礎設施層、控制層和應用層.簡化的網(wǎng)絡設備構(gòu)成了基礎設施層即數(shù)據(jù)平面;SDN 控制軟件構(gòu)成了控制層可以自動對網(wǎng)絡狀態(tài)進行反應,保證上層控制邏輯的準確性;應用層則由應用APP 構(gòu)成[6].SDN 架構(gòu)體系通過將數(shù)據(jù)轉(zhuǎn)發(fā)層和控制層分離,改變了以往控制層和數(shù)據(jù)層集中的特點,實現(xiàn)了網(wǎng)絡編程的集中控制,進而使得網(wǎng)絡配置變得更加簡單和精確[7].SDN 體系架構(gòu)如圖1 所示.
圖1 SDN 架構(gòu)Fig.1 SDN network architecture
SDN 關鍵技術(shù)主要涉及OpenFlow 協(xié)議、工作機制以及控制層關鍵技術(shù)[8].SDN 是一種新型的網(wǎng)絡架構(gòu),本身不具有技術(shù)實現(xiàn)功能.OpenFlow 是網(wǎng)絡標準協(xié)議,是一種技術(shù),由ONF 標準化組織進行維護和宣傳,主要負責實現(xiàn)控制器和交換機之間的數(shù)據(jù)交流以及交換機操作,運行在傳輸控制協(xié)議或安全傳輸協(xié)議連接之上,通過定義控制器對交換機的管理方式以及消息格式和類型來實現(xiàn)交換機轉(zhuǎn)發(fā)層的功能.SDN 的工作機制主要有流量統(tǒng)計機制、數(shù)據(jù)流處理機制以及網(wǎng)絡拓撲學習機制,通過不同的機制實現(xiàn)網(wǎng)絡資源的合理配置,進而為網(wǎng)絡帶寬優(yōu)化提供數(shù)據(jù)支撐,實現(xiàn)網(wǎng)絡服務質(zhì)量的提升.SDN 的控制層技術(shù)主要由兩部分組成:(1)SDN 控制器及北向接口技術(shù).控制器作為軟件定義網(wǎng)絡的計算單位,提供對路由進行計算以及對網(wǎng)絡交換設備進行管理、網(wǎng)絡狀態(tài)監(jiān)測來實現(xiàn)其功能;南向接口技術(shù)實現(xiàn)了對網(wǎng)絡設備的標準化對接,北向接口技術(shù)在提供標準化管理接口的同時提供了可擴展服務接口,對資源進行統(tǒng)一調(diào)度進而實現(xiàn)網(wǎng)絡系統(tǒng)的靈活性、開放性和便利性.(2)網(wǎng)絡虛擬化及多控制器架構(gòu).網(wǎng)絡虛擬化作為云計算和數(shù)據(jù)中心技術(shù)焦點,滿足了流量隔離、多租戶以及網(wǎng)絡自由控制進而實現(xiàn)多用戶數(shù)據(jù)共享等需求;多控制器架構(gòu)可以減少控制器與交換機之間的通信延時,減輕單個控制器的負載,進而提高網(wǎng)絡服務質(zhì)量[9].
由于傳統(tǒng)的網(wǎng)絡是一種靜態(tài)、封閉的體系結(jié)構(gòu), 因此路由的選擇只考慮了數(shù)據(jù)包的交換和網(wǎng)絡拓撲,但是這種方法收斂速度慢、程序復雜,不能靈活適應數(shù)據(jù)的變化[10].SDN 路由管理技術(shù),根據(jù)流量實時性和安全性需求提出一種多路徑路由優(yōu)化模型,進而減少網(wǎng)絡擁塞實現(xiàn)多路徑優(yōu)化機制,路由選擇方案主要有基于SDN 的多徑路由選擇、基于SDN 的通用路由選擇以及基于SDN 的分段路由選擇[11].
路由規(guī)則管理主要有數(shù)據(jù)層面的路由規(guī)則放置以及更新和控制層面的數(shù)據(jù)傳遞.SDN 路由選擇策略主要是利用中間節(jié)點以及節(jié)點與節(jié)點之間的鏈路, 在網(wǎng)絡體系結(jié)構(gòu)中選擇一條最優(yōu)的目的節(jié)點和源節(jié)點之間的路徑,進而提高數(shù)據(jù)傳輸效率和負載均衡[12].常用的基于SDN 的路由選擇策略主要有基于負載均衡、基于交換等級、基于權(quán)重的路由選擇算法.SDN 路由選擇算法分類如圖2 所示.
圖2 SDN 路由選擇算法分類Fig.2 Classification of SDN routing algorithms
基于Qos 指標的路由選擇算法,通過感知Qos 指標為不同優(yōu)先級用戶和應用進行分流和路徑選擇,對最大化鏈路的剩余寬帶進行建模得到目標函數(shù)進而實現(xiàn)最優(yōu)路徑選擇,Qos 指標主要包括網(wǎng)絡吞吐量、誤碼率和傳輸時延等.基于負載均衡的路由選擇算法則是通過目的節(jié)點和源節(jié)點之間路徑,找到空閑鏈路然后將網(wǎng)絡數(shù)據(jù)分配到上面,進而實現(xiàn)鏈路的優(yōu)化,提高網(wǎng)絡利用效率,實現(xiàn)負載均衡.基于權(quán)重的路由選擇算法將路由和調(diào)度結(jié)合起來,以時延和鏈路帶寬作為選擇權(quán)重參數(shù),建立模型將路由選擇轉(zhuǎn)化為求解最優(yōu)化問題,降低系統(tǒng)復雜的同時減少流量延遲.
網(wǎng)絡系統(tǒng)結(jié)構(gòu)的優(yōu)化受多方面因素制約,為了使得節(jié)點配合網(wǎng)絡進行數(shù)據(jù)傳輸,保障數(shù)據(jù)交換以及通信的實時性和有效性,進而滿足不同服務對系統(tǒng)的需求,需要對路徑選擇機制參數(shù)、性能和安全進行綜合考慮,從而保證路徑選擇的最優(yōu)化,進而實現(xiàn)數(shù)據(jù)交換時鏈路能夠滿足需求.路徑選擇機制主要由3個方面構(gòu)成:
(1)網(wǎng)絡性能參數(shù).主要包括吞吐量和丟包率,吞吐量的數(shù)學定義為單位時間內(nèi)在網(wǎng)絡鏈路(i,j)上通過的數(shù)據(jù)量Tij即為此鏈路的吞吐量,單位時間為秒.丟包率則為數(shù)據(jù)傳輸過程中由于內(nèi)在或外在因素的影響造成的數(shù)據(jù)損失,丟包率的范圍為[0,1].
(2)網(wǎng)絡安全參數(shù).為了保證數(shù)據(jù)傳輸?shù)陌踩?需要考慮網(wǎng)絡體系架構(gòu)的可靠性,而可靠性主要通過Switch 轉(zhuǎn)換次數(shù)、路徑通過次數(shù)來決定.
(3)路徑的評價與選擇.在對源節(jié)點和目標節(jié)點進行路徑選擇時,需要考慮系統(tǒng)的多個約束條件并對鏈路進行評價,因此需要建立多路徑路由問題優(yōu)化模型,進而對優(yōu)化問題進行求解,得到路徑選擇機制.
基于SDN 的多路徑路由選擇,應通過對節(jié)點流量進行描述,同時需要考慮鏈路容量對網(wǎng)絡吞吐量的限制以及節(jié)點容量有限,進而選擇最優(yōu)路徑.節(jié)點流量的數(shù)學定義為:源節(jié)點和目標節(jié)點路徑上任一節(jié)點(s,d),流出該節(jié)點和流入該節(jié)點的數(shù)據(jù)量相等,即
式(1)中:s 為源節(jié)點,d 為路徑節(jié)點,u、v 為節(jié)點集合,E 為節(jié)點間的連接,D 為源節(jié)點到目標節(jié)點的所需流量的集.則代表經(jīng)過鏈路(u、v)從源節(jié)點s 達到目的節(jié)點d 的流量.鏈路容量是多路徑選擇的另一個重要因素,在鏈路(u、v)上鏈路容量能夠承受通過的最大值數(shù)學公式表示為
式(2)中:Cuv為鏈路容量能夠承受的最大值.
在已知網(wǎng)絡架構(gòu)模型上建立基于SDN 的多路徑路由選擇算法,通過對傳統(tǒng)路由優(yōu)化算法進行梳理和優(yōu)化,進而實現(xiàn)多路徑路由選擇,算法流程如圖3 所示.具體算法步驟為:
(1)對整個網(wǎng)絡架構(gòu),計算源節(jié)點和目標節(jié)點路徑上任一節(jié)點(s,d)可能產(chǎn)生的路徑,以及每一條路徑的流量,同時需要考慮流出該節(jié)點和流入該節(jié)點的數(shù)據(jù)量相等即鏈路容量對網(wǎng)絡的限制,保存所有數(shù)據(jù),路徑數(shù)量和路徑上的流量在約束條件下取最大值;
(2)逐個的對每條路徑上的所有節(jié)點進行驗證,以檢驗是否在流表容量范圍內(nèi),只有當一條鏈路上的所有節(jié)點都滿足條件時(目標節(jié)點和源節(jié)點不在驗證范圍),才說明此鏈路具有路由選擇性;
(3)通過步驟(2)選擇到滿足所有限制條件合適的路徑,并對不符合條件的路徑進行重新規(guī)劃計算看是否可以規(guī)劃到其他路徑,如果經(jīng)過規(guī)劃仍不能滿足系統(tǒng)的所有條件,則說明該路徑是不可行的,最終得到路由選擇的多條路徑目標值.
圖3 基于SDN 多路徑路由選擇算法流程Fig.3 Multi-path routing algorithm flow based on SDN
為了測試算法的有效性需要通過模擬環(huán)境來實現(xiàn),實驗采用的硬件環(huán)境為:主計算機16 G 內(nèi)存,CPU 3.2 G 內(nèi)存.利用Mininet 網(wǎng)絡仿真器為仿真平臺創(chuàng)建虛擬拓撲網(wǎng)絡模型,Mininet 可以方便地創(chuàng)建一個支持SDN 的網(wǎng)絡,同時設置實驗網(wǎng)絡拓撲結(jié)構(gòu):20 個源節(jié)點,2 000 個節(jié)點,鏈路容量根據(jù)實驗環(huán)境進行設置,實驗參數(shù)見表1.
表1 實驗參數(shù)配置Tab.1 Experimental parameter configuration
為了驗證本文算法的有效性, 將基于SDN 的多路徑路由選擇算法和最優(yōu)解Optimal 算法以及SPR算法在不同緩存容量下運行速度進行比較,具體見表2.
表2 不同緩存容量(S)下算法的運行速度Tab.2 Algorithm speed under different cache sizes
由表2 可知,在不同緩存容量下,基于SDN 的多路徑路由選擇算法的運行速度明顯優(yōu)于其他算法,運行時間雖然包含了仿真器本身的運行開銷,但算法仍具有優(yōu)勢,同時解決了多路徑路由選擇策略以及網(wǎng)絡鏈路的擁堵,節(jié)省了運行時間,從而能夠保證整體網(wǎng)絡架構(gòu)的總體時延在可接受范圍內(nèi).
本文針對SDN 網(wǎng)絡架構(gòu)分別從定義、關鍵技術(shù)以及路徑選擇機制進行了分析,同時介紹了SDN 路由選擇算法分類.由于控制器可以對全局信息進行分析,進而能夠為多路徑路由選擇作出判斷,因此對SDN 中關鍵技術(shù)控制器進行了著重介紹.在建立多路徑路由選擇模型的基礎上提出了基于SDN 的多路徑路由選擇算法,并通過實驗仿真驗證了算法的運行速度和有效性,具有一定的應用價值.如何對網(wǎng)絡中的延遲情況進行優(yōu)化,并且在減少丟包率的同時提高網(wǎng)絡運行效率及準確性是下一步研究的重點.