王丹丹
(鄭州工業(yè)應(yīng)用技術(shù)學(xué)院 信息工程學(xué)院,河南 鄭州 451100)
隨著網(wǎng)絡(luò)的高速發(fā)展以及其規(guī)模的不斷擴(kuò)大,基于傳統(tǒng)分布式TCP/IP結(jié)構(gòu)的網(wǎng)絡(luò)體系存在路由轉(zhuǎn)發(fā)效率低、 網(wǎng)站分配不均等問(wèn)題[1]. 本文基于軟件定義網(wǎng)絡(luò)的路由選擇及流表分配,相對(duì)于分布式的TCP/IP結(jié)構(gòu),采取集中式體系,其核心原理是將控制管理模塊和數(shù)據(jù)傳輸模塊分離開(kāi)來(lái),通過(guò)中央控制器負(fù)責(zé)流表的下發(fā)、 管理和配置,進(jìn)而獲取多路徑即時(shí)數(shù)據(jù),并通過(guò)分析鏈路負(fù)載和交換機(jī)節(jié)點(diǎn)數(shù)據(jù),以實(shí)現(xiàn)更優(yōu)化的路由選擇. 同時(shí)相對(duì)于傳統(tǒng)網(wǎng)絡(luò)體系交換機(jī)流表存在的資源有限的問(wèn)題,筆者基于軟件定義網(wǎng)絡(luò)的流表分配,通過(guò)流量預(yù)測(cè)算法,得到了新的數(shù)據(jù)自適應(yīng)方法,其使得交換機(jī)只負(fù)責(zé)數(shù)據(jù)流的轉(zhuǎn)發(fā),從而提升了數(shù)據(jù)傳輸模塊的傳輸可靠性以及數(shù)據(jù)流的傳輸速度,對(duì)于流表超時(shí)現(xiàn)象則通過(guò)OpenFlow協(xié)議加以制約,以更好地實(shí)現(xiàn)網(wǎng)絡(luò)系統(tǒng)的優(yōu)化部署[2].
目前已知的網(wǎng)絡(luò)大部分采用單獨(dú)控制架構(gòu),這種網(wǎng)絡(luò)體系需要人工對(duì)大量網(wǎng)絡(luò)設(shè)備進(jìn)行配置,同時(shí)系統(tǒng)的復(fù)雜性和設(shè)備間的差異性,導(dǎo)致人工配置成本高、 出錯(cuò)率高,需求者難以根據(jù)自身需要進(jìn)行網(wǎng)絡(luò)更新等問(wèn)題. 軟件定義網(wǎng)絡(luò)(SDN)作為一種能反映網(wǎng)絡(luò)服務(wù)和負(fù)載需求的體系結(jié)構(gòu),其可以優(yōu)化和簡(jiǎn)化網(wǎng)絡(luò)操作. 同時(shí)為了保障網(wǎng)絡(luò)的順暢,其將控制模塊和數(shù)據(jù)模塊進(jìn)行分離,從而可以實(shí)現(xiàn)網(wǎng)絡(luò)的開(kāi)放性、 靈活的控制和高效的運(yùn)維[3]. 其采用基于OpenFlow協(xié)議的SDN技術(shù),主要由基礎(chǔ)層、 控制層和應(yīng)用層三部分構(gòu)成,其主要特征有:控制的集中化和便捷化,不再需要對(duì)各個(gè)設(shè)備進(jìn)行針對(duì)化的設(shè)置,大大減輕了系統(tǒng)的運(yùn)維成本,實(shí)現(xiàn)了系統(tǒng)的優(yōu)化控制和資源的全局調(diào)配; 控制管理模塊和網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)模塊分離; 接口的可擴(kuò)展性; 下層網(wǎng)絡(luò)對(duì)高層應(yīng)用的虛擬化、 透明化[4]. SDN架構(gòu)如圖1所示.
圖1 軟件定義網(wǎng)絡(luò)架構(gòu)
隨著SDN技術(shù)的發(fā)展,影響SDN發(fā)展的關(guān)鍵技術(shù)主要有兩個(gè)方面:SDN控制器(SDN Controller)和OpenFlow交換機(jī)(OpenFlow Switch). SDN架構(gòu)中控制層是整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的核心,一方面給高層應(yīng)用設(shè)備提供擴(kuò)展接口,另一方面對(duì)低層設(shè)備進(jìn)行統(tǒng)一控制,其等同于網(wǎng)絡(luò)的大腦[5]. 控制器關(guān)鍵技術(shù)包括東西方向的業(yè)務(wù)擴(kuò)展技術(shù)、 南向網(wǎng)絡(luò)控制技術(shù)和北向業(yè)務(wù)支撐技術(shù),同時(shí)SDN控制器可以為交換機(jī)選擇轉(zhuǎn)發(fā)路徑提供依據(jù),以實(shí)現(xiàn)流表項(xiàng)下發(fā)和策略制定; OpenFlow交換機(jī)包含OpenFlow協(xié)議、 流表以及控制器和交換機(jī)之間通信端口連接的路徑(即安全通道)[6]. OpenFlow協(xié)議定義了交換機(jī)和控制器間的端口標(biāo)準(zhǔn); 流表由包頭域、 計(jì)數(shù)器和動(dòng)作三部分組成,其是OpenFlow通過(guò)網(wǎng)絡(luò)設(shè)備實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)的抽象表示; 安全通道通過(guò)對(duì)數(shù)據(jù)模塊的格式進(jìn)行確認(rèn),允許符合條件的數(shù)據(jù)進(jìn)行傳送,其沒(méi)有復(fù)雜的邏輯控制管理,以實(shí)現(xiàn)網(wǎng)絡(luò)資源的優(yōu)化配置[7].
傳統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)中心大多以樹(shù)狀拓?fù)浣Y(jié)構(gòu)進(jìn)行設(shè)計(jì),在面對(duì)日漸龐大的網(wǎng)絡(luò)規(guī)模時(shí),易發(fā)生網(wǎng)絡(luò)容錯(cuò)性差、 核心交換機(jī)負(fù)載量大等問(wèn)題,進(jìn)而導(dǎo)致網(wǎng)絡(luò)阻塞現(xiàn)象的發(fā)生[8]. 將軟件定義網(wǎng)絡(luò)技術(shù)融入到數(shù)據(jù)中心,一方面可以通過(guò)SDN端口的可擴(kuò)展性優(yōu)化網(wǎng)絡(luò)更新網(wǎng)絡(luò)規(guī)則,提供針對(duì)性的客戶需求; 另一方面可以簡(jiǎn)化系統(tǒng)的管理,利用SDN控制的集中化和便捷化,將系統(tǒng)狀態(tài)信息和流量統(tǒng)計(jì)集中管理,以提高系統(tǒng)時(shí)效性,降低網(wǎng)絡(luò)調(diào)試和開(kāi)發(fā)的難度,為網(wǎng)絡(luò)創(chuàng)新提供條件[9].
負(fù)載均衡則是通過(guò)對(duì)網(wǎng)絡(luò)中的流量信息進(jìn)行統(tǒng)計(jì),為路由選擇提供判斷依據(jù),從而實(shí)現(xiàn)網(wǎng)絡(luò)性能的優(yōu)化. 全局負(fù)載均衡和局部負(fù)載均衡作為當(dāng)前常用的負(fù)載均衡技術(shù),難以適應(yīng)網(wǎng)絡(luò)發(fā)展的需求,而隨著OpenFlow理論的成熟,將SDN技術(shù)應(yīng)用到負(fù)載均衡已成為提高網(wǎng)絡(luò)系統(tǒng)性能的有效途徑,即利用控制器得到網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)的流量統(tǒng)計(jì)數(shù)據(jù),以實(shí)現(xiàn)負(fù)載的均衡配置[10].
判斷路由選擇算法是否能夠滿足系統(tǒng)需要,主要通過(guò)分析該算法是否能夠及時(shí)有效地對(duì)網(wǎng)絡(luò)拓?fù)涓淖兗巴ㄐ帕孔兓龀鰬?yīng)對(duì),并在保證通路完整性和準(zhǔn)確性的基礎(chǔ)上實(shí)現(xiàn)算法的簡(jiǎn)單性. 已知的路由選擇算法有通過(guò)計(jì)算節(jié)點(diǎn)距離的距離向量法和分析節(jié)點(diǎn)鏈路狀態(tài)的鏈路狀態(tài)法,這些算法雖然能夠?qū)崿F(xiàn)路由的合理選擇但容易產(chǎn)生無(wú)限計(jì)數(shù)問(wèn)題和慢收斂等情況,進(jìn)而影響系統(tǒng)的穩(wěn)定性.
基于SDN的路由選擇策略具有全局網(wǎng)絡(luò)拓?fù)湫畔ⅲ瑸榱藢?shí)現(xiàn)數(shù)據(jù)的快速、 可靠傳輸,其利用鏈路數(shù)據(jù)信息得到網(wǎng)絡(luò)節(jié)點(diǎn)間的最佳轉(zhuǎn)發(fā)路徑,同時(shí)SDN控制的集中化、 模塊化使得用戶能夠根據(jù)自己的需要選擇符合自己意愿的路由策略,進(jìn)而得到靈活可變的路由算法,依據(jù)SDN原理的路由選擇算法分類(lèi)如圖2所示.
圖2 SDN路由選擇算法分類(lèi)
由于網(wǎng)絡(luò)流量自身具有周期性、 自相關(guān)性和模糊性,因此在對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行存儲(chǔ)和處理以及流表優(yōu)化時(shí),需要對(duì)網(wǎng)絡(luò)流量進(jìn)行預(yù)測(cè). 隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,已知的針對(duì)網(wǎng)絡(luò)流量進(jìn)行預(yù)測(cè)的模型受多方面因素影響,導(dǎo)致誤差較大、 適用性低. 因此,本文采用自回歸滑動(dòng)平均模型(ARMA)來(lái)對(duì)網(wǎng)絡(luò)流量進(jìn)行預(yù)測(cè),該模型可以對(duì)時(shí)間序列進(jìn)行參數(shù)化分析,準(zhǔn)確模擬實(shí)際網(wǎng)絡(luò)流量,該模型的數(shù)學(xué)表示為:假設(shè)存在一個(gè)均值為零、 服從正態(tài)分布的時(shí)間序列{xp},其中xp和其前n個(gè)數(shù)值xp-1,xp-2,…,xp-n之間存在相關(guān)性,并受到其他m個(gè)干擾項(xiàng)ap-1,ap-2,…,ap-m的影響,那么自回歸滑動(dòng)平均模型(ARMA)為:
(1)
(2)
其中,ap-1,ap-2, …,ap-m為已知部分,xp-1,xp-2,…,xp-n為未知部分,自回歸滑動(dòng)平均模型使得已知數(shù)據(jù)在模型中作用最大化,大大提高了系統(tǒng)的穩(wěn)定性.
將路由信息在SDN交換機(jī)上以流表的形式表現(xiàn)出來(lái),并準(zhǔn)確地傳送到相應(yīng)交換機(jī)上是路由算法的主要作用. 鏈路發(fā)現(xiàn)模塊可以使SDN控制器得到網(wǎng)絡(luò)全局的鏈節(jié)數(shù)據(jù),進(jìn)而對(duì)全局網(wǎng)絡(luò)資源進(jìn)行合理調(diào)配和使用,實(shí)現(xiàn)系統(tǒng)優(yōu)化; 拓?fù)湫畔㈨憫?yīng)模塊可以完成流表數(shù)據(jù)的生成并實(shí)現(xiàn)下發(fā)模塊的升級(jí),其完成路徑選擇的同時(shí)對(duì)拓?fù)浣Y(jié)構(gòu)變化做出及時(shí)應(yīng)對(duì),拓?fù)湫畔㈨憫?yīng)模塊原理如圖3所示.
圖3 拓?fù)湫畔㈨憫?yīng)模塊原理
和傳統(tǒng)的網(wǎng)絡(luò)體系一樣,大規(guī)模的SDN網(wǎng)絡(luò)也可以劃分為若干個(gè)小的網(wǎng)絡(luò)域,不同的域之間通過(guò)交換機(jī)進(jìn)行連接. 當(dāng)數(shù)據(jù)需要傳遞時(shí),則通過(guò)交換機(jī)進(jìn)行域間傳輸,而數(shù)據(jù)的傳輸需要進(jìn)行預(yù)路由過(guò)程. 路由選擇機(jī)制則是通過(guò)路徑的跳數(shù)來(lái)決定,需要跳數(shù)越少則表明路由選擇機(jī)制越成功. 根據(jù)最優(yōu)路徑,交換機(jī)得到流表項(xiàng)并由網(wǎng)絡(luò)控制器控制,流表匹配目的IP地址,而目的IP與交換機(jī)ID對(duì)應(yīng),因此可以直接將數(shù)據(jù)以最短路徑匹配交換機(jī)ID,而不需要經(jīng)過(guò)控制器. 路由選擇機(jī)制如圖4所示,其中白色點(diǎn)為域與域之間的邊界交換機(jī),黑色點(diǎn)為域內(nèi)交換機(jī).
圖4 路由選擇機(jī)制
當(dāng)數(shù)據(jù)流到達(dá)控制器時(shí),系統(tǒng)會(huì)采用反應(yīng)式處理并根據(jù)當(dāng)前網(wǎng)絡(luò)的狀態(tài),計(jì)算最佳轉(zhuǎn)發(fā)路徑并生成路由策略,之后將數(shù)據(jù)傳遞給交換機(jī),對(duì)應(yīng)的路由策略則由交換機(jī)中的流表項(xiàng)記錄,當(dāng)數(shù)據(jù)流需要轉(zhuǎn)發(fā)時(shí)只有匹配到交換機(jī)中的流表項(xiàng)才被允許. 數(shù)據(jù)流通過(guò)軟件定義網(wǎng)絡(luò)的流程如圖5所示.
圖5 數(shù)據(jù)流在SDN中流程
對(duì)于基于SDN的流表分配,數(shù)據(jù)流受各種因素影響,如交換機(jī)轉(zhuǎn)發(fā)調(diào)度、 傳輸帶寬等,數(shù)據(jù)流不能一直占用帶寬,因此需要根據(jù)數(shù)據(jù)流特點(diǎn)和網(wǎng)絡(luò)特點(diǎn)進(jìn)行資源分配. 本文通過(guò)流表資源偏好度和計(jì)算資源偏好度這一概念來(lái)定義數(shù)據(jù)流對(duì)流表資源和控制器的依賴度,進(jìn)而實(shí)現(xiàn)流表分配. 假設(shè)某一網(wǎng)絡(luò)存在r個(gè)數(shù)據(jù)流,平均帶寬為d,數(shù)據(jù)流中有n個(gè)數(shù)據(jù)包,數(shù)據(jù)流對(duì)網(wǎng)絡(luò)帶寬的依賴度為p,那么資源偏好度的數(shù)學(xué)表示為:
(3)
(4)
為了得到模型的具體數(shù)據(jù)信息,需要對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行分析,并和其他系統(tǒng)進(jìn)行對(duì)比,進(jìn)而判斷本系統(tǒng)性能的優(yōu)劣. 首先搭建仿真環(huán)境,仿真工具采用Mininet仿真平臺(tái)創(chuàng)建SDN網(wǎng)絡(luò),使用Linux操作系統(tǒng),并利用Mausezahn這一開(kāi)源流量發(fā)生器產(chǎn)生OpenFlow數(shù)據(jù)流,SDN網(wǎng)絡(luò)交換機(jī)流表容量設(shè)為1 200,數(shù)據(jù)流最多為105個(gè),核心交換機(jī)傳輸帶寬為2Gb/s. 為了驗(yàn)證本設(shè)計(jì)性能的優(yōu)劣,在相同網(wǎng)絡(luò)規(guī)模的前提下將本文設(shè)計(jì)和濾波融合算法(GFF)、 多路負(fù)載均衡算法(MPLB)分別從流表資源利用率以及網(wǎng)絡(luò)平均吞吐量來(lái)進(jìn)行驗(yàn)證,具體結(jié)果如圖6、 圖7所示.
通過(guò)圖6分析,在相同網(wǎng)絡(luò)規(guī)模的前提下,當(dāng)交換機(jī)上數(shù)據(jù)流量在3 000以下時(shí),由于具有豐富的流表資源,系統(tǒng)可以滿足大部分?jǐn)?shù)據(jù)流對(duì)交換機(jī)的需求,流表資源利用率呈直線上升狀態(tài). 但是隨著交換機(jī)上數(shù)據(jù)流量的逐漸增加,由于系統(tǒng)總的處理能力有限,因此數(shù)據(jù)流必須依次等候交換機(jī)控制器分配的流表項(xiàng),才能進(jìn)行數(shù)據(jù)傳送,進(jìn)而導(dǎo)致流表資源利用率緩慢上升,最終達(dá)到系統(tǒng)所能接受的上限. 本文算法相對(duì)于其他兩種算法,在面對(duì)相同的網(wǎng)絡(luò)環(huán)境和數(shù)據(jù)流量時(shí),都有較高的流表資源利用率,具有一定的應(yīng)用價(jià)值.
圖6 不同算法流表資源利用率
通過(guò)圖7可知,在相同網(wǎng)絡(luò)流量的前提下,當(dāng)交換機(jī)上數(shù)據(jù)流量較少時(shí),系統(tǒng)的數(shù)據(jù)處理能力可以滿足大部分?jǐn)?shù)據(jù)流對(duì)交換機(jī)的需求. 但是當(dāng)數(shù)據(jù)流量達(dá)到一定數(shù)值時(shí),由于受到設(shè)備硬件性能以及網(wǎng)絡(luò)資源的限制,網(wǎng)絡(luò)的平均吞吐量增長(zhǎng)逐漸變緩,進(jìn)而達(dá)到一個(gè)極值,如果數(shù)據(jù)流量繼續(xù)增加,那么就會(huì)導(dǎo)致網(wǎng)絡(luò)阻塞現(xiàn)象的發(fā)生,即使得網(wǎng)絡(luò)的平均吞吐量下降. 本文算法在同樣條件下相對(duì)于其他兩種算法網(wǎng)絡(luò)的平均吞吐量具有一定的優(yōu)勢(shì),具有一定的應(yīng)用和研究?jī)r(jià)值.
本文首先分析了傳統(tǒng)路由選擇的特點(diǎn),以及軟件定義網(wǎng)絡(luò)這一新型網(wǎng)絡(luò)架構(gòu). 在此基礎(chǔ)上,分析了SDN關(guān)鍵技術(shù)與數(shù)據(jù)中心的關(guān)系,繼而研究SDN功能模塊的設(shè)計(jì)、 實(shí)現(xiàn)和流表分配,并通過(guò)建立模型仿真,與其他算法比較,驗(yàn)證了基于SDN的路由選擇及流表分配在流表資源利用率和網(wǎng)絡(luò)吞吐量上具有一定優(yōu)勢(shì).