陽 凱 林海濤
(海軍工程大學電子工程學院 武漢430033)
SDN架構提出以來,因其將控制與數據轉發平面分離的設計架構,和強大的集中控制能力,被視為未來網絡的主流方向之一。在網絡業務流的QoS保障方面SDN網絡傳輸性能的研究主要圍繞路由策略展開[1]。然而由于網絡參數的相對客觀性,大多數流控算法只能基于網絡資源來被動的優化流量轉發路徑。緩存的配置方式作為可控因素,對流量傳輸有很大影響,是解決流量QoS的一個可研究思路。OpenFlow 1.0中定義了Enqueue行動,用于實現QoS等功能的隊列支持,可將多個隊列鏈接至1個物理端口。但是OpenFlow沒有給出En?queue行動進行QoS設置的具體方法。
在同一端口同時轉發多個數據流的數據包時,需要端口緩存來吸收流量負載的波動,一個自然而然的問題就是需要多少緩存,每個交換機都根據某種排隊規則來決定如何緩存等待發送的數據[2]。緩存區太小,數據溢出概率大,易造成數據丟失;緩存區太大,則浪費高速存儲器的資源,預處理器的性價比低[3],緩沖區執行的操作是決定交換機服務質量特性的主要方面[4]。長期以來,用于緩存長度的經驗方法是[RFC 3439][5],緩存數量等于平均往返時延乘以鏈路的容量[6],具有相當大的不準確性。
目前,一般的網絡排隊調度算法有先進先出和公平排隊算法[7],分組公平排隊類的算法會影響QoS流的傳輸質量,是通過犧牲流速率來避免網絡擁塞,且缺乏優先級保障。目前緩存隊列研究中,通常采用FIFO模型[8]。江勇等[9]通過引入排隊反饋機制,檢測將要發生擁塞時向輸入端反饋,從而緩解或者避免擁塞。王文博等[10]將整個端口排隊系統視為一個多流表多隊列系統,通過經典排隊模型求出的平均排隊長和平均等待時間來評估系統[11]。但是其設定系統對待每一個任務請求都是平等的,不符合QoS流的應用實際。為了達到較高的發送速率和較低的丟包率,還有很多其他動態網絡資源分配機制得到廣泛應用,如加權平均排隊、早期隨機檢測、BLUE、XCP和RCP等[12~13],這些方法的主要目的是將主動隊列管理的過程自動化,但上述隊列管理機制難以適應多種QoS類型的流量應用場景[14]。
在實際應用中,控制不同優先級用戶的QoS已經成為迫切的需求[15]。將端口排隊系統看做多流表多隊列系統,通過統計測量確定數據流中數據包到達的概率分布,根據QoS服務質量目標確定相應排隊模型,依據目標時延、目標丟包率、目標帶寬等QoS服務質量目標,計算出符合要求的緩存隊列大小,來執行端口的Enqueue緩存分配行動,可以保障數據流QoS需求。
SDN網絡和傳統網絡一樣,數據包的到達過程符合隨機過程。首先要根據網絡實測數據得到數據包到達間隔和服務時間的經驗分布,然后按照統計學的方法確定合于哪種理論分布,并估計它的參數值。
對網絡中的各節點交換機來說,用戶產生的業務數據包是突發的,其數量和持續時間不定、優先級相對也是隨機的。設N(t)表示在時間區間[0,t)內到達的數據量,令Pn()t1,t2表示在時間區間(t2>t1,n≥0)內有n個數據到達的概率,在充分小的Δt時間內有其中,λ>0表示概率強度。數據的到達分布形成泊松流,可得在[0,t)區間內至少有1個數據到達的概率是1-P0(t)=1-e-λt。緩存處理時間v的分布也服從指數分布,設它的分布函數和密度分別是。其中,μ表示單位時間能被處理完的數據量,稱為平均處理率。
通過統計每個數據流進入端口緩存的監測數據,得到在時間T內,同時有n個數據到達,則可得到再統計n個已完成端口處理轉發的數據的平均時間,設處理第i個數據包所需時間為vi,則可得到數據包的平均處理率設為服務強度。當ρ<1時,排隊長度為有限長,最終達到穩定狀態。
實際緩存系統中,緩存量有限,設系統的最大容量為N。對于單緩存隊列的情形,排隊等待的數據最多為N-1,在某一數據到達時,如緩存隊列中已有N個數據,那么以后到達的數據就被拒絕進入系統。穩態時,可根據排隊論的Little公式得到數據包排隊系統的各種指標:系統中數據平均隊長Ls系統中數據平均逗留時間Ws的期望值。

一般來說,Ls越大,處理效率越低。而Ls過低,又不利于平衡網絡波動,影響傳輸質量。逗留時間為數據包從進入排隊系統到轉發出的時間,為等待時間和服務時間之和。若QoS流有延時服務質量目標dobj,則Ws≤dobj,有:

此條件下得到的N值即為dobj下的緩存隊列最大隊長,記為Lmax,超過此隊長,則超過統計概率PN會超出延時。
在緩存隊長L(L 可得到最小緩存隊長Lmin,則在此緩存隊長下可以保證丟包率不超過目標pobj。 本文使用Matlab編寫模型仿真。為形成對比數據,每個模型設置三組參數進行計算。每個數據包均攜帶優先級和QoS服務質量指標。接收端統計數據包到達的分布特征,數據處理率直接設定,得到模型參數,通過不同系列緩存隊長值計算得到緩存隊長和系統時延之間的關系曲線。圖1為M/M/1單隊列緩存時延目標要求下的緩存-時延曲線,結合式(2)分析,此模型時延存在穩態上限值,處理率μ越大,穩態下的時延極限越小。服務強度ρ決定了曲線曲率變化速度。 圖1 M/M/1模型下緩存隊長和時延曲線 圖2 為M/M/1模型下隊長與丟包率曲線圖。結合式(3)分析,此模型下的丟包率由服務強度ρ決定,同等隊長下,服務強度越大,丟包率越小。隨著緩存隊長的增加,丟包率趨于零。 圖2 M/M/1模型下緩存隊長與丟包率曲線 對比三種模型特征,針對不同QoS業務的服務質量目標,可以用相應的緩存分配方式來滿足需求。總結來說,λ<μ時,用M/M/1模型,用式(2)、式(3)來計算符合服務目標要求的隊列長。通過緩存的調整,可以在滿足QoS服務目標的前提下,優化緩存空間分配,提高緩存資源的利用效率,進而提高網絡的吞吐量。 在SDN網絡中,要保障特定數據流QoS指標,除了在流量控制算法上進行創新和改進之外,通過端口Enqueue排隊執行優化的緩存策略也是一種有效的方法。根據數據流統計特征,應用合理的排隊模型建模來分配和使用端口緩存,能夠提高網絡端口的緩存利用率,提高轉發效率和吞吐量,從而提升網絡的服務價值。數據包符合泊松模型是較為普遍但不絕對的情況。當數據包到達規律是任意分布時,就要采用一般服務時間M/G/1模型,在以后的研究中可以做進一步探討。
3 模型仿真及結果分析


4 結語