專利名稱:同步光纖網或同步數字體系幀承載的凈荷檢測方法
技術領域:
本發明涉及通信領域中凈荷檢測方法,尤指一種同步光纖網或同步數字體系幀承載的凈荷檢測方法。
背景技術:
SONET/SDH(同步光纖網/同步數字體系)可以承載多種復雜協議報文,如ATM(Asynchronous Transfer Mode,異步傳輸模式),GFP(General FramingProcedure,通用成幀規程),LAPS(Link Access Procedure-SDH,數據鏈路層規程)、HDLC(High level Data Link Control,高級數據鏈路控制)、PPP(Point-to-Point Protocol,點到點協議)等。
下面以ATM為例介紹SDH/SONET承載協議報文的情況。ATM OverSDH/SONET是利用SDH/SONET的大容量、光纖傳輸與穩定可靠的帶有自愈和迂回路由的網絡結構作為ATM交換核心的基礎;將ATM信元打包成SDH/SONET幀(ATM信元映射到SDH/SONET的VC4虛容器中);將SDH/SONET作為物理層的傳輸介質,傳送ATM信元;ATM信元在SDH/SONET的傳輸環上進行ATM之間的交換;通過SDH/SONET的保護環保障ATM信元的極低的損失;即利用ATM面向連接的快速交換能力,提供QoS保障;又利用SDH/SONET可靠的傳輸特性。
由于ATM協議和SDH/SONET協議都比較復雜,在實現ATM OverSDH/SONET的FPGA(Field Programmable Gate Array,現場可編程門陣列)或ASIC(Application Specific Integrated Circuit,特定用途集成電路)驗證過程中,ATM Over SDH/SONET業務的分析是非常復雜的。如何分析ATM OverSDH/SONET業務是ATM Over SDH/SONET類FPGA或ASIC的驗證難點之一。當SDH/SONET承載其他的復雜協議凈荷時(如IP包,以太網包,HDLC封裝報文,LAPS封裝報文,GFP封裝報文等),其分析過程也是FPGA或ASIC的驗證難點。
承載復雜凈荷的SDH/SONET幀驗證分析的傳統方法是將DUT(DesignUnder Test,被測試對象)輸出的數據流存儲在文件中,然后對文件進行人工分析。由于SDH/SONET協議和SDH/SONET承載的復雜凈荷報文協議都很復雜,本方案采用的人工分析方法將導致效率低下,無法自動化分析,而且出錯幾率大,人力成本高。
發明內容
本發明解決的問題是實現SDH/SONET協議和SDH/SONET承載的復雜報文協議凈荷檢測為解決上述問題,本發明同步光纖網或同步數字體系幀承載的凈荷檢測方法,包括以下步驟確定協議類型,以明確協議報文結構特征;根據協議類型搜索協議報文頭;把報文頭作為起始,根據協議報文長度或間隔從凈荷中拆離協議報文;檢測協議報文,根據協議報文結構特征判斷報文頭和凈荷是否正確;輸出檢測結果。
協議類型確定通過被測對象的協議報文的凈荷中嵌入表示協議類型的特征字節或通過協議報文本身表示協議類型的特征字節確定。
如果協議類型為異步傳輸模式協議,則異步傳輸模式協議報文頭搜索通過每收到5字節做一次CRC8的解校驗,如果校驗正確,則搜索到一個異步傳輸模式協議信元頭;如果協議類型是數據鏈路層規程,則數據鏈路層規程協議報文頭的搜索通過判斷報文間隔字節0x7e緊接著特征字節0x0403fe01則是一個數據鏈路層規程協議報文的開始。
所述協議報文拆離步驟中,如果協議類型為異步傳輸模式協議搜索到異步傳輸模式信元頭后,則在凈荷中再取出48個字節以拆離一個完整的異步傳輸模式信元;如果是數據鏈路層規程協議類型,搜索到數據鏈路層規程協議報文頭0x0403fe01后,繼續搜索直到碰到下一個報文間隔0x7e,則是該協議報文的結束處,以拆離一個完整數據鏈路層規程協議報文。
所述協議報文頭的檢測可以通過協議報文頭格式進行判斷的。
所述協議報文凈荷檢測可以在協議報文凈荷內嵌的CRC32校驗碼進行自校驗或者把拆離的協議報文和預期輸出的協議報文相比較。
在確定協議類型之前還包括步驟從鏈路層接口截取被測對象;通過通信總線接口,經由總線功能模塊把總線信號轉換成同步數字體系數據流;凈荷拆離。
所述凈荷拆離包括步驟統一同步數字體系數據格式;經過段開銷指針分離模塊從STM-N幀中順序取得一個完整的STM-1幀,完成段開銷分離和管理單元指針定位;經過虛容器虛級聯解映射及通道開銷分離模塊,根據通道號和序列號完成封裝數據流分離,同時完成通道開銷分離;從STM-N幀上拆離凈荷。
與現有技術相比,本發明具有以下優點本發明技術方案實現凈荷檢測,檢測結果可以實時顯示在終端或保存在文件中,提高驗證效率。
本發明技術方案因為不用人工參與而提高凈荷的驗證質量,減少人為分析錯誤。
本發明因為每檢測完一個報文都能輸出結果,如果判斷有錯誤,則可以控制停止仿真驗證過程,進行調試(Debug),從而節省驗證時間和無謂的工作,提高驗證過程的可觀察性,很好的控制仿真驗證過程。
本發明技術方案可以根據實際需要進行協議類型的擴展,使用各種協議報文(例如,LAPS,GFP,ATM,PPP,HDLC)可移植性好。
圖1是STM-N的幀結構示意圖。
圖2是虛容器的結構示意圖。
圖3是在凈荷檢測之前的流程圖。
圖4是圖3中總線功能模塊的示意圖。
圖5是本發明同步光纖網或同步數字體系幀承載的凈荷檢測方法流程圖。
圖6是協議報文的凈荷中嵌入表示協議類型的特征字節實施例示意圖。
圖7是ATM信元結構示意圖。
圖8、9是LAPS協議報文結構示意圖。
圖10、12是同步光纖網或同步數字體系幀承載的ATM協議凈荷檢測方法流程圖。
圖11、13是同步光纖網或同步數字體系幀承載的LAPS協議凈荷檢測方法流程圖。
具體實施例方式
80年代中期以來,光纖通信在電信網中得到大規模應用,并成為一種主要的傳輸手段,1988年CCITT接收了SONET的概念,并重新命名為SDH。如圖1所示,SDH的傳輸模塊STM,其幀結構是塊狀幀,每一幀為N×9×270個字節,在傳輸時是由左到右、由上到下順序成串地傳輸。傳輸一幀的時間為125μs,每秒共傳8000幀。對STM-1來說,傳輸速率是1×8×9×270×8000=155.520Mbit/s。對更高階的STM-N,只要用N代替1,就能計算出它的傳輸速率。
段開銷(SOH)包括再生段開銷(RSOH)和復用段開銷(MSOH),為保證信息正常運行而必須附加的字節,主要用于網絡的運行、管理、維護和指配(OAM&P)。管理單元指針(AU PTR),用來指示凈荷區域內信息首字節在STM-N幀內的準確位置,以便在接收時能正確地分離凈荷。STM-N凈荷(Payload)是真正用于電信業務的比特,如STM-1中每幀有18792bit位于凈荷區域,可用于業務的傳輸,在凈荷域內還存放了少量用于通道維護管理的通道開銷(POH)字節。這樣SDH幀每行的前9個字節(前9列),共81字節中放置了段開銷(SOH——Section Over Head)和管理單元指針(AUPTR);每行的后261個字節構成了信息凈荷區(Payload),其中有9字節為通道開銷(POH——Path Overhead)。
請參照圖2所示,在SDH中,虛容器(VC,Virtual Container)是一種用來支持通道層連接的信息結構,由被安排在重復周期為125μs或500μs的塊狀幀結構中的凈荷和通道開銷(POH)信息區組成,識別VC幀起點的定位信息由服務網絡提供。虛容器包括低階虛容器和高階虛容器。其中,低階虛容器VC-n(n=1,2,3),包含一個n階容器(n=1,2,3)和一個相對應的低階通道開銷(POH)。高階虛容器VC-n(n=3,4),包含一個n階容器(n=3,4)或一些支路單元(TUG-2或TUG-3)的集合,還包含一個相對應的高階通道開銷(POH)。
請參照圖3、4所示,在凈荷檢測之前,從鏈路層接口截取被測對象(DUT)31通過通信總線接口(Telecom Bus Interface),經由總線功能模塊(BMF)32把總線信號轉換成SDH數據流,接著進行凈荷拆離,然后才能進行凈荷檢測。凈荷拆離可以通過下述步驟實現因為通信總線格式有多種,對應的PLI任務也就不同,經由通信總線格式轉換模塊33把SDH數據格式統一;經過段開銷指針分離模塊34從STM-N幀中順序取得一個完整的STM-1幀,完成段開銷分離和AU PTR指針定位;經過虛容器(如VC4)虛級聯解映射及通道開銷分離模塊35,根據通道號和序列號(SQ)完成封裝數據流分離,同時完成通道開銷(POH)分離;這樣就可以完成從STM-N幀上拆離VC凈荷。
請參照圖5所示,當SDH承載的凈荷比較復雜時,如承載的是PPP、HDLC、LAPS、GFP、ATM的協議報文,本發明凈荷檢測方法可以完成凈荷的檢測和分析,包括步驟步驟51,確定協議類型,以明確協議報文結構特征例如報文頭位置、報文長度、報文間隔、報文頭格式等(具體實現時也可以根據協議類型鏈接到相應協議的處理模式,但每個協議處理模式都經過步驟52、53、54及55);步驟52,根據協議類型搜索協議報文頭,以確定協議報文的起始凈荷包括多個串行的協議報文,為了符合SDH協議要求,相鄰協議報文之間會有其他字節,所以需要確定每個協議報文頭才能找到該協議報文,第一個報文頭從凈荷第一個字節開始搜索;步驟53,把報文頭作為起始,根據協議報文長度或間隔從凈荷中拆離協議報文;
步驟54,檢測協議報文,判斷報文頭和凈荷是否正確;步驟55,輸出檢測結果(輸出檢測結果是每檢測完一個協議報文就輸出,然后再檢測下一個協議報文;這樣才可以實現實時檢測)。
重復步驟52至55檢測凈荷中下一個協議報文。
下面針對每個步驟的實現舉例說明,包括但不限于下述實施例。
所述步驟51實現協議類型確定的方法。
方法1請參照圖6所示,在發送給被測對象(DUT)31的協議報文的凈荷(Payload)中嵌入表示協議類型的特征字節如0xf55f,1字節的協議類型號,4字節報文序列號(用來給報文編號)。
協議類型定義如下0x00ATM協議0x01LAPS協議0x02GFP協議0x03HDLC協議0x04PPP協議其它保留(可供擴展)這樣,從凈荷中檢測0xf55f特征字節,獲取其協議類型字段,則可以確定獲得的協議報文的協議類型。通常來說,VC凈荷中一般不會存放多種類型的協議報文,因此只需要對第一個報文的協議類型進行分析即可,后面的報文都按分析得到的協議報文類型進行處理。
方法2因為每種協議報文都有其特征字節,可以通過每種協議報文的特征字節確定協議類型。
如圖7所示,ATM信元是定長的,而且信元的長度較小,只有53字節,分為信元頭和凈荷兩部分,其中信元頭為5字節,凈荷為48字節。
ATM有兩種信元頭用戶-網絡接口(UNI)信元和網絡-網絡接口(NNI)信元,在ATM信元頭格式中,從圖7中可以看出,UNI信元格式有GFC域(一般流量控制域),而NNI信元格式沒有GFC域,在NNI信元格式中,GFC域被擴充成VPI(虛通道標識)。信元頭的前4個字節為零時,則此信元為ATM空閑(Idle)信元。
ATM信元有5個字節的信元頭,如果檢測到有4個字節的CRC8校驗碼和第5個字節相同,則通過該特征字節可以判斷是ATM協議。
另外,如圖8、9所示LAPS協議報文,在該LAPS協議報文間隔0x7e后緊跟0x0403fe01特征字節;如果在凈荷中檢測到0x7e后緊跟著0x0403fe01特征字節,則可以判斷出協議類型為LAPS協議。
同理其他協議類型根據其協議的特征字節也可以進行判斷。通常來說,凈荷中一般不會存放多種協議類型的協議報文,因此只需要對第一個報文的協議類型進行分析即可,后面的報文都按分析得到的協議報文類型進行處理。當然本發明也可以同時支持上述兩種協議類型確定方式(內嵌表示協議類型的特征字節或協議報文本身表示協議類型的特征字節),通過參數配置可以設置的協議類型確定方式。
步驟52,根據協議類型搜索協議報文頭第一個字節開始搜索協議報文頭,當搜索到協議報文頭時,進入步驟53,當搜索不到協議報文頭時,則重復步驟52。
例如請參照圖7所示,如果是ATM協議類型,因為ATM信元頭是5字節,對其搜索就是每收到5字節,就做一次CRC8的解校驗,如果校驗正確,則認為搜索到一個ATM信元頭,如果不正確則再取下一個字節與前面4個字節組成5個字節繼續做CRC8解校驗(例如,第6個字節與前面4個字節組成5個字節再做一次CRC8校驗),以這種方式重復校驗直到找到ATM信元頭。
再如,如果是LAPS協議類型,則判斷其LAPS協議報文頭的特征字節是否是0x0403fe01,如果在報文間隔0x7e后緊接著0x0403fe01則認為是一個LAPS報文的開始,直到碰到下一個報文間隔0x7e,則認為是這個LAPS協議報文的結束處。
步驟53,當搜索到協議報文頭時,根據協議報文的長度或協議報文間隔把這個協議報文信元從凈荷中拆離出來。
例如,如果是ATM協議類型,因為ATM信元頭是5字節,凈荷是48個字節,搜索到ATM信元頭后,只需在VC凈荷中再取出48個字節則可以把一個完整的ATM信元拆離出來。
再如,如果是LAPS協議類型,搜索到LAPS協議報文頭0x0403fe01后,繼續搜索直到碰到下一個報文間隔0x7e,則認為是這個報文的結束處。如此可以把整一個LAPS協議報文從VC凈荷中拆離出來。
步驟54,從凈荷中拆離出協議報文后,對其協議報文頭和協議報文凈荷進行檢測。
協議報文頭的檢測可以通過協議報文頭格式進行判斷的。如ATM協議報文,其信元頭是否正確,只需對其進行CRC8解校驗則可判斷是否正確;再比如LAPS協議報文,則只需看其特征字節0x0403fe01是否正確即可。
協議報文凈荷檢測的實現方式可以是協議報文凈荷內嵌的CRC32校驗碼進行自校驗,或者把拆離的協議報文和預期輸出的協議報文相比較。前者需要在協議報文凈荷中預先嵌入4字節的CRC32校驗碼,在檢測接收到的協議報文的時候,對其凈荷進行CRC32解校驗即可完成凈荷檢測。
步驟55在步驟54中檢測完協議報文后,把協議報文的序號以及檢測結果輸出到文件中或者輸出到計算機終端上。這樣就可以從計算機終端上或文件中直接觀察到協議報文的檢測結果,如果發現有問題,則可以很方便的定位問題,保證被測對象的質量。
下面分別以SDH/SONET幀承載的ATM協議報文和LAPS協議報文為例說明本發明凈荷檢測方法,且本發明凈荷檢測方法適用于SDH/SONET承載的其他協議報文的凈荷檢測。
請參照圖10、12所示,SDH/SONET幀承載的ATM協議報文的凈荷檢測過程步驟91在從STM-N幀上拆離的VC凈荷中,首先確認報文的協議類型(具體實現方式參見前面敘述);
步驟92確定報文協議類型后,從VC凈荷的第一個字節開始搜索ATM信元頭,當搜索到ATM信元頭時,進入步驟93,當搜索不到ATM信元頭時,則重復步驟92直到找到ATM信元頭從VC凈荷中取出5個字節(ATM信元的信元頭有5個字節,其最后一個字節為CRC8校驗碼),對其進行CRC8解校驗如果不正確就從VC凈荷中再取出下1個字節,和前面的4個字節組成5字節進行CRC8判斷其是否是正確的ATM信元頭,直至找到正確的ATM信元頭。
步驟93當搜索到ATM信元頭時,根據ATM信元的長度(53字節)把這個ATM信元從VC凈荷中拆離出來。
步驟94從VC凈荷中拆離出ATM信元后,對其進行檢測,如果拆離的信元是ATM的Idle信元(空閑信元),則丟棄(可以通過一個IDLE信元的計數器,每檢測到一個IDLE信元此計數器加1,如此可以統計收到了多少個IDLE信元,從而知道需要丟棄多少個IDLE信元);如果是OAM信元(操作維護管理信元),則根據ATM協議進行檢測,ATM信元頭有一個3比特的PT域(凈荷類型域),比特2的值為1則代表是OAM信元,可以根據此特征比特來判斷是否是OAM信元;如果是ATM數據信元,則根據ATM信元內嵌的CRC32校驗碼進行自校驗,或者把拆離的ATM信元和預期輸出的ATM信元相比較,完成檢測。
步驟95在步驟94中檢測ATM信元后,把檢測結果輸出到文件中或者輸出到計算機終端上。
在SDH中,為了達到速率適配,一般會在VC凈荷中填充ATM Idle信元,判斷是否為ATM Idle信元,如果是Idle信元,則判斷其凈荷是否為全0,實時輸出檢測結果;如果Idle信元的凈荷不是全0,則輸出錯誤結果。如果是ATM數據信元,有擾碼必須先解擾碼,然后對其48字節的凈荷進行CRC32解校驗,實時輸出檢測結果。如此反復,直至檢測完所有的VC凈荷。如果一個ATM信元有跨幀的情況,則從下一個VC凈荷中再取得數據繼續進行檢測。直至檢測完所有的SDH/SONET幀。
請參照圖11、13所示,SDH/SONET幀承載的LAPS協議報文的檢測過程步驟101在從STM-N幀上拆離的VC凈荷中,首先確認報文的協議類型(具體實現方式參見前面敘述)。
步驟102確定報文類型為LAPS協議后,從VC凈荷的第一個字節開始搜索第一個LAPS協議報文頭,當搜索到LAPS協議報文頭0x0403fe01時,進入步驟103,當搜索不到LAPS協議報文頭時,則重復步驟102。
步驟103當搜索到協議報文頭0x0403fe01時,再搜索報文間隔0x7e,如果找到0x7e字節,則認為一個LAPS協議報文結束,把這個LAPS協議報文從VC凈荷中拆離出來。
步驟104從VC凈荷中拆離出LAPS協議報文后,因為LAPS協議報文頭0x0403fe01字節在第103步驟中已經確認是正確的,因此本步驟可以省略對協議報文頭正確性的判斷,只需對LAPS協議報文凈荷進行檢測,首先對凈荷進行解擾碼;然后去除LAPS幀內的速率匹配字節(0x7DDD),方法是掃描LAPS幀,檢查到0x7DDD時去掉0x7DDD;在LAPS幀內執行字節去除處理(透明處理),即將0x7D5E用0x7E替換,將0x7D5D用0x7D替換;根據LAPS協議報文凈荷內嵌的CRC32校驗碼進行自校驗,或者把拆離出來的LAPS協議報文和預期輸出的LAPS協議報文相比較,完成檢測。
步驟105在步驟104中分析完LAPS協議報文后,把報文序列號和分析結果輸出到文件中或者輸出到計算機終端上。
本發明實現凈荷檢測,檢測結果可以實時顯示在終端或保存在文件中,提高驗證效率;因為不用人工參與而提高凈荷的驗證質量,減少人為分析錯誤;提高驗證過程的可觀察性,很好的控制仿真驗證過程(因為每檢測完一個報文都能輸出結果,如果判斷有錯誤,則可以控制停止仿真驗證過程,進行debug,從而節省驗證時間和無謂的工作);根據實際需要進行協議類型的擴展,使用各種協議報文(例如,LAPS,GFP,ATM,PPP,HDLC)可移植性好。
權利要求
1.一種同步光纖網或同步數字體系幀承載的凈荷檢測方法,其特征在于,包括以下步驟確定協議類型,以明確協議報文結構特征;根據協議類型搜索協議報文頭;把報文頭作為起始,根據協議報文長度或間隔從凈荷中拆離協議報文;檢測協議報文,根據協議報文結構特征判斷報文頭和凈荷是否正確;輸出檢測結果。
2.如權利要求1所述的同步光纖網或同步數字體系幀承載的凈荷檢測方法,其特征在于,協議類型確定通過被測對象的協議報文的凈荷中嵌入表示協議類型的特征字節或通過協議報文本身表示協議類型的特征字節確定。
3.如權利要求1所述的同步光纖網或同步數字體系幀承載的凈荷檢測方法,其特征在于,如果協議類型為異步傳輸模式協議,則異步傳輸模式協議報文頭搜索通過每收到5字節做一次CRC8的解校驗,如果校驗正確,則搜索到一個異步傳輸模式協議信元頭;如果協議類型是數據鏈路層規程,則數據鏈路層規程協議報文頭的搜索通過判斷報文間隔字節0x7e緊接著特征字節0x0403fe01則是一個數據鏈路層規程協議報文的開始。
4.如權利要求3所述的同步光纖網或同步數字體系幀承載的凈荷檢測方法,其特征在于,協議報文拆離步驟中,如果協議類型為異步傳輸模式協議搜索到異步傳輸模式信元頭后,則在凈荷中再取出48個字節以拆離一個完整的異步傳輸模式信元;如果是數據鏈路層規程協議類型,搜索到數據鏈路層規程協議報文頭0x0403fe01后,繼續搜索直到碰到下一個報文間隔0x7e,則是該協議報文的結束處,以拆離一個完整數據鏈路層規程協議報文。
5.如權利要求1所述的同步光纖網或同步數字體系幀承載的凈荷檢測方法,其特征在于,協議報文頭的檢測可以通過協議報文頭格式進行判斷的。
6.如權利要求1所述的同步光纖網或同步數字體系幀承載的凈荷檢測方法,其特征在于,協議報文凈荷檢測可以在協議報文凈荷內嵌的CRC32校驗碼進行自校驗或者把拆離的協議報文和預期輸出的協議報文相比較。
7.如權利要求1至6任一項所述的同步光纖網或同步數字體系幀承載的凈荷檢測方法,其特征在于,在確定協議類型之前還包括步驟從鏈路層接口截取被測對象;通過通信總線接口,經由總線功能模塊把總線信號轉換成同步數字體系數據流;凈荷拆離。
8.如權利要求7所述的同步光纖網或同步數字體系幀承載的凈荷檢測方法,其特征在于,凈荷拆離包括步驟統一同步數字體系數據格式;經過段開銷指針分離模塊從STM-N幀中順序取得一個完整的STM-1幀,完成段開銷分離和管理單元指針定位;經過虛容器虛級聯解映射及通道開銷分離模塊,根據通道號和序列號完成封裝數據流分離,同時完成通道開銷分離;從STM-N幀上拆離凈荷。
全文摘要
本發明公開一種同步光纖網或同步數字體系幀承載的凈荷檢測方法包括以下步驟確定協議類型,以明確協議報文結構特征;根據協議類型搜索協議報文頭;把報文頭作為起始,根據協議報文長度或間隔從凈荷中拆離協議報文;檢測協議報文,根據協議報文結構特征判斷報文頭和凈荷是否正確;輸出檢測結果。本發明技術方案實現凈荷檢測,檢測結果可以實時顯示在終端或保存在文件中,提高驗證效率。本發明技術方案因為不用人工參與而提高凈荷的驗證質量,減少人為分析錯誤。
文檔編號H04L29/06GK1798145SQ200410102900
公開日2006年7月5日 申請日期2004年12月24日 優先權日2004年12月24日
發明者黃鎮偉 申請人:華為技術有限公司