李睿
摘要:SDN是一種新型的網(wǎng)絡(luò)技術(shù),OpenFlow是SDN協(xié)議之一,它能夠?qū)⒙酚煽刂坪蛿?shù)據(jù)傳輸進(jìn)行分離,進(jìn)而有效解決因為網(wǎng)絡(luò)復(fù)雜問題導(dǎo)致的網(wǎng)絡(luò)交換設(shè)備癱瘓問題,進(jìn)而提升設(shè)備的性能。基于OpenFlow的終端系統(tǒng),能實現(xiàn)終端的可編程性,有效對系統(tǒng)連接進(jìn)行管理。就此,文章對基于OpenFlow的可編程終端設(shè)計與實現(xiàn)進(jìn)行探究。
關(guān)鍵詞:OpenFlow;可編程終端;終端設(shè)計;計算機(jī)網(wǎng)絡(luò)
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)26-0100-02
骨干網(wǎng)絡(luò)技術(shù)飛速發(fā)展,接入網(wǎng)技術(shù)也高速的發(fā)展,目前的網(wǎng)絡(luò)環(huán)境中包括有線網(wǎng)絡(luò)、無線網(wǎng)絡(luò)等,多種不同網(wǎng)絡(luò)同時存在增加了網(wǎng)絡(luò)的復(fù)雜性,而傳統(tǒng)終端通常是單一主機(jī)、單一網(wǎng)絡(luò)接口、單一網(wǎng)絡(luò)結(jié)構(gòu),這樣往往不能滿足大數(shù)據(jù)時代多種類業(yè)務(wù)對時延、帶寬等網(wǎng)絡(luò)性能的要求,它更不能靈活的根據(jù)用戶需求接入網(wǎng)絡(luò)。接入網(wǎng)技術(shù)和智能終端技術(shù)都在不斷更新發(fā)展,可以實現(xiàn)利用不同的網(wǎng)絡(luò)接口接入不同類型網(wǎng)絡(luò),同時建立多條不同類型鏈接,為用戶提供高可用、可擴(kuò)展優(yōu)質(zhì)服務(wù)。SDN技術(shù)的出現(xiàn),它將傳統(tǒng)網(wǎng)絡(luò)的控制平面和轉(zhuǎn)發(fā)平面進(jìn)行分離,能夠?qū)崿F(xiàn)對接口的有效管理,減少一些操作上的限制。OpenFlow協(xié)議是實現(xiàn)上述功能協(xié)議之一,因OpenFlow協(xié)議靈活、兼容性高,基于OpenFlow設(shè)計實現(xiàn)的終端,能對不同類型的接口進(jìn)行控制,通過編程對用戶的不同業(yè)務(wù)需求進(jìn)行分類管理,能有效控制網(wǎng)絡(luò)傳輸。
1 原理與問題分析
1.1 Open Flow技術(shù)
1.1.1 OpenFlow技術(shù)概述
SDN技術(shù)起源于斯坦福大學(xué)和加州大學(xué)聯(lián)盟,是為解決傳統(tǒng)網(wǎng)絡(luò)問題提出的一種新網(wǎng)絡(luò)架構(gòu)和模型,是未來網(wǎng)絡(luò)技術(shù)發(fā)展趨勢,也是一種非常重要的網(wǎng)絡(luò)技術(shù)之一,而OpenFlow是SND技術(shù)協(xié)議之一。剛開始是這的情況,研究人員為了解決服務(wù)器直接訪問交換機(jī)數(shù)據(jù)報文轉(zhuǎn)發(fā)表,將以太網(wǎng)交換機(jī)作為定網(wǎng)絡(luò)設(shè)備應(yīng)用到大學(xué)的網(wǎng)絡(luò)實驗中,它只負(fù)責(zé)轉(zhuǎn)發(fā)功能,至于怎么轉(zhuǎn)發(fā)則由服務(wù)器來控制。這種模式能有效解決傳統(tǒng)網(wǎng)絡(luò)暴露的問題,后來OpenFlow協(xié)議被有計劃地開發(fā),最終形成一種開放的標(biāo)準(zhǔn)協(xié)議。OpenFlow是SDN控制平面和轉(zhuǎn)發(fā)平面之間的協(xié)議標(biāo)準(zhǔn)之一,經(jīng)過有關(guān)人員的不斷研究和推廣,在現(xiàn)階段形成使用最為廣泛的SDN南向接口。基于OpenFlow協(xié)議的網(wǎng)絡(luò)架構(gòu)由交換機(jī)和控制器兩部分組成。交換機(jī)和控制器基于OpenFlow協(xié)議協(xié)同工作,共同完成對網(wǎng)絡(luò)報文的控制與轉(zhuǎn)發(fā),實現(xiàn)了數(shù)據(jù)轉(zhuǎn)發(fā)層面和路由控制層面之間的分離。其中,OpenFlow交換機(jī)就是一個執(zhí)行者,主要聽命于控制器,負(fù)責(zé)對數(shù)據(jù)報文的轉(zhuǎn)發(fā),它分為三個部分,分別是流表、安全通道和協(xié)議。數(shù)據(jù)報文的轉(zhuǎn)發(fā)規(guī)則構(gòu)成了流表項,多個流表項構(gòu)成流表,流表交由交換機(jī)的處理單元處理,其中轉(zhuǎn)發(fā)規(guī)則通常由匹配字段、計數(shù)器和操作來描述。
現(xiàn)階段,OpenFlow交換機(jī)通?;贚inux系統(tǒng)來部署,它分為基于用戶空間的版本系統(tǒng)和基于內(nèi)核空間的版本系統(tǒng)兩種,第一種部署方式容易操作、修改也簡單,但是自身性能不高;第二種部署方式速度快、易于虛擬化,但是操作和修改較之第一種更為復(fù)雜。因而有關(guān)人員結(jié)合這兩種版本的優(yōu)點推出了一種OpenFlow技術(shù)的標(biāo)準(zhǔn)硬件交換機(jī)。在這種交換機(jī)中,控制器向交換機(jī)發(fā)送控制命令,交換機(jī)接收命令并實現(xiàn)具體操作。控制器基于網(wǎng)絡(luò)拓?fù)鋱D運作,實現(xiàn)對整個網(wǎng)絡(luò)系統(tǒng)數(shù)據(jù)傳輸進(jìn)行控制,通過OpenFlow操作交換機(jī)流表,從而實現(xiàn)對整個網(wǎng)絡(luò)的有效管控。OpenFlow控制器最典型的架構(gòu)是NOX,它由 C++ 和 python 語言實現(xiàn),提供了一套標(biāo)準(zhǔn)接口,通過編程調(diào)用接口就能有效控制和調(diào)用組件。文章基于NOX控制器來進(jìn)行分析和探究對可編程終端的實現(xiàn)以及連接管理。
1.1.2 OpenFlow技術(shù)的應(yīng)用優(yōu)勢
首先,OpenFlow 技術(shù)能夠?qū)?shù)據(jù)轉(zhuǎn)發(fā)和路由控制進(jìn)行分離,提升了交換機(jī)轉(zhuǎn)發(fā)的速度和效率,提高了網(wǎng)絡(luò)的性能。另外,在成本使用上,OpenFlow網(wǎng)絡(luò)技術(shù)具有虛擬網(wǎng)絡(luò)管理功能,在很大程度上降低了網(wǎng)絡(luò)的構(gòu)建和運維費用。其次,OpenFlow 技術(shù)具有應(yīng)用和測試功能。OpenFlow網(wǎng)絡(luò)管理員可以根據(jù)OpenFlow軟件在現(xiàn)有的網(wǎng)絡(luò)架構(gòu)中增加新的功能,將這些功能實現(xiàn)在多平臺的同時運作。另外,OpenFlow提供了一套開發(fā)的標(biāo)準(zhǔn)接口,為了發(fā)揮新系統(tǒng)的交換功能,研究人員能夠根據(jù)自己的需要調(diào)用API,添加一些具有新功能的控制軟件。再次,OpenFlow能夠?qū)?shù)據(jù)和系統(tǒng)進(jìn)行統(tǒng)一管理。OpenFlow控制器實際上是整個網(wǎng)絡(luò)的中央控制器,它知曉整個網(wǎng)絡(luò)的運行視圖,能精準(zhǔn)的對整個網(wǎng)絡(luò)進(jìn)行統(tǒng)一管理,能有效保障網(wǎng)絡(luò)安全性。管理員在集中控制器下能夠?qū)θW(wǎng)的信息進(jìn)行把握和掌控,進(jìn)而對網(wǎng)絡(luò)入侵的問題有效識別。最后,OpenFlow能夠?qū)崿F(xiàn)云計算。OpenFlow交換機(jī)能夠?qū)W(wǎng)絡(luò)數(shù)據(jù)和計算資源進(jìn)行有效的控制,實現(xiàn)對大數(shù)據(jù)的整理和優(yōu)化,充分提升數(shù)據(jù)的交換速度。
1.2 多接口終端問題分析
當(dāng)一個終端擁有多個接口,同時連接多種類型的網(wǎng)絡(luò)后,一般會產(chǎn)生以下幾個的問題:
1.2.1 關(guān)于終端可編程性的使用問題
終端系統(tǒng)通常由CPU、內(nèi)存、存儲單元、輸入輸出單元構(gòu)成,其結(jié)構(gòu)固定,如果要操作其中一個鏈接、或者刪除一個鏈接、或者增加一個鏈接,都需要對其內(nèi)核的驅(qū)動進(jìn)行修改,通常修改內(nèi)核都是非常復(fù)雜和困難的。在有業(yè)務(wù)需求的情況下,如何以一種模塊化的形式來管理連接,需要有關(guān)人員進(jìn)行研究和思考。
1.2.2 關(guān)于終端多個接口并行傳輸?shù)臉I(yè)務(wù)問題
可編程終端設(shè)計操作系統(tǒng)不具有對各個接口建立相關(guān)連接的管理功能和業(yè)務(wù)傳輸能力,接入網(wǎng)絡(luò)的每一個終端接口都需要對應(yīng)的IP地址。由于每一個接口對于應(yīng)用層的進(jìn)程來說都是平等的,因此應(yīng)用層進(jìn)程就不知道應(yīng)該選那一個接口來建立通信,只能隨機(jī)選擇一個接口,這樣會大大降低管理效率。
1.2.3 關(guān)于不同業(yè)務(wù)如何在多條連接上進(jìn)行分配的問題
可編程終端設(shè)計操作系統(tǒng)涉及的業(yè)務(wù)種類眾多,包括HTTP、FTP等,在多種連接的使用下,這些業(yè)務(wù)之間的分配如何實現(xiàn)傳輸?shù)膬?yōu)化和分配的優(yōu)化還有待人們的思考和研究。
2 設(shè)計與實現(xiàn)
2.1 整體設(shè)計
在終端系統(tǒng)中引入OpenFlow技術(shù)就能有效解決可編程終端的鏈接問題,基于這一思想理論,通過對終端系統(tǒng)架構(gòu)進(jìn)行修改,嵌入OpenFlow技術(shù),同時兼容目前廣泛運行的TCP/IP協(xié)議,最終實現(xiàn)終端系統(tǒng)可編程控制網(wǎng)絡(luò)??梢詫penFlow設(shè)計為一個插件,能靈活的安裝到終端系統(tǒng)上,這樣便于終端系統(tǒng)升級。[1]同時,通過虛擬交換器和虛擬接口的配置,能夠在現(xiàn)有的連接管理控制程序運作下,實現(xiàn)對終端多條連接的管控。
2.1.1 控制層
控制層的主要功能是向轉(zhuǎn)發(fā)層下發(fā)控制策略,其使用的主要方法是增加、修改和刪除流表,通過對流表的處理來實現(xiàn)具體的控制策略,處理完成后才下發(fā)給轉(zhuǎn)發(fā)層。那么控制策略是如何在控制層與傳輸層之間傳輸?shù)哪兀哭D(zhuǎn)發(fā)層和控制層的OpenvSwitch在Loopback口處會建立一條通道,通過該通道對OpenFlow的有關(guān)控制信息進(jìn)行傳輸。另外,轉(zhuǎn)發(fā)層OpenvSwitch上面有緩存,用于存儲來自控制器流表,流表由流表項構(gòu)成,流表項一般是根據(jù)控制層的策略進(jìn)行設(shè)定,上層的業(yè)務(wù)數(shù)據(jù)包能夠和流表項進(jìn)行匹配。
2.1.2 轉(zhuǎn)發(fā)層
轉(zhuǎn)發(fā)層主要是對業(yè)務(wù)數(shù)據(jù)報文的控制與轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)層由物接口和OpenvSwitch構(gòu)成。其中接口又分為物理接口和虛擬接口,物理接口主要是指終端的多個無線接口和有線接口,虛擬接口主要指由軟件虛擬出來的接口。OpenvSwitch是一種交換機(jī)控制軟件,能夠執(zhí)行每條流的動態(tài)傳輸過程進(jìn)行改變,并為OpenFlow提供接口,在控制層的作用下實現(xiàn)對控制器的集中管控。
2.2 可編程終端對多個接口連接管理設(shè)計
2.2.1 監(jiān)測模塊
監(jiān)測模塊主要負(fù)責(zé)監(jiān)控接口狀態(tài),統(tǒng)計流表信息和流信息。通過監(jiān)測模塊實現(xiàn)對間隔時間段內(nèi)信息的靈活配置,符合系統(tǒng)設(shè)計的實時性需求。
2.2.2 分析模塊
分析模塊主要負(fù)責(zé)對監(jiān)控模塊采集到的信息進(jìn)行分析,比如接口帶寬、異常錯誤、延遲等進(jìn)行分析,它還包括對流表項的數(shù)量是否達(dá)到上限值進(jìn)行分析,對表的老化時間進(jìn)行正確處理,以及對業(yè)務(wù)的有關(guān)需求進(jìn)行分析。
2.2.3 決策模塊
根據(jù)分析模塊分析結(jié)果,通過一定的策略算法,以及當(dāng)前的連接狀態(tài)做出決策,決策的結(jié)果可以是對不同種類的業(yè)務(wù)進(jìn)行分流,并在不同接口情況下進(jìn)行傳輸。
2.2.4 執(zhí)行模塊
數(shù)據(jù)包指定要從某連接進(jìn)行發(fā)出時,需要有關(guān)人員對數(shù)據(jù)包進(jìn)行翻譯處理。當(dāng)A和B進(jìn)行通信時,二者之間會形成多條連接,通過通信的建立來實現(xiàn)對連接的執(zhí)行。數(shù)據(jù)包在A從網(wǎng)絡(luò)棧經(jīng)過虛擬接口到達(dá)OpenvSwitch時,應(yīng)用的源地址是IP_a0,應(yīng)用的目的地址是IP_b0。在經(jīng)過接口發(fā)出時,源地址會被修改為接口對應(yīng)的地址,比如從port2出發(fā),源地址就被改為IP_a2。[2]
3 測試與驗證
文章提到的基于 OpenFlow 的可編程終端設(shè)計與實現(xiàn)是在Linux上進(jìn)行的,并在多個有線接口的作用下進(jìn)行試驗?;诠δ軠y試的對象是針對中端,因此網(wǎng)路的設(shè)置一般采用簡單的一跳完成。兩個終端使用的操作系統(tǒng)均是配有三個有線接口的Linux系統(tǒng),具體測試的拓?fù)浣Y(jié)構(gòu)圖如圖1所示。[3]在試驗中分別對視頻流業(yè)務(wù)、FTP業(yè)務(wù)、HTTP訪問業(yè)務(wù)和PING業(yè)務(wù)進(jìn)行了測試,具體的連接管理策略為將視頻業(yè)務(wù)流由連接1進(jìn)行傳輸,將FTP業(yè)務(wù)流由連接2傳輸,將HTTP和PING由連接3進(jìn)行傳輸。CLient和Server的通信系統(tǒng)采用的是IP_a1和IP_b1,三個不同的接口對應(yīng)三種不同的IP地址,為了減少地址的數(shù)量,可以將一些配置默認(rèn)為相同,具體安排如表1所示,功能試驗如圖2所示。
4 結(jié)束語
新網(wǎng)絡(luò)技術(shù)的產(chǎn)生,尤其是OpenFlow技術(shù)的誕生,有效解決了網(wǎng)絡(luò)管控問題,特別是多接口終端網(wǎng)絡(luò)通信連接管控問題,通過嵌入OpenFlow插件,很方便的對多接口終端進(jìn)行升級,實現(xiàn)多接口終端的可編程性。這種終端特別適用于網(wǎng)絡(luò)資源類型多樣化的環(huán)境,能夠為接口的配置與調(diào)用帶來便利,同時也為開發(fā)具有多連接管理需求的控制軟件提供便利,能有效的為多種網(wǎng)絡(luò)資源進(jìn)行合理的開發(fā)和利用。除此之外,可編程終端的設(shè)計與實現(xiàn)研究,為有關(guān)研究人員提供了開發(fā)平臺,并在對可編程終端拓展發(fā)展空間的同時,實現(xiàn)其與SDN網(wǎng)絡(luò)的融合。
參考文獻(xiàn):
[1] 李文俊.基于OpenFlow的可編程終端設(shè)計與實現(xiàn)[J]. 軟件,2013(11):27-30.
[2] 劉輝. OpenFlow無線路由器及組網(wǎng)技術(shù)研究[D].北京:北京郵電大學(xué),2014.
[3] 代游. SDN控制架構(gòu)及應(yīng)用開發(fā)的研究和設(shè)計[D].杭州:浙江工商大學(xué),2014.