專利名稱::基于opnet的多層協(xié)議棧網(wǎng)絡(luò)設(shè)備測試方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信領(lǐng)域,尤其涉及一種基于OPNET的多層協(xié)議棧網(wǎng)絡(luò)設(shè)備測試方法。
背景技術(shù):
:隨著網(wǎng)絡(luò)的快速發(fā)展,網(wǎng)絡(luò)設(shè)備的類型越來越多,交換機、路由器、集線器、網(wǎng)橋、網(wǎng)關(guān)等,其中又包括不同的品牌、型號的設(shè)備以及不同廠家的設(shè)備,由于缺少通用的規(guī)格,某些網(wǎng)絡(luò)協(xié)議未作明確規(guī)定的設(shè)備其實現(xiàn)方法各不相同,而網(wǎng)絡(luò)設(shè)備測試的前提就是將設(shè)備放置到網(wǎng)絡(luò)中。通常測試網(wǎng)絡(luò)的改變會影響到測試數(shù)據(jù)的結(jié)果,而且為測試一個設(shè)備構(gòu)建一個測試網(wǎng)未免得不償失。網(wǎng)橋可以實現(xiàn)兩個網(wǎng)段之間的數(shù)據(jù)鏈路層的協(xié)議轉(zhuǎn)換,網(wǎng)關(guān)則是應(yīng)用層之間的轉(zhuǎn)換,其它則不做協(xié)議轉(zhuǎn)換。COM(ComponentObjectModel,簡稱組件對象模型)、CORBA(CommonObjectRequestBrokerArchitecture,簡稱公共對象請求代理結(jié)構(gòu))定義了IDL(InterfaceDescriptionLanguage,簡稱接口描述語言),對于不同的設(shè)備可以使用不同的Adapter進行解析,拆解出需要的字段,然后填充到IDL的對應(yīng)項來實現(xiàn)。通過軟件仿真研究網(wǎng)絡(luò)性能,減少網(wǎng)絡(luò)部署測試的開銷,但是在結(jié)構(gòu)、協(xié)議日趨復(fù)雜的網(wǎng)絡(luò)中,通過單一的軟件仿真方式,很難能夠通過仿真的方法得到可靠性驗證。如果采用軟件仿真和硬件設(shè)備結(jié)合的方法,不僅能夠測試出設(shè)備的性能又能夠得到網(wǎng)絡(luò)的性能,從而提髙仿真的可靠性。OPNET軟件提供的ESA(ExternalSimulationAccess,簡稱外部仿真控制)接口支持仿真節(jié)點和實際網(wǎng)絡(luò)的連接,將真實數(shù)據(jù)導(dǎo)入到仿真網(wǎng)絡(luò),或?qū)⑻摂M仿真數(shù)據(jù)發(fā)送到真實網(wǎng)絡(luò),為網(wǎng)絡(luò)測試提供了前提條件。另外基于傳統(tǒng)的Socket通信方式在異構(gòu)系統(tǒng)中同樣能夠?qū)崿F(xiàn)互通,本發(fā)明基于此兩種方式結(jié)合,實現(xiàn)網(wǎng)絡(luò)級設(shè)備的性能測試。OPNETModeler是一款用于網(wǎng)絡(luò)仿真的軟件,能夠滿足大型復(fù)雜網(wǎng)絡(luò)的仿真需要,為技術(shù)人員提供一個網(wǎng)絡(luò)技術(shù)和產(chǎn)品開發(fā)平臺,可以幫助他們設(shè)計和分析網(wǎng)絡(luò)、網(wǎng)絡(luò)設(shè)備和通信協(xié)議。所述軟件通過離散事件仿真機制提供單向和全雙工的點到點鏈路,也提供總線鏈路用以允許對任意大小的節(jié)點組的廣播通信,通過網(wǎng)絡(luò)域、節(jié)點域和進程域?qū)崿F(xiàn)三層建模仿真。能夠模擬路由器、網(wǎng)橋、工作站,終端等網(wǎng)絡(luò)設(shè)備,同時也支持大規(guī)模異構(gòu)網(wǎng)絡(luò)組網(wǎng),特別在針對具有多層協(xié)議棧網(wǎng)絡(luò)架構(gòu)的仿真方面具有其它仿真軟件所不能比擬的優(yōu)勢,如GMPLS(GeneralizedMultiProtocolLabelSwitching,簡稱通用多協(xié)議標(biāo)記交換)網(wǎng)絡(luò),ATM(AsynchronousTransferMode,簡稱異步傳輸模式)網(wǎng)絡(luò)等。綜上所述,通過軟件仿真網(wǎng)絡(luò)測試實際的網(wǎng)絡(luò)設(shè)備能夠減少測試的成本,并且可以通過接口仿真多種協(xié)議,對于多協(xié)試棧的網(wǎng)絡(luò)結(jié)構(gòu)可以靈活地支持。考慮到前述情況,存在克服相關(guān)技術(shù)中不足的需要。
發(fā)明內(nèi)容本發(fā)明實施例要解決的技術(shù)問題是提供一種基于OPNET的多層協(xié)議棧網(wǎng)絡(luò)設(shè)備測試方法,通過商用成熟的OPNET網(wǎng)絡(luò)仿真軟件4是供外圍測試接口,將硬件接口板和真實網(wǎng)絡(luò)設(shè)備互通,測試協(xié)議開銷、協(xié)議流程等。本發(fā)明可以解決測試網(wǎng)絡(luò)硬件設(shè)備單一化,缺乏真實網(wǎng)絡(luò)模擬性能的問題,同時給出擴展性、通用性較強的接口設(shè)計方法。本發(fā)明所給出的基于OPNET的多層協(xié)議棧網(wǎng)絡(luò)設(shè)備測試方法,從軟件、硬件兩個方面獨立進行設(shè)計,并給出目前廣泛流行的基于Web提交的網(wǎng)絡(luò)化處理方法。特別地,針對復(fù)雜的多層協(xié)議棧協(xié)議流程,給出兩種不同的解決方案,分別應(yīng)用于不同的測試場景。本發(fā)明利用OPNET的ESA接口,完成軟硬件平臺接口,并在內(nèi)部仿真類提供對外配置軟件接口。具體包括網(wǎng)絡(luò)測試設(shè)備硬件版的外圍接口電路以及網(wǎng)絡(luò)測試硬件的軟件接口設(shè)計,^j"于單個協(xié)議的報文擴展方法。在多層協(xié)議棧網(wǎng)絡(luò)協(xié)議中的數(shù)據(jù)流封裝和二進制比特映射過程,并對支持分段功能的OPNET系列函數(shù)重新設(shè)計一種基于鏈表的可控仿真實現(xiàn),提高軟件網(wǎng)絡(luò)仿真的準(zhǔn)確度。基于Web應(yīng)用類型的測試方法及接口設(shè)計,具體包括Struct框架下的多種技術(shù)組合,完成MVC設(shè)計才莫式。從以上技術(shù)方案中可以看出,本發(fā)明通過OPNET仿真軟件,實現(xiàn)基于網(wǎng)絡(luò)、硬件設(shè)備的測試需求,而且對于多層協(xié)議棧中目前存在的多種關(guān)鍵性問題進行分析并給出完整的解決方法,提高通過網(wǎng)絡(luò)仿真方式測試硬件設(shè)備的可信度。在網(wǎng)絡(luò)協(xié)議內(nèi)部進行接口擴展,而對于實際設(shè)備無需任何改動,可以實現(xiàn)即插即測。本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解,本發(fā)明的目的和其它優(yōu)點可通過在縮寫的說明書、權(quán)利要求書,.以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。結(jié)合描述了本發(fā)明的各種實施例的附圖,根據(jù)以下對本發(fā)明的各發(fā)明的詳細(xì)描述,將更易于理解本發(fā)明的這些和其它特征,其中圖1描述了網(wǎng)絡(luò)測試的Xilinx外圍硬件板結(jié)構(gòu);圖2描述了網(wǎng)絡(luò)測試硬件的軟件接口設(shè)計方法;圖3示意性示出一種路由協(xié)議的測試消息和攜帶實際數(shù)據(jù)的方法;圖4描述了路由協(xié)議的承載的二層協(xié)議棧轉(zhuǎn)換-方洽;圖5描述了基于傳統(tǒng)電信網(wǎng)的多層協(xié)議棧的測試實現(xiàn)方法;圖6給出ATM多層協(xié)議的信令消息流程的實際數(shù)據(jù)流的封裝方法和解碼后的二進制比特流;圖7描述了OPNET中基于分段協(xié)議的測試數(shù)據(jù)附—加方法;圖8描述了基于Web配置的設(shè)備測試設(shè)計系統(tǒng)的軟件實現(xiàn)方法;圖9示意性示出了基于Struct體系結(jié)構(gòu)下的測試軟件接口流程;圖10描述了一種基于RMI的測試網(wǎng)絡(luò)拓樸結(jié)構(gòu)。具體實施方式下面將結(jié)合附圖對本發(fā)明的實施方式進行詳細(xì)描述。圖1描述了網(wǎng)絡(luò)測試的Xilinx外圍硬件板結(jié)構(gòu)。硬件部分在整個系統(tǒng)中完成虛擬仿真網(wǎng)絡(luò)與測試設(shè)備的連通,采用FPGA及外圍芯片實現(xiàn)了虛擬網(wǎng)絡(luò)到實際網(wǎng)絡(luò)的接口,所述接口板包含接口'模塊101和主控模塊102兩個模塊,其中接口FPGA實現(xiàn)了測試數(shù)據(jù)流解幀和組幀功能,主控FPGA需要控制多個外設(shè)接口協(xié)同工作,主控FPGA通過互聯(lián)信號線對接口FPGA進行控制,101和102之間的互連接口是數(shù)據(jù)交互的通路。102是整個硬件接口板的控制核心,對各個硬件接口進行了控制和調(diào)度,該部分采用了Xilinx公司的Spartan3E系列FPGA(FieldProgrammableGateArray,簡稱現(xiàn)場可編程陣列)實現(xiàn),并采用了EDK(EmbeddedDevelopmentKit,簡稱嵌入式開發(fā)套件)開發(fā)工具,在FPGA內(nèi)部嵌入了MicroBlaze32位的CPU軟核實現(xiàn)主控功能。主控FPGA控制了多個接口,分別是通過接口FPGA外掛的USB口106、串口107、E1口108、光纖口109以及百兆以夫網(wǎng)口1010。由于考慮到主控FPGA需要控制多個外設(shè)接口協(xié)同工作,所以需要在MicroBlaze上運行uClinux操作系統(tǒng),以實現(xiàn)不同接口之間的調(diào)度,程序運行在SDRAM上,操作系統(tǒng)鏡像及基本配置數(shù)據(jù)信息保留在FLASH上。主控FPGA采用MicroBlaze的CPU(CentralProcessUnit,簡稱中央處理器)軟核,使用EDK將uClinux移植到MicroBlaze上運行,釆用多任務(wù)方式,每個外設(shè)接口使用一個線程,通過時間片輪轉(zhuǎn)調(diào)度方式對多個外設(shè)接口進行控制。uClinux移植需要采用EDK軟件搭建硬件環(huán)境,使用軟件提供的串口,網(wǎng)口,SDRAM103^FLASH104的IP核,并將IP核通過OPB(On-ChipPeripheralBus,簡稱片上外圍總線)總線掛接到MicroBlaze的CPU軟核,配置并生成uClinux的BSP,完成硬件系統(tǒng)的配置,最后需要對uClinux源代碼進行交叉編譯,產(chǎn)生可以運行于Microblaze的uClinux操作'系統(tǒng)。硬件系統(tǒng)開始工作時,利用網(wǎng)口或串口可以將uClinux#:作系統(tǒng)的代碼下載到FLASH,并在FPGA上先運行boot引導(dǎo)程序的代碼,.以后每次系統(tǒng)啟動都會到FLASH上的制定存儲空間,將操作系統(tǒng)程序拷貝到SDRAM,并乂人SDRAM開始運4亍,完成系統(tǒng)啟動過禾呈。系統(tǒng)互連接口通過UART(UniversalAsynchronousReceiver/Transmitter,簡稱通用異步收發(fā)器)專用芯片控制,UART接口芯片一般引腳較多,內(nèi)含許多輔助模塊和一些輔助功能,采用全雙工形式收發(fā)w逸信的發(fā)送方和接收方各自有獨立的時鐘,傳輸?shù)乃俾视呻p方約定,通常以低電平作為起始位,高電平作為停止位,中間可傳輸5~8比特數(shù)據(jù)和一個比特奇偶校驗位,是否存在奇偶校驗位以及數(shù)據(jù)比特的長度由通信雙方約定,一幀數(shù)據(jù)傳輸完畢后可以繼續(xù)傳輸下一幀數(shù)據(jù)。.目前的FPGA板均提供數(shù)字時鐘管理(Xilinx的全部FPGA均具有這種特性)。Xilinx推出的最先進的FPGA提供數(shù)字時鐘管理和相位環(huán)路鎖定。相位環(huán)路鎖定能夠提供精確的時鐘綜合,且能夠降低抖動,并能夠?qū)崿F(xiàn)過濾功能。圖2描述了網(wǎng)絡(luò)測試硬件的軟件接口設(shè)計方法。在基于面向?qū)ο?0的設(shè)計過程中,無論是類還是方法通常都是相互關(guān)聯(lián)的。當(dāng)一個類的實現(xiàn)依賴于另外一個類時,構(gòu)成耦合關(guān)系。對于軟件摸擬網(wǎng)絡(luò)的情況下,至少需要采用配置信息類201,仿真接口類202和仿真內(nèi)核類203三個類來實現(xiàn)。在配置信息類201和仿真接口類202之間釆用松耦合,減少它們之間的交互信息,使得外部用戶不需要知道另外一個類的任何實現(xiàn)細(xì)節(jié)。向?qū)Ψ降膶ο蟀l(fā)送消息來進行訪問數(shù)據(jù)的屬性,通過對象的協(xié)作來完成操作。在仿真接口類202和仿真內(nèi)核類203之間由于為仿真所共同擁有控制權(quán),采用緊耦合方式,通過節(jié)約訪問的周期使得系統(tǒng)運行的更快。雖然一旦屬性的實現(xiàn)發(fā)生變化就需要修改對應(yīng)的代碼,但是在處理負(fù)荷的時候,即使是訪問數(shù)據(jù)時可以節(jié)省出幾毫秒,面對成百上千對象的時候,就會節(jié)省出大量的時間。此時202和203依賴于實現(xiàn),也就是可以直接訪問另一個類的數(shù)據(jù)屬性。除非某些必要的情況,盡量少采用緊耦合的代碼,否則會造成系統(tǒng)鄉(xiāng)良護的逸重負(fù)擔(dān),相應(yīng)的業(yè)務(wù)代碼和測試代碼庫都會隨著規(guī)模的增大迅速膨脹,不適合后期軟件維護。松耦合的網(wǎng)絡(luò)測試仿真網(wǎng)絡(luò)設(shè)計需要在接口定義了一組方法和屬性,通過類和組件來共同實現(xiàn)內(nèi)聚的行為。在仿真配置類和仿真接口類分別定義接口的方法.在參與的類中,定義一套通用功能集,除了支持接口以外,不需要別的類知道任何有關(guān)仿真內(nèi)核的事情。通過基于WEB的GUI(GraphicUserInterface,簡稱圖艱用戶」接口)獲得仿真的配置信息,GUI可以顯示出來實現(xiàn)的接口,以及任何實現(xiàn)了這些接口的類,但是除了實現(xiàn)兩個接口之外,GUI對于這些泉其它一無所知。通過為類和組件實現(xiàn)接口的方式增強模型和源碼中的一致性。在傳統(tǒng)的軟件開發(fā)過程中,如IEEE12207(http:〃www.ieee.org),將建模作為一個或者多個順序包含進來。而釆用RUP(RationalUnifiedProcess,簡稱Rational統(tǒng)一過程,通過演化方式工作的建模規(guī)則以特定細(xì)節(jié)來描述軟件的結(jié)構(gòu)關(guān)系。通過特定的用戶界面組件(如窗體、HTML(HyperTextMarkupLanguage,簡稱為HTML)頁面或報表)獲得外部.用戶酵置參數(shù)的輸入,具體而言可以通過Microsoft窗體或者圖形用戶界面GUI方式或者通過瀏覽器作為外部信息的載體,通過仿真"l矣口類的處理,傳遞到仿真內(nèi)核中來。使得仿真的進行與具體的系統(tǒng)工作方式無關(guān),而不會影響用例的邏輯。收到仿真請求時,為窗體和報表等主要用戶界面元素添加邊界元素,所謂邊界元素,是指窗體、才艮表、HTML頁面,或系統(tǒng)界面等與執(zhí)行者(Actor)交互的軟件元素。可以通過三層建模方式,利用接口類的映射高效地完成不同的測試項目的雷求,提高仿真軟件模型的通用性。對于基于分布式多機計算情況,需要通過分層架構(gòu)根據(jù)仿真定制規(guī)則,同時應(yīng)用安全引擎等軟件組件,Web服務(wù)和消息總線等中間件以及大型機和應(yīng)用服務(wù)器硬件節(jié)點來實現(xiàn)。在仿真類之間將端口簡化以提供或請求單個接口,簡化端口間的關(guān)系和組件的內(nèi)部信息建模,通過類等物理結(jié)構(gòu)實現(xiàn)該邏輯結(jié)構(gòu)。通過自頂向下的方法開發(fā)組件模型,早期確定軟件模型的發(fā)展。根據(jù)Martin,Newkirk和Koss2003的《AgileSoftwareJDevelo,pment》中的設(shè)計原則,由于組件內(nèi)部的通信通常是內(nèi)存中對象"^間簡單地發(fā)送消息,而組件之間的通信則首先將消息以及參數(shù)轉(zhuǎn)化為數(shù)槔進行傳送,再轉(zhuǎn)化回消息。通過在接口仿真類和外部配置參數(shù)類之間構(gòu)成無環(huán)依賴圖(AcyclicDependencies),減少流進和流出類的寸言息流。而在仿真平臺內(nèi)部則形成公共閉包(CommonClosure),這樣可以減少同類變化的影響。組件內(nèi)一個類的變化不會影響組件夕P部的類,形成高度內(nèi)聚的組件類。通過實現(xiàn)公共接口的方法進行適當(dāng)?shù)奈?,封裝對外部組件的訪問,從而實現(xiàn)模塊化的測試系統(tǒng)結(jié)構(gòu)。圖3示意性示出一種路由協(xié)議的測試消息和攜帶實際數(shù)據(jù)的方法。OPNET自帶的OSPF模塊主進程為OSPF—V2,該進程具有一個子進程ospf_process,OSPF協(xié)議的主要功能由本進程完成。而進程ospf_process又具有2個子進禾呈ospf—interface一v2和ospf—virtual—interface—v2,這兩個子進禾呈又各自包含一個名為ospf—neighbor—v2的子進程。OSPF的初始路由表可設(shè)置為由外部導(dǎo)入,程序運行后,IP模塊會向OSPF模塊發(fā)送初始化'指令,OSPF隨后會進行相應(yīng)的初始化操作,創(chuàng)建相應(yīng)的子進程。此后OSPF—V2進程收到不同的事件(中斷,包括收到OSPF消息和故障等)會交給子進程處理。OSPF協(xié)議具有5種格式的報文,包括Hello包,DatabaseDescription包,LSR包,LSU包和LSAck包,每中類型的l艮文都具有相同的包頭。在OPNETospf模塊中的集中消息報文-分別對應(yīng)的報文才各式為302"ospf—hello—v2",303"ospf—Is—update—v2",304"ospf—ls—ack一v2",305"ospf—Is—requst—v2",306"ospf—dbase—desc—v2"。在仿真數(shù)據(jù)的末尾位附加實際數(shù)據(jù)流比特來傳遞仿真的實際數(shù)據(jù)Hello包302具體分3個域,8比特的"type",integer型;160比對爭的"fields",structure型;184比凈爭的"headerinfo",information型,OSPF包頭中,hello包的type值為1。其中Neighbor域為本節(jié)點在最近的一個RouterDeadlnterval時間內(nèi)收到過hello包的所有鄰居節(jié)點集合,用其router—id標(biāo)識,長度不固定。在OPNETOSPF模塊中,由接口管理進程ospf—interface—v2或ospf—virtual一interface—v2創(chuàng)建,創(chuàng)建函lt為ospf_hellocreate,接收到hello包后讀取包中type域的值,確定為hello包;取出fields域,進行包頭鑒定,F(xiàn)ields域本為結(jié)構(gòu)體OspfT—Hello—Pkt—Fields,進行包頭鑒定時,將指向fields域的指針強制轉(zhuǎn)換為指向結(jié)構(gòu)體OspfT—Pkt—Header_Fields。從包中讀取鄰居節(jié)點列表,將收到的hello包的第4個域開始讀取鄰居節(jié)點信息。由于OPNETOSPF模塊中的hello包固定包含3個域,故創(chuàng)建hello包時將附加的neighbor信息附著在hello包的尾部,故/犬第4個域開始讀耳又Real—Data。DDesc包306分為3個域,8比特的"type",integer型;64比特的"fields",structure型;184比特的"headerinfo",information型。主要描述的是發(fā)送節(jié)點的LSA狀況,其創(chuàng)建兩數(shù)為ospf—message—lsr—create。需要注意的是該函凄t只創(chuàng)建該包的靜態(tài)部分,包括OSPF包頭和DDsequencenumber/InterfaceMTU/Options/I/M/MS/等域的信息。而本地LSA信息(包中的LSA.Header部分)會在包創(chuàng)建完成后由函ltospf—message—lsa—header—add添力口(每次只添加1個LSAHeader)。OSPF才莫塊中鄰居管理進程和游息處理進程(ospf_process)都會創(chuàng)建并發(fā)送該包。其中,鄰居管理進程在鄰居狀態(tài)到達Ex—Start后會主動向鄰居發(fā)送DDesc包,此時發(fā)送該包的主要目的是進行DD序列號同步,故只需要創(chuàng)建一個包,不需要附加本地的LSA信息。而在消息處理進程中,當(dāng)收到鄰居節(jié)點發(fā)來的DDesc包時,需要回發(fā)DDesc包,以作為隱式確認(rèn)。此時才艮據(jù)本地LSA的狀況確認(rèn)是否需要往包中添加LSAHeader。LSR包305分3個域,8比特的"type",integer型;0比特的"fields",structure型;184比凈爭的"headerinfo",information型。當(dāng)兩個沖目鄰節(jié)點在完成DDesc包發(fā)送過程后,若一個節(jié)點發(fā)現(xiàn)對方擁有自己沒有的LSA,或者對方的LSA比自己的LSA更新,則向其發(fā)送LSR包,請求LSA。所請求的LSA由LSType,LinkSfatelD,AdvertisingRouterID三者標(biāo)識。與DDesc包相同的是,OPNET中LSR報文的創(chuàng)建函數(shù)ospf—message—lsr—create也只是創(chuàng)建包的靜態(tài)部分,即OSPF包頭。根據(jù)本地的LSA數(shù)據(jù)情況和收到的DDesc情況,由函數(shù)ospf—message—Is—request—add添力口i青求列表。在fe戈內(nèi)S乏洪時,以及鄰居狀態(tài)達到Loading時會發(fā)出LSR包。LSU包303分3個域,8比特的"type",integer型;32比特的"fields",structure型;184比4爭的"headerinfo",information聖+。包含有LSA完全信息,可以供收到LSU包的節(jié)點更新本地的LSA庫。而OPNET中該才艮文的創(chuàng)建函數(shù)ospf—message—lsucreate只創(chuàng)建該包的包頭部分OSPFHeader和#LSA。而LSA數(shù)捧的添力。由函數(shù)15ospf—message—lsa—add完成,同時該函數(shù)還會根據(jù)添加的LSA數(shù)量設(shè)置弁LSA的值(#LSA的內(nèi)存空間由創(chuàng)建函數(shù)分配)。在鄰居管理進程進行鄰居LSU重傳,信息處理進程收到LSR包,以及泛洪時會創(chuàng)建該包。節(jié)點在收到LSU包時,首先對收到的包進行合法性檢驗,如通過則將包中的LSA取出,若本節(jié)點中不具有該LSA,則將其載入本地LSA數(shù)據(jù)庫中;若本地具有該LSA,但收到的LSA'更新,則用收到的LSA替換掉本地LSA數(shù)據(jù)庫中的LSA實體;否則丟棄收到的LSA。LSAck包304分3個域,8比特的"type",integer型;0比特的"fields",structure型;184比特的"headerinfo",information型。該報文的創(chuàng)建函數(shù)只會創(chuàng)建包的靜態(tài)部分OSPF包頭,而包的凈荷部分一個或多個的LSAHeader由函凄tospf—message—lsa—header—add添加。當(dāng)節(jié)點在收到一個LSU包之后會創(chuàng)建并發(fā)送LSA包,在最后一個域附加類型為unsignedcha產(chǎn)類型的實際lt據(jù)部分。RFC2328中共定義了5種類型的LSA,分別是'Router-LSAs、Network-LSAs、Summary-LSAs(IPnetwork),Summary-LSAs(ASBR)、AS-external-LSAs,OPNET都作了完整實現(xiàn)。在其它不同的應(yīng)用場合對OSPF的LSA進行了相應(yīng)的流量擴展,具體的操作類似OSPF的五個基本報文,操作方式類似,在此不再贅述。圖4描述了路由協(xié)議的承載的二層協(xié)議棧轉(zhuǎn)換方法v在OPNET仿真軟件中IP數(shù)據(jù)包的數(shù)據(jù)結(jié)構(gòu)采用IpT—Dgram一Fields類型表示,在Payload數(shù)據(jù)字段后附件實際數(shù)據(jù)的指針進行傳遞,為簡化實現(xiàn)在ARP模塊中對IP包進行轉(zhuǎn)化,此處的轉(zhuǎn)化僅限于IP包頭的轉(zhuǎn)化,其凈荷部分的轉(zhuǎn)化將在應(yīng)用層的相應(yīng)模塊中完成。由于高層并僅在OSPF模塊中進行了轉(zhuǎn)化功能設(shè)計,故在轉(zhuǎn)換IP包時,僅對承載OSPF協(xié)議的IP包進行轉(zhuǎn)換。其中標(biāo)準(zhǔn)IP比特流采用unsignedchar類型數(shù)組的數(shù)據(jù)結(jié)構(gòu)。轉(zhuǎn)換的數(shù)據(jù)填入過程與OSPF的數(shù)據(jù)填入過程大致相同,需要注意的是,由于OPNET本身采用的包拆分機制的限制,被拆分的包將不能轉(zhuǎn)換成標(biāo)準(zhǔn)的比特流,對于仿真所采用^JSar系列函數(shù)需要重新實現(xiàn),從而實現(xiàn)分段的實際數(shù)據(jù)流恢復(fù)。通過轉(zhuǎn)換函數(shù)將調(diào)用轉(zhuǎn)化函數(shù)完成包格式的轉(zhuǎn)換,并對轉(zhuǎn)換后的數(shù)據(jù)進行封裝。由于包的目的地可能是實際網(wǎng)絡(luò)中的節(jié)點,也可能是仿真節(jié)點,故發(fā)給MAC層的數(shù)據(jù)中既包含OPNET包的數(shù)據(jù),又包含有標(biāo)準(zhǔn)比特流數(shù)據(jù)。在OPNET包的包尾添加一個大小為0的structure型無名域。將轉(zhuǎn)換出的比特數(shù)據(jù)流放入OPNET包的該域中,在接收端可以通過對該域的判斷來確定該包是否為轉(zhuǎn)換得到的包。圖5描述了基于傳統(tǒng)電信網(wǎng)的多層協(xié)議棧的測試實現(xiàn)方法。圖中所示為經(jīng)典的ATM協(xié)議棧結(jié)構(gòu),501為應(yīng)用層數(shù)據(jù)、路由報文或者信令消息的轉(zhuǎn)換實際數(shù)據(jù),圖3中所示的OSPF報文轉(zhuǎn)操處于為501內(nèi)部的單個路由協(xié)議位置,502為CPCS(CommonPartConvergenceSublayer,簡稱公共部分會聚子層)的PDU(ProtocolDataUnit,簡稱協(xié)議數(shù)據(jù)單元)對高層應(yīng)用數(shù)據(jù)進行適配,503為AAL(ATMAdaptationLayer,簡稱ATM適配層)或者SSCt)P連接的實際數(shù)據(jù)流,其中AAL又分為五種類型,用于不同QoS等級的業(yè)務(wù)連接的維護,SSCOP(ServiceSpecificConnectionOrientedIrotocd,簡稱業(yè)務(wù)特定面向連接協(xié)議)主要提供傳輸信息長度可達64k字節(jié)可靠性傳輸過程,為ATM信令提供可靠的數(shù)據(jù)傳送服務(wù)。504為ATM的53字節(jié)信元的實際數(shù)據(jù)。505為適配到傳輸通道后包含傳輸控制比特的實際數(shù)據(jù)部分。每一層都實現(xiàn)了仿真數(shù)據(jù)到實際數(shù)據(jù)的轉(zhuǎn)換,效率比較低,506表示從應(yīng)用層到物理層統(tǒng)一生成的實際數(shù)據(jù),傳輸效率較高。但是由于每一層實際上也要進行內(nèi)存的釋放,分配操作,操作比較頻繁,也會帶來響應(yīng)的開銷,在實際應(yīng)用上,如果每一層的邏輯功能不是很復(fù)雜,后者在協(xié)議轉(zhuǎn)換方面具有較高的效率。而如果要測試中間層的協(xié)議功能,則需要保留該層的實際數(shù)據(jù)轉(zhuǎn)換,而避免每一層次的內(nèi)存調(diào)整。圖6給出ATM多層協(xié)議的信令消息流程的實際數(shù)據(jù)流的封裝方法和解碼后的二進制比特流。其中601表示CPCS協(xié)議的數(shù)據(jù)單元,PAD602為填充的負(fù)載,為保證下面邏輯分層ATM層的測試數(shù)據(jù)為48字節(jié)的整數(shù)倍,PAD為047字節(jié)的填充比特,將數(shù)據(jù)補充為符合低層需求的數(shù)據(jù)單元。603為CPCS協(xié)議的UU(User-to-UserIndication,簡稱用戶到用戶指示)用于消息類裂的區(qū)分。CPI(CommonPartIndicator,簡稱公共部分指示)604用于解淼CPCS頭和尾中后繼部分的CPCS功能,整個CPCS協(xié)議數(shù)據(jù)單元的長度可變,具體承載信息的長度由Length字段605表示,606CRC(CyclicRedundancyCheck,簡稱循環(huán)冗余校驗)用于傳輸錯誤糾正。OPNET中的ATM才莫型可以完成ATM信令連接、建立^各由以及傳輸用戶數(shù)據(jù)的功能,實現(xiàn)了用戶面、控制面的功能,模型中的節(jié)點包括ATM交換機、網(wǎng)關(guān)、ATM終端、IP終端。AAL層的流程如下高層信令報文首先進入SSCOP進程,添加尾部信息;之后同高層路由或應(yīng)用包一樣,在AAL5進程中,為高層包尾部增加UU、CPI、CRC和PAD等信息;之后完成對高層包的分片;當(dāng)收到低層包時,進入AAL5進程完成分片重組,去掉尾部信息,如果是信令包還需要進入SSCOP進程,去掉尾部消息字節(jié)。AAL層除轉(zhuǎn)發(fā)高層消息外,為了建立SSCOP連接,本層的SSCOP進程也會發(fā)送、接收與'SSCOP連接有關(guān)的消息。OPNET中的AAL的處理操作包括來自高層的中斷(遠程中斷),應(yīng)用層數(shù)據(jù)包和ATM層數(shù)據(jù)包等。ATM信令進程在CC進程的Est—Req狀態(tài)處有兩個中斷,分別為AMSC—AA—CPCS—CREATE_Req類型和AMSC_AA—ESTAB—Req類型的原語。對于前者,在ams—aal—disp—v3進程中,根據(jù)收到的原語,從狀態(tài)從dispatch跳轉(zhuǎn)到cpcs/sar狀態(tài),在這個狀態(tài),創(chuàng)建并喚起ams—aal5—c他n—v3進程。對于后者,在ams_aal_disp—v3進程中,根據(jù)該原語,從狀喬從dispatch跳轉(zhuǎn)到setup狀態(tài)創(chuàng)建并喚起ams—aal_sscop進程并向低層發(fā)送BGNPDU,向高層發(fā)送Establish指示。在sscop中,喚起AAL5進程,觸發(fā)數(shù)據(jù)包發(fā)送進程。高層包進入connintrpt狀態(tài),首先確定收到報文的類型,如果是高層信令消息,則喚起sscop進程、處理之后,再喚起AAL5進程,否則喚起aal5進程(to一atm狀態(tài))。對于低層數(shù)據(jù)報文,首先進入connirpt狀態(tài),喚起aal5進程,確定收到報文的類型,19如果為SSCOP報文,喚醒根進程aa1—disp(SAALPDU)狀態(tài),再喚醒SSCOP進程(在Data—Xfer狀態(tài),有很多種可能,其中只有ams—sscop—sd_pdu—receive將包發(fā)送至高層),如果為非SSCOP包,直接發(fā)送至高層。609為ATM信令承載協(xié)議SSCOP的消息族中的BGN消息607的二進制實際數(shù)據(jù)比特流,共有48字節(jié),虛線框起的第一部分為BGN消息,后面部分為CPCS的尾部,中間為PAD,N(SQ)=01,第5字節(jié)01=00000001,故PL,,Rsvd=00,PDUType=0001,N(MR)=0003E8(little-endian)表示發(fā)送窗口大小為1000。最后4個字節(jié)為int類型的CRC,CRC=0xl6F2,由于是little-endian則為F2160000,0800為length,釆用短整型類型存儲,實際為8,00為CPl,01為UU指示指示。類似地,比特流6010中虛線框起的部分為SSCOP協(xié)議BGAK消息,對應(yīng)字段解碼方式同609,此時消息類型為2,且沒有N(SQ)字段,該二進制比特流采用無符號字符型指針存卞者于消息后,在仿真中進行傳遞。注意,對于仿真網(wǎng)絡(luò)測試的方法,最容易引起的問題就是內(nèi)存泄漏,首先由于采用公用的接口,可能接口兩側(cè)的程序代碼所用內(nèi)存分配工具不同,無法對接口另一次的內(nèi)存進行釋蘇,會引發(fā)泄漏。另一方面,收到的消息中的附加的實際字段在拷貝、刪除時需要測試人員額外注意,對該內(nèi)存塊進行釋放。在協(xié)議負(fù)載提交至應(yīng)用層時,不要采用動態(tài)內(nèi)存分配的形式,通過基于堆棧的靜態(tài)存儲在應(yīng)用層才能夠順利地進行釋放。如果內(nèi)存泄漏的問題不j主意,會使得測試的速度變慢,嚴(yán)重時還會影響測試的準(zhǔn)確度,因此需要測試人員倍加20注意。不同的內(nèi)存泄漏方式都會降低測試的性能,fa內(nèi)存泄漏的不同途徑以及內(nèi)存泄漏的測試方法不應(yīng)構(gòu)成對于本發(fā)明的限制。圖7描述了OPNET中基于分段協(xié)議的測試數(shù)據(jù)附加方法。對于需要分段與重組的網(wǎng)絡(luò)協(xié)議,OPNET仿真環(huán)境下所采用的為SAR系列函數(shù),下表列出了幾個常用的操作方法<table>tableseeoriginaldocumentpage21</column></row><table>在發(fā)送端可能會對某些包分段傳輸,也可能是傳輸一個完整的包。如果對某個包進行分段傳輸,那么會先利用SAR作分段處理,處理之后一個數(shù)據(jù)分組變成多個包。在接收端接收到一個包的時候就需要確定該報是否是一個分片報文還是一個完整的報文。用SAR函數(shù)即可實現(xiàn)該功能。如果判斷該包是個分段,那么就需要與S的另外一些分段重組才能得到一個完整的包。以ATM協(xié)議族為例,發(fā)送端在ATM層完成對48字節(jié)的分片添加5字節(jié)頭部信息的功能;接收端,ATM層完成對53字節(jié)的信元去掉5字節(jié)頭部信息的任務(wù)。與VP/VC交換有關(guān)的功能在OPNET自帶模型中的ATM_Switch-和ATM_trans模塊完成。圖7中701-704分別表示被分段的數(shù)據(jù)包,在QPNET中不能夠支持每個分片包的實際數(shù)據(jù)攜帶,唯一的實現(xiàn)方式就是將實際數(shù)據(jù)轉(zhuǎn)換為二進制比特流存放在仿真消息包的最后705。如此操作帶來的問題就是傳輸測試時不易控制,還需要獲知業(yè)務(wù)的開始、終結(jié)信息,操作較為復(fù)雜,而且在模擬分組丟失的場景下一旦最后一個分組丟失將會嚴(yán)重影響網(wǎng)絡(luò)的性能準(zhǔn)確性。本發(fā)明通過自定義的凝:據(jù)結(jié)構(gòu)進行數(shù)據(jù)的分段重組操作,而放棄使用OPNET的SAR系列內(nèi)核函數(shù)。在數(shù)據(jù)分割時,在仿真OPNET報文分片的同時,生成,自定義仿真包,同時通過RealData指針每次取出48字節(jié)的數(shù)據(jù)部份,作為OP包的RealData部份發(fā)送。通過自定義的緩沖數(shù)據(jù)結(jié)構(gòu),可以實現(xiàn)任意形式的實際數(shù)據(jù)附著,706-709為實際數(shù)據(jù)——映射的二進制比特流,存放在每個分片報文的RealData部分。在接收端重組時,首先從SAR緩沖中取出一個部分得到length,UU,Payload等,通過創(chuàng)建一個字符型指針構(gòu)建鏈表形式的數(shù)據(jù)結(jié)構(gòu),內(nèi)含大小為65535的字符型數(shù)組作為分片buffer,每一個表項包括VPI、VCI、^^片數(shù)量,重組恢復(fù)后將原有RealData部分將取出交由高層處理。當(dāng)收到分片后,遍歷列表判斷分片所攜帶的VPI、VCI是否與列表中的某個表項吻合。如果吻合,則認(rèn)為接收到同一個包中的另一個分片,并且將其插入分片buffer中。再判斷是否是AMSC—ATM—PAYLOAD—TYPE—DATA—EOP(OPNET中數(shù)據(jù)結(jié)構(gòu)的內(nèi)部標(biāo)識)。如果是,則從分片buffer中提取出數(shù)據(jù)信息,并且經(jīng)過CRC校驗判斷接收并重組后的數(shù)據(jù)報是否正確。由于CPCS本層協(xié)議可能同時收到路由、信令以及業(yè)務(wù)分組,通常根據(jù)UU字段判斷這個包應(yīng)該發(fā)送到SAAL(SSCOP)還是高層應(yīng)用處理。圖8描述了基于Web配置的設(shè)備測試設(shè)計系統(tǒng)的軟件實現(xiàn)方法。整個系統(tǒng)的設(shè)計結(jié)構(gòu)不同于單純基于硬件設(shè)備仿真的測試接口,由于網(wǎng)絡(luò)的標(biāo)準(zhǔn)規(guī)范通常有典型的幾種,而對于外部通常需要統(tǒng)一的接口,而仿真內(nèi)核會隨測試網(wǎng)絡(luò)和測試設(shè)備不同而術(shù)同,予是需要模塊間具有足夠的解耦合,才能夠靈活地完成多個測試工作,從而達到代碼重用,而不是每個測試軟件,測試網(wǎng)絡(luò)都是一次性,從而提高代碼和測試協(xié)議棧的重用性。具體分為接口類801,舉統(tǒng)類g02,過程類803,領(lǐng)域類804,持久類805,數(shù)據(jù)源(DB)806五個^t塊組成。其中801封裝了對系統(tǒng)邏輯的訪問。UI(UserInterface,簡稱用戶接口)類提供了訪問系統(tǒng)的接口,該類提供對系統(tǒng)的外部系統(tǒng)的訪問。可以通過JSP或者Swing類庫實現(xiàn)圖形用戶界面窗體賣現(xiàn)Ur類,通過基于Web和COBRA(CommonObjectRequestBrokerArchitecture,簡稱公共對象請求代理體系結(jié)構(gòu))包裝類來實現(xiàn)系統(tǒng)接口。804實現(xiàn)和仿真領(lǐng)域相關(guān)的內(nèi)容,關(guān)于具體仿真的網(wǎng)絡(luò)、技術(shù),以尿單個對象的行為。803也稱為測試控制類,實現(xiàn)仿真的邏輯,諸如事件的觸發(fā),定時的維護等操作。負(fù)責(zé)和其它邏輯功能實體之間的協(xié)作。805封裝了存儲、檢索和刪除對象的功能,而不會暴露低層存儲技術(shù)的細(xì)節(jié)。802為應(yīng)用程序提供了特定于操作系統(tǒng)的功能,適過封裝特定于OS的功能,將軟件與操作系統(tǒng)隔離,以提高平臺的可移植性。層內(nèi)允許類間的協(xié)作,可以互相發(fā)送消息,協(xié)作發(fā)生在具有連接的兩個層之間,但是不能進行跨層的交互,通過限制消息的流動來降低系統(tǒng)的耦合度來提高系統(tǒng)的可移植性。因為通常界面的修改不能夠影響內(nèi)部邏輯的處理。系統(tǒng)層實現(xiàn)了最基礎(chǔ)的功能,所以所有的類都與其進行交互,通過IPC(Inter-ProcessCommunication,簡稱進禾呈間通4言),作為和其他機器上的類協(xié)作的一種服務(wù)。在C/S仿真架構(gòu)中,801通過802的IPC服務(wù)向804發(fā)送仿真指令。對于多機分布式仿真情況,804通過IPC向其他領(lǐng)域類發(fā)送消息。IPC服務(wù)通常通過中間件來進行。在設(shè)備測試外部接口中采用UML2.0(UnifiedModelingLanguag,簡稱統(tǒng)一建模語言v2版本)中GS(GeneralizationSet,簡稱泛化集)的概念,可以構(gòu)建LDM(LogicalDataModel,簡稱邏輯軟據(jù)模型),確定數(shù)據(jù)實體,以及它們的屬性和職責(zé)。確定不同實體間的關(guān)系,如關(guān)聯(lián)、組成、聚合、繼承等關(guān)系。根據(jù)不同實體所扮演的角色不同來分離實體,通常每個實體在系統(tǒng)中具有一種或多種角色,而且每種角色都有一定的生命周期,只在該周期內(nèi)適用(Start和JEnd屬性),每種角色執(zhí)行其特定的行為。這樣可以應(yīng)用到更為廣泛的環(huán)境中去,因為其并非針對于特定環(huán)境。同時可以復(fù)用已有成果,4是高測試平臺開發(fā)效率。在實現(xiàn)窗體、頁面或者報表的用戶界面類中可以包含MFC(MicrosoftFoundationClasses,簡稱微軟基礎(chǔ)類庫)、JSP,Servlets或者通過Swing等用戶界面類庫實現(xiàn)的窗體類。圖9示意性示出了基于Struct體系結(jié)構(gòu)下的測試軟件接口流程。Struts是Apache基金會Jakarta項目組的一個OpenSource項目,Stmcts框架的核心是一個彈性的控制層,基于如JavaServlets,JavaBeans,ResourceBundles與XML(extensibleMarkupLanguage,擴展標(biāo)記語言)等標(biāo)準(zhǔn)技術(shù),以及JakartaCommons的一些類庫,在網(wǎng)絡(luò)測試方面具有靈活的技術(shù)擴展能力。Struts有一組相互協(xié)作的類(組件)、Serlvet組成。基于Stmts構(gòu)架的Web應(yīng)用程序基本上符合JSPModel2的設(shè)計標(biāo)準(zhǔn),可以說是一個傳統(tǒng)MVC(ModelViewController,簡稱模型視圖控制器)設(shè)計模式的一種變化類型。Struts是MVC的一種實現(xiàn),它將Servlet和JSP標(biāo)記(屬于J2EE規(guī)范)用作實現(xiàn)的一部分。Struts繼承了MVC的各項特性,并根據(jù)J2EE的特點,做出相應(yīng)的變化與擴展。用戶正在瀏覽一個用Struts技術(shù)構(gòu)建的網(wǎng)站主頁,主頁上有個登陸表單,用戶填好登陸名和密碼,單擊"登陸"按鈕,就激活了下述過程。首先在901,系統(tǒng)進行初始化,創(chuàng)建內(nèi)部數(shù)據(jù)結(jié)構(gòu)以及守護進程,等待連接。當(dāng)收到客戶請求902后,確定該連接是否包含HTTP(TyperTextTransferProtocol,簡稱超文本傳輸協(xié)議)請求,如果"是",則將用戶的請求以HTTP方式傳輸?shù)椒?wù)器上,接受請求的是ActionServlet,后續(xù)工作交由控制器Servlet處環(huán)。否則返回902,等待下一個用戶請求,ActionServlet請求找到用戶請求的Action后,首先將用戶輸入的表單參數(shù)打包成一個ActionFrom對象,這個ActionFrom對象其實也就是一個JavaBean,里面包含兩個字段,分別是用戶名和密碼。執(zhí)行ActionFrom對象中的Validate方'法。若Validate方法執(zhí)行有錯,則返回904。否則,繼續(xù)執(zhí)行908。在908,通過仿真接口處理,根據(jù)struts-config.xml中的配置信息決定是否要接受該請求,并確定服務(wù)器上是否有用戶請求的操作,此處用戶請求操作應(yīng)為登陸操作。如果沒有,則返回一個用戶請求無效的'出錯信息,對該請求不估文任何處理。系統(tǒng)生成一個用戶所請求的對應(yīng)A(jtion的實例對象,將前面的ActionFrom對象傳遞給仿真內(nèi)核執(zhí)行9011,運行Execute()方法。在執(zhí)行Exectue()方法時,可以調(diào)用后臺模型驗證登陸名和密碼是否正確等信息。在9010,確定仿真是否結(jié)束,如果結(jié)果為"否",則在9011繼續(xù)等待。當(dāng)仿真結(jié)束后,會生成以和ActionForward類型的對象909并將之返回給ActionServlet,通知控制器內(nèi)核仿真已經(jīng)結(jié)束,并將仿真的結(jié)果打包傳遞給ActionServlet,通過JSP視圖905在客戶瀏覽器上顯示。通過面向數(shù)據(jù)和面向?qū)ο蟮南㈤g往返,能調(diào)整到輸入/輸出的交互,輸入信息通過表單形式實現(xiàn)Web服務(wù),采用XML作為參數(shù),通過圖仿真拓樸,配置仿真表單,并將結(jié)果返回。對于組件內(nèi)部對象,需要發(fā)送給它們以對象或數(shù)據(jù)作為參數(shù)和返回值的消息。圖IO描述了一種基于RMI的測試網(wǎng)絡(luò)拓樸結(jié)構(gòu)。其中,1001為運行OPNET的仿真計算機,1002-1004為仿真節(jié)點,1005-1007為硬件節(jié)點。采用控制結(jié)構(gòu),傳送結(jié)構(gòu)分層的設(shè)計方法,通過XML在硬件節(jié)點之間傳送數(shù)據(jù),Web服務(wù)器上的軟件通過RMI(RemoteMethodInvocation,簡稱遠程方法調(diào)用)協(xié)議與應(yīng)用服務(wù)器上的軟件進行通信,物理硬件節(jié)點之間的連接處于較低層次,可用通過以太網(wǎng)相連。構(gòu)建出分層網(wǎng)絡(luò)模型,在具有Ethernet構(gòu)造型硬件連接和帶有RMI構(gòu)造型的軟件實體對象間同時建立連接關(guān)系。硬件連接之間的動作依賴于軟件實體間的控制消息。通過XML配置文件來配置必需的應(yīng)用行為,綁定表單驗證,業(yè)務(wù)邏輯處理和顯示組件。每個節(jié)點的動作行為有仿真節(jié)點的行為而定,如倒換、資源分配、重路由等操作。雖然結(jié)合附圖描述了本發(fā)明的實施方式,但是本4頁域內(nèi)熟練的技術(shù)人員可以在所附權(quán)利要求的范圍內(nèi)做出各種變形或修改。2權(quán)利要求1、一種基于OPNET的多層協(xié)議棧網(wǎng)絡(luò)設(shè)備測試方法,其特征在于包括以下內(nèi)容網(wǎng)絡(luò)測試設(shè)備硬件版的外圍接口電路;網(wǎng)絡(luò)測試硬件的軟件接口設(shè)計;協(xié)議擴展測試方法;多層協(xié)議棧的轉(zhuǎn)換方法及數(shù)據(jù)流封裝和二進制比特映射過程;具有分段功能的硬件協(xié)議測試;基于Web應(yīng)用類型的測試方法及接口設(shè)計。2、根據(jù)權(quán)利要求1所述的基于OPNET的多層協(xié)議棧網(wǎng)絡(luò)設(shè)備測試方法,其特征在于所述網(wǎng)絡(luò)測試設(shè)備硬件版的外圍接口電路,具體包括FPGA主控板和接口板;外掛E1、串口、網(wǎng)口接口;FLASH和SDRAM存儲;UART控制串口。3、根據(jù)權(quán)利要求1所述的基于OPNET的多層協(xié)議棧網(wǎng)絡(luò)設(shè)備測試方法,其特征在于所述網(wǎng)絡(luò)測試硬件的軟件接口設(shè)計,具體包括配置接口類、仿真接口類和仿真內(nèi)核類之間的分工;不同功能類之間的松耦合設(shè)計;公共數(shù)據(jù)庫的網(wǎng)絡(luò)訪問策略;高度內(nèi)聚的內(nèi)部功能組件。4、根據(jù)權(quán)利要求1所述的基于OPNET的多層協(xié)議棧網(wǎng)絡(luò)設(shè)備測試方法,其特征在于所述協(xié)議擴展測試方法,具體包括OPNET仿真軟件中的OSPF協(xié)議進程和報文的修改;仿真包域中實際數(shù)據(jù)所在報文索引的動態(tài)獲得方法;對于OSPF中的Hello報文、DD報文、LSR報文、LSU報文和LSAck報文的處理方法。5、根據(jù)權(quán)利要求1所述的基于OPNET的多層協(xié)議棧網(wǎng)絡(luò)設(shè)備測試方法,其特征在于所述多層協(xié)議棧的轉(zhuǎn)換方法及數(shù)據(jù)流封裝和二進制比特映射過程,具體包括逐層協(xié)議映射的方式;在物理傳輸層對仿真報文的統(tǒng)一映射的方式;ATM多層協(xié)議棧(信令、路由、AAL、SSCOP、ATM等)協(xié)議轉(zhuǎn)換;SSCOP協(xié)議中的BGN消息、BGAK消息的二進制比特流實例。6、根據(jù)權(quán)利要求1所述的基于OPNET的多層協(xié)議棧河絡(luò)設(shè)備測試方法,其特征在于所述具有分段功能的硬件協(xié)議測試,具體'包括OPNET中的SAR系列函數(shù)實現(xiàn)對外不可見的解決方法;實際數(shù)據(jù)流基于鏈表的自定義實現(xiàn)方式;以ATM協(xié)議為例,描述了分片后的實際協(xié)議數(shù)據(jù)—包的重組方法;7、根據(jù)權(quán)利要求1所述的基于OPNET的多層協(xié)議棧網(wǎng)絡(luò)設(shè)備測試方法,其特征在于所述基于Web應(yīng)用類型的測試方法及"l妾口設(shè)計,具體包括軟件測試網(wǎng)絡(luò)平臺接口的獨立設(shè)計;基于Web和COBRA的封裝接口;Struct體系結(jié)構(gòu)下的測試軟件接口流程;MVC模式下的網(wǎng)絡(luò)配置測試方法;基于RMI的分層測試網(wǎng)絡(luò)拓樸結(jié)構(gòu)。全文摘要本發(fā)明涉及通信領(lǐng)域,本發(fā)明實施例公開了一種基于OPNET的多層協(xié)議棧網(wǎng)絡(luò)設(shè)備測試方法。本發(fā)明實施例方法包括網(wǎng)絡(luò)測試設(shè)備硬件版的外圍接口電路;網(wǎng)絡(luò)測試硬件的軟件接口設(shè)計;協(xié)議擴展測試方法;多層協(xié)議棧的轉(zhuǎn)換方法及數(shù)據(jù)流封裝和二進制比特映射過程;具有分段功能的硬件協(xié)議測試;基于Struct架構(gòu)下的Web應(yīng)用類型的測試方法及接口設(shè)計。根據(jù)本發(fā)明的方法,通過商用成熟的OPNET網(wǎng)絡(luò)仿真軟件提供外圍測試接口,將硬件接口板和真實網(wǎng)絡(luò)設(shè)備互通,測試協(xié)議開銷、協(xié)議流程等。本發(fā)明通過OPNET仿真軟件,實現(xiàn)網(wǎng)絡(luò)、硬件設(shè)備的測試需求,而且對于多層協(xié)議棧中目前存在的多種關(guān)鍵性問題進行分析并給出完整的解決方法,提高通過網(wǎng)絡(luò)仿真方式測試硬件設(shè)備的可信度。本發(fā)明可以解決測試網(wǎng)絡(luò)硬件設(shè)備單一化,缺乏真實網(wǎng)絡(luò)模擬性能的問題,同時給出擴展性、通用性較強的接口設(shè)計方法。文檔編號H04L12/26GK101656636SQ20091007912公開日2010年2月24日申請日期2009年3月4日優(yōu)先權(quán)日2009年3月4日發(fā)明者張永軍,彬李,沛羅,郭秉禮,顧畹儀,黃善國申請人:北京郵電大學(xué)