章喜字,林雙欽
(黎明職業大學教育信息中心,福建泉州362000)
近年來,隨著互聯網、云計算和大數據技術的迅猛發展,很多網絡用戶為了避免網絡擁塞而采用增大專線帶寬的方法,這種方法雖然也有一定的效果,但卻降低了專線帶寬增大前帶寬的利用率,資源浪費較嚴重。數據中心作為信息化基礎設施,是被單一組織擁有的專用服務器集群。云計算、Hadoop等需要在服務器和虛擬機間進行大量的數據通信,數據中心的網絡流量增長更為迅速,傳統的數據中心面對這些新的應用產生資源分配不合理、丟包、延時等問題,使得服務質量嚴重下降。因此,對數據中心網絡的流量控制技術提出了新的要求。數據中心網絡流量的優化是目前急需解決的問題。傳統的網絡架構臃腫,難以滿足用戶越來越復雜和多樣的需要,因此,軟件定義網絡(Software Define Network,SDN)應運而生,SDN將網絡層和控制層分離,使得網絡轉發策略得到優化[1]。
SDN為Software Define Network的英文縮寫,意思是軟件定義網絡。SDN是將控制和數據平面分離,使控制平面和數據平面松散耦合,通過控制平面的通信接口靈活控制網絡接口,從而構成可編程的新型網絡體系結構,實現底層網絡的透明性。傳統的網絡中管理員無法在網絡管理中體現自己的意志,SDN可以使網絡管理員利用軟件來規劃需要的網絡。SDN定義了多種接口協議,如OpenFlow南向接口協議和北向應用程序接口,使得SDN具有很好的管理和控制網絡的能力[2]。
自2001年始,開放網絡基金會一直致力于SDN的標準化過程,是到目前為止規模和活躍度比較大的SDN標準化組織。開放網絡基金會定義的SDN結構具有三個平面,分別是應用平面、數據平面和控制平面。平面之間的交互式是通過使用不同的接口協議進行的。其中應用平面是由若干個SDN的應用組成,是通過北向接口與控制器交互,是用戶直接使用的應用程序。用戶可以通過可編程的將需要的請求和下發的流表信息提交到控制器??刂破矫媸且粋€邏輯上的實體,一個SDN控制器能夠包含多個北向接口驅動,也可以對其自身的功能進行封裝和抽象,成為更高級的北向接口。主要過程分為自上而下的和自下而上的,自上而下的過程是將應用層的請求轉換為SDN Datapath,自下而上的過程是將底層網絡設備抽象為狀態、事件等。數據平面是由若干個叫作網元的設備組成,網元是網絡設備的統稱,傳統的網絡中需要在不同的網絡層次中使用不同的設備處理的任務,例如路由器、交換機等,OpenFlow交換機能夠具有網絡的7層功能,每個網元映射為若干個DataPath,每個DataPath沒有控制能力,都是邏輯上的網絡設備,它們只能來自控制層的指令并轉發和處理數據[3]。SDN的體系結構如圖1所示。
數據中心的規模隨著云計算的發展逐漸擴大,然而數據中心在流量優化控制、網絡資源管理、虛擬機遷移和綠色節能等方面都存在問題。
①流量優化控制。目前,數據中心的網絡流量的調度算法是利用數據中心網絡拓撲結構提供的多路徑,通過靜態哈希的方法將數據隨機分配到最短路徑上,沒有考慮鏈路負載,對大流量的調度不適合,大流量的網絡可能發生擁塞。擁塞極大影響用戶的體驗,因此,需要盡量避免[4-5]。
②網絡資源管理。大型企業的數據中心一般具有大量的服務器和虛擬機,這些設備通過數據中心連接起來系統很多的物流交換機和虛擬交換機,為了提高網絡的使用效率,需要對網絡進行集中管理。
③虛擬機遷移。在數據中心中具有大量的虛擬機,網絡中的這些虛擬機在網絡中需要根據業務需要進行遷移,因此,需要數據中心網絡能夠識別虛擬機,在虛擬機遷移時將網絡配置遷移到新的網絡中。但是,目前所存在的技術還不能完全滿足這種需要。

圖1 SDN體系結構
在數據中心流量優化技術中引入SDN技術后,控制器能夠集中控制網絡流量,能夠識別基礎轉發層的流量并對其進行控制,用戶能夠根據需要自定義業務邏輯,對應用進行開發和管理。因此,能夠對網絡的靜態現狀進行改變,適合數據中心網絡的流量變化,為基于數據中心的業務提供網絡的支持。所以,基于SDN的數據中心流量優化技術是目前工業界和學術界的研究熱點。目前,對基于SND數據中心流量優化技術中仍然存在一些問題,例如,未對大象流和老鼠流的傳輸特性綜合考慮,不能滿足數據中心網絡的需要。 本文針對基于SDN的數據中心流量優化問題,提出一種綜合的網絡流量優化技術。
整體方案設計中將分層次對層進行設計,整個方案分為三個層次,最上層是應用層,實現用戶具體業務的開發,在這一層中利用北向接口對網絡信息進行獲取。中間的網絡控制層實現本文的基于SDN流量的優化。通過控制器發出OpenFlow消息,實現網絡流量的實時、動態的調度。最下面的數據轉發層接收到OpenFlow消息,實現數據流的轉發。這時大象流和老鼠流通過最優路徑傳輸,提高網絡的吞吐率。本文提出的基于SDN的數據中心網絡流量的優化技術主要是基于中間的控制層的研究?;赟DN的數據中心網絡流量的優化整體設計方案如圖2所示。

圖2 整體方案
此方案中在網絡控制器的基礎上添加了流量統計、流量監測、流量調度和序列與反序列,能夠根據流量優化的需要進行處理。其中流量統計是使用改進的Statistics函數統計網絡狀態。流量監測根基統計所傳輸的參數設置閾值,對大象流和老鼠流進行識別。流量調度時通過大象流和老鼠流的調度算法實現。
首先獲取網絡信息,將消息傳給網絡控制器,此消息通過反序列后傳遞給流量統計模塊處理。流量統計模塊將端口速率傳遞給流量監測,監測部分設置閾值,識別大象流和老鼠流。然后流量統計部分將當前的可用帶寬、鏈路時延和丟包率等傳遞給流量調度部分,流量調度部分根據統計、監測部分傳遞的信息,制定調度策略。最后經序列和反序列的消息傳遞給數據轉發層,由數據轉發層來控制流量的轉發。
在數據中心中,老鼠流較為均勻地分布在網絡中,能夠充分利用數據中心的多路徑進行傳輸。然而對于大象流,應該能夠充分利用網絡的鏈路資源?;赟DN的數據中心網絡流量優化中,控制器時刻掌握網絡鏈路負載信息。對于大象流應能夠識別,并在控制器中進行路徑的計算,實現負載均衡。
在基于SDN的網絡中,對大象流實現集中調度需要的流程有大象流的檢測、預測大象流的帶寬需求、計算大象流的路徑、控制器下發流表項到OpenFlow交換機。具體流程如下:
①大象流檢測
在網絡中,當檢測到數據流進入時是不能夠立即判斷出是否為大象流的,而是根據靜態哈希機制為其隨機分配一條路徑進行數據的轉發。OpenFlow交換機的流表項中的計數器可以統計流量,根據流量信息判斷傳輸速率,根據流量速率的閾值判斷是否為大象流,如果某條數據被判斷為大象流,將進入下一步驟。
②大象流的帶寬需求預測
當檢測出大象流后,對此數據的流量帶寬進行預測,TCP自身的擁塞控制機制不能夠代表實際的數據發送速率,需要在后面的算法進行大象流的流量調度。
③大象流路徑計算
大象流的調度算法分為靜態的和動態的。靜態調度算法是檢測到大象流并計算出帶寬后計算轉發路徑,充分考慮實時流量分布,根據流量帶寬計算優化方案。當有新的大象流進入網絡需要重新計算路徑,需要經常改變路徑。這種方式適合網絡規模小和單控制器的數據中心。動態調度算法通過網絡拓撲和負載為新大象流計算轉發路徑。動態調度算法對新的大象流的進入不影響以前的大象流的轉發,效率較高。但是流量調度有可能不是最優。這種方式可以用在多控制器的數據中心和大規模的網絡中。
④下發流表項到OpenFlow交換機
在上一步驟中,通過靜態或者動態的調度算法得到大象流的轉發路徑之后,需要將結果轉為OpenFlow交換機的流表項,下發到OpenFlow交換機,OpenFlow交換機接收到大象流的數據包后,根據流表將大象流轉發到需要的出口,使得大象流能夠按照調度算法的路徑進行轉發。
本論文研究了基于SDN的數據中心流量優化技術,文中首先從數據中心網絡的流量控制技術的應用背景出發,提出基于SDN的數據中心流量優化技術研究的必要性。然后對SDN技術進行了概述,提出基于SDN數據中心流量優化整體方案設計和基于SDN數據中心流量優化流程。詳細給出基于SDN數據中心流量優化的整體層次結構,對流量優化流程的四個方面進行了闡述。本文所研究的基于SDN的數據中心流量優化技術保障數據傳輸的質量,有效避免網絡擁塞,提高網絡服務的質量,為此方面的進一步的研究提供了很好的參考。