摘 要 介紹了OSPF協(xié)議一致性的測試原理和抽象測試方法,重點對OSPF協(xié)議的一致性測試技術進行研究,并對OSPF協(xié)議測試集的設計進行討論。
關鍵詞 OSPF協(xié)議 協(xié)議一致性測試 ATS ETS 橫斷式測試法
一、引言
隨著計算機網(wǎng)絡和通信技術的發(fā)展,特別是開放型異構網(wǎng)絡的互聯(lián),協(xié)議的設計和實現(xiàn)越來越復雜,協(xié)議測試的理論和技術得到了相應的發(fā)展。協(xié)議測試包括4種測試:一致性測試、互操作性測試、性能測試和堅固性測試。其中協(xié)議一致性測試主要是驗證網(wǎng)絡產(chǎn)品的協(xié)議實現(xiàn)的準確性,判斷網(wǎng)絡產(chǎn)品的協(xié)議實現(xiàn)是否符合協(xié)議的國際標準,以保證協(xié)議的各種實現(xiàn)版本之間能夠互通并進行可靠的通信。因此,一致性測試是協(xié)議測試的最基本內(nèi)容,是其它3種測試的基礎。
如今,基于TCP/IP協(xié)議的Internet網(wǎng)已成為全球信息發(fā)展和交流的基礎,它以路由器作為基本交換節(jié)點,以各種局域/廣域網(wǎng)作為傳媒。其中廣域網(wǎng)的域內(nèi)路由協(xié)議大多數(shù)使用OSPF協(xié)議轉發(fā)路由信息,且OSPF協(xié)議主要位于域內(nèi)的路由器上,它是現(xiàn)有TCP/IP網(wǎng)絡中繼系統(tǒng)的核心協(xié)議。本文介紹協(xié)議一致性測試原理和抽象測試方法,重點研究OSPF協(xié)議的一致性測試技術,并對OSPF協(xié)議測試集的設計進行討論。
二、協(xié)議一致性測試
1.一致性測試原理
ISO/IEC9646提供了協(xié)議一致性的基本方法和框架,為測試集制定了設計步驟及描述方法,并對測試系統(tǒng)的實現(xiàn)提供了指導。
協(xié)議一致性測試實質上是利用一組測試序列,在一定的網(wǎng)絡環(huán)境下,對被測實現(xiàn)(IUT)進行黑盒測試,通過比較IUT的實際輸出與預期輸出的異同,判定IUT在多大程度上與協(xié)議描述相一致,確立通過一致性測試的IUT在互聯(lián)時成功率的高低。一致性測試的過程和原理參見圖1。圖1中,PICS(Protocol Implementation Conformance Statement)為協(xié)議實現(xiàn)一致性說明,說明實施的要求、能力及選項實現(xiàn)的情況;PIXIT(Protocol Implementation Extra Information for Testing)為協(xié)議實現(xiàn)附加信息,提供測試時必須標明的協(xié)議參數(shù)。其具體步驟如下:
。1)IUT的PICS分析,對IUT進行IUT的靜態(tài)一致性要求SCR檢查,分析該PICS與有關標準指定的SCR是否一致。
。2)根據(jù)規(guī)范定義測試目的,使用PIXIT提供的信息和一致性測試組合量化測試例,寫出抽象測試集ATS,然后將ATS參數(shù)化生成可執(zhí)行測試集ETS。
。3)使用ETS自動對IUT進行一致性測試,形成詳細的測試報告。
。4)IUT的最終一致性考查,將已知的PICS和PIXIT分析與測試結果相綜合,獲得IUT關于標準要求的一致性結論,記錄于一致性測試報告中。
2.一致性測試的抽象測試方法
一致性測試模型是一致性測試器利用服務原語ASP和協(xié)議數(shù)據(jù)單元PDU,在控制和觀察點PCO對來自被測實現(xiàn)的輸出和輸入進行控制和觀察。一般來說,被測實現(xiàn)所處的系統(tǒng)分為端系統(tǒng)和中繼系統(tǒng)兩大類,在ISO/IEC9646中對這兩類系統(tǒng)的一致性測試定義了不同的抽象測試方法。
根據(jù)一致性測試器中的上測試器UT和下測試器LT所處的位置與功能,對于端系統(tǒng)的一致性抽象測試方法分為4種類型:本地測試法、分布測試法、協(xié)調(diào)測試法和遠程測試法。本地測試法可以在被測系統(tǒng)中IUT的上下界面直接進行觀察和控制,另外3種屬于外部測試法。其中分布測試法要求有一個上測試器UT提供該界面的ASP。協(xié)調(diào)測試法不需要上層外接口,使用標準的測試管理協(xié)議TMP和下測試器之間進行測試管理和協(xié)調(diào)。遠程測試法中沒有專門的上測試器,部分測試器功能由被測系統(tǒng)實現(xiàn)。而這3種測試方法的下測試器LT都是通過通信鏈路上傳送的協(xié)議數(shù)據(jù)單元PDU對IUT進行控制和觀察。
對2個子網(wǎng)間的中繼系統(tǒng)進行一致性測試的抽象測試法有2種:環(huán)回式測試法和橫斷式測試法。環(huán)回式測試法在中繼系統(tǒng)的端口上進行環(huán)接,這種環(huán)接可以在中繼系統(tǒng)內(nèi)完成,也可以在第二個子網(wǎng)內(nèi)完成。而在中繼系統(tǒng)的業(yè)務接入點SAP處的另一個子網(wǎng)上有2個觀察與控制點,所以只需一個測試器。環(huán)回測試法的測試功能過于簡單,因而不夠實用。橫斷測試法在業(yè)務接入的2個子網(wǎng)上各有一個觀察與控制點,需要2個測試器,這樣使得2個測試器的同步成為困難。
三、OSPF協(xié)議
1.OSPF協(xié)議特點
OSPF協(xié)議是一種基于Djkstra算法的鏈路狀態(tài)協(xié)議,用于自治系統(tǒng)內(nèi)的路由選擇。OSPF協(xié)議具有如下特點:
●當網(wǎng)絡拓外改變后迅速收斂,協(xié)議帶來的網(wǎng)絡開銷很。
●支持負載均衡,可以保留同一目的地的多個路由;
●不易產(chǎn)生環(huán)路;
●對路由更新信息進行認證以確保其有效性;
●支持區(qū)域的劃分,能夠支持大規(guī)模的網(wǎng)絡,擴展性很強。
OSPF協(xié)議支持3種網(wǎng)絡的連接:
●2個路由器之間的點對點連接;
●具有廣播功能的局域網(wǎng);
●無廣播功能的廣域網(wǎng)。
2.OSPF協(xié)議原理
OSPF路由協(xié)議的內(nèi)容可分為交換擴散協(xié)議、網(wǎng)絡拓撲結構數(shù)據(jù)庫內(nèi)容的維護以及路由表的計算3部分。交換協(xié)議使相鄰的路由器建立鄰接關系,然后網(wǎng)絡拓撲數(shù)據(jù)庫中的每一條內(nèi)容通過擴散協(xié)議與相鄰的節(jié)點達到同步,從而使整個網(wǎng)絡中每個節(jié)點維持的網(wǎng)絡拓撲數(shù)據(jù)庫同步。每個節(jié)點當?shù)弥W(wǎng)絡拓撲結構圖發(fā)生變化時,重新計算整個或部分路由表以達到路由的迅速更新,使網(wǎng)絡拓撲的變化及時地反映在相應的路由表中。
3.OSPF共有5種報文類型
●Hello報文:用來發(fā)現(xiàn)和維持鄰站的可達性;
●Database Description報文:向鄰站給出自己的鏈路狀態(tài)的摘要信息;
●Link State Request報文:向對方請求發(fā)送某些鏈路狀態(tài)的詳細信息;
●Link State Update報文:用擴散法向全網(wǎng)更新鏈路狀態(tài);
●Link State Acknowledgment報文:對鏈路更新報文的確認。
四、OSPF協(xié)議一致性測試的方法
OSPF協(xié)議是域內(nèi)使用的路由選擇協(xié)議,所以對于OSPF協(xié)議一致性測試采用中繼測試法使用的橫斷式測試法。在橫斷式測試法中,為了使2個子網(wǎng)的2個PCO容易達到同步,一般將PCO1和PCO2集成在一個測試器中。
編輯器可以采用ISO9646推薦的TTCN編輯器,也可以是其它語言編輯器。首先在編輯器上編制抽象測試集ATS,ATS以固定文法的文本文件MP格式輸出,類似于匯編語言或高級語言源程序。然后,MP文件由編輯器編譯成可執(zhí)行文件ETS。處理器是測試執(zhí)行的關鍵引擎,對經(jīng)過PICS和PIXIT選擇的測試集ETS進行解釋執(zhí)行,并對PCO1或PCO2傳送來的協(xié)議數(shù)據(jù)單元PDU進行處理,同時根據(jù)測試集的內(nèi)容控制測試過程。最后生成測試報告所需要的全部信息。在該測試結構中,IUT的2個端口分別對應于PCO,當處理器從PCO1向SUT發(fā)送一個OSPF報文時,經(jīng)過OSPF模塊的路由,OSPF報文就從子網(wǎng)1轉發(fā)到子網(wǎng)2中,處理器就從子網(wǎng)2中的PCO2獲得數(shù)據(jù)報文。由于PCO1和PCO2都被集成在測試器中,便可容易地控制2個LT的協(xié)調(diào)過程。
五、OSPF協(xié)議測試集的設計
測試集是協(xié)議一致性測試的基礎,它是以最基本的測試事件序列的形式,詳細定義了測試系統(tǒng)和協(xié)議實體的行為,從而作出測試“通過”或“失敗”的判決,測試集有如下的層次結構:測試集→測試組→測試例→測試步→測試事件。采用TTCN形式化語言可以描述出測試集。
OSPF協(xié)議與OSI協(xié)議相比較,OSPF協(xié)議行為較簡單,在對等實體之間沒有用于建鏈或流控的數(shù)據(jù)包交換。我們按照ISO/IEC9646的建議,根據(jù)協(xié)議描述分析及條件合成,生成測試目的,設計和產(chǎn)生出OSPF協(xié)議測試集,編寫出OSPF協(xié)議測試規(guī)范。產(chǎn)生的OSPF測試集包括5個測試組,共69個測試例(見表1)。
表1 OSPF測試集
測試組 | 測試目的 | 測試例 |
Ospf-2areas | 域邊界路由器功能 | 3 |
Ospf-2qars | 交換擴散協(xié)議功能 | 36 |
Ospf-3qars | 數(shù)據(jù)包的路徑類型,AS外部LSA和AS匯總LSA功能 | 23 |
Ospf-stress | 強度能力測試 | 6 |
Ospf-stub | 末稍網(wǎng)絡功能 | 1 |
這些測試組(例)涵蓋了OSPF協(xié)議描述中的主要功能,具有較好的完備性。
六、測試應用
按照本文討論的測試方法和結構,測試工具使用Agilent公司的QA Robot測試儀來進行OSPF協(xié)議一致性測試。也可使用清華大學研制開發(fā)的基于TTCN的PITS測試系統(tǒng)。QARobot測試儀使用QBOL語言生成ETS,通過QBOL編輯器進行編譯,內(nèi)部使用UNIX操作系統(tǒng),有著可視化的界面操作。
我們參加了國家“863”寬帶信息示范網(wǎng)核心路由器的測試工作。采用QARobot測試儀,分別對中興公司、巨龍公司和大唐公司研制的核心路由器進行了OSPF協(xié)議的一致性測試。各路由器經(jīng)過OSPF協(xié)議一致性測試后,其中的OSPF模塊的功能和性能有了明顯的改善,測試例通過率從50%提高到將近90%。
通過實踐證明,在協(xié)議軟件的設計和開發(fā)過程中,一致性測試是用來檢測定位錯誤,同時又能提供修正建議的好方法。
摘自《電信網(wǎng)技術》