<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 互操作性測試研究――BGP4+測試

          互操作性測試研究――BGP4+測試

          作者: 時間:2011-12-07 來源:網(wǎng)絡 收藏

          就是檢測在不同廠商生產(chǎn)的設備之間能否實現(xiàn)正確的通信交互的方法。由于+[1]是下一代互聯(lián)網(wǎng)中重要的域間路由協(xié)議,因此對它展開互對于驗證下一代互聯(lián)網(wǎng)絡產(chǎn)品在真實網(wǎng)絡環(huán)境中的互連互通能力具有十分重要的意義,對于路由設備與軟件開發(fā)商在對產(chǎn)品進行調(diào)試、驗證和改進等方面也有著非常重要的作用。
           由于互測試對于產(chǎn)品的推廣應用具有非常重要的意義,因此,國內(nèi)外有許多機構在從事互操作性測試的工作,例如:日本的TAHI計劃研發(fā)了IPv6協(xié)議的互操作性測試系統(tǒng)。德國的JOIN(Join Open InterNetworks)工程,建立了互操作性測試實驗網(wǎng)絡。美國New Hampshire大學的IOL(Interoperability Lab)專門成立IPv6小組進行IPv6相關協(xié)議的測試工作,在其網(wǎng)站上可以免費下載到用于測試+、OSPFv3、RIPng等路由協(xié)議的互操作測試套件。國內(nèi)的清華大學、中科院計算所、中國科技大學、蘭州大學、上海交通大學等多所高校也成立了IPv6實驗室在從事這方面的研究。
           在互操作性測試例的生成算法研究方面,國內(nèi)外有許多相關的文獻,例如,參考文獻[2]中提出了一種生成互操作性測試例的算法,但是這種算法的缺陷是只能處理兩個內(nèi)部消息交互的情況;參考文獻[3]中研究了在互操作性測試生成過程中如何避免狀態(tài)爆炸的問題;參考文獻[4]中提出了一種基于有向圖的測試序列生成算法可以滿足互操作性測試的最小完全覆蓋準則。但目前關于互操作性測試工具的開發(fā)研究方面的文獻并不多見。
          1 +協(xié)議與BGP4的不同
           隨著下一代互聯(lián)網(wǎng)絡協(xié)議IPv6的部署,原來只能支持IPv4的邊界網(wǎng)關協(xié)議BGP4已經(jīng)不能滿足實際的應用需要,為了使BGP4能夠支持IPv6,IETF組織修訂完成了RFC2858(Multiprotocol Extentions for BGP4)。在BGP4+中,IETF定義了一個特殊屬性——MP-BGP(Multi-Protocol BGP)來攜帶IPv6的路由信息,使得BGP4+既可以運行在IPv4網(wǎng)絡上也可以運行在IPv6網(wǎng)絡上。
           在BGP4協(xié)議的消息屬性中有三部分與IPv4的信息相關,分別是:NEXT-HOP、NLRI和AGGREGATOR屬性。假設任何BGP發(fā)言者都有一個IPv4地址,那么要使BGP4能夠支持多網(wǎng)絡層協(xié)議的路由只需要加入兩個功能把特定的網(wǎng)絡層協(xié)議分別與NEXT-HOP和NLRI關聯(lián)起來。因此,IETF在修訂后的BGP4+中增加了MP_REACH_NLRI(Multiprotocol Reachable NLRI)屬性和MP_UNREACH_NLRI(Multiprotocol Unreachable NLRI)屬性。這兩個屬性是可選非傳遞的,不支持多協(xié)議擴展的BGP發(fā)言者可以忽略這兩個屬性中攜帶的信息并且不轉發(fā)這些信息。MP_REACH_NLRI屬性詳細定義了所使用的網(wǎng)絡層協(xié)議的類型、下一跳長度和地址、子網(wǎng)接入點信息和NLRI信息。如果在UPDATE消息中使用了MP_REACH_NLRI屬性,就不需要原來的IPv4的NEXI-HOP屬性了。而MP_UNREACH_NLRI屬性相對簡單得多,如果在UPDATE消息中使用了MP_UNREACH_NLRI屬性就不需要攜帶其他的路徑屬性了。RFC1771規(guī)定UPDATE消息中必須包含強制屬性,否則就發(fā)送NOTIFICATION消息,但是RFC2858中增加的這兩個屬性無形中改變了這一規(guī)定。BGP4+中還增加了對這兩個新屬性的錯誤處理,而且還采用了BGP能力通告協(xié)議[5],該協(xié)議定義了BGP4+的OPEN消息的可選屬性中可以采用BGP能力通告,用來決定在BGP連接建立時是否與對等體使用多協(xié)議擴展傳遞路由信息,否則將無法獲知其他對等體是否能支持這一擴展。如果雙方都支持這一擴展,它們轉發(fā)的UPDATE消息就可以攜帶IPv6網(wǎng)絡層可達信息。BGP4+的這種擴展機制是向后兼容的,支持這種擴展的路由器能夠與不支持這種擴展的路由器完全交互。
          2 測試體系結構
           在對BGP4+進行互操作性測試的過程中選用的體系結構如圖1所示。在該互操作性測試體系結構中,IUT(被測實現(xiàn))A 和IUT B分別代表了兩個進行互操作的產(chǎn)品實現(xiàn);網(wǎng)絡協(xié)議分析儀由裝有Ethereal協(xié)議分析軟件的PC機來代替,它可以捕獲在IUT A和IUT B之間傳遞的內(nèi)部消息,并對捕獲的信息進行觀察和分析,但是不能對這些消息進行更改,這樣可有效地減少外界環(huán)境對被測系統(tǒng)的干預,并能體現(xiàn)IUT A和IUT B之間能否進行互操作的真實情況;測試器A和測試器B是抽象意義上的互操作性測試工具。

          本文引用地址:http://www.ex-cimer.com/article/155449.htm

          3 測試BGP4+
          3.1 BGP4+的形式化定義

           圖2是完整的BGP4+互連行為有限狀態(tài)機,可以看到,在BGP4+對等體完全建立連接之前要經(jīng)歷的狀態(tài)包括:Idle、Connect、Active、OpenSent、OpenConfirm和Established。

           在BGP4+的有限狀態(tài)機中,導致狀態(tài)變遷發(fā)生的是BGP的輸入輸出事件,RFC4271中規(guī)定的輸入輸出事件包括Administrative事件、Timer事件、TCP連接事件和BGP消息事件,其中每類事件又包括必選事件和可選事件,具體事件如表1所示。

          3.2 測試例的生成與應用
           在對BGP4+進行互操作性測試的研究中,首先通過有限狀態(tài)機對其進行形式化描述,然后運用了參考文獻[6]中提出的測試例生成算法來生成測試例,其算法思想如下:
           
           (8)全局終態(tài)gs_n=(2,b);
           (9)得到互操作測試套:Tr?椎=(1,a)-V/((nil,uin),(U, nil))(2,b)。
           以圖3的BGP4+消息交換實例來說明測試例(Idle,Active)---start-a/{(nil,Open),(nil,Open),(nil,KeepAlive),(nil,NotiFMsg),(close,nil)}→(Idle,Idle)的生成方法。在BGP4+的有限狀態(tài)機中,初始IUT A和IUT B的狀態(tài)分別是Idle和Active,即gs_i=(Idle,Active)、gs_i.Si=Idle、gs_i.Sj=Active。WΦ⇔{(nil,Open)},TrΦ=nil。經(jīng)過多次Call interaction_sequence函數(shù)的調(diào)用,使得兩個被測實現(xiàn)IUT A和IUT B經(jīng)過變遷start-a/{(nil,Open)、(nil,Open)、(nil,KeepAlive)、(nil,NotiFMsg)、(close,nil)}最終到達gs_n=(Idle,Idle)狀態(tài)。運用這個方法自動生成了10個BGP4+互操作測試例。


          上一頁 1 2 下一頁

          關鍵詞: 測試 BGP4 研究 操作性

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();