黃舉,何茂忠,張曉蒙,符廣全
(臨沂大學(xué),山東 臨沂 276000)
當(dāng)前高校學(xué)生通過(guò)高校選課系統(tǒng)進(jìn)行選課,由于選課人數(shù)多、選課周期短、爭(zhēng)取班級(jí)有限的名額等原因使得大量學(xué)生在短期內(nèi)登錄選課系統(tǒng),導(dǎo)致系統(tǒng)卡斷、網(wǎng)絡(luò)堵塞。經(jīng)調(diào)研,這種現(xiàn)象在高校普遍存在。究其根本原因是隨著網(wǎng)絡(luò)用戶數(shù)量的急劇增加,海量數(shù)據(jù)在同一時(shí)間急需處理,出現(xiàn)應(yīng)用訪問(wèn)的高峰期現(xiàn)象,系統(tǒng)處理能力受限;在資源需求量大的高峰期,傳統(tǒng)網(wǎng)絡(luò)架構(gòu)全局性差,實(shí)時(shí)流量分布不均,導(dǎo)致網(wǎng)絡(luò)時(shí)效性差。SDN 提供了更加靈活控制轉(zhuǎn)發(fā)的能力,因此考慮利用SDN 網(wǎng)絡(luò)架構(gòu)與負(fù)載均衡技術(shù),以提高選課系統(tǒng)穩(wěn)定性和實(shí)時(shí)性。
SDN 是一種新型的網(wǎng)絡(luò)架構(gòu),具有開(kāi)放接口、網(wǎng)絡(luò)虛擬化、集中式控制三大優(yōu)勢(shì),其主要思想是將網(wǎng)絡(luò)互連節(jié)點(diǎn)上決定報(bào)文轉(zhuǎn)發(fā)和流量走向的復(fù)雜邏輯從交換機(jī)或路由器中抽離,將集中式的控制平面和分布式的轉(zhuǎn)發(fā)平面相互分離,實(shí)現(xiàn)底層網(wǎng)絡(luò)對(duì)上層應(yīng)用透明化。
SDN 提供開(kāi)放的可編程接口,網(wǎng)絡(luò)管理員通過(guò)網(wǎng)絡(luò)編程控制網(wǎng)絡(luò)流,控制器監(jiān)聽(tīng)網(wǎng)絡(luò)中設(shè)備的資源狀態(tài)。在網(wǎng)絡(luò)狀態(tài)變化時(shí),控制器以實(shí)時(shí)資源為基礎(chǔ)計(jì)算最優(yōu)策略并下發(fā)流表,底層網(wǎng)絡(luò)設(shè)備依照流表信息對(duì)數(shù)據(jù)流進(jìn)行調(diào)整,從而能更好地應(yīng)對(duì)網(wǎng)絡(luò)突發(fā)性流量,實(shí)現(xiàn)流量智能轉(zhuǎn)發(fā)。
SDN 體系架構(gòu)是三層架構(gòu),自上至下依次為應(yīng)用層、控制層、基礎(chǔ)設(shè)施層。應(yīng)用層包括各種應(yīng)用程序如流量監(jiān)測(cè)、接入控制。應(yīng)用層與控制層之間使用SDN 北向接口協(xié)議進(jìn)行通信,用戶可以按照不同需求進(jìn)行開(kāi)發(fā)。控制層是SDN架構(gòu)的核心層,是網(wǎng)絡(luò)邏輯控制平面,通過(guò)北向接口接收應(yīng)用層配置信息,通過(guò)南向接口控制數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)。底層基礎(chǔ)設(shè)施層主要包括物理網(wǎng)絡(luò)設(shè)備,實(shí)現(xiàn)數(shù)據(jù)的傳輸與轉(zhuǎn)發(fā)功能,由支持Openf low 協(xié)議的交換機(jī)和路由器網(wǎng)絡(luò)設(shè)備組成,如圖1所示。
圖1 SDN 體系架構(gòu)
SDN 是一種新型的網(wǎng)絡(luò)架構(gòu),控制與轉(zhuǎn)發(fā)分離、直接可編程實(shí)現(xiàn)控制。應(yīng)對(duì)大數(shù)據(jù)傳輸,與傳統(tǒng)網(wǎng)絡(luò)的分布式控制與管理架構(gòu)相比,更易實(shí)現(xiàn)對(duì)上層應(yīng)用與業(yè)務(wù)的彈性響應(yīng)。
首先傳統(tǒng)網(wǎng)絡(luò)是分布式網(wǎng)絡(luò),無(wú)中心控制節(jié)點(diǎn),無(wú)法從整個(gè)網(wǎng)絡(luò)的角度對(duì)流量進(jìn)行調(diào)控。SDN 采用全局集中控制和分布高速轉(zhuǎn)發(fā),數(shù)據(jù)與控制分離在一定程度上降低了網(wǎng)絡(luò)設(shè)備和控制軟件的成本,實(shí)現(xiàn)高性能的網(wǎng)絡(luò)轉(zhuǎn)發(fā)能力。
其次SDN 具有直接可編程性,為開(kāi)發(fā)者提供一整套編程接口,使開(kāi)發(fā)者能在網(wǎng)絡(luò)中添加自己新的服務(wù)??删幊棠芰w現(xiàn)在很多的層次上,從下往上依次為芯片可編程、FIB可編程、RIB 可編程、設(shè)備OS 可編程、設(shè)備配置可編程、控制器可編程和業(yè)務(wù)可編程。
在本研究對(duì)十余所高校的學(xué)生就其讀高校集中選課階段網(wǎng)絡(luò)擁堵情況進(jìn)行問(wèn)卷調(diào)查,為避免偶然性,每所高校均收集一定量的學(xué)生問(wèn)卷數(shù)據(jù)。對(duì)問(wèn)卷結(jié)果分析得知,在調(diào)查的十余所高校中有高達(dá)77%的高校學(xué)生在選課時(shí)遭遇嚴(yán)重的選課系統(tǒng)網(wǎng)絡(luò)擁堵,學(xué)生網(wǎng)絡(luò)選課有困難,常常需要錯(cuò)時(shí)選課,選課受到網(wǎng)絡(luò)困擾。
為此進(jìn)行探索研究,設(shè)計(jì)開(kāi)發(fā)基于SDN 負(fù)載均衡的在線選課系統(tǒng),從基于SDN 鏈路負(fù)載均衡和基于SDN 應(yīng)用負(fù)載均衡兩個(gè)角度設(shè)計(jì),將大量的并發(fā)訪問(wèn)請(qǐng)求分擔(dān)到多臺(tái)底層網(wǎng)絡(luò)設(shè)備并行處理。在復(fù)雜多變的網(wǎng)絡(luò)環(huán)境下保證網(wǎng)絡(luò)服務(wù)的穩(wěn)定性和效率,是負(fù)載均衡需要解決的一個(gè)重要問(wèn)題。
負(fù)載均衡技術(shù)用以平衡服務(wù)器集群中各服務(wù)器和請(qǐng)求應(yīng)用之間的通信負(fù)載,根據(jù)實(shí)時(shí)響應(yīng)時(shí)間進(jìn)行判斷,快速可靠的將海量并發(fā)訪問(wèn)數(shù)據(jù)分擔(dān)至多臺(tái)節(jié)點(diǎn)服務(wù)器上,實(shí)現(xiàn)智能通信管理,發(fā)揮最佳的服務(wù)器群性能,解決選課系統(tǒng)網(wǎng)絡(luò)擁堵,減少等待時(shí)長(zhǎng)。
隨著網(wǎng)絡(luò)數(shù)據(jù)流量指數(shù)增長(zhǎng),傳統(tǒng)網(wǎng)絡(luò)負(fù)載均衡對(duì)新網(wǎng)絡(luò)環(huán)境變化的感知力不足,無(wú)法精確衡量和預(yù)判全網(wǎng)絡(luò)環(huán)境負(fù)載量,新型網(wǎng)絡(luò)體系SDN 為負(fù)載均衡的改進(jìn)提供了嶄新的方向。OpenFlow 控制器集中控制交換設(shè)備,統(tǒng)一配置交換機(jī)更易獲得全局拓?fù)?,支持?fù)載均衡技術(shù),制定最優(yōu)策略。
學(xué)生首先通過(guò)web 服務(wù)器登錄在線選課系統(tǒng)發(fā)出選課請(qǐng)求,然后通過(guò)SDN 控制層的OpenFlow 交換機(jī)和負(fù)載均衡交換機(jī)接受請(qǐng)求,通過(guò)算法選擇最優(yōu)路徑,在服務(wù)器集群中選擇最佳網(wǎng)絡(luò)設(shè)備處理,訪問(wèn)數(shù)據(jù)服務(wù)器進(jìn)行選課操作,完成后通過(guò)負(fù)載均衡交換機(jī)將結(jié)果反饋給學(xué)生客戶端。SDN路線設(shè)計(jì)流程圖如圖2所示。
圖2 SDN 鏈路負(fù)載均衡思路
部分功能代碼:
學(xué)生登錄選課系統(tǒng),發(fā)送選課數(shù)據(jù)包到OpenFlow 交換機(jī)。OpenFlow 交換機(jī)由OpenFlow 協(xié)議、安全信道和流表三部分組成。流表是OpenFlow 交換機(jī)的核心部分,OpenFlow交換機(jī)包含一條或多條流表,通過(guò)OpenFlow的協(xié)議,可添加、更新和刪除流表中表項(xiàng)。選課數(shù)據(jù)包進(jìn)入交換機(jī)與流表中流表項(xiàng)進(jìn)行匹配。若相關(guān)流表項(xiàng)存在,則執(zhí)行相關(guān)命令完成數(shù)據(jù)轉(zhuǎn)發(fā)處理。若不存在相關(guān)流表項(xiàng),則會(huì)計(jì)算獲得K 個(gè)備選路徑。當(dāng)K 值大于0 時(shí),OpenFlow 交換機(jī)利用評(píng)估模型,計(jì)算出最有利于全局負(fù)載均衡的一條鏈路,然后將轉(zhuǎn)發(fā)策略寫入交換機(jī)流表中新添加的流表項(xiàng)。若K 值為0,既未能獲得備選路徑,將會(huì)按照基本轉(zhuǎn)發(fā)模塊的轉(zhuǎn)發(fā)策略添加流表項(xiàng)下發(fā)流表。如圖3所示。
圖3 SDN 網(wǎng)絡(luò)下的服務(wù)器集群與負(fù)載均衡
選課系統(tǒng)最終的響應(yīng)能力受制于服務(wù)器系統(tǒng)的處理環(huán)節(jié),也受制于網(wǎng)絡(luò)傳輸環(huán)節(jié),突發(fā)的流量聚集導(dǎo)致?lián)砣麌?yán)重影響了網(wǎng)絡(luò)響應(yīng)。系統(tǒng)設(shè)計(jì)中用服務(wù)器集群技術(shù)和負(fù)載均衡技術(shù)來(lái)解決服務(wù)器處理環(huán)節(jié)的問(wèn)題,通過(guò)SDN 進(jìn)行節(jié)點(diǎn)流量分布管理解決傳輸問(wèn)題,通過(guò)多種技術(shù)的結(jié)合,綜合改善和提升系統(tǒng)性能。
服務(wù)器集群技術(shù)提供故障切換功能,具有較高的可靠性。當(dāng)服務(wù)器集群中某計(jì)算機(jī)組出現(xiàn)硬盤、內(nèi)存、電源故障時(shí),其余服務(wù)器迅速作出反應(yīng),保持正常工作并執(zhí)行故障計(jì)算機(jī)組的任務(wù),保障系統(tǒng)可靠穩(wěn)定的正常運(yùn)行。利用服務(wù)器集群技術(shù)可以有效降低計(jì)算機(jī)組處理數(shù)據(jù)的壓力,保證每個(gè)節(jié)點(diǎn)都承擔(dān)一定的處理負(fù)載,動(dòng)態(tài)均衡使每臺(tái)服務(wù)器的任務(wù)量大大減少,進(jìn)一步提高了選課系統(tǒng)的負(fù)載能力,避免網(wǎng)絡(luò)擁堵停機(jī),避免網(wǎng)絡(luò)服務(wù)器單點(diǎn)故障產(chǎn)生的問(wèn)題。
服務(wù)器集群技術(shù)可以將高校機(jī)房大量普通服務(wù)器組合,實(shí)現(xiàn)價(jià)格昂貴的服務(wù)器性能,并通過(guò)實(shí)時(shí)需要?jiǎng)討B(tài)調(diào)節(jié)接入集群的服務(wù)器數(shù)量。集群里的每一臺(tái)服務(wù)器都設(shè)置一個(gè)最大的可連接數(shù)目n,當(dāng)某服務(wù)器目前已連接數(shù)目達(dá)到n 時(shí),會(huì)向負(fù)載均衡交換機(jī)發(fā)送停止接收信息a,交換機(jī)接收信息a后,不再將該交換機(jī)考慮在路徑選擇當(dāng)中。直到該服務(wù)器某任務(wù)結(jié)束,此時(shí)連接數(shù)目小于允許最大連接數(shù)n,發(fā)送開(kāi)始接收信息b,負(fù)載均衡交換機(jī)接收到信息b 后,再次將該服務(wù)器加入路徑選擇中。
SDN 網(wǎng)絡(luò)架構(gòu)具有智能調(diào)控流量走向的功能使其在網(wǎng)絡(luò)流量的分布中起到均衡的作用。SDN 提供端到端的可見(jiàn)性及控制能力,可使系統(tǒng)智能地將數(shù)據(jù)路由到最優(yōu)的網(wǎng)絡(luò)路徑,完成均衡網(wǎng)絡(luò)流量分布的功能。學(xué)生集中選課流量集中劇增時(shí),自動(dòng)流量管理應(yīng)對(duì)性強(qiáng),可極大減輕網(wǎng)絡(luò)管理的工作量。
通過(guò)仿真實(shí)驗(yàn)?zāi)M實(shí)驗(yàn),深入研究和驗(yàn)證選課系統(tǒng)方案的有效性。
工具平臺(tái)環(huán)境:實(shí)驗(yàn)利用Ubuntu 操作系統(tǒng),安裝Mininet和ryu控制器,構(gòu)成實(shí)驗(yàn)仿真平臺(tái),搭建SDN網(wǎng)絡(luò)拓?fù)?。?shí)驗(yàn)器具包含一臺(tái)遠(yuǎn)程控制器、兩臺(tái)負(fù)責(zé)流量分配的交換機(jī)和五臺(tái)主機(jī),其中h1、h2 兩臺(tái)主機(jī)作為服務(wù)器,另外三臺(tái)主機(jī)模仿選課時(shí)的學(xué)生客戶機(jī)對(duì)服務(wù)器進(jìn)行訪問(wèn),如圖4所示。
圖4 實(shí)驗(yàn)拓?fù)?/p>
搭建模擬環(huán)境:使用仿真平臺(tái)mininet 的examples 相關(guān)指令啟用可視化工具miniedit,通過(guò)可視化界面繪制拓?fù)鋱D,極大提高了操作的方便性、靈活性。
帶寬測(cè)試。為了觀察負(fù)載均衡在路徑中的實(shí)際作用,使用mininet 的iperf h2 h1 等命令觀察負(fù)載均衡開(kāi)啟前后路徑帶寬。在開(kāi)啟前兩個(gè)主機(jī)之間的帶寬為254Mbits/sec,251Mbits/sec,負(fù)載均衡開(kāi)啟后兩個(gè)主機(jī)之間的帶寬提為8.75Gbits/sec,8.75Gbits/sec,帶寬由254Mbits/sec 提升到了8.75Gbits/sec,通過(guò)前后比對(duì)可以明顯看到帶寬的提升。
負(fù)載模擬與測(cè)試。同樣可以在控制器中打開(kāi)wireshark過(guò)濾抓取packet_in 數(shù)據(jù)包通過(guò)查看h3 請(qǐng)求訪問(wèn)應(yīng)答情況,在模擬訪問(wèn)過(guò)程中,當(dāng)h3 客戶機(jī)同時(shí)發(fā)送訪問(wèn)請(qǐng)求時(shí),通過(guò)數(shù)據(jù)抓包發(fā)現(xiàn)前后幾次請(qǐng)求分別由h1、h2 兩臺(tái)服務(wù)器應(yīng)答,兩臺(tái)交換機(jī)的負(fù)載量基本均衡,如圖5所示。
圖5 服務(wù)器應(yīng)答均衡
負(fù)載均衡開(kāi)啟前后可以觀察到網(wǎng)絡(luò)路徑中的帶寬得到明顯提升。 經(jīng)過(guò)對(duì)方案建模實(shí)驗(yàn),綜合實(shí)驗(yàn)數(shù)據(jù)可以得出初步結(jié)論,基于SDN 部署負(fù)載均衡能夠成倍地提高網(wǎng)絡(luò)中的帶寬,增大吞吐量,提升系統(tǒng)響應(yīng)性能,有效地解決網(wǎng)絡(luò)擁堵的問(wèn)題。
基于SDN 部署負(fù)載均衡可以有效解決高校選課系統(tǒng)學(xué)生集中選課難,網(wǎng)絡(luò)堵塞卡頓的問(wèn)題。用基于SDN 的網(wǎng)絡(luò)架構(gòu)模式代替?zhèn)鹘y(tǒng)的網(wǎng)絡(luò)架構(gòu)模式進(jìn)行自動(dòng)化管理,智能分配數(shù)據(jù)流,再配以服務(wù)集群技術(shù)和負(fù)載均衡技術(shù),可以極大提高學(xué)生選課系統(tǒng)的穩(wěn)定性和響應(yīng)運(yùn)算能力,使其對(duì)突發(fā)性的海量數(shù)據(jù)訪問(wèn)和流量具有良好的靈活性、智能性,能夠適應(yīng)擁堵更加嚴(yán)重的網(wǎng)絡(luò)環(huán)境,解決學(xué)生選課難題。