一種OpenFlow協(xié)議一致性測試的方法和系統(tǒng)的制作方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及一種通信協(xié)議的一致性測試系統(tǒng)及其方法,具體涉及一種OpenFlow協(xié)議一致性的測試系統(tǒng)及其方法。【
背景技術(shù):
】[0002]信息技術(shù)的高速發(fā)展,特別是近年來在移動設(shè)備和內(nèi)容、主機(jī)虛擬化、云服務(wù)等方向爆炸式的發(fā)展使得網(wǎng)絡(luò)產(chǎn)業(yè)界開始重新審視傳統(tǒng)網(wǎng)絡(luò)的架構(gòu)。傳統(tǒng)的網(wǎng)絡(luò)是分級的,由多級以太網(wǎng)交換機(jī)以樹形結(jié)構(gòu)構(gòu)成網(wǎng)絡(luò)。這樣的設(shè)計在客戶端-服務(wù)器技術(shù)占主流的時候是合適的,但是這樣的靜態(tài)架構(gòu)無法滿足現(xiàn)在企業(yè)數(shù)據(jù)中心、高校、運(yùn)營商承載網(wǎng)等對動態(tài)計算和存儲的需求。信息技術(shù)的發(fā)展趨勢提出了對新的網(wǎng)絡(luò)模式的需求。[0003]軟件定義網(wǎng)絡(luò)(SoftwareDefinedNetworking,SDN)是一種新興的網(wǎng)絡(luò)架構(gòu)。在以前的網(wǎng)絡(luò)架構(gòu)中,對網(wǎng)絡(luò)的控制是和每臺獨(dú)立的網(wǎng)絡(luò)設(shè)備緊密地聯(lián)系在一起,也就是說網(wǎng)絡(luò)控制模塊是集成在網(wǎng)絡(luò)設(shè)備中的,設(shè)備制造商只提供有限的網(wǎng)絡(luò)控制接口。在SDN架構(gòu)中,網(wǎng)絡(luò)控制和數(shù)據(jù)轉(zhuǎn)發(fā)功能分離,并且網(wǎng)絡(luò)管理人員可以對網(wǎng)絡(luò)控制進(jìn)行編程。把網(wǎng)絡(luò)控制從網(wǎng)絡(luò)設(shè)備中遷移到網(wǎng)絡(luò)管理人員可控制的計算機(jī)設(shè)備,使得下層的設(shè)施可以被抽象為應(yīng)用和網(wǎng)絡(luò)服務(wù),把網(wǎng)絡(luò)設(shè)備看成是邏輯或者虛擬的實體。SDN是動態(tài)、易管理、成本高效和適應(yīng)性強(qiáng)的網(wǎng)絡(luò)架構(gòu),能夠給網(wǎng)絡(luò)管理員帶來從未有過的可編程性、自動化和控制功能。[0004]通過開放的標(biāo)準(zhǔn)來實現(xiàn)SDN能夠極大地提高靈活性,同時降低服務(wù)開發(fā)和運(yùn)營的成本,而且可以讓網(wǎng)絡(luò)管理人員集成最新的技術(shù)。為此在2011年由多家公司(DeutscheTelekom,F(xiàn)acebook,Google,Verizon,Microsoft,Yahoo!)成立了開放網(wǎng)絡(luò)基金會(OpenNetworkingFoundation,0NF)。ONF是一個非營利性機(jī)構(gòu),提出SDN標(biāo)準(zhǔn)和解決方案,致力于SDN的推廣和發(fā)展。OpenFlow協(xié)議是由ONF提出的第一個專為SDN設(shè)計的標(biāo)準(zhǔn)接口,并且已經(jīng)部署在了許多網(wǎng)絡(luò)和網(wǎng)絡(luò)產(chǎn)品中。伴隨SDN的發(fā)展與普及,更多OpenFlow的研究將會展開,更多OpenFlow的產(chǎn)品將會推出。[0005]OpenFlow標(biāo)準(zhǔn)是開放標(biāo)準(zhǔn)的協(xié)議能夠讓網(wǎng)絡(luò)管理員通過基于軟件的方式來實現(xiàn)傳統(tǒng)網(wǎng)絡(luò)中交換機(jī)和路由器的流控制功能。OpenFlow標(biāo)準(zhǔn)與傳統(tǒng)網(wǎng)絡(luò)的路由器和交換機(jī)不同,傳統(tǒng)的設(shè)備包轉(zhuǎn)發(fā)(數(shù)據(jù)路徑)和路由選擇(控制路徑)在同一設(shè)備上。OpenFlow交換機(jī)將這兩個功能分離開。數(shù)據(jù)路徑部分在保留在交換機(jī)上,高層的路徑選擇功能被移動到分離的控制器上。OpenFlow交換機(jī)和OpenFlow控制器通信通過OpenFlow標(biāo)準(zhǔn)定義,包括packet-received,send-packet-out,modify-forwarding-table,get-stats等。[0006]ONF規(guī)范包括OpenFlow標(biāo)準(zhǔn)(OpenFlowStandard),OpenFlow配置(OpenFlowConfiguration),測試(Testing)和互操作性(Interoperability)。[0007]OpenFlow交換機(jī)規(guī)范(OpenFlowSwitchSpecification)描述了對OpenFlow交換機(jī)的要求,規(guī)范包括了OpenFlow交換機(jī)的組件和基本功能,和遠(yuǎn)程控制器管理交換機(jī)的OpenFlow協(xié)議(OpenFlowProtocol)。OpenFlow交換機(jī)規(guī)范在2009年12月發(fā)布1.0·0版本,2011年2月發(fā)布1.1.0版本,2011年12月發(fā)布1.2.0版本,2012年6月發(fā)布1.3.0版本,2013年10月發(fā)布1.4.O版本,目前最新的版本為1.3.4和1.4.0。[0008]ONF推出了OpenFlow-致性測試項目(ONFOpenFlowConformanceTestingProgram),為設(shè)備制造商提供OpenFlow規(guī)范一致性的認(rèn)證。目前該項目發(fā)布了OpenFlow-致性測試規(guī)范(ConformanceTestSpecificationforOpenFlowSwitchSpecificationI.〇.I),但是并沒有發(fā)布一致性測試工具。[0009]IS0/IEC9646(ITU-TX.290)為ISO與ITU協(xié)議提供了一致性測試基本方法框架,這是應(yīng)用最為廣泛的一致性測試方法理論。IS0/IEC9646為測試集制定了設(shè)計步驟和描述方法,并為測試系統(tǒng)的實現(xiàn)提供了指導(dǎo)。協(xié)議一致性測試過程分三個階段:測試準(zhǔn)備階段生成抽象測試套(AbstractTestSuite,簡稱ATS);測試操作階段產(chǎn)生參數(shù)化的可執(zhí)行測試套;測試執(zhí)行階段包括被測協(xié)議實現(xiàn)(ImplementationUnderTest,簡稱IUT)的協(xié)議實現(xiàn)一致性聲明的分析和可執(zhí)行測試套的執(zhí)行,最終得到一個一致性測試的判決,生成一致性測試報告。其中抽象測試套的生成決定了測試的質(zhì)量,是測試操作和測試執(zhí)行的基礎(chǔ),是整個協(xié)議測試的核心?!?br/>發(fā)明內(nèi)容】[0010]本發(fā)明所要解決的技術(shù)問題是提供一種針對OpenFlow協(xié)議進(jìn)行一致性測試的方法和系統(tǒng),使得對OpenFlow協(xié)議進(jìn)行一致性測試簡單化,縮短測試時間,并能夠?qū)崿F(xiàn)對OpenFlow協(xié)議自動化一致性測試。[0011]本發(fā)明解決上述技術(shù)問題所采取的技術(shù)方案如下:[0012]一種對OpenFlow協(xié)議進(jìn)行一致性測試的系統(tǒng),包括:[0013]抽象測試套模塊,包括:測試執(zhí)行單元,用于將要發(fā)送的OpenFlow協(xié)議的測試數(shù)據(jù)發(fā)送給編解碼模塊;[0014]所述測試數(shù)據(jù)為抽象測試套模塊指定的用于和被測系統(tǒng)之間的通信的OpenFlow協(xié)議數(shù)據(jù);[0015]編解碼器模塊,用于對測試數(shù)據(jù)進(jìn)行編碼或者解碼;[0016]適配器模塊,包括數(shù)據(jù)發(fā)送單元,用于接收經(jīng)過編解碼器模塊編碼后的測試數(shù)據(jù),并發(fā)送給被測系統(tǒng)的端口;定時器單元,用于開啟定時;[0017]數(shù)據(jù)接收單元,用于接收來自被測系統(tǒng)返回的反饋消息,并將接收到的反饋消息交給編解碼模塊,所述編解碼模塊對反饋消息解碼后,發(fā)送給測試執(zhí)行單元;[0018]所述測試執(zhí)行單元,根據(jù)解碼后的反饋消息判斷測試是否通過,其中,若接收的反饋消息數(shù)據(jù)為空或定時器單元超時則判定結(jié)果失敗,若反饋消息的數(shù)據(jù)包正確則關(guān)閉定時器單元,并判斷是否需要繼續(xù)發(fā)送數(shù)據(jù)或者判定結(jié)果通過。[0019]進(jìn)一步地,優(yōu)選的是,所述抽象測試套模塊,具體包括:[0020]測試腳本單元,用于獲取測試人員設(shè)定的OpenFlow協(xié)議測試數(shù)據(jù)定義和具體的測試邏輯;測試套單元,用于存儲所有測試?yán)?,所述測試?yán)脺y試腳本語言描述。[0021]進(jìn)一步地,優(yōu)選的是,所述測試腳本單元中,所述OpenFlow協(xié)議測試數(shù)據(jù)定義和具體的測試邏輯具體包括:測試人員根據(jù)OpenFlow協(xié)議的消息格式,定義出的測試中使用到的OpenFlow消息結(jié)構(gòu),且所述消息結(jié)構(gòu)為根據(jù)模塊所定義,消息結(jié)構(gòu)使用記錄類型進(jìn)行嵌套定義;[0022]所述測試套單元中,所述測試?yán)y試所需要的變量對端口進(jìn)行操作的聲明或定義。[0023]進(jìn)一步地,優(yōu)選的是,還包括:[0024]日志模塊,包括:日當(dāng)前第1頁1 2 3 4