報文發送方法及通信設備的製作方法
2023-05-14 04:44:26 4
專利名稱::報文發送方法及通信設備的製作方法
技術領域:
:本發明涉及通信
技術領域:
,特別涉及一種報文發送方法及通信設備。
背景技術:
:現在網絡中,通過使用PTP(PrecisionTimeProtocol,精確時間協議)傳輸乙太網中的1588報文,以達到網絡設備間的時鐘同步。其中,傳送1588報文的設備可以稱為1588設備,具體的,產生並發送帶有時間戳的1588報文過程包括1588設備中的1588協議處理模塊按照1588協議產生1588淨荷,此時該1588淨荷中的時間戳為任意值,1588設備中的下行組包模塊對該1588淨荷進行封裝得到1588下行報文,下行報文發送模塊發送1588下行報文,發送的同時用該1588下行報文的出埠時間戳替換該1588下行報文中原有的時間戳。在對現有技術的研究和實踐過程中,發明人發現現有技術存在以下問題現有技術中1588協議處理模塊產生的1588淨荷中的時間戳為任意值,在報文發送時才替換上真正的時間戳,造成1588設備需要兩次管理時間戳,使時間戳的管理工作繁瑣,並且其內部傳遞1588報文的帶寬增加並且處理複雜。
發明內容本發明實施例提供一種報文發送方法及通信設備,簡化對1588報文中時間戳的處理。本發明實施例提供—種報文發送方法,包括產生淨荷,所述淨荷不包括時間戳域;對所述淨荷進行封裝,得到下行報文;獲取表示開始發送下行報文的時間戳值;在所述下行報文中添加所述時間戳值,發送添加了時間戳值的下行報文。—種通信設備,包括協議處理模塊、下行組包模塊、下行報文發送模塊和實時時鐘模塊,所述協議處理模塊,用於產生淨荷,所述淨荷不包括時間戳域;所述下行組包模塊,用於對所述淨荷進行封裝,得到下行報文;所述下行報文發送模塊,用於指示實時時鐘模塊產生表示開始發送下行報文的時間戳值,獲得所述實時時鐘模塊產生的所述時間戳值,在所述下行報文中添加時間戳值,發送添加了時間戳值的下行報文;所述實時時鐘模塊,用於在所述下行報文發送模塊的指示下產生所述表示開始發送下行報文的時間戳值。本發明實施例在開始產生的淨荷中不包括時間戳域,因此對淨荷封裝得到的下行報文中不包括時間戳值,即在下行內部處理時不處理時間戳域,而是在開始發送報文的時4候獲取時間戳值,並添加到下行報文中,避免了現有技術中,在下行報文內部處理時先產生為任意值的時間戳,再替換正確的時間戳,從而使時間戳的處理變得簡單。圖1是本發明實施例一提供的報文發送方法流程圖;圖2是本發明實施例二提供的報文發送方法流程圖;圖3是本發明實施例二提供的下行報文發送模塊處理下行報文的方法流程圖;圖4是本發明實施例三提供的報文發送方法流程圖;圖5是本發明實施例三提供的下行報文發送模塊處理下行報文的方法流程圖;圖6是本發明實施例四提供的通信設備結構圖;圖7是本發明實施例五提供的通信設備結構圖;圖8是本發明實施例六提供的通信設備結構圖。具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。本發明實施例提供的技術方案在於1588設備在下行內部處理時不處理時間戳域,在報文開始發送時添加時間戳值。實施例一本發明實施例一提供一種報文發送方法,包括Al、產生淨荷,所述淨荷不包括時間戳域;A2、對所述淨荷進行封裝,得到下行報文;A3、獲取表示開始發送下行報文的時間戳值;在所述下行報文中添加所述時間戳值,發送添加了時間戳值的下行報文。其中,該步驟Al、A2和A3可以是1588設備執行的;其中,步驟A1中產生淨荷可以是1588設備自己產生的,也可以是在接收到1588上行報文後產生的,不影響本發明的實現。可見,本發明實施例一提供的報文發送方法中在開始產生的淨荷不包括時間戳域,因此對淨荷封裝得到的下行報文中不包括時間戳域,即1588設備在下行內部處理時不處理時間戳域,而是在開始發送報文的時候獲取時間戳值,並添加到下行報文中,避免了現有技術中,在下行報文內部處理時先產生為任意值的時間戳,再替換正確的時間戳,從而使時間戳的處理變得簡單。實施例二參閱圖2,本發明實施例二提供一種報文發送方法,包括步驟Bl、產生簡化的1588淨荷,該簡化的1588淨荷包括1588協議頭信息,且不包括時間戳域。其簡化的1588淨荷格式如表1所示。其中,該步驟可以是1588設備中的協議處理模塊實現的。1588頭信息(34個字節)表1其中,1588頭信息可以是34個字節,也可以是別的字節數,不影響本發明的實現。步驟B2、對1588淨荷封裝MAC(MediaAccesscontrol,媒體接入控制)信息域,即對淨荷進行兩層封裝,將該1588淨荷封裝成兩層報文,以得到1588下行報文。其中,該步驟可以是1588設備中的下行組包模塊實現的。其中,封裝MAC信息域可以是封裝EthernetIIMAC信息域;其得到的1588下行報文的格式如表2所示EthernetIIMAC信息域1588頭信息表2步驟B3、在1588下行報文中添加前導碼和起始符,並發送到通信網絡,在發送的同時產生表示開始發送1588下行報文的時間戳值,在1588下行報文中添加時間戳值和添加CRC(CyclicRedundancyCheck/Code,循環冗餘校驗)校驗碼。其中,該步驟可以是1588設備中的下行報文發送模塊實現的。其中,所發送的1588下行報文的格式如表3所示前導碼和起EthernetII1588頭信息時間戳值CRC始符MAC信息域表3其中,若1588下行報文不足64byte,則下行報文發送模塊需要在該1588下行報文尾部添加填充字節(pad)後再發送到通信網絡。其中,參閱圖3,該步驟B3具體包括如下步驟Cl、保存來自下行組包模塊的1588下行報文。該步驟可以是1588設備中的下行報文發送模塊中的存儲模塊進行保存的。C2、對該報文添加前導碼和起始符,並產生出埠標識,同時開始發送存儲模塊中保存的1588下行報文。該步驟可以是下行報文發送模塊中的報文發送接口模塊執行的。C3、根據出埠標識確定表示開始發送該1588下行報文的時間戳值。該步驟可以是1588設備中的實時時鐘模塊執行的,即實時時鐘模塊根據報文發送接口模塊產生的出埠標識,確定表示開始發送該1588下行報文的時間戳值。具體的,報文發送接口模塊產生的出埠標識可以是一個脈衝或者是一個電平,當出埠標識是正脈衝,實時時鐘模塊採集該正脈衝上升沿時間作為表示開始發送該1588下行報文的時間戳值;當出埠標識是負脈衝,實時時鐘模塊採集該負脈衝下降沿時間作為表示開始發送該1588下行報文的時間戳值。C4、將時間戳值添加到存儲模塊中保存的1588下行報文中。該步驟可以是添加時間戳模塊執行的,即添加時間戳模塊將實時時鐘模塊產生的時間戳值添加到存儲模塊中保存的1588下行報文。該步驟對表2所示結構的1588下行報文添加時間戳值後的格式如表4所示tableseeoriginaldocumentpage7表4C5、對存儲模塊中保存的1588下行報文進行CRC校驗,在其中添加CRC校驗碼。該步驟可以是1588設備中的CRC(CyclicRedundancyCheck/Code,循環冗餘校驗)模塊實現的。需要說明的是在步驟C2發送1588下行報文的同時執行步驟C3-C5,即在添加前導碼和起始符後開始發送1588下行報文,後續會按1588下行報文的格式順序發送報文的字節,且在添加前導碼和起始符後產生出埠標識,根據出埠標識確定開始發送該1588下行報文的時間戳值,並在發送報文的同時對1588下行報文進行步驟C3-C5的處理。可見,本發明實施例二中所產生的淨荷不包括時間戳域,因此對淨荷封裝MAC信息域所得到的1588下行報文中不包括時間戳域,即1588設備在下行內部處理時不處理時間戳域,而是在發送下行報文的時候獲取表示開始發送1588下行報文的時間戳值,並添加到1588下行報文中,使時間戳的處理變得簡單。實施例三參閱圖4,本發明實施例三提供一種報文發送方法,包括步驟Dl、產生簡化的1588淨荷,該簡化的1588淨荷包括1588協議頭信息,且不包括時間戳域。其簡化的1588淨荷格式如表1所示。其中,該步驟可以是協議處理模塊執行的。步驟D2、對1588淨荷封裝MAC信息域、IP信息域、UDP(UserDatagramProtocol,用戶數據包協議)信息域,即對淨荷進行兩層、三層和四層的封裝,將該1588淨荷封裝成四層報文,以得到1588下行報文。其中,UDP信息域中包括UDP校驗結果。其中,該步驟可以是下行組包模塊執行的。其中,封裝MAC信息域可以是封裝EthernetIIMAC信息域;封裝IP信息域可以是封裝IPV4信息域,其得到的1588下行報文的格式如表5所示tableseeoriginaldocumentpage7表5步驟D3、在1588下行報文中添加前導碼和起始符,並發送到通信網絡,在發送的同時產生時間戳值,在該1588下行報文中添加時間戳值、修改UDP校驗碼和添加CRC校驗碼。其中,所發送的1588下行報文的格式如表6所示tableseeoriginaldocumentpage7表6其中,參閱圖5,該步驟D3具體包括如下步驟El、保存來自下行組包模塊的1588下行報文。該步驟可以是下行報文發送模塊中的存儲模塊進行保存的。E2、對該1588下行報文添加前導碼和起始符,並產生出埠標識,同時開始發送存儲模塊中保存的1588下行報文。該步驟可以是報文發送接口模塊執行的。E3、根據出埠標識確定表示開始發送該1588下行報文的時間戳值。該步驟可以是實時時鐘模塊執行的,即實時時鐘模塊根據報文發送接口模塊產生的出埠標識,確定表示開始發送該1588下行報文的時間戳值。具體的,所產生的出埠標識可以是一個脈衝或者一個電平,當出埠標識是正脈衝,實時時鐘模塊採集該正脈衝上升沿時間作為表示開始發送該1588下行報文的時間戳值;當出埠標識是負脈衝,實時時鐘模塊採集該負脈衝下降沿時間作為表示開始發送該1588下行報文的時間戳值。E4、將時間戳值添加到存儲模塊中保存的1588下行報文中。該步驟可以是添加時間戳模塊執行的,即添加時間戳模塊將實時時鐘模塊所產生的時間戳值添加到存儲模塊中保存的1588下行報文中。E5、對存儲模塊中保存的1588下行報文重新進行UDP校驗,並替換該1588下行報文中UDP信息域中的UDP校驗結果。該步驟可以是UDP校驗模塊執行的。E6、對存儲模塊中保存的1588下行報文(此時存儲模塊中保存的1588下行報文是添加時間戳值、且替換UDP校驗結果後的1588下行報文)進行CRC校驗,在其中添加CRC校驗碼。該步驟可以是CRC校驗模塊執行的。需要說明的是在步驟E2發送1588下行報文的同時執行步驟E3-E6,即在添加前導碼和起始符後開始發送1588下行報文,後續會按1588下行報文的格式順序發送報文的字節,且在添加前導碼和起始符後產生出埠標識,並根據出埠標識確定開始發送該1588下行報文的時間戳值,並在發送報文的同時對1588下行報文進行步驟E3-E6的處理。其中,在步驟D2封裝的UDP信息域中也可以不包括UDP校驗結果,而在步驟E5中對1588下行報文重新進行UDP校驗後,將校驗結果添加到UDP信息域中,不影響本發明的實現。可見,本發明實施例三所產生的淨荷不包括時間戳域,因此對淨荷封裝MAC信息域、IP信息域和UDP信息域所得到的1588下行報文中不包括時間戳域,即1588設備在下行內部處理時不處理時間戳域,而是在發送1588下行報文的時候獲取表示開始發送1588下行報文的時間戳值,並添加到1588下行報文中,使時間戳的處理變得簡單。其中,上述各實施例中CRC校驗模塊對存儲模塊中保存的1588下行報文進行CRC校驗,並在存儲模塊中保存的1588下行報文中添加CRC校驗碼,也可以有其他的實現方式。比如,下行組包模塊存儲到存儲模塊中的1588下行報文中就包含有CRC校驗結果,CRC校驗模塊對存儲模塊中的1588下行報文進行CRC校驗,此時進行校驗的1588下行報文可以是實施例二中所描述的添加了時間戳值的下行報文,或者是實施例三中所描述的添加了時間戳值,且添加或者替換了UDP校驗碼的下行報文,將CRC校驗結果替換存儲模塊中保存的1588下行報文中原來的CRC校驗碼,不影響本發明的實現。上述本發明實施例一和實施例二中分別由協議處理模塊產生簡化的1588淨荷,8下行組包模塊對1588淨荷封裝得到1588下行報文,也可以由協議處理模塊產生簡化的1588淨荷並對1588淨荷封裝得到1588下行報文,發送1588下行報文到下行報文發送模塊。實施例四參閱圖6,本發明實施例四提供一種通信設備,包括協議處理模塊601、下行組包模塊602、下行報文發送模塊603和實時時鐘模塊604,協議處理模塊601,用於產生淨荷,所述淨荷不包括時間戳域;下行組包模塊602,用於對所述淨荷進行封裝,得到下行報文;所述下行報文發送模塊603,用於指示實時時鐘模塊604產生表示開始發送下行報文的時間戳值,獲得實時時鐘模塊604產生的所述時間戳值,在所述下行報文中添加時間戳值,發送添加了時間戳值的下行報文;所述實時時鐘模塊604,用於在所述下行報文發送模塊的指示下產生所述時間戳值。在一種實現下,下行報文發送模塊603包括報文發送接口模塊6031、添加時間戳模塊6032和存儲模塊6033,其中,存儲模塊6033,用於存儲來自所述下行組包模塊的下行報文;報文發送接口模塊6031,用於產生報文出埠標識並輸出到所述實時時鐘模塊,並發送所述存儲模塊6033中的下行報文;添加時間戳模塊6032,用於獲得所述實時時鐘模塊6033產生的時間戳值,將所獲得的時間戳值添加到所述存儲模塊6033中的下行報文中;其中,所述時間戳值是所述實時時鐘模塊604根據所述報文出埠標識所產生的。具體的,所述下行組包模塊602為第一下行組包模塊,用於對所述淨荷封裝MAC信息域,得到下行報文並存儲到所述存儲模塊,或者,所述下行組包模塊602為第二下行組包模塊,用於對所述淨荷封裝MAC信息域、IP信息域和UDP信息域,得到下行報文並存儲到所述存儲模塊。優選的,所述下行報文發送模塊603還包括UDP校驗模塊6034,用於對所述存儲模塊中的添加了時間戳值的下行報文進行UDP校驗,在所述下行報文的UDP信息域中包括UDP校驗結果時,用對添加了時間戳值的下行報文的UDP校驗結果替換所述UDP信息域中的UDP校驗結果;在所述UDP信息域中不包括UDP校驗結果時,在所述UDP信息域中加入所述對添加了時間戳值的下行報文的UDP校驗結果。優選的,所述下行報文發送模塊還包括循環冗餘校驗CRC校驗模塊6035,用於對所述存儲模塊中添加了時間戳值的下行報文進行CRC校驗,並在添加了時間戳值的下行報文中添加CRC校驗結果或者替換所述添加了時間戳值的下行報文中原有的CRC校驗結果。其中,如果上述UDP校驗模塊6034對添加了時間戳值的下行報文進行了UDP校驗,則此時循環冗餘校驗CRC校驗模塊6035是對在UDP信息域中加入或者替換UDP校驗結果後的下行報文進行CRC校驗。本發明實施例四提供的通信設備中的協議理模塊所產生的淨荷不包括時間戳域,因此下行組包模塊對淨荷封裝得到下行報文中不攜帶時間戳域,即通信設備的下行內部處理不處理時間戳域。下行報文發送模塊獲取表示開始發送下行報文的時間戳值,並添加到下行報文中,即在接口處添加時間戳值,避免了現有技術中,在下行報文內部處理時先產生為任意值的時間戳,再替換正確的時間戳;從而使得協議處理模塊和下行組包模塊處理更簡單,協議處理模塊和下行組包模塊的帶寬利用率更高,同時下行組包模塊和下行報文發送模塊之間的帶寬利用率也更高。進一步的,由於處理更簡單,利用了更少的資源,從而降低了設備成本。實施例五參閱圖7,本發明實施例五提供一種通信設備,包括協議處理模塊701、下行組包模塊702、下行報文發送模塊703和實時時鐘模塊704,其中,協議處理模塊701、下行組包模塊702、下行報文發送模塊703和實時時鐘模塊704與實施例四所描述的相應模塊的功能和連接關係相同,在此不再贅述。該通信設備還包括上行報文接收模塊705和上行解析模塊706,其中,上行報文接收模塊705,用於接收上行報文,指示實時時鐘模塊704產生表示開始接收上行報文的時間戳值,獲得實時時鐘模塊704產生的所述時間戳值,在所述上行報文中添加時間戳值;實時時鐘模塊704具體還用於在所述上行報文接收模塊的指示下產生所述時間戳值;上行解析模塊706,用於解析所述上行報文,以確定所述上行報文為1588上行報文,並得到1588上行報文中的淨荷和上述時間戳值。其中,上下行報文可以是沒有任何關聯的報文,也可以是下行報文是上行報文的響應報文,不影響本發明的實現。實施例六參閱圖8,本發明實施例提供一種通信設備,該通信設備包括協議處理模塊801、下行報文發送模塊802、實時時鐘模塊803、上行報文接收模塊804和上行解析模塊805;該實施例與實施例五不同之處在於協議處理模塊801,用於產生淨荷,所述淨荷不包括時間戳域;對所述淨荷進行封裝,得到下行報文,即將上述實施例五中的協議處理模塊701和下行組包模塊702的功能集成在協議處理模塊801中實現。本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過電腦程式來指令相關的硬體來完成,所述的程序可存儲於一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光碟、只讀存儲記憶體(Read-OnlyMemory,ROM)或隨機存儲記憶體(RandomAccessMemory,廳)等。以上對本發明實施例所提供的報文發送方法及通信設備進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。權利要求一種報文發送方法,其特徵在於,包括產生淨荷,所述淨荷不包括時間戳域;對所述淨荷進行封裝,得到下行報文;獲取表示開始發送下行報文的時間戳值;在所述下行報文中添加所述時間戳值,發送添加了時間戳值的下行報文。2.根據權利要求l所述的方法,其特徵在於,所述獲取表示開始發送下行報文的時間戳值包括獲取報文出埠標識;根據所述報文出埠標識產生時間戳值。3.根據權利要求l所述的方法,其特徵在於,所述對淨荷進行封裝包括對所述淨荷封裝媒質接入控制MAC信息域;或者,對所述淨荷封裝MAC信息域、IP信息域和用戶數據包協議UDP信息域。4.根據權利要求3所述的方法,其特徵在於,在所述下行報文中添加時間戳值之後,該方法還包括對添加了時間戳值的下行報文進行UDP校驗,當所述下行報文中的UDP信息域中包括UDP校驗結果時,用對添加了時間戳值的下行報文的UDP校驗結果替換所述UDP信息域中的UDP校驗結果;當所述UDP信息域中不包括UDP校驗結果時,在所述UDP信息域中加入所述對添加了時間戳值的下行報文的UDP校驗結果。5.根據權利要求3或4所述的方法,其特徵在於,還包括在所述下行報文中添加時間戳值之後,該方法還包括對添加了時間戳值後的下行報文進行CRC校驗,並添加CRC校驗結果或者替換所述添加了時間戳值的下行報文中原有的CRC校驗結果。6.—種通信設備,其特徵在於,包括協議處理模塊、下行組包模塊、下行報文發送模塊和實時時鐘模塊,所述協議處理模塊,用於產生淨荷,所述淨荷不包括時間戳域;所述下行組包模塊,用於對所述淨荷進行封裝,得到下行報文;所述下行報文發送模塊,用於指示實時時鐘模塊產生表示開始發送下行報文的時間戳值,獲得所述實時時鐘模塊產生的所述時間戳值,在所述下行報文中添加時間戳值,發送添加了時間戳值的下行報文;所述實時時鐘模塊,用於在所述下行報文發送模塊的指示下產生所述表示開始發送下行報文的時間戳值。7.根據權利要求6所述的裝置,其特徵在於,所述下行報文發送模塊包括報文發送接口模塊、添加時間戳模塊和存儲模塊,所述存儲模塊,用於存儲來自所述下行組包模塊的下行報文;所述報文發送接口模塊,用於產生報文出埠標識並輸出到所述實時時鐘模塊,並發送所述存儲模塊中的下行報文;添加時間戳模塊,用於獲得所述實時時鐘模塊產生的時間戳值,將所獲得的時間戳值添加到所述存儲模塊中的下行報文中;其中,所述時間戳值是所述實時時鐘模塊根據所述報文出埠標識所產生的。8.根據權利要求6所述的裝置,其特徵在於,所述下行組包模塊為第一下行組包模塊,用於對所述淨荷封裝媒質接入控制MAC信息域,得到下行報文並存儲到所述存儲模塊;或者,所述下行組包模塊為第二下行組包模塊,用於對所述淨荷封裝MAC信息域、IP信息域和用戶數據包協議UDP信息域,得到下行報文並存儲到所述存儲模塊。9.根據權利要求8所述的裝置,其特徵在於,所述下行報文發送模塊還包括UDP校驗模塊,用於對所述存儲模塊中的添加了時間戳值的下行報文進行UDP校驗,在所述下行報文的UDP信息域中包括UDP校驗結果時,用對添加了時間戳值的下行報文的UDP校驗結果替換所述UDP信息域中的UDP校驗結果;在所述UDP信息域中不包括UDP校驗結果時,在所述UDP信息域中加入所述對添加了時間戳值的下行報文的UDP校驗結果。10.根據權利要求8或9所述的裝置,其特徵在於,所述下行報文發送模塊還包括循環冗餘校驗CRC校驗模塊,用於對所述存儲模塊中添加了時間戳值的下行報文進行CRC校驗,並在添加了時間戳值的下行報文中添加CRC校驗結果或者替換所述添加了時間戳值的下行報文中原有的CRC校驗結果。全文摘要本發明實施例提供一種報文發送方法及通信設備,其中,通信設備包括產生淨荷,所述淨荷不包括時間戳域;對所述淨荷進行封裝,得到下行報文;獲取表示開始發送下行報文的時間戳值;在所述下行報文中添加所述時間戳值,發送添加了時間戳值的下行報文。使用本發明實施例提供的技術方案,能夠簡化對所發送報文中的時間戳的處理。文檔編號H04L12/56GK101741757SQ20081017708公開日2010年6月16日申請日期2008年11月21日優先權日2008年11月21日發明者孫文華,徐文廣,李丙博,王曉波,王繼輝,鄧友好,鄭玉林,陽生丙申請人:華為技術有限公司