中國通信建設(shè)集團(tuán)設(shè)計院有限公司第四分公司 孫鵬飛
基于S D N流量測量的數(shù)據(jù)中心多路徑傳輸研究
中國通信建設(shè)集團(tuán)設(shè)計院有限公司第四分公司 孫鵬飛
因為數(shù)據(jù)中心在流量布局上出現(xiàn)很多不均勻的情況,造成在傳輸?shù)臅r候經(jīng)常發(fā)生網(wǎng)絡(luò)擁堵的問題,而且由于數(shù)據(jù)中心在流量方面具有一定的特殊性,造成傳統(tǒng)網(wǎng)絡(luò)的流量工程和數(shù)據(jù)中心的流量傳輸無法相互適應(yīng),所以,本文利用仿真平臺來進(jìn)行一定的模擬,進(jìn)行流量工程方案的制定,以供參考。
網(wǎng)絡(luò)擁塞;SDN;鏈路關(guān)鍵度;多路徑路由;流量均衡
和單路徑進(jìn)行比較后發(fā)現(xiàn),多路徑的路由可以非常有效地防止由于鏈路失效或是出現(xiàn)鏈路擁塞的情況導(dǎo)致數(shù)據(jù)包丟失的情況出現(xiàn),更好地保證傳輸過程中的可靠性。把數(shù)據(jù)流在節(jié)點在一定范圍內(nèi)進(jìn)行多條路徑的動態(tài)分配,讓網(wǎng)絡(luò)里面每一個鏈路的資源通過率可以達(dá)到一個均衡,這樣可以很好地控制網(wǎng)絡(luò)數(shù)據(jù)傳輸過程中擁塞的情況,讓數(shù)據(jù)包的丟失率降低到一定的程度。
因為數(shù)據(jù)中心的所有者歸屬比較單一,這就很好地達(dá)到了SDN所要求的集中控制。集中控制主要是根據(jù)對全局網(wǎng)絡(luò)的管控來進(jìn)行的,依照數(shù)據(jù)流的調(diào)度算法來進(jìn)行,對最佳的轉(zhuǎn)發(fā)策略進(jìn)行計算,然后向交換機進(jìn)行下發(fā),只有這樣才可以更精確地對流量均衡進(jìn)行控制。SDN在數(shù)據(jù)的分組轉(zhuǎn)發(fā)和控制分離過程中是非常重要的技術(shù),通過控制器對數(shù)據(jù)分組接入的情況和路由進(jìn)行控制,能非常好地保持細(xì)粒度流量的均衡。然而同時也出現(xiàn)控制器平臺在處理能力方面不足的情況、這是尤其需要考慮的情況。
2.1.1 全局路徑時延探測
為了讓F-TAM觸發(fā)的首個熔斷周期進(jìn)行控制,需要在其之前進(jìn)行各條F-TAM傳輸路徑情況的評估,并對熔斷周期T w值進(jìn)行計算,需要在每個O-D對范圍內(nèi)的預(yù)設(shè)路徑里面進(jìn)行測量,通過收到的探測包來對路徑時延值進(jìn)行判斷。這種探測一般情況下被叫做全局路徑的探測,這些探測包被一般情況下被叫做全局路徑探測包.需要進(jìn)行關(guān)注的點在于這一過程會一直進(jìn)行持續(xù),不管是否出現(xiàn)路徑把F-TAM觸發(fā)了。探測包在發(fā)送的間隔方面一定要保持適當(dāng),如果時間太長,那么得到的數(shù)據(jù)在時效性方面就無法達(dá)到要求,太短則會讓交換機到控制器的通信鏈路的時延情況進(jìn)一步被放大。
2.1.2 F-TAM路徑時延探測
測量某一個大流在所有F-TAM的路徑里面出現(xiàn)的時延情況時,其目的與全局探測是非常相似的。當(dāng)啟動F-TAM后,須要依照路徑的時延來對最優(yōu)路徑進(jìn)行選擇.因為在探測的過程中開銷非常小,所以這種探測和全局探測進(jìn)行比較的時候可以發(fā)現(xiàn)時間的間隔非常短,一般設(shè)置在1秒左右。
2.1.3 F-TAM測量機制執(zhí)行算法
下面進(jìn)行具體步驟的闡述:步驟1,由通過探測包生產(chǎn)函數(shù)對探測包進(jìn)行生成。步驟2,利用探測流表生成函數(shù)來進(jìn)行探測包轉(zhuǎn)發(fā)流表項的生成工作;探測包的觸發(fā)器對探測包的觸發(fā)函數(shù)進(jìn)行執(zhí)行工作,通過邊緣層交換機對傳輸路徑集進(jìn)行遍歷,并且進(jìn)行合并把探測包進(jìn)行下發(fā),探測包通過已安裝的轉(zhuǎn)發(fā)流表進(jìn)行規(guī)定路徑的傳輸工作。步驟3,探測包接收器需要對探測包回收函數(shù)進(jìn)行執(zhí)行,如果出現(xiàn)探測包超時檢驗函數(shù)回復(fù)真的情況,則推送信號給控制器。
2.2.1 大流探測
采取的相應(yīng)手段是改進(jìn)交換機推送消息的手段,也就是在流表項里面進(jìn)行觸發(fā)器的添加,當(dāng)數(shù)據(jù)流計數(shù)器符合對大流的閾值進(jìn)行設(shè)定的要求時,將向控制器進(jìn)行消息的推送;另外,需要把大流閾值控制在1到10MB之間,只有這樣才是可以依照網(wǎng)絡(luò)負(fù)載的狀態(tài)保持負(fù)載的均衡,充分通過對網(wǎng)絡(luò)資源的利用來讓額外開銷的情況降低。如果網(wǎng)絡(luò)的負(fù)載比較輕,則需要把閾值設(shè)大,比如說設(shè)到10MB;如果網(wǎng)絡(luò)的負(fù)載比較重,則需要把閾值設(shè)小,比如說1MB左右。
2.2.2 鏈路負(fù)載探測
F-TAM的觸發(fā)條件在于大流導(dǎo)致其中一條鏈路出現(xiàn)負(fù)載達(dá)到閾值的情況,所以必須要測量大流里面每一個F-TAM路徑里面的鏈路負(fù)載情況,這就被叫做單一路徑的鏈路檢測。在這個過程中不需要在鏈路上進(jìn)行探測包的下發(fā)工作,只需要對控制器上傳的端口進(jìn)行定向統(tǒng)計數(shù)據(jù)就可以了。
2.2.3 F-TAM觸發(fā)機制執(zhí)行算法
下面進(jìn)行具體步驟的闡述:步驟1,首先需要進(jìn)行大流判斷函數(shù)的執(zhí)行,讓大流集合得以生成,同時對上一個熔斷周期里面執(zhí)行的F-TAM數(shù)據(jù)流進(jìn)行獲取,并通過prev-ftamf l ows的相關(guān)定義集合。步驟2,需要進(jìn)行大流集合的遍歷,并對大流傳輸路徑信息進(jìn)行獲取。步驟3,對大流屬于prev-ftamflows集合的情況進(jìn)行判斷,如果是真,則把算法1觸發(fā),同時利用執(zhí)行鏈路負(fù)載閾值來進(jìn)行大流傳輸路徑有無鏈路達(dá)到閾值來進(jìn)行判斷,如果是真則把算法1觸發(fā)了,并添加數(shù)據(jù)流到prev-ftamf l ows集合里面去。
在仿真平臺里面進(jìn)行運行的宿主機主要是Opti-Ple×9020,里面進(jìn)行了一個8核,3.4GHz主頻的64位處理器的設(shè)置,內(nèi)存有大約10GB,并進(jìn)行了Ubuntu12.04操作系統(tǒng)的安裝,主機進(jìn)行Mininet v2.0仿真平臺的安裝。
數(shù)據(jù)中心的網(wǎng)絡(luò)流量在一般情況下具有高突發(fā)性,另外95%以上的數(shù)據(jù)流往往是TCP流,因為物理鏈路在高帶寬低時延的時候,造成了數(shù)據(jù)流在傳輸?shù)臅r候出現(xiàn)大量的由于等待接收端確認(rèn)而造成暫停發(fā)送的情況,出現(xiàn)很多空閑時間的間隔,這些間隔在一定范圍內(nèi)傳輸數(shù)據(jù)包和流片非常類似。F-TAM在算法方面定義了熔斷時間Tw進(jìn)行了定義,若是出現(xiàn)設(shè)置的熔斷時間值能和TCP的擁塞控制協(xié)議進(jìn)行配合,讓發(fā)送間隔非常自然則屬于最優(yōu)的狀態(tài)。分析一個含有30個機架數(shù)據(jù)的網(wǎng)絡(luò)數(shù)據(jù)流特性后得出結(jié)論,每個機架能進(jìn)行4500臺虛擬主機的提供量,這個提供量能夠?qū)?000個不同的企業(yè)級運用進(jìn)行支撐。
3.3.1 數(shù)據(jù)包亂序比較
防止在接收端出現(xiàn)數(shù)據(jù)包亂序的情況是對多路徑實施流量工程可靠性進(jìn)行評價的一個非常重要的指標(biāo),F(xiàn)-TAM算法在設(shè)計的過程中就考慮到避免采取多路徑的傳輸通道而導(dǎo)致接收端出現(xiàn)數(shù)據(jù)包亂序的情況出現(xiàn),通過一定的實驗結(jié)果表明了當(dāng)F-TAM采取多路徑傳輸?shù)倪^程中,能夠科學(xué)有效地避免接收端出現(xiàn)數(shù)據(jù)包亂序的情況。
3.3.2 吞吐量比較
數(shù)據(jù)中心在遷移虛擬機、備份數(shù)據(jù)的過程中,一般情況下需要非常高的吞吐量來進(jìn)行保障,這是根據(jù)多路徑路由機制來做好流量工程非常重要的一種體現(xiàn)。通過相關(guān)的實驗結(jié)果體現(xiàn)出以下特點:當(dāng)節(jié)點交換機采取F-TAM方式進(jìn)行路由策略部署的過程中,與采取ECMP的策略或是GFF部署的策略進(jìn)行比較,網(wǎng)絡(luò)的吞吐量比后兩者明顯高。盡管F-TAM可以進(jìn)行熔斷緩存、控制傳輸大流的動作,然而動作需要通過交換機來進(jìn)行執(zhí)行,目標(biāo)是防止鏈路發(fā)生擁塞的情況,依照TCP擁塞的相關(guān)控制手段來進(jìn)行,這樣的條件下不單單可以控制源端的發(fā)送速率,而且可以通過多路徑傳輸來加強網(wǎng)絡(luò)的吞吐量。
本文對于數(shù)據(jù)中心的網(wǎng)絡(luò)進(jìn)行一種根據(jù)多路徑的傳輸動態(tài)負(fù)載情況計算的路由算法Dramp。這種算法主要是通過對理論進(jìn)行優(yōu)化,來進(jìn)行核心優(yōu)化問題的處理,利用目標(biāo)函數(shù)的求解,獲取節(jié)點在一定范圍內(nèi)路徑上流量分配值的最佳方案,保證關(guān)鍵鏈路沒有出現(xiàn)非常擁塞的鏈路。Dramp在對細(xì)粒度流量均衡進(jìn)行控制的過程中,能非常好地對控制器的額計算開銷進(jìn)行控制,并且從當(dāng)前的角度上分析,不需要對通信協(xié)議進(jìn)行一定程度的改動。
[1]周偉.基于SCTP的多路徑并行傳輸數(shù)據(jù)亂序問題研究[D].西安電子科技大學(xué),2012.