專利名稱:一種通用成幀規程封裝方法
技術領域:
本發明涉及通訊領域中的一種通用成幀規程(GFP)封裝方法。
背景技術:
通用成幀規程(GFP)是國際電信聯盟ITU-T標準組織制定的一個封裝標準,標準號為G.7041,其目的是為了完成變長的協議數據單元(PDU)通過SDH(同步數字體系)/SONET(同步光纖網)、PDH或者OTH的網絡傳送,通過通用成幀規程(GFP)的封裝的適配,不同類型、不同長度的協議數據單元都可以在上述網絡中傳送。
由于通用成幀規程(GFP)具有良好的兼容性,已經逐漸成為多業務傳送平臺MSTP中的首選封裝,在多廠家設備的互連互通中發揮重要作用。
下面以SDH系統為例說明通用成幀規程(GFP)的原理。
如果有協議數據單元(PDU)需要通過SDH系統傳送,首先在PDU之前添加一個通用成幀規程(GFP)的頭部信息、在PDU尾部添加FCS(幀校驗序列)檢驗信息,頭部信息和通用成幀規程的封裝格式如圖1所示。
如圖1所示,通用成幀規程(GFP)主要包括三個部分的信息1)通用成幀規程核心頭部一共4個字節寬度,分為兩個域a)凈荷長度標識符,2字節,表明該通用成幀規程幀封裝的PDU的實際長度,通過這個字段的指示,不同長度的PDU報文可以通過通用成幀規程封裝再映射到SDH的虛容器或者虛容器組里面而不會無法定幀;b)cHEC核心頭部差錯校驗域,2字節,通過該域實現通用成幀規程的定幀;2)凈荷頭部一共4字節寬度,分為5個域a)PTI凈荷類型標識符,3比特,表明該通用成幀規程幀是客戶數據幀還是管理幀b)PFI凈荷FCS標識符,1比特,表明該通用成幀規程幀是否在尾部添加了通用成幀規程的FCS域c)EXI擴展幀頭標識符,4比特,表明該通用成幀規程幀是否包含擴展幀頭及其類型d)UPI用戶凈荷標識符,8比特,表明該通用成幀規程幀封裝的PDU類型,比如IP、以太網、PPP(點對點協議)幀等,不同類型的PDU通過不同的UPI編碼加以區分e)tHEC類型頭部差錯校驗,用于校驗上述四個域的正確性,包括PTI、PFI、EXI和UPI3)通用成幀規程FCS通用成幀規程幀校驗序列,4字節,為可選項通用成幀規程在封裝PDU時,對每一個PDU都會增加一個通用成幀規程頭部和FCS,如圖2所示的通用成幀規程的封裝過程和原理可以看出,無論PDU報文多長,都會固定添加8~12字節的通用成幀規程頭部信息和FCS信息,通用成幀規程的封裝效率可以通過如下公式(1)計算 由此可以得出這樣的結論封裝的PDU長度越短,該通用成幀規程幀的開銷在整個通用成幀規程幀中所占比例越大,封裝效率也就越低;反之,封裝的PDU長度越長,該通用成幀規程幀的開銷在整個通用成幀規程幀中所占比例越小,封裝效率也就越高。
因此提高通用成幀規程封裝短PDU報文的效率對于提高帶寬利用率有著重要的意義,比如在3G業務中,話音業務報文長度一般為20-40字節的短包,如果直接將這樣的短包封裝進通用成幀規程,其封裝效率僅為62.5%~76.9%(有通用成幀規程FCS域)。
這樣的封裝效率使得通用成幀規程在類似于3G話音傳送的應用場景中受到很大的限制。而且在傳送短PDU報文時效率降低,在網絡的建設過程中,需要預留的冗余帶寬要求大,進而增加了設備成本。
發明內容
本發明的目的就是要解決上述封裝方法的不足,提供一種高效的通用成幀規程封裝方法。通過在進行通用成幀規程封裝之前,利用報文級聯的機制,將多個短報文級聯到一起形成一個長的級聯報文,從而提高凈荷在單個通用成幀規程幀的占用率,進而提高了傳輸效率。
本發明的一種通用成幀規程封裝方法所采用的技術方案如下一種通用成幀規程封裝方法,先將多個待封裝的協議數據單元報文級聯成一個長的級聯報文,然后再對所述級聯報文進行封裝獲得一個通用成幀規程幀。
在每個待封裝的協議數據單元報文之前,均增加一個多字節的報文級聯頭部信息。
所述報文級聯頭部信息包含以下內容1)協議數據單元報文長度域,用于指示該報文級聯頭部信息對應的協議數據單元報文的實際長度;2)協議指示位,用于指示該報文級聯頭部信息對應的協議數據單元報文的協議類型是否和第一個協議數據單元報文的協議類型一致;3)協議數據單元協議類型域,用于指示該報文級聯頭部信息對應的協議數據單元報文的協議類型。
所述待封裝的協議數據單元報文級聯的具體步驟如下1)根據待級聯的協議數據單元報文長度填寫協議數據單元報文長度域;2)判斷該報文是否為第一個待級聯的協議數據單元報文,如果是,則設置協議指示位為0,并在協議數據單元協議類型域中填寫協議類型,如果不是,則判斷該協議數據單元協議類型是否與第一個協議數據單元報文的一致,如果一致,則設置協議指示位為1;如果不一致,則設置協議指示位為0,并在協議數據單元協議類型域中填寫該報文的實際協議類型;3)將該報文添加到與其相應的報文級聯頭部信息后邊,然后判斷該報文是否為最后一個待級聯的協議數據單元報文,如果不是,則循環進行上述級聯步驟,處理下一個待級聯的協議數據單元報文,如果是,則結束級聯操作。
所述報文級聯頭部信息還包含結束指示位,用于指示該報文級聯頭部信息對應的協議數據單元報文是否為所述級聯報文中的最后一個協議數據單元報文。
所述待封裝的協議數據單元報文級聯的具體步驟包括將填寫協議類型后的報文添加到與其相應的報文級聯頭部信息后邊,然后判斷該報文是否為最后一個待級聯的協議數據單元報文,如果不是,則設置結束指示位為0,循環進行上述級聯操作步驟以處理下一個待級聯的協議數據單元報文,如果是,則設置結束指示位為1,結束級聯操作。
對所述級聯報文進行封裝的具體步驟如下1)按照級聯后的級聯報文長度添加核心頭部的協議數據單元凈荷長度標識符;2)計算核心頭部差錯校驗域;
3)按照通用成幀規程標準添加凈荷頭部的凈荷類型標識符、凈荷幀校驗序列標識符和擴展幀頭標識符;4)在凈荷頭部的用戶凈荷標識符字段中設置特定的值,以標記待封裝的是級聯報文;5)計算凈荷頭部差錯校驗域;6)如果擴展幀頭標識符為1,則添加通用成幀規程擴展幀頭;7)如果凈荷幀校驗序列標識符為1,則計算并添加通用成幀規程的幀校驗序列。
解通用成幀規程幀封裝的過程如下(1)校驗核心頭部差錯校驗域,確定通用成幀規程幀的起始位置;(2)按照通用成幀規程核心頭部的協議數據單元凈荷長度標識符確定通用成幀規程幀結束位置;(3)校驗凈荷頭部差錯校驗域;(4)按照通用成幀規程標準添加凈荷頭部的凈荷類型標識符、凈荷幀校驗序列標識符和擴展幀頭標識符字段以及對應頭部,如果凈荷頭部的凈荷幀校驗序列標識符為1,則校驗通用成幀規程幀的幀校驗序列;(5)根據凈荷頭部的用戶凈荷標識符字段確定協議數據單元的報文類型,如果是級聯報文則進行解報文級聯處理。
解報文級聯處理過程如下(1)判斷級聯頭部的協議指示值;如果值為1則有協議類型域,故從第一個字節開始偏移所占的字節數,以協議數據單元報文長度域、結束指示、協議指示、保留域和協議域的總長度域所示長度的字節作為協議數據單元報文的凈荷,并從第一個協議數據單元對應的級聯報文頭部獲取協議類型,作為該協議數據單元的協議類型;如果值為0則無協議類型域,故從第一個字節開始偏移所占的字節數,以協議數據單元報文長度域、結束指示、協議指示和保留域的總長度域所示長度的字節作為協議數據單元報文的凈荷,并從本協議數據單元對應的級聯報文頭部獲取協議類型,作為該協議數據單元的協議類型;(2)按照協議類型分類,處理所述協議數據單元報文;(3)判斷是否為最后一個協議數據單元,如果不是則解下一個被級聯的協議數據單元,如果是則過程結束。
步驟(3)中,判斷級聯頭部的結束指示位的值,如果為0則解下一個被級聯的協議數據單元,如果為1則過程結束。
采用本發明所述方法進行封裝,可以有效的提高封裝效率,進而提高了通用成幀規程傳送短小PDU報文的帶寬利用率,新的封裝效率計算公式(2)如下 其中n表示PDU報文個數,級聯頭部長度一般為3~5字節,也有可能隨著級聯頭部的PDU長度域的寬度不同而有所增減。
以封裝5個40字節的報文為例,采用現有的封裝方法,封裝效率按照公式(1)計算為76.9%,采用本發明所述方法,封裝效率采用公式(2)計算為84.4%,通用成幀規程封裝效率提高7.5%。
圖1為現有技術中的通用成幀規程封裝格式框圖;圖2為現有通用成幀規程封裝方法的示意圖;圖3為本發明所述通用成幀規程封裝方法的示意圖;圖4為本發明中涉及的報文級聯頭部信息結構圖;圖5為本發明所述的一種PDU報文級聯處理的流程圖;圖6為本發明所述的解報文級聯處理的流程圖;圖7a為對級聯報文進行封裝處理的流程圖;圖7b為解封裝處理得到級聯報文的流程圖;圖8為本發明所述的另一種PDU報文級聯處理的流程圖;圖9為本發明所述的另一種解報文級聯處理的流程圖。
具體實施例方式
下面結合附圖和實施例來進一步說明本發明,但并不作為對本發明的限定。
實施例1本實施例中所述通用成幀規程封裝方法是先將多個待封裝的協議數據單元報文級聯成一個長的級聯報文,然后再對所述級聯報文進行封裝,如圖3所示。在每個待封裝的協議數據單元報文之前,均增加一個多字節的報文級聯頭部信息。
其中,所述報文級聯頭部信息包含以下內容,如圖4所示1)協議數據單元報文長度域,用于指示該報文級聯頭部對應的協議數據單元報文的實際長度,以字節為單位。該字段的寬度范圍可以是1字節的整數倍,在本實施例中取2字節。這樣取值的好處在于可以保證一個級聯報文的長度達到216字節,也不至于占用過多的開銷;2)結束指示位1比特寬度,用于指示該報文級聯頭部對應的協議數據單元報文是否為該級聯報文中的最后一個協議數據單元報文,如果結束指示位為1,則表示該協議數據單元報文是最后一個報文,否則表示該協議數據單元報文不是最后一個報文;3)協議指示位,1比特寬度,用于指示該報文級聯頭部對應的協議數據單元報文的協議類型是否和第一個協議數據單元報文的協議類型一致,如果一致則協議指示位為1,否則協議指示位為0。級聯報文中第一個級聯頭部的協議指示位不能設置為1;4)保留位暫時不做定義,將來可以用來擴展其它目前尚未定義的功能;5)協議數據單元協議類型域,用于指示該報文級聯頭部對應的協議數據單元報文的協議類型。在本實施例中該字段取2字節寬度,并且在協議指示位為1時,此字段不存在。
其中,將所述待封裝的協議數據單元報文級聯的具體步驟如下,如圖5所示1)根據待級聯的協議數據單元報文長度填寫協議數據單元報文長度域;2)判斷該報文是否為第一個待級聯的協議數據單元報文,如果是,則設置協議指示位為0,并在協議數據單元協議類型域中填寫協議類型,如果不是,則判斷該協議數據單元協議類型是否與第一個協議數據單元報文的一致,如果一致,則設置協議指示位為1;如果不一致,則設置協議指示位為0,并在協議數據單元協議類型域中填寫該報文的實際協議類型;3)將該報文添加到與其相應的報文級聯頭部信息后邊,然后判斷該報文是否為最后一個待級聯的協議數據單元報文,如果不是,則設置結束指示位為0,循環進行上述級聯操作步驟以處理下一個待級聯的協議數據單元報文,如果是,則設置結束指示位為1,結束級聯操作。
在發送方向上,對所述級聯報文進行封裝獲得通用成幀規程幀的具體步驟如下,如圖7a所示1)按照級聯后的級聯報文長度添加通用成幀規程核心頭部的協議數據單元凈荷長度標識符;2)計算核心頭部差錯校驗域(cHEC);
3)按照通用成幀規程標準添加通用成幀規程凈荷頭部的凈荷類型標識符(PTI)、凈荷幀校驗序列標識符(PFI)和擴展幀頭標識符(EXI)字段;4)按照級聯報文添加有別于非級聯報文的通用成幀規程凈荷頭部用戶凈荷標識符(UPI)字段;5)計算凈荷頭部差錯校驗域(tHEC);6)如果擴展幀頭標識符(EXI)=1,則添加通用成幀規程擴展幀頭;7)如果凈荷幀校驗序列標識符(PFI)=1,則計算并添加通用成幀規程的FCS。
在接收方向上,對接收到的通用成幀規程幀進行解封裝的具體步驟如下,如圖7b所示1)校驗核心頭部差錯校驗域(cHEC),確定通用成幀規程幀的起始位置;2)按照通用成幀規程核心頭部的協議數據單元凈荷長度標識符確定通用成幀規程幀結束位置;3)校驗凈荷頭部差錯校驗域(tHEC);4)如果凈荷幀校驗序列標識符(PFI)=1,則校驗通用成幀規程的幀校驗序列(FCS);5)按照通用成幀規程標準去除通用成幀規程凈荷頭部的凈荷類型標識符(PTI)、凈荷幀校驗序列標識符(PFI)和擴展幀頭標識符(EXI)字段以及對應頭部;6)根據通用成幀規程凈荷頭部用戶凈荷標識符(UPI)字段確定協議數據單元報文類型,如果是級聯報文則轉交給解報文級聯模塊進行下一步的解包操作,即將一個長度較長的級聯報文還原成多個長度短小的協議數據單元報文。
上述將級聯報文進行解報文級聯處理,還原成多個長度短小的協議數據單元報文的步驟如圖6所示1)判斷級聯報文頭部的協議指示值,如果值為1,則從第3個字節開始截取級聯頭部協議數據單元長度域所示長度的字節作為協議數據單元報文的凈荷,從第一個協議數據單元對應的級聯報文頭部獲取協議類型,作為該協議數據單元的協議類型;如果值為0,則從第5個字節開始截取級聯頭部協議數據單元長度域所示長度的字節作為協議數據單元報文的凈荷,從本協議數據單元對應的級聯報文頭部獲取協議類型,作為該協議數據單元的協議類型;2)按照協議類型分類,將協議數據單元報文交由對應的協議處理模塊處理。采用現有的公知方法處理,這里就不描述了;3)判斷級聯頭部的結束指示位的值,如果為0則解下一個被級聯的協議數據單元報文,如果為1則解報文級聯處理操作結束。
實施例2第二個實施例與第一個實施例的絕大部分處理步驟相同,不同之處僅在于級聯報文頭部中沒有結束指示位。這樣,如圖8所示,在將待封裝的協議數據單元報文級聯的處理過程中沒有設置結束指示位的步驟。相應地,如圖9所示,在將級聯報文進行解報文級聯處理,還原成多個長度短小的協議數據單元報文的處理過程中,最后一步即步驟(3)則為判斷正在處理的協議數據單元報文是否為最后一個協議數據單元報文,如果不是則解下一個被級聯的協議數據單元報文,如果是則解報文級聯處理操作結束。
通過通用成幀規程本身的定幀機制來完成級聯報文的定界。
所述通用成幀規程的定幀機制指根據ITU-T G.7041定義,通用成幀規程的狀態機根據匹配其核心頭部的cHEC字節,如果發現了滿足cHEC關系的連續4個字節,則認為是一個通用成幀規程幀的起始,并且進行差錯校驗,同時通用成幀規程幀的核心頭部具有16比特的凈荷長度指示PLI字段,通過該字段可以確定當前通用成幀規程幀的結束位置。
本發明的效果為提高了通用成幀規程傳送短小協議數據單元報文的帶寬利用率,新的計算公式(2)如下 其中級聯頭部長度一般為3或5字節,也有可能隨著級聯頭部的協議數據單元長度域的寬度不同而有所增減。
以封裝5個40字節的報文為例,未采用本發明的封裝效率按照公式(1)計算為76.9%,采用本發明后,封裝效率采用公式(2)計算為84.4%,通用成幀規程封裝效率提高7.5%。
附縮略語和關鍵術語定義GFP 通用成幀規程PDU 協議數據單元SDH 同步數字體系SONET同步光纖網FCS 幀校驗序列cHEC GFP核心頭部差錯校驗
PTI GFP凈荷頭部的凈荷類型標識符PFI GFP凈荷頭部的凈荷FCS標識符EXI GFP凈荷頭部的擴展幀頭標識符UPI GFP凈荷頭部的用戶凈荷標識符tHECGFP凈荷頭部差錯校驗PPP 點對點協議PPPMux PPP復用,RFC定義的一種將多個報文復用到一個PPP報文當中的機制,用于提高傳送效率上述內容僅描述了本發明的一個非限定性典型實施例,本領域中的技術人員可以在此基礎上作改進,而不脫離本發明的精神和權利要求的范圍。例如上述封裝過程中,通用成幀規程凈荷頭部的處理順序可以根據實際情況和需要作適當調整。又如,級聯頭部長度一般為3或5字節,也有可能隨著級聯頭部的協議數據單元長度域的寬度不同而有所增減。
權利要求
1.一種通用成幀規程封裝方法,其特征在于,先將多個待封裝的協議數據單元報文級聯成一個長的級聯報文,然后再對所述級聯報文進行封裝獲得一個通用成幀規程幀。
2.根據權利要求1所述的通用成幀規程封裝方法,其特征在于,在每個待封裝的協議數據單元報文之前,均增加一個多字節的報文級聯頭部信息。
3.根據權利要求2所述的通用成幀規程封裝方法,其特征在于,所述報文級聯頭部信息包含以下內容1)協議數據單元報文長度域,用于指示該報文級聯頭部信息對應的協議數據單元報文的實際長度;2)協議指示位,用于指示該報文級聯頭部信息對應的協議數據單元報文的協議類型是否和第一個協議數據單元報文的協議類型一致;3)協議數據單元協議類型域,用于指示該報文級聯頭部信息對應的協議數據單元報文的協議類型。
4.根據權利要求3所述的通用成幀規程封裝方法,其特征在于,所述待封裝的協議數據單元報文級聯的具體步驟如下1)根據待級聯的協議數據單元報文長度填寫協議數據單元報文長度域;2)判斷該報文是否為第一個待級聯的協議數據單元報文,如果是,則設置協議指示位為0,并在協議數據單元協議類型域中填寫協議類型,如果不是,則判斷該協議數據單元協議類型是否與第一個協議數據單元報文的一致,如果一致,則設置協議指示位為1;如果不一致,則設置協議指示位為0,并在協議數據單元協議類型域中填寫該報文的實際協議類型;3)將該報文添加到與其相應的報文級聯頭部信息后邊,然后判斷該報文是否為最后一個待級聯的協議數據單元報文,如果不是,則循環進行上述級聯步驟,處理下一個待級聯的協議數據單元報文,如果是,則結束級聯操作。
5.根據權利要求3所述的通用成幀規程封裝方法,其特征在于,所述報文級聯頭部信息還包含結束指示位,用于指示該報文級聯頭部信息對應的協議數據單元報文是否為所述級聯報文中的最后一個協議數據單元報文。
6.根據權利要求5所述的通用成幀規程封裝方法,其特征在于,所述待封裝的協議數據單元報文級聯的具體步驟包括將填寫協議類型后的報文添加到與其相應的報文級聯頭部信息后邊,然后判斷該報文是否為最后一個待級聯的協議數據單元報文,如果不是,則設置結束指示位為0,循環進行上述級聯操作步驟以處理下一個待級聯的協議數據單元報文,如果是,則設置結束指示位為1,結束級聯操作。
7.根據權利要求2-6任何一項所述的通用成幀規程封裝方法,其特征在于,對所述級聯報文進行封裝的具體步驟如下1)按照級聯后的級聯報文長度添加核心頭部的協議數據單元凈荷長度標識符;2)計算核心頭部差錯校驗域;3)按照通用成幀規程標準添加凈荷頭部的凈荷類型標識符、凈荷幀校驗序列標識符和擴展幀頭標識符;4)在凈荷頭部的用戶凈荷標識符字段中設置特定的值,以標記待封裝的是級聯報文;5)計算凈荷頭部差錯校驗域;6)如果擴展幀頭標識符為1,則添加通用成幀規程擴展幀頭;7)如果凈荷幀校驗序列標識符為1,則計算并添加通用成幀規程的幀校驗序列。
8.根據權利要求1-7任何一項所述的一種通用成幀規程封裝方法,其特征在于,解通用成幀規程幀封裝的過程如下(1)校驗核心頭部差錯校驗域,確定通用成幀規程幀的起始位置;(2)按照通用成幀規程核心頭部的協議數據單元凈荷長度標識符確定通用成幀規程幀結束位置;(3)校驗凈荷頭部差錯校驗域;(4)按照通用成幀規程標準添加凈荷頭部的凈荷類型標識符、凈荷幀校驗序列標識符和擴展幀頭標識符字段以及對應頭部,如果凈荷頭部的凈荷幀校驗序列標識符為1,則校驗通用成幀規程幀的幀校驗序列;(5)根據凈荷頭部的用戶凈荷標識符字段確定協議數據單元的報文類型,如果是級聯報文則進行解報文級聯處理。
9.根據權利要求8所述的一種通用成幀規程封裝方法,其特征在于,解報文級聯處理過程如下(1)判斷級聯頭部的協議指示值;如果值為1則有協議類型域,故從第一個字節開始偏移所占的字節數,以協議數據單元報文長度域、結束指示、協議指示、保留域和協議域的總長度域所示長度的字節作為協議數據單元報文的凈荷,并從第一個協議數據單元對應的級聯報文頭部獲取協議類型,作為該協議數據單元的協議類型;如果值為0則無協議類型域,故從第一個字節開始偏移所占的字節數,以協議數據單元報文長度域、結束指示、協議指示和保留域的總長度域所示長度的字節作為協議數據單元報文的凈荷,并從本協議數據單元對應的級聯報文頭部獲取協議類型,作為該協議數據單元的協議類型;(2)按照協議類型分類,處理所述協議數據單元報文;(3)判斷是否為最后一個協議數據單元,如果不是則解下一個被級聯的協議數據單元,如果是則過程結束。
10.根據權利要求9所述的一種通用成幀規程封裝方法,其特征在于,步驟(3)中,判斷級聯頭部的結束指示位的值,如果為0則解下一個被級聯的協議數據單元,如果為1則過程結束。
全文摘要
本發明提供一種通用成幀規程封裝方法,涉及通訊領域,其方法是在進行通用成幀規程封裝之前,利用報文級聯的機制,將多個短報文級聯到一起形成一個長報文,從而提高凈荷在單個通用成幀規程幀的占用率,進而提高了傳輸效率。
文檔編號H04L12/46GK101022405SQ20061009013
公開日2007年8月22日 申請日期2006年6月23日 優先權日2006年6月23日
發明者鐘來軍 申請人:華為技術有限公司