鄧志華
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610025)
自適應(yīng)在SDN網(wǎng)絡(luò)中應(yīng)用的研究
鄧志華
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610025)
在大規(guī)模的SDN網(wǎng)絡(luò)中,網(wǎng)絡(luò)中控制器的部署會(huì)在很大程度上影響整個(gè)網(wǎng)絡(luò)的延遲、可靠性以及負(fù)載均衡等。由于大規(guī)模網(wǎng)絡(luò)自身的高延遲、突發(fā)性等固有的特點(diǎn),很難保證在一次部署之后永久性高效地運(yùn)行整個(gè)網(wǎng)絡(luò),隨著網(wǎng)絡(luò)器件的加入,以及不同應(yīng)用的部署網(wǎng)絡(luò)性能尤其是控制器的性能會(huì)隨之受到影響。在控制器的部署方面,控制平面在數(shù)量上經(jīng)歷了從單控制器到多控制器,在結(jié)構(gòu)上經(jīng)歷了從多控制器的扁平化結(jié)構(gòu)到垂直結(jié)構(gòu)的發(fā)展,在靈活性和可擴(kuò)展性方面[1],經(jīng)歷了從靜態(tài)的部署到動(dòng)態(tài)地部署,意圖通過(guò)改變控制器的部署方式,使網(wǎng)絡(luò)達(dá)到一個(gè)最佳的狀態(tài)(具備高性能、低延遲、安全可靠、靈活性高等的特點(diǎn))。現(xiàn)有的改進(jìn)算法都只是針對(duì)某些特定的場(chǎng)景進(jìn)行分析與設(shè)計(jì)。然而,當(dāng)改變特定的參數(shù)時(shí),由于算法本身對(duì)這些特定參數(shù)的高度敏感性以及大規(guī)模網(wǎng)絡(luò)多樣性的特點(diǎn),因此,這些算法不具備解決突變和多樣性強(qiáng)的大規(guī)模網(wǎng)絡(luò)負(fù)載均衡問題。本文主要從控制器部署的靈活性和可擴(kuò)展性方面,分析控制器負(fù)載均衡問題產(chǎn)生的原因以及自適應(yīng)的特點(diǎn),并證明通過(guò)設(shè)計(jì)自適應(yīng)學(xué)習(xí)算法來(lái)改進(jìn)現(xiàn)有針對(duì)控制器負(fù)載均衡問題的部署策略的可行性。
1.1傳統(tǒng)網(wǎng)絡(luò)
由于傳統(tǒng)網(wǎng)絡(luò)的控制平面和轉(zhuǎn)發(fā)平面的耦合使得整個(gè)網(wǎng)絡(luò)系統(tǒng)相對(duì)封閉,傳統(tǒng)網(wǎng)絡(luò)的負(fù)載均衡裝置一般是在考慮計(jì)算機(jī)設(shè)備(例如CPU、內(nèi)存的時(shí)用率)的工況時(shí)所設(shè)計(jì)的一種均衡決策。而沒有考慮到龐大的計(jì)算機(jī)網(wǎng)絡(luò)流量對(duì)終端系統(tǒng)處理能力所帶來(lái)的性能瓶頸以及缺少對(duì)網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備的細(xì)粒度控制和調(diào)度策略,盡管傳統(tǒng)的網(wǎng)絡(luò)路由器能夠在不同路徑之間分配帶寬,但這也僅僅局限于對(duì)線路的控制[3]。圖1介紹了傳統(tǒng)的服務(wù)器端網(wǎng)絡(luò)負(fù)載均衡的模型,均衡服務(wù)器根據(jù)后端服務(wù)器(S1,S2,S3)的負(fù)荷狀態(tài)通過(guò)分發(fā)機(jī)制將外部客戶端請(qǐng)求的分發(fā)到不同的服務(wù)器,因此,均衡服務(wù)器必須保持與客戶端之間的會(huì)話并且將同一個(gè)會(huì)話TCP包通過(guò)NAT轉(zhuǎn)換提交給同一個(gè)處理該會(huì)話的服務(wù)器。
圖1
1.2SDN網(wǎng)絡(luò)
基于SDN的服務(wù)器負(fù)載均衡網(wǎng)絡(luò)不再直接修改網(wǎng)絡(luò)中TCP包的源/目的IP地址、源/目的端口等,而是通過(guò)分布式流表來(lái)實(shí)現(xiàn)NAT的轉(zhuǎn)換功能,SDN均衡器在網(wǎng)絡(luò)中只是基于相應(yīng)的均衡算法產(chǎn)生、修改或者刪除流表中的規(guī)則(如圖2)。這樣,一方面降低了網(wǎng)絡(luò)中對(duì)包處理的開銷,另一方面通過(guò)解耦均衡控制器、維護(hù)服務(wù)器負(fù)載狀態(tài)來(lái)更新流表轉(zhuǎn)發(fā)規(guī)則,提高了網(wǎng)絡(luò)管理的效率和靈活性。文獻(xiàn)[3-4]都提出來(lái)一種通過(guò)SDN來(lái)分發(fā)用戶請(qǐng)求的算法,一種是通過(guò)通配符匹配來(lái)降低流表中規(guī)則數(shù)量,另一種則通過(guò)靜態(tài)和動(dòng)態(tài)地適配算法來(lái)管理外部請(qǐng)求,兩者都能夠很好地降低網(wǎng)絡(luò)資源的消耗以及均衡網(wǎng)絡(luò)服務(wù)器的負(fù)荷。
圖2
上一節(jié)對(duì)比了傳統(tǒng)網(wǎng)絡(luò)和SDN網(wǎng)絡(luò)在處理網(wǎng)絡(luò)負(fù)載均衡問題上的優(yōu)缺點(diǎn),由于傳統(tǒng)網(wǎng)自身的許多限制(封閉性所造成的),網(wǎng)絡(luò)的負(fù)載均衡方法受到了網(wǎng)絡(luò)本身體系結(jié)構(gòu)上的瓶頸。而對(duì)于SDN網(wǎng)絡(luò)來(lái)說(shuō),相當(dāng)于開放了這些限制,使其在設(shè)計(jì)高性能算法等各方面提供了條件。本節(jié)將分析在大規(guī)模網(wǎng)絡(luò)中使用SDN處理網(wǎng)絡(luò)負(fù)載均衡上所遇到的一些問題以及當(dāng)前相應(yīng)的一些解決方法。
在大規(guī)模的網(wǎng)絡(luò)中,如何部署SDN控制器以及如何劃分SDN域?qū)W(wǎng)絡(luò)延遲、可靠性、負(fù)載均衡等起著至關(guān)重要的作用。文獻(xiàn)[5]中,提出了一種對(duì)平均延遲部署策略[6](這是對(duì)最壞情況延遲部署策略的一種改進(jìn))改進(jìn)的策略,即通過(guò)譜聚類算法將WAN劃分為多個(gè)AS(自治系統(tǒng))來(lái)對(duì)待,因?yàn)槿绻麑⒄麄€(gè)控制平面作為一個(gè)整體來(lái)對(duì)待,將會(huì)忽略每個(gè)控制器獨(dú)立個(gè)體的可靠性以及控制器之間的傳播時(shí)延,相比平均延遲部署策略,這種分區(qū)策略能夠很好地保證各個(gè)OpenFlow交換機(jī)對(duì)流的處理延遲隨著流的增加而保持一個(gè)相對(duì)平穩(wěn)的趨勢(shì)。上述的將WAN劃分為多個(gè)AS的方法雖然可以有效地保持較好的負(fù)載均衡狀態(tài),但沒有一個(gè)確切的算法來(lái)確定分區(qū)后的控制器如何部署以及在網(wǎng)絡(luò)中部署多少個(gè)控制器(這是一個(gè)NP-hard問題),另一方面,由于聚類方法自身的局限性,不能滿足計(jì)算速度快、聚類精度高和無(wú)監(jiān)督(不依賴先驗(yàn)知識(shí)、對(duì)參數(shù)不敏感)等的基本要求[6]。因此,需要一種能夠隨網(wǎng)絡(luò)狀態(tài)變化情況自學(xué)習(xí)的算法來(lái)滿足大規(guī)模網(wǎng)絡(luò)突變性強(qiáng)、結(jié)構(gòu)復(fù)雜等的特點(diǎn)而進(jìn)行動(dòng)態(tài)調(diào)整和適應(yīng)。下節(jié)將從自適應(yīng)算法的特點(diǎn)以及適應(yīng)場(chǎng)景,分析自適應(yīng)算法在解決大規(guī)模SDN網(wǎng)絡(luò)負(fù)載均衡方面應(yīng)用的可能性。
自適應(yīng)是指在處理和分析過(guò)程中,根據(jù)數(shù)據(jù)的特征自學(xué)習(xí)并動(dòng)態(tài)地調(diào)整對(duì)數(shù)據(jù)的處理方法、順序、參數(shù)和邊界條件/約束條件等,使所處理的數(shù)據(jù)適應(yīng)統(tǒng)計(jì)分布特征和結(jié)構(gòu)特征而取得最佳的處理效果的過(guò)程。在本文中的實(shí)現(xiàn)是通過(guò)AS中交換機(jī)的數(shù)據(jù)反饋來(lái)動(dòng)態(tài)調(diào)整控制器的約束條件來(lái)應(yīng)用該想法。
3.1自適應(yīng)算法
自適應(yīng)算法所采用的最優(yōu)準(zhǔn)則有最小均方誤差(LMS)準(zhǔn)則,最小二乘(LS)準(zhǔn)則、最大信噪比準(zhǔn)則和統(tǒng)計(jì)檢測(cè)準(zhǔn)則等,其中最小均方誤差(LMS)準(zhǔn)則和最小二乘(LS)準(zhǔn)則是目前最為流行的自適應(yīng)算法準(zhǔn)則[7],根據(jù)應(yīng)用場(chǎng)景的不同,自適應(yīng)算法的實(shí)現(xiàn)方式也會(huì)有相應(yīng)的變化,如文獻(xiàn)[8]中提出的一種分布式任務(wù)的節(jié)點(diǎn)自適應(yīng)算法,通過(guò)結(jié)合系統(tǒng)反饋數(shù)據(jù)和概率論,得出網(wǎng)絡(luò)各項(xiàng)參數(shù)指標(biāo),并運(yùn)用分段討論和求極值簡(jiǎn)化算法的表達(dá)形式,提高了自適應(yīng)算法的適用性;文獻(xiàn)[9]提出了一種基于IP包頭多域分類的自適應(yīng)負(fù)載均衡算法,通過(guò)動(dòng)態(tài)調(diào)整TCP流數(shù)目最少的流數(shù),能夠在各處理節(jié)點(diǎn)間保持動(dòng)態(tài)負(fù)載均衡的同時(shí)保持會(huì)話的完整性,并分析并總結(jié)了一些動(dòng)態(tài)的和自適應(yīng)調(diào)度的處理負(fù)載均衡的算法。
3.2自適應(yīng)在SDN網(wǎng)絡(luò)中的應(yīng)用
設(shè)想:在分區(qū)后的大規(guī)模SDN網(wǎng)絡(luò)中,每個(gè)AS中的交換機(jī)通過(guò)反饋?zhàn)陨頎顟B(tài)而控制器通過(guò)該反饋的情況以及系統(tǒng)負(fù)荷等情況綜合分析調(diào)整約束條件,使各自治系統(tǒng)達(dá)到一個(gè)最佳的均衡狀態(tài),該系統(tǒng)在假設(shè)SDN網(wǎng)絡(luò)在自治系統(tǒng)劃分和控制器部署問題上已經(jīng)得到了一個(gè)成熟地解決方案,本文針對(duì)的是網(wǎng)絡(luò)部署后期所發(fā)生的網(wǎng)絡(luò)負(fù)載不均衡現(xiàn)象所提出的一種解決方案。由于大規(guī)模網(wǎng)絡(luò)遷移交換機(jī)會(huì)帶來(lái)很多計(jì)算開銷,因此,對(duì)于終端出現(xiàn)瓶頸的系統(tǒng)來(lái)說(shuō),遷移交換機(jī)無(wú)疑是一種糟糕的選擇。選擇自適應(yīng)算法的一個(gè)很重要的原因,就是使用自適應(yīng)在單個(gè)的AS中進(jìn)行動(dòng)態(tài)調(diào)整,而對(duì)于SDN網(wǎng)絡(luò)來(lái)說(shuō),這種調(diào)整是通過(guò)選擇控制器的策略,并通過(guò)該策略來(lái)改變流轉(zhuǎn)發(fā)規(guī)則實(shí)現(xiàn)的,因此,避免了因?yàn)橛?jì)算和轉(zhuǎn)換等導(dǎo)致的各種包處理開銷。
以下是實(shí)現(xiàn)該設(shè)想的操作流程圖。
對(duì)比傳統(tǒng)的SDN網(wǎng)絡(luò),控制器多了一個(gè)自適應(yīng)算法分析模塊,該模塊通過(guò)下層數(shù)據(jù)平面交換機(jī)所反饋的網(wǎng)絡(luò)狀態(tài)對(duì)整個(gè)AS系統(tǒng)進(jìn)行動(dòng)態(tài)分析,并對(duì)分析的結(jié)果與特定的約束條件進(jìn)行判斷,選擇一種適合該自治系統(tǒng)最佳的一種系統(tǒng)負(fù)載均衡策略,如果不滿足條件,則不會(huì)更改控制器的轉(zhuǎn)發(fā)策略,這樣一方面可靈活的控制下層數(shù)據(jù)流的轉(zhuǎn)發(fā);另一方面,在一定程度上減少不必要的算法開銷。自適應(yīng)既可以選擇一種局部最優(yōu)的策略算法,也可以在后期通過(guò)各個(gè)自治系統(tǒng)之間的東西向接口通信靈活地選擇其他合適的策略。
大規(guī)模網(wǎng)絡(luò)的多樣性特定決定了網(wǎng)絡(luò)不能單一地通過(guò)某種統(tǒng)一的策略來(lái)達(dá)到全局網(wǎng)絡(luò)的負(fù)載均衡,加入自適應(yīng)模塊相當(dāng)于一種對(duì)子網(wǎng)絡(luò)的定制化,根據(jù)子網(wǎng)絡(luò)的需求選擇一種最佳的轉(zhuǎn)發(fā)策略。這種網(wǎng)絡(luò)系統(tǒng)的控制平面負(fù)責(zé)管理全局網(wǎng)絡(luò)負(fù)載均衡,而轉(zhuǎn)發(fā)平面通過(guò)反饋機(jī)制實(shí)現(xiàn)局部網(wǎng)絡(luò)的負(fù)載均衡,這是一種雙向平衡策略。
圖3
本文從網(wǎng)絡(luò)產(chǎn)生負(fù)載均衡問題的原因出發(fā),對(duì)比SDN網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)在解決服務(wù)器端負(fù)載均衡上的優(yōu)缺點(diǎn),以及SDN在解決大規(guī)模網(wǎng)絡(luò)負(fù)載均衡問題上的不足,并描述自適應(yīng)算法的適應(yīng)場(chǎng)景,提出了使用自適應(yīng)的SDN網(wǎng)絡(luò)系統(tǒng)。綜合現(xiàn)有關(guān)于SDN網(wǎng)絡(luò)負(fù)載均衡問題的解決思路,論證了自適應(yīng)算法在解決該領(lǐng)域問題的可行性。后階段工作將針對(duì)大規(guī)模的SDN網(wǎng)絡(luò)設(shè)計(jì)具體的實(shí)驗(yàn),并對(duì)各種場(chǎng)景進(jìn)行實(shí)驗(yàn)對(duì)比和分析論證。
[1]左青云,陳鳴,趙廣松,邢長(zhǎng)友,張國(guó)敏,蔣培成.基于OpenFlow的SDN技術(shù)研究[J].軟件學(xué)報(bào),2013,24(5):1078-1097.
[2]Mao Qilin,Shen WeiKang.A Load Balancing Method Based on SDN,Measuring Technology and Mechatronics Automation(ICMTMA)[C],2015,18-21.
[3]Hai-long Zhang,Xiao Guo.SDN-Based Load Balancing Strategy for Server Cluster[C].Proceedings of CCIS,2014.
[4]Peng Xiao,Wenyu Qu.The SDN Controller Placement Problem for WAN[C].Symposium on Privacy and Security in Commutations, IEEE/CIC ICCC,2014.
[5]B.Heller,R.Sherwood,N.McKeown,The Vontroller Placement Problem[C].In Proc:The First Workshop on Hot Topics in Software Defined networks,HotSDN,2012.
[6]楊博,劉大有.復(fù)雜網(wǎng)絡(luò)聚類方法[J],Journal of Software 2009(9),54-66.
[7]自適應(yīng)算法.http://baike.baidu.com/view/3378814.htm
[8]閔帆,石兵,楊國(guó)維,周明天.分布式系統(tǒng)中任務(wù)分配的一種節(jié)點(diǎn)自適應(yīng)算法[J].計(jì)算機(jī)學(xué)報(bào),2003,26(3):302-308.
[9]陳一驕,盧錫城,時(shí)向泉,孫志剛.一種面向會(huì)話的自適應(yīng)負(fù)載均衡算法[J].計(jì)算機(jī)學(xué)報(bào),2008,19(7):1828-1837
SDN;Control Plane;Load Balancing;Adaptive Algorithm
Research on Self-Adaptive Applied in SDN Network
DENG Zhi-hua
(College of Computer Science,Sichuan University,Chengdu 610065)
1007-1423(2016)02-0016-04
10.3969/j.issn.1007-1423.2016.02.004
鄧志華(1989-),男,湖南長(zhǎng)沙人,碩士,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)
2015-11-26
2015-12-26
SDN網(wǎng)絡(luò)控制與轉(zhuǎn)發(fā)分離的思想使得網(wǎng)絡(luò)具有更好的可編程性以及更好的資源利用率;然而,隨著網(wǎng)絡(luò)規(guī)模的增大,單控制器因其自身的性能瓶頸不能滿足大規(guī)模網(wǎng)絡(luò)的控制需求,而多控制器則需要通過(guò)交互自身的網(wǎng)絡(luò)狀態(tài)來(lái)生成全局網(wǎng)絡(luò)視圖,并根據(jù)該網(wǎng)絡(luò)視圖生成相應(yīng)的轉(zhuǎn)發(fā)規(guī)則來(lái)控制數(shù)據(jù)平面進(jìn)行流的轉(zhuǎn)發(fā);對(duì)于多控制器的SDN網(wǎng)絡(luò),根據(jù)全網(wǎng)視圖下發(fā)的規(guī)則進(jìn)行流的轉(zhuǎn)發(fā),可能產(chǎn)生控制平面同一時(shí)刻的異步狀態(tài)以及網(wǎng)絡(luò)的不穩(wěn)定性和負(fù)載均衡等這些潛在的問題。自適應(yīng)算法能夠通過(guò)學(xué)習(xí)調(diào)整并優(yōu)化代價(jià)函數(shù),使之達(dá)到最佳的均衡狀態(tài)。針對(duì)SDN網(wǎng)絡(luò)負(fù)載均衡問題產(chǎn)生的原因以及目前解決該問題所提出方法及存在的優(yōu)缺點(diǎn),介紹并分析了自適應(yīng)算法在解決大規(guī)模SDN網(wǎng)絡(luò)負(fù)載均衡問題上的可行性。
SDN;控制平面;負(fù)載均衡;自適應(yīng)算法
The idea of decoupling control plane from data plane in software defined networks which makes the network a better programmability and resource utilization.Nevertheless,with the scale of increasing network,this centralization can not meet the needs of large-scale network in single controller network for it’s performance bottlenecks and may trigger asynchronous state,unreliability and load balancing problems for multi-controller SDN network to forward stream according to this global network view.Adaptive algorithm can adjust and optimize the cost function by learning to balancing state.Discusses the causes and existing solutions including its pros and cons to load balancing and the feasibility of adaptive algorithm in solving large-scale SDN network load balancing problem.