專利名稱:在多個mac中實現(xiàn)1588udp封裝包的校驗和更新的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域,尤其涉及一種在多個MAC中實現(xiàn)1588UDP封裝包的校驗和更新的方法及系統(tǒng)。
背景技術(shù):
為了解決以太網(wǎng)定時同步能力不足以及測量和控制應(yīng)用中分布網(wǎng)絡(luò)定時同步的需要,IEEE 1588標準定義了一個網(wǎng)絡(luò)測量和控制系統(tǒng)的精密時間協(xié)議,即PTP協(xié)議,在不增加額外硬件投入的情況下,利用網(wǎng)絡(luò)的通信鏈路實現(xiàn)時鐘同步,可達到微秒級的同步精度。在以太網(wǎng)中實現(xiàn)PTP時,每個PTP報文封裝時會加上MAC(Media Access Control,媒體訪問控制)封裝包頭,IP (Internet Protocol,網(wǎng)絡(luò)互連協(xié)議)封裝包頭,UDP (User Datagram Protocol,用戶數(shù)據(jù)包協(xié)議)封裝包頭,如圖1所示。具體地,MAC封裝包頭中包括MAC目的地址,MAC源地址及類型,IP封裝包頭中包括IP頭長度,服務(wù)類型,IP數(shù)據(jù)長度,IP目的地址等。UDP封裝包頭中包括源端口,目的端口,UDP長度以及UDP校驗和。對于16比特UDP校驗和計算會包括UDP校驗和域后面的所有數(shù)據(jù)負載。由于PTP報文通過MAC端發(fā)送時會打上新的時間戳或更改時間修正域的值,這就需要重新計算新的16比特 UDP校驗和。但是對于不同PTP報文打時間戳或更改時間修正的位置并不固定,所以這里涉及到如何去實現(xiàn)UDP校驗和更新的問題。目前采用的一種UDP校驗和更新計算方法是在MAC中放置一塊大的存儲器,將進 MAC端的報文數(shù)據(jù)逐漸累加計算16比特UDP校驗和的值,等收到該報文的最后一個字節(jié)之后就得到最終新的16比特UDP校驗和的值。此時再將該數(shù)據(jù)報文通過MAC發(fā)送出去。但是,該方案在MAC中放置一塊大的存儲器會耗費芯片相當多的資源,對于以太網(wǎng)報文最大可能要支持到9600字節(jié),這對于芯片設(shè)計來說是不大現(xiàn)實的。而且這對于通常有多個MAC (如現(xiàn)在主流的都有M個、48個或以上)的以太網(wǎng)交換芯片來說,芯片的尺寸會變得相當大,這直接關(guān)系到芯片的成本。目前采用的另一種UDP校驗和更新計算方法是根據(jù)原16比特UDP校驗和的值以及報文中變化后的數(shù)據(jù)與原有數(shù)據(jù)的差值,通過增量計算方法得到新的16比特UDP校驗和。報文進MAC端時要同時給出16比特原UDP校驗和的值和報文被修改之前原64比特時間戳值或64比特時間域修正值。在MAC端,用寄存器或存儲器去記錄這16比特原UDP校驗和的值和64比特被修改前的原數(shù)據(jù)值,當MAC發(fā)送UDP校驗和時,從寄存器或存儲器中取得這些原有數(shù)據(jù)值,并根據(jù)得到的當前時間戳,計算出新的16比特UDP校驗和的值。這種方案雖然改進了第一種方案中MAC要放置一塊能存儲整個報文的存儲器的缺點,但是它仍然要用寄存器或存儲器記錄被修改前的原64比特時間戳值或64比特時間修正域值。對于單個MAC來說,這種實現(xiàn)方案是可以接受的,但是通常一個以太網(wǎng)交換芯片會包含多個MAC,所以這也會帶來芯片成本的上升。因此,有必要提供一種在多個MAC中實現(xiàn)1588UDP封裝包的校驗和更新的方法及系統(tǒng)以克服上述問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種在多個MAC中實現(xiàn)1588UDP封裝包的校驗和更新的方法。本發(fā)明的另一目的在于提供一種在多個MAC中實現(xiàn)1588UDP封裝包的校驗和更新的系統(tǒng),該系統(tǒng)應(yīng)用于所述在多個MAC中實現(xiàn)1588UDP封裝包的校驗和更新的方法。相應(yīng)地,本發(fā)明的一種在多個MAC中實現(xiàn)1588UDP封裝包的校驗和更新的方法,包括以下步驟
S10,報文出口處理模塊讀取報文數(shù)據(jù),進行報文頭編輯及報文數(shù)據(jù)修改,將被修改的 64比特時間戳或時間修正域值用0代替,經(jīng)計算得到原16比特UDP校驗和的值;
S20,通過報文時間標識點從PTP引擎得到當前64比特時間戳,并結(jié)合所述原16比特 UDP校驗和的值采用增量計算方式得到新的16比特UDP校驗和的值;
S30, MAC發(fā)送報文到被修改數(shù)據(jù)位置時,將新的16位校驗和的值以及64比特時間戳替換原有數(shù)據(jù)。作為本發(fā)明的進一步改進,在SlO前還包括接收MAC端報文及存儲報文數(shù)據(jù)的步
馬聚ο作為本發(fā)明的進一步改進,SlO中進行報文頭編輯及報文數(shù)據(jù)修改時,能夠得到 PTP報文需要修改的信息,確定需要替換時間戳或修改時間修正域以及報文修改的位置。作為本發(fā)明的進一步改進,所述報文時間標識點為以太網(wǎng)幀起始分界符后第1比特第1位的前邊沿。相應(yīng)地,本發(fā)明的一種在多個MAC中實現(xiàn)1588UDP封裝包的校驗和更新的系統(tǒng),包括
報文出口處理模塊,用以讀取報文數(shù)據(jù),進行報文頭編輯及報文數(shù)據(jù)修改,將被修改的 64比特時間戳或時間修正域值用0代替,經(jīng)計算得到原16比特UDP校驗和的值;
PTP引擎,通過報文時間標識點提供當前64比特時間戳,并結(jié)合所述原16比特UDP校驗和的值采用增量計算方式得到新的16比特UDP校驗和的值;
數(shù)據(jù)更新模塊,用以在MAC發(fā)送報文到被修改數(shù)據(jù)位置時,將新的16位校驗和的值以及64比特時間戳替換原有數(shù)據(jù)。作為本發(fā)明的進一步改進,還包括報文進口處理模塊,用以接收MAC端收到的報文。作為本發(fā)明的進一步改進,還包括報文緩存模塊,用以存儲所述報文進口處理模塊接收到的報文的報文數(shù)據(jù),以供所述報文出口處理模塊讀取。作為本發(fā)明的進一步改進,所述報文出口處理模塊在進行報文頭編輯及報文數(shù)據(jù)修改時,能夠得到PTP報文需要修改的信息,確定需要替換時間戳或修改時間修正域以及報文修改的位置。作為本發(fā)明的進一步改進,所述報文時間標識點為以太網(wǎng)幀起始分界符后第1比特第1位的前邊沿。本發(fā)明的有益效果是本發(fā)明通過修改PTP報文進MAC端前的UDP校驗和計算方式,不用在多個MAC中存儲64比特原時間戳或時間修正域值,實現(xiàn)簡單,而且大大減少了寄存器或存儲器的使用,從而降低了芯片設(shè)計成本,對于擴展MAC也很容易。
圖1示出了 PTP報文UDP封裝格式示意圖2示出了本發(fā)明一實施例中在多個MAC中實現(xiàn)1588UDP封裝包的校驗和更新的方法的流程圖3示出了本發(fā)明一實施例PTP報文UDP校驗和的計算流程結(jié)構(gòu)圖。
具體實施例方式以下將結(jié)合附圖所示的各實施方式對本發(fā)明進行詳細描述。但這些實施方式并不限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員根據(jù)這些實施方式所做出的結(jié)構(gòu)、方法、或功能上的變換均包含在本發(fā)明的保護范圍內(nèi)。如圖2所示,本發(fā)明一實施例中在多個MAC中實現(xiàn)1588UDP封裝包的校驗和更新的方法,包括以下步驟
S10,報文出口處理模塊讀取報文數(shù)據(jù),進行報文頭編輯及報文數(shù)據(jù)修改,將被修改的 64比特時間戳或時間修正域值用0代替,經(jīng)計算得到原16比特UDP校驗和的值;
S20,通過報文時間標識點從PTP引擎得到當前64比特時間戳,并結(jié)合所述原16比特 UDP校驗和的值采用增量計算方式得到新的16比特UDP校驗和的值;
S30, MAC發(fā)送報文到被修改數(shù)據(jù)位置時,將新的16位校驗和的值以及64比特時間戳替換原有數(shù)據(jù)。具體地,圖3所示為PTP報文UDP校驗和計算流程結(jié)構(gòu)示意圖。以以太網(wǎng)交換芯片中包含48個MAC為例。對于以太網(wǎng)交換芯片,MAC端收到的報文首先進報文進口處理模塊1,其報文數(shù)據(jù)會存進報文緩存模塊2,然后報文出口處理模塊3會從報文緩存模塊2中讀取報文數(shù)據(jù)進行報文頭編輯以及報文數(shù)據(jù)修改,在這里已經(jīng)能夠得到PTP報文需要修改的信息,可以確定需要替換時間戳還是修改時間修正域,以及報文修改的位置。此時,在計算UDP校驗和的值時,將被修改的64比特時間戳或時間修正域值用0代替,計算結(jié)果為進 MAC發(fā)送端的原16比特UDP校驗和的值。經(jīng)報文出口處理模塊3后的報文和原16比特UDP校驗和結(jié)果被送進MAC發(fā)送端進行傳輸。因為報文時間標識點,即報文發(fā)送出去時的記錄時間的準確定義直接關(guān)系到時鐘的同步精度。利用以太網(wǎng)幀起始分界符后第1比特第1位的前邊沿作為報文時間標識點。 通過該標識點去向PTP引擎4得到當前的64比特時間戳。此時,計算新的16比特UDP校驗和的值所需的數(shù)據(jù)都已經(jīng)準備好,可采用下面的增量計算公式
HC,= (HC + m + m,) 其中,
HC:原16比特校驗和的值 HC'新16比特校驗和的值
m:報文中被修改的數(shù)據(jù)原值,分割成16比特,這里我們只要賦成0
m’ 報文中修改后的數(shù)據(jù)值,分割成16比特,這里即PTP引擎得到的64比特時間戳
5所以,在MAC發(fā)送報文到被修改數(shù)據(jù)位置時,數(shù)據(jù)更新模塊5將新的16位校驗和的值以及64比特時間戳替換原有數(shù)據(jù)。本發(fā)明提出的一種在多個MAC中實現(xiàn)1588 UDP 封裝包的校驗和更新的方法通過修改PTP報文進MAC端前的UDP校驗和計算方式,從而不用增加額外的寄存器或存儲器去存儲64比特原時間戳或時間修正域值就能計算新的16比特UDP校驗和的值。繼續(xù)參圖3所示,本發(fā)明一實施例中在多個MAC中實現(xiàn)1588UDP封裝包的校驗和更新的系統(tǒng),包括
報文出口處理模塊3,用以讀取報文數(shù)據(jù),進行報文頭編輯及報文數(shù)據(jù)修改,將被修改的64比特時間戳或時間修正域值用0代替,經(jīng)計算得到原16比特UDP校驗和的值;
PTP引擎4,通過報文時間標識點提供當前64比特時間戳,并結(jié)合所述原16比特UDP 校驗和的值采用增量計算方式得到新的16比特UDP校驗和的值;
數(shù)據(jù)更新模塊5,用以在MAC發(fā)送報文到被修改數(shù)據(jù)位置時,將新的16位校驗和的值以及64比特時間戳替換原有數(shù)據(jù)。具體地,上述系統(tǒng)還包括報文進口處理模塊1,用以接收MAC端收到的報文;及報文緩存模塊2,用以存儲報文進口處理模塊1接收到的報文的報文數(shù)據(jù),以供所述報文出口處理模塊3讀取。本發(fā)明通過修改PTP報文進MAC端前的UDP校驗和計算方式,不用在多個MAC中存儲64比特原時間戳或時間修正域值,實現(xiàn)簡單,而且大大減少了寄存器或存儲器的使用,從而降低了芯片設(shè)計成本,對于擴展MAC也很容易。為了描述的方便,描述以上系統(tǒng)時以功能分為各種單元分別描述。當然,在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)。基于這樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備 (可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施方式或者實施方式的某些部分所述的方法。以上所描述的系統(tǒng)實施方式僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施方式方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。本申請可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置,或通信設(shè)備中。例如個人計算機、服務(wù)器計算機、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由
6通過通信網(wǎng)絡(luò)而被連接的遠程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。應(yīng)當理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當將說明書作為一個整體,各實施方式中的技術(shù)方案也可以經(jīng)適當組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實施方式。上文所列出的一系列的詳細說明僅僅是針對本發(fā)明的可行性實施方式的具體說明,它們并非用以限制本發(fā)明的保護范圍,凡未脫離本發(fā)明技藝精神所作的等效實施方式或變更均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種在多個MAC中實現(xiàn)1588UDP封裝包的校驗和的更新方法,其特征在于,包括以下步驟S10,報文出口處理模塊讀取報文數(shù)據(jù),進行報文頭編輯及報文數(shù)據(jù)修改,將被修改的 64比特時間戳或時間修正域值用0代替,經(jīng)計算得到原16比特UDP校驗和的值;S20,通過報文時間標識點從PTP引擎得到當前64比特時間戳,并結(jié)合所述原16比特 UDP校驗和的值采用增量計算方式得到新的16比特UDP校驗和的值;S30, MAC發(fā)送報文到被修改數(shù)據(jù)位置時,將新的16位校驗和的值以及64比特時間戳替換原有數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的在多個MAC中實現(xiàn)1588UDP封裝包的校驗和的更新方法,其特征在于,在SlO前還包括接收MAC端報文及存儲報文數(shù)據(jù)的步驟。
3.根據(jù)權(quán)利要求1或2所述的在多個MAC中實現(xiàn)1588UDP封裝包的校驗和的更新方法,其特征在于,SlO中進行報文頭編輯及報文數(shù)據(jù)修改時,能夠得到PTP報文需要修改的信息,確定需要替換時間戳或修改時間修正域以及報文修改的位置。
4.根據(jù)權(quán)利要求3所述的在多個MAC中實現(xiàn)1588UDP封裝包的校驗和的更新方法,其特征在于,所述報文時間標識點為以太網(wǎng)幀起始分界符后第1比特第1位的前邊沿。
5.一種在多個MAC中實現(xiàn)1588UDP封裝包的校驗和的更新系統(tǒng),其特征在于,包括報文出口處理模塊,用以讀取報文數(shù)據(jù),進行報文頭編輯及報文數(shù)據(jù)修改,將被修改的64比特時間戳或時間修正域值用0代替,經(jīng)計算得到原16比特UDP校驗和的值;PTP引擎,通過報文時間標識點提供當前64比特時間戳,并結(jié)合所述原16比特UDP校驗和的值采用增量計算方式得到新的16比特UDP校驗和的值;數(shù)據(jù)更新模塊,用以在MAC發(fā)送報文到被修改數(shù)據(jù)位置時,將新的16位校驗和的值以及64比特時間戳替換原有數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的在多個MAC中實現(xiàn)1588UDP封裝包的校驗和的更新系統(tǒng),其特征在于,還包括報文進口處理模塊,用以接收MAC端收到的報文。
7.根據(jù)權(quán)利要求6所述的在多個MAC中實現(xiàn)1588UDP封裝包的校驗和的更新系統(tǒng),其特征在于,還包括報文緩存模塊,用以存儲所述報文進口處理模塊接收到的報文的報文數(shù)據(jù),以供所述報文出口處理模塊讀取。
8.根據(jù)權(quán)利要求5至7中任一項所述的在多個MAC中實現(xiàn)1588UDP封裝包的校驗和的更新系統(tǒng),其特征在于,所述報文出口處理模塊在進行報文頭編輯及報文數(shù)據(jù)修改時,能夠得到PTP報文需要修改的信息,確定需要替換時間戳或修改時間修正域以及報文修改的位置。
9.根據(jù)權(quán)利要求8所述的在多個MAC中實現(xiàn)1588UDP封裝包的校驗和的更新系統(tǒng),其特征在于,所述報文時間標識點為以太網(wǎng)幀起始分界符后第1比特第1位的前邊沿。
全文摘要
本發(fā)明提供一種在多個MAC中實現(xiàn)1588UDP封裝包的校驗和更新的方法及系統(tǒng),其中方法包括以下步驟報文出口處理模塊讀取報文數(shù)據(jù),進行報文頭編輯及報文數(shù)據(jù)修改,將被修改的64比特時間戳或時間修正域值用0代替,經(jīng)計算得到原16比特UDP校驗和的值;通過報文時間標識點從PTP引擎得到當前64比特時間戳,并結(jié)合所述原16比特UDP校驗和的值采用增量計算方式得到新的16比特UDP校驗和的值;MAC發(fā)送報文到被修改數(shù)據(jù)位置時,將新的16位校驗和的值以及64比特時間戳替換原有數(shù)據(jù)。本發(fā)明通過修改PTP報文進MAC端前的UDP校驗和計算方式,不用在多個MAC中存儲64比特原時間戳或時間修正域值,大大減少了寄存器或存儲器的使用,從而降低了芯片設(shè)計成本。
文檔編號H04L1/24GK102447552SQ20111034910
公開日2012年5月9日 申請日期2011年11月8日 優(yōu)先權(quán)日2011年11月8日
發(fā)明者廖繼平, 楊崇朋 申請人:盛科網(wǎng)絡(luò)(蘇州)有限公司