專利名稱:一種數據幀的傳輸處理方法
技術領域:
本發明涉及通信系統中的數據幀傳輸技術,尤其涉及一種利用最大傳送單元(MTU,Maximum Transmission Unit)對所傳輸數據幀進行門限控制的數據幀的傳輸處理方法。
背景技術:
當前,電信運營商為了充分利用現有的同步光網絡(SONET)/同步數字體系(SDH)以及光傳輸網絡(OTN),采用通用成幀規程(GFP,GenericFraming Procedure)將上層多種業務形式(例如以太網、IP/點到點協議、MPLS等)的數據映射到SONET/SDH網絡以及OTN中進行傳輸。
GFP是由國際電訊聯盟電信標準化組織(ITU-T)提出的方案,具體方案參見標準ITU-T G.7041/Y.1303。以下簡要介紹GFP的傳輸方案。
圖1為現有GFP協議棧的結構圖;參見圖1,GFP協議的數據幀可以承載以太網數據11、IP/點到點協議(PPP)數據12、以及其他協議類型的上層客戶業務數據13;GFP幀中還包括與客戶業務數據相關的部分(例如凈負荷頭)14、通用信息部分(與客戶業務數據無關,例如核心幀頭)15;GFP幀可以傳送的通道有SDH虛容器通道(SDH VC-n Path)16、OTN光通路數據單元通道(OTN ODUK Path)17、以及其他字節同步通道(Otheroctet-synchronous paths)18。
圖2為在采用GFP的通信系統中傳輸數據包的示意圖。參見圖2,在數據通信設備中,對于每一個同步傳輸通道,都對應有一個緩沖區(Buffer)21;需要傳輸的上層業務數據包,例如以太網數據包和PPP數據包,在發送端(例如通信設備A)被GFP模塊封裝為GFP幀進行傳輸,在接收端(例如通信設備B)再利用相反的解封裝過程將GFP幀還原成上層業務數據包。當傳輸設備通過某一同步傳輸通道發送GFP幀時,GFP幀首先被放到該同步傳輸通道的緩沖區21中,再從緩沖區21中依次讀取并通過同步傳輸通道發送。同理,當傳輸設備通過某一同步傳輸通道接收GFP幀后,首先將該GFP幀放入該傳輸通道的緩沖區21中,上層的應用模塊再從該緩沖區中提取GFP幀并進行解封裝。因此,所發送或接收的GFP幀的大小就要受到緩沖區大小的限制,緩沖區必需能夠至少容納一個GFP幀。由于這種限制,在傳輸設備中通常根據同步傳輸通道緩沖區21的大小設置該傳輸通道的MTU,該MTU用以標識該傳輸設備發送或接收GFP幀的凈負荷的最大長度,當所發送或接收的GFP幀的凈負荷的長度小于或等于該MTU時,該GFP幀才被存儲到緩沖區21中。
但是,現有的這種處理技術存在著如下缺陷對于同一個傳輸通道,如果發送方的MTU大于接收方的MTU,則發送方發出的GFP幀的凈負荷長度很可能大于接收方的MTU,因此導致接收方的緩沖區不能容納該GFP幀,而將該GFP幀丟棄,造成數據丟失。尤其是,一旦發送方的MTU遠大于接收方的MTU,則發送方發出的GFP幀的凈負荷長度大于接收方的MTU的概率很高,因此會造成接收方非常嚴重的丟幀問題。
發明內容
本發明的主要目的在于提供一種數據幀的傳輸處理方法,以防止在數據傳輸中,由于發送設備和接收設備的MTU的差異造成的接收端的丟幀問題。
一種數據幀的傳輸處理方法,該方法包括A、數據傳輸的接收端向發送端通告該接收端的最大傳輸單元MTU;B、發送端判斷自身的MTU是否大于所述接收端的MTU,如果是,則以該接收端的MTU為門限發送數據幀,否則,以自身的MTU為門限發送數據幀。
優選地,步驟A中,所述接收端向發送端通告接收端的MTU的方法為在數據通信連接建立時或者建立后,通信雙方主動向對端發送自身的MTU。
優選地,步驟A中,所述接收端向發送端通告接收端的MTU的方法為在數據通信連接建立時或者建立后,通信雙方首先向對端發送獲取對端MTU的請求報文,對端收到該請求報文后,將自身的MTU發送給所述請求報文的發送方。
優選地,步驟A中,所述接收端向發送端通告接收端的MTU的方法為在數據通信連接建立時或者建立后,通信雙方中的任一端首先將自身的MTU發送給對端;對端收到后,以響應的方式將自身的MTU返回給所述首先發出MTU的通信端。
所述MTU是通過通用成幀規程GFP控制幀承載并通告給對端的,MTU承載在該GFP控制幀凈負荷中的指定域,且該GFP控制幀的幀頭中的PLI取值為1、2、或3。
所述MTU是通過GFP客戶管理幀承載并通告給對端的,MTU承載在該GFP客戶管理幀的擴展幀頭中。
優選地,如果發送端自身的MTU大于所述接收端的MTU,則該方法進一步包括發送端上層按照該接收端的MTU對待發送的上層業務數據包的長度進行限制,使封裝成的數據幀的凈負荷長度符合該接收端MTU的要求。
優選地,所述以MTU為門限發送數據幀的方法為判斷封裝的數據幀的凈負荷長度是否大于MTU,如果是,則不發送該數據幀,給發送端的上層發送指示長度超大的信號,否則,將該數據幀存入緩沖區中緩沖發送。
所述發送端的上層收到指示長度超大的信號后,進一步包括按照所述MTU門限值對待發送的上層業務數據包的長度進行限制,使封裝成的數據幀的凈負荷長度符合所述MTU門限值的要求。
由于本發明所述的方法在傳輸數據幀之前,由數據接收端將其自身MTU通告給數據發送端,一旦接收端的MTU小于發送端的MTU,則利用接收端的MTU為門限發送數據幀,因此保證所發送給接收端的數據幀的凈負荷大小都符合接收端MTU的要求,從而防止了由于發送端和接收端MTU的差異造成接收端的丟幀問題。
另外,本發明的數據發送端的上層按照MTU門限對待發送的上層業務數據包的長度進行限制,使封裝成的數據幀的凈負荷長度符合該MTU門限的要求,因此本發明還可以進一步解決由于MTU門限而造成的發送端丟包的問題。
圖1為現有GFP協議棧的結構圖;圖2為在采用GFP的通信系統中傳輸數據包的示意圖;圖3為本發明實施例對數據幀進行傳輸處理的流程圖;圖4為本發明所述第一種通告MTU的方法示意圖;圖5為本發明所述第二種通告MTU的方法示意圖;圖6為本發明所述第三種通告MTU的方法示意圖。
具體實施例方式
下面結合附圖和具體實施例對本發明進行說明。
本發明所述的方法可適用于所有類似于圖2所示的利用緩沖區傳輸數據幀的通信系統。此處,以采用GFP的通信系統為例,對本發明進行說明。
圖3為本發明實施例對數據幀進行傳輸處理的流程圖。參見圖3,該流程包括步驟301、在數據通信連接建立時或建立后,數據傳輸的接收端向發送端通告該接收端的最大傳輸單元MTU。本發明中所述的MTU為通信設備的某一同步傳輸通道所能接收到的最大的數據單元的長度,其具體數值可以根據該同步傳輸通道的緩沖區的大小利用現有的方法進行確定,具體到GFP就是通信設備發送或接收的GFP幀的凈負荷的最大長度。
步驟302、數據發送端收到所述接收端的MTU后,判斷自身的MTU是否大于所述接收端的MTU,如果是,則執行步驟303;否則,執行步驟304。
步驟303、數據發送端將自身的MTU修改為所述接收端的MTU,以該接收端的MTU為門限發送數據幀,即判斷所封裝的GFP幀的凈負荷長度是否大于該接收端的MTU,如果是,則不發送該GFP幀,并給發送端的上層(例如以太網層和PPP層)發送指示長度超大的信號,上層收到指示長度超大的信號后,獲取該新的MTU門限值,并按照該MTU門限值限制待發送客戶業務數據包的長度,使封裝后的數據幀的凈負荷長度符合該MTU門限值的要求,具體的限制方法可以采用現有的分段/級聯方式進行;否則,將該GFP幀存入緩沖區中緩沖發送,結束本流程。
或者,本步驟中在發送端將自身的MTU修改為接收端的MTU后,直接向上層發送該修改后的MTU值,上層按照該MTU門限值限制待發送客戶業務數據包的長度,使封裝后的數據幀的凈負荷長度符合該MTU門限值的要求。這樣可以由上層控制業務數據包的長度,降低了發送端丟包的風險。
步驟304、以自身的MTU為門限發送數據幀,即判斷所封裝的GFP幀的凈負荷長度是否大于自身的MTU,如果是,則不發送該GFP幀,并給發送端的上層發送指示長度超大的信號,上層收到指示長度超大的信號后,按照自身的MTU門限值限制待發送客戶業務數據包的長度,使封裝后的數據幀的凈負荷長度符合該MTU門限值的要求;否則,將該GFP幀存入緩沖區中緩沖發送,結束本流程。
上述步驟301中,數據傳輸接收端向發送端通告該接收方MTU的方法可以有多種,以下為三種具體的實施方法。
圖4為第一種通告MTU的方法示意圖。參見圖4,該方法在數據通信連接建立時或者建立后,由通信雙方(例如圖中的通信設備A和通信設備B)主動向對端發送攜帶自身MTU的幀。此處可以利用GFP控制幀來承載傳送MTU該GFP控制幀幀頭中的PLI可以取值為A,用于標識該控制幀中攜帶了MTU,其中A可以選1、2、或3中任一個值,A的取值預先存儲在通信設備中;MTU可封裝在該GFP控制幀凈負荷中的指定域中,該指定域的位置信息預先存儲在通信設備中;當對端通信設備收到GFP幀后,解析該GFP幀的幀頭,如果判定該幀頭的PLI的取值為A,則判定該GFP幀為一個攜帶MTU的控制幀,接著從該GFP控制幀凈負荷中的指定域中解析出MTU的值,從而正確獲得通信對端的MTU。此處也可以利用GFP客戶管理幀來承載傳送MTU該GFP客戶管理幀的用戶凈荷標識符(UPI)取特定的值B,用于標識該GFP客戶管理幀中承載了MTU,B的取值可以為在UPI的取值范圍內除1和2的任意值,B的取值預先存儲在通信設備中;MTU封裝在該GFP幀的擴展幀頭中,此處可以指定一個新的域攜帶MTU,以免與其他原有域發生沖突;當對端通信設備收到GFP客戶管理幀后,解析其UPI的取值,如果取值為B,則判定該GFP客戶管理幀中攜帶了MTU,解析GFP客戶管理幀的擴展幀頭,從中獲得通信對端的MTU。
圖5為第二種通告MTU的方法示意圖。參見圖5,在數據通信連接建立時或者建立后,通信雙方,即兩個本端通信設備A和通信設備B,首先向對端發送獲取對端MTU的請求報文,對端收到該MTU請求報文后,將自身的MTU通過報文承載發送給本端,本端收到該報文并成功解析其中的MTU后,再向對端發送一個成功的響應報文;如果沒有收到或沒有解析成功,則隔一段時間再重新發送MTU的請求報文給對端。所述的MTU請求報文和響應報文可以是一個特定的GFP控制幀,可以用其幀頭中的PLI的取值進行標記和識別。對端發送給本端的承載MTU的報文可以采用GFP控制幀,也可以采用GFP客戶管理幀,其應用方式與上述第一種通告MTU的方法相同。
圖6為第三種通告MTU的方法示意圖。參見圖6,在數據通信連接建立時或者建立后,通信雙方中的任一端,此處例如通信設備A,首先將自身的MTU通過報文承載發送給對端通信設備B;通信設備B收到后,以響應的方式將自身的MTU通過報文承載返回給所述通信設備A。所述承載MTU的報文可以采用GFP控制幀,也可以采用GFP客戶管理幀,其應用方式與上述第一種通告MTU的方法相同。
另外,上述步驟301中,數據傳輸接收端向發送端通告該接收方MTU的時機可以是周期通告,也可以是觸發通告,例如在通信設備的同步通道關閉后又重新啟動時進行觸發,將本端的MTU通告給對端通信設備。
以上所述,僅為本發明較佳的具體實施方式
,但本發明的保護范圍并不局限于此,任何熟悉該技術的人在本發明所揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護范圍之內。
權利要求
1.一種數據幀的傳輸處理方法,其特征在于,該方法包括A、數據傳輸的接收端向發送端通告該接收端的最大傳輸單元MTU;B、發送端判斷自身的MTU是否大于所述接收端的MTU,如果是,則以該接收端的MTU為門限發送數據幀,否則,以自身的MTU為門限發送數據幀。
2.根據權利要求1所述的數據幀的傳輸處理方法,其特征在于步驟A中,所述接收端向發送端通告接收端的MTU的方法為在數據通信連接建立時或者建立后,通信雙方主動向對端發送自身的MTU。
3.根據權利要求1所述的數據幀的傳輸處理方法,其特征在于步驟A中,所述接收端向發送端通告接收端的MTU的方法為在數據通信連接建立時或者建立后,通信雙方首先向對端發送獲取對端MTU的請求報文,對端收到該請求報文后,將自身的MTU發送給所述請求報文的發送方。
4.根據權利要求1所述的數據幀的傳輸處理方法,其特征在于步驟A中,所述接收端向發送端通告接收端的MTU的方法為在數據通信連接建立時或者建立后,通信雙方中的任一端首先將自身的MTU發送給對端;對端收到后,以響應的方式將自身的MTU返回給所述首先發出MTU的通信端。
5.根據權利要求2至4任一項所述的數據幀的傳輸處理方法,其特征在于所述MTU是通過通用成幀規程GFP控制幀承載并通告給對端的,MTU承載在該GFP控制幀凈負荷中的指定域,且該GFP控制幀的幀頭中的PLI取值為1、2、或3。
6.根據權利要求2至4任一項所述的數據幀的傳輸處理方法,其特征在于所述MTU是通過GFP客戶管理幀承載并通告給對端的,MTU承載在該GFP客戶管理幀的擴展幀頭中。
7.根據權利要求1所述的數據真的傳輸處理方法,其特征在于,如果發送端自身的MTU大于所述接收端的MTU,則該方法進一步包括發送端上層按照該接收端的MTU對待發送的上層業務數據包的長度進行限制,使封裝成的數據幀的凈負荷長度符合該接收端MTU的要求。
8.根據權利要求1所述的數據幀的傳輸處理方法,其特征在于所述以MTU為門限發送數據幀的方法為判斷封裝的數據幀的凈負荷長度是否大于MTU,如果是,則不發送該數據幀,給發送端的上層發送指示長度超大的信號,否則,將該數據幀存入緩沖區中緩沖發送。
9.根據權利要求8所述的數據真的傳輸處理方法,其特征在于所述發送端的上層收到指示長度超大的信號后,進一步包括按照所述MTU門限值對待發送的上層業務數據包的長度進行限制,使封裝成的數據幀的凈負荷長度符合所述MTU門限值的要求。
全文摘要
本發明公開了一種數據幀的傳輸處理方法,該方法包括A.數據傳輸的接收端向發送端通告該接收端的最大傳輸單元MTU;B.發送端判斷自身的MTU是否大于所述接收端的MTU,如果是,則以該接收端的MTU為門限發送數據幀,否則,以自身的MTU為門限發送數據幀。本發明可以防止在數據傳輸中,由于發送設備和接收設備的MTU的差異造成的接收端的丟幀問題。
文檔編號H04L29/02GK1905456SQ20051008719
公開日2007年1月31日 申請日期2005年7月27日 優先權日2005年7月27日
發明者蔣章震 申請人:華為技術有限公司