甘 戈,程維杰,孔陽恒,鄢 府,李洪貴
(1.成都市公安局,四川 成都 610017;2.四川省金科成地理信息技術有限公司,四川 成都 610043)
可編程網絡的早期研究為SDN的誕生提供了理論支持。在2009年,Mckeown教授向外界正式展示了軟件定義網絡(Software Defined Network,SDN)的概念,其核心思想便是分離數據和控制。由德國電信、Facebook、谷歌、微軟、Verizon和雅虎在2011年創立的開放網絡基金會(Open Networking Foundation,ONF)制定的南向接口協議OpenFlow已經成為該領域通信接口的普遍標準。該標準在一定程度上促進了產品、服務、應用、客戶和用戶市場的發展[1]。并加速了SDN的實際應用部署。國外SDN起步較早,現已步入商業化階段。其中,比較典型的是谷歌在其主干網絡和數據庫之間使用ONF構建的通信網絡,提升了70%的網絡利用率,表明ONF具備了進入商業化階段的實力,并且還具有很大的挖掘潛力。目前,傳統網絡由于其復雜的網絡設備和各種網絡協議[3]而受到限制,不可避免地會造成一定的資源浪費,在當前大數據網絡[2]環境下,這種浪費是不合理且可避免的。在靜態操作模式下,相較于傳統網絡,SDN可實現可控、自主的二次開發。研究人員可以為不同網絡、不同通信設備等動態調整對應的配置管理參數。
該文主要研究在SDN網絡中進行流量監測和路由優化的方法。在傳統網絡中,因網絡硬件設備的封閉性,網絡協議復雜且獨立,進行流量測量時往往需要配合硬件設備的部署或者采用主動發送探測包,導致測量的成本以及準確度都很難達到預期[4]。SDN網絡擁有專注于邏輯功能和信息收集的控制器,能夠獲取整個網絡環境中的流量信息,為路由優化等需求奠定基礎。根據SDN應用層可編程的特點,開發流量測量應用和路由優化應用,完成基于SDN的網絡流量管理。
文中設計基于SDN的網絡流量管理系統,主要提高寬帶利用率,減少網絡鏈路時延。為方便研究以及測試,使用Mininet及其可視化工具構建一個SDN的虛擬網絡環境,創建一個網絡拓撲,該拓撲包含了若干的OpenFlow交換機、主機以及控制器。由于SDN網絡的集中式控制器與分布式轉發的特點[5],采用開源的Ryu作為一個遠程控制器管理整個虛擬網絡。路由優化[6]策略有很多,這里將整個網絡環境看作有向圖,測量網絡性能,獲取QoS[7](Quality of Service),包括可用帶寬、時延、抖動這三方面,將測量結果作為網絡拓撲圖各個網絡的鏈路權重。通過構建這3個性能約束,設計路由算法。總體方案設計如圖1所示。

圖1 總體方案設計
基于SDN的流量管理[8]系統設計的目的是為數據流路由優化。整個流量管理系統的仿真使用Mininet來模擬數據轉發層的通信設備,包括交換機和主機,交換機之間的鏈路也可以根據需求來模擬,控制層的Ryu控制器則是另外一個單獨的程序,流量測量和路由優化的應用基于Ryu提供的API開發,流量測量應用負責獲取網絡性能參數,路由優化應用根據流量測量應用獲取的參數設計約束、優化路由路徑。系統流程如圖2所示。

圖2 系統流程
2.1.1 網絡可用帶寬測量
帶寬[9]是指網絡鏈路上數據傳輸的速率,單位是比特率(bit per second,bps)。網絡帶寬資源有限,當帶寬被大量消耗的時候,可用帶寬會逐漸下降,極大影響網絡數據傳輸服務[10-11]。因此,可用帶寬的測量能夠較為準確地反應網絡資源的狀況。
以時間間隔T進行周期性測量,Ui表示第i條鏈路的平均負載,則有:

其中,Ri(t)表示第i條鏈路第t時刻測量到的轉發數據量,第i條鏈路的可用剩余帶寬用Ai(t,t+T)表示,因此有:

其中,Fi是鏈路的傳輸速率,由式(1)和式(2)可計算網絡鏈路的可用帶寬。參數T的選擇可以根據實際網絡流量的變化選取,基本原則是如果流量變化幅度比較大,則需要降低周期T以提高測量的準確性,如果網絡流量比較穩定,且變化不大,那么可以適當延長周期T,以降低測量對控制器和交換機資源的消耗。
2.1.2 網絡丟包率測量
丟包率反應網絡數據包的丟失情況,可用下式描述:


其中,Nri(t)表示第i條鏈路在t時刻已經接收的數據包數目,Δri(t+T)表示T時間段接收數據包的變化量,Nsi(t)表示第i條鏈路在t時刻已經發送的數據包數目,Δsi(t+T)表示T時間段發送數據包的變化量,L(t,t+T)表示第i條鏈路的丟包率。
2.1.3 網絡抖動測量
抖動H是網絡中關于時延變化程度的度量。在網絡流量管理系統中,將其定義為數據包在通信網絡收發設備中流轉所消耗時間的相對偏差。兩個數據包之間的時延差值用D表示,則有如下公式:

其中,MRi表示第i個數據包接收時間,Msi表示第i個數據包發送時間。
將N個Di擴展到一個樣本數據集,X=(x1,x2,…,xn)中,X是一個時延數據的集合,采用該樣本空間X的標準差表示抖動H,則有:

根據式(7)和式(8),采用標準差的方式描述網絡鏈路的抖動情況,H值越大,表示抖動劇烈,反之抖動平緩。
通過測量應用測量可用帶寬、丟包率、抖動這3個參數,將測量結果作為下部分算法每條網絡鏈路的權重,進行多QoS約束的路由優化。
路由算法[12-13]是為了在網絡拓撲中尋找代價最小的路由策略,通過計算網絡流量路徑獲得在同等網絡情況下更好的網絡體驗。路徑計算[14-15]是一個尋優問題,網絡節點較少時可以直接對可選鏈路進行詳細分析,選擇最優路徑,但是當節點個數增加時,所選鏈路總個數也會增加,如果分析全部鏈路,會消耗大量的時間,造成硬件資源的浪費[16],不滿足實際網絡運行的情況,所以考慮優化算法,在允許的時間復雜度和空間復雜度內進行路徑計算[17]。
計算機網絡的拓撲是一張無向圖G(Y,E),Y是拓撲圖的點集合,E是邊的集合,基于第三部分計算的QoS網絡質量參數,設W=(WB,WL,WD)是三維的QoS約束向量,即要求在帶寬、丟包率、抖動這3個參數約束下進行路由策略的優化。
算法步驟如下:
1)在測量周期T內測量三維的網絡鏈路權重Wi=(Bi,Li,Di)。
2)輸入QoS約束條件W1=(B1,L1,D1)。
3)根據式(9),計算新的權重:

4)從圖G中刪除>1或>1的所有鏈路,得到新的圖G′,如果G′無法連通,直接返回,此次優化無解,如果G′連通,跳轉至步驟5)。
5)從G′中刪除<1的鏈路,記為G″,若G″連通,跳轉至步驟6),否則跳轉至步驟7)。
6)按照前K條最短路徑算法,篩選出一條鏈路。
7)恢復步驟5)刪除的鏈路,將圖恢復到G′。按照前K條最短路徑算法[18],將最短路徑排序,選多條鏈路以滿足帶寬需求。
利用Mininet網絡模擬仿真平臺進行性能評估,所需評估參數如下:
1)平均帶寬利用率p
平均帶寬利用率p是當前N條通信鏈路帶寬比值和的平均值,理想情況下[19],N條通信鏈路的比值和為N,在實際網絡環境中,N的值受限于流量負載、設備控制等因素,實際值遠小于N。根據式(10)判斷網絡狀態的優劣。

p越大,網絡的狀態和整體性能越好,反之,p越小,網絡的狀態和整體性能越差。
2)平均傳輸時延τ
平均傳輸時延τ是指網絡鏈路數據包從發送端主機發出到接收的平均時間差,其評估公式如下:

通過式(11)計算數據流的平均傳輸時延,將獲得的參數作為評估仿真系統的性能評估指標。傳輸時延τ越小,表明網絡的性能和狀態好;反之,表明網絡的性能和狀態差。
為了更好地在虛擬環境里模擬實際環境,設置3種不同的流量,對文中流量管理系統進行測試[20-21]。并且3種數據流均按照概率模式設定3種概率,分別為p1、p2、p3。

按照表1的方式設置3種數據流進行仿真,數據流的總數分別為64條、96條、128條。

表1 數據流的數目和帶寬分配比例
使用Mininet網絡仿真環境對設計的流量管理系統進行測試。
1)不同情況的平均帶寬利用率
經過實際仿真測試,數據流大小可以影響該系統的平均帶寬利用率,不同的概率模式下平均帶寬利用率基本隨數據流增加而減少。但是當數據流滿足p2概率模式時,其帶寬利用率最高。平均帶寬率具體如圖3所示。

圖3 平均帶寬利用率比較
2)平均傳輸時延
經過實測,不同的流量負載對傳輸延時影響巨大,但是,傳輸造成的延時最大不超過30 ms。

圖4 不同流量負載下的傳輸延時
該文以SDN架構為背景,設計了基于SDN的網絡流量管理系統,包括流量測量應用和路由優化應用。路由測量應用測量可用帶寬、丟包率、抖動3個網絡性能參數,基于這3個參數約束進行路由優化,使用兩個性能評估指標測試流量管理,利用Mininet虛擬網絡仿真器進行數據流量管理模擬,在3種不同的數據流情況下,基于SDN的數據流量管理系統可以均衡地實現流量路由,為接下來的研究提供了一定的研究方向。