一種以太網(wǎng)報文排序方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種以太網(wǎng)報文排序方法,包括接收以太網(wǎng)報文,該報文攜帶有報文序列號;計(jì)算當(dāng)前的最大報文序列號及該報文的存儲區(qū)塊號;計(jì)算最大報文序列號與讀指針之間的差值,如果差值小于預(yù)設(shè)的第一標(biāo)志位,則根據(jù)報文的存儲區(qū)塊號將報文寫入存儲區(qū)塊號對應(yīng)的區(qū)塊;其中,讀指針初始值為0;當(dāng)差值小于預(yù)設(shè)的第一標(biāo)志位、大于等于預(yù)設(shè)的第二標(biāo)志位且最大報文序列號與讀指針之間的存儲區(qū)塊被連續(xù)寫滿時,利用讀指針依次讀取最大報文序列號與讀指針之間的存儲區(qū)塊。本發(fā)明還提供了一種以太網(wǎng)報文排序裝置。本發(fā)明利用存儲器的數(shù)據(jù)緩存功能將接收到的報文進(jìn)行重排寫入后依次讀取,實(shí)現(xiàn)報文的亂序重排。
【專利說明】一種以太網(wǎng)報文排序方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種以太網(wǎng)報文排序方法及裝置。
【背景技術(shù)】
[0002]以因特網(wǎng)協(xié)議(IP,Internet Protocol)網(wǎng)絡(luò)和多協(xié)議標(biāo)簽交換(MPLS,Mult1-Protocol Label Switching)網(wǎng)絡(luò)為代表的分組傳輸和交換網(wǎng)絡(luò)是下一代網(wǎng)絡(luò)的發(fā)展趨勢,目前現(xiàn)網(wǎng)中還存在大量的時分復(fù)用(TDM, Time Division Multiplexing)設(shè)備,出于保護(hù)投資的需求,需要一種技術(shù)將這兩種網(wǎng)絡(luò)融合起來。電路仿真技術(shù)通過在分組網(wǎng)絡(luò)中構(gòu)建隧道仿真TDM、同步數(shù)字體系(SDH, Synchronous Digital Hierarchy)等低速業(yè)務(wù),提供了一種TDM網(wǎng)絡(luò)向分組網(wǎng)絡(luò)平滑升級的經(jīng)濟(jì)方式。其中,在各種電路仿真技術(shù)中以Internet工程任務(wù)組(IETF)的邊緣到邊緣的偽線仿真(PWE3, Pseudo-ffire Edge-to-EdgeEmulation)為代表被廣泛應(yīng)用。
[0003]PWE3是一種端到端的偽線仿真,原理如圖4所示,客戶業(yè)務(wù)經(jīng)由運(yùn)營商邊界網(wǎng)絡(luò)PE (Provider Edge)設(shè)備封裝到 PW 協(xié)議數(shù)據(jù)單兀(Pseudo-Wires Protocol Data Unit,PW-PDU)后分組網(wǎng)絡(luò)傳輸,到達(dá)對端PE設(shè)備解封裝出原始的客戶業(yè)務(wù)數(shù)據(jù),對客戶設(shè)備(CE,Custom Edge)來說是感受不到分組網(wǎng)絡(luò)的存在,相當(dāng)于在客戶設(shè)備CEl和CE2之間建立一條虛擬連線。
[0004]如圖5所示,在PEl設(shè)備對客戶數(shù)據(jù)進(jìn)行封裝后,可能會經(jīng)由不同的網(wǎng)絡(luò)路徑到達(dá)PE2,這樣可能會導(dǎo)致PEl發(fā)送的報文到達(dá)PE2的先后順序會有變化,導(dǎo)致不能正?;謴?fù)出客戶數(shù)據(jù)。另外由于以太網(wǎng)的異步和突發(fā)特性,導(dǎo)致到達(dá)PE2的數(shù)據(jù)報文的時間間隔會有變化,由于TDM業(yè)務(wù)對時鐘同步比較敏感。通常PE設(shè)備接收到的以太網(wǎng)報文在解封裝前會通過一個緩存來吸收網(wǎng)絡(luò)抖動,并對到達(dá)的報文順序進(jìn)行重排,以恢復(fù)出正常的客戶業(yè)務(wù)數(shù)據(jù)。
[0005]目前,接收端報文順序重排的技術(shù)有:
[0006]I)按照報文所包含的時間戳先后來排序,業(yè)務(wù)數(shù)據(jù)在封裝到PWE3PDU后可包含一個時戳字段,該字段為可選項(xiàng),根據(jù)報文的時間先后順序存入相應(yīng)的緩沖區(qū),按照緩沖區(qū)地址從低到高的順序讀取數(shù)據(jù)以達(dá)到報文順序重排的目的。這種方式需要收發(fā)端都支持可選時間戳字段,無法與不支持時間戳的設(shè)備互通,有一定的局限性,另外額外的字段會占用一部份網(wǎng)絡(luò)帶寬。
[0007]2)按照報文中所含的序列號與接收端期望的序列號來對比,將接收到的報文以及對應(yīng)的序列號分別存入數(shù)據(jù)緩沖區(qū)和序列號索引表,期望的序列號也存入單獨(dú)的索引表,通過比對接收序列號及期望序列號是否匹配,得到一個索引值指向接收數(shù)據(jù)緩存區(qū)讀取數(shù)據(jù)。這種方式需要在接收端單獨(dú)維護(hù)一個期望序列號索引表,采用硬件方式實(shí)現(xiàn)時復(fù)雜度比較高,占用硬件資源較多。
【發(fā)明內(nèi)容】
[0008]本發(fā)明針對上述問題,提出了一種以太網(wǎng)報文排序方法及裝置,對亂序的以太網(wǎng)報文進(jìn)行重排。
[0009]在一個方面,本發(fā)明提供了一種以太網(wǎng)報文排序方法,包括:
[0010]接收以太網(wǎng)報文,該報文攜帶有報文序列號;
[0011]計(jì)算當(dāng)前的最大報文序列號,并根據(jù)報文序列號計(jì)算報文的存儲區(qū)塊號;
[0012]計(jì)算最大報文序列號與讀指針之間的差值,如果差值小于預(yù)設(shè)的第一標(biāo)志位,則根據(jù)報文的存儲區(qū)塊號將報文寫入存儲區(qū)塊號對應(yīng)的區(qū)塊;其中,讀指針初始值為O ;
[0013]當(dāng)差值小于預(yù)設(shè)的第一標(biāo)志位、大于等于預(yù)設(shè)的第二標(biāo)志位且最大報文序列號與讀指針之間的存儲區(qū)塊被連續(xù)寫滿時,利用讀指針依次讀取最大報文序列號與讀指針之間的存儲區(qū)塊。
[0014]在另一個方面,本發(fā)明提供了一種以太網(wǎng)報文排序裝置,包括:
[0015]接收裝置,用于接收以太網(wǎng)報文,該報文攜帶有報文序列號;
[0016]存儲器,用于暫存報文,所述存儲器包括讀指針和寫指針;
[0017]處理器,用于計(jì)算當(dāng)前的最大報文序列號,并根據(jù)報文序列號計(jì)算報文的存儲區(qū)塊號;當(dāng)最大報文序列號與讀指針之間的差值小于預(yù)設(shè)的第一標(biāo)志位,則根據(jù)報文的存儲區(qū)塊號將報文寫入存儲器的存儲區(qū)塊號對應(yīng)的區(qū)塊;其中,讀指針初始值為O ;當(dāng)差值小于預(yù)設(shè)的第一標(biāo)志位、大于等于預(yù)設(shè)的第二標(biāo)志位且最大報文序列號與讀指針之間的存儲區(qū)塊被連續(xù)寫滿時,利用讀指針依次讀取最大報文序列號與讀指針之間的存儲區(qū)塊。
[0018]本發(fā)明利用存儲器的數(shù)據(jù)緩存功能將接收到的報文進(jìn)行重排寫入后依次讀取,實(shí)現(xiàn)報文的亂序重排。
【專利附圖】
【附圖說明】
[0019]下面將參照附圖描述本發(fā)明的具體實(shí)施例,其中:
[0020]圖1示出了本發(fā)明實(shí)施例以太網(wǎng)報文排序方法的流程圖;
[0021]圖2示出了本發(fā)明實(shí)施例以太網(wǎng)報文存儲示意圖;
[0022]圖3示出了本發(fā)明實(shí)施例以太網(wǎng)報文排序裝置的結(jié)構(gòu)示意圖;
[0023]圖4示出了現(xiàn)有技術(shù)中PWE3的原理示意圖;
[0024]圖5示出了現(xiàn)有技術(shù)中PWE3的流程示意圖。
【具體實(shí)施方式】
[0025]為了使本發(fā)明的技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對本發(fā)明的示例性實(shí)施例進(jìn)行進(jìn)一步詳細(xì)的說明,顯然,所描述的實(shí)施例僅是本發(fā)明的一部分實(shí)施例,而不是所有實(shí)施例的窮舉。
[0026]本發(fā)明實(shí)施例提出了一種以太網(wǎng)報文排序方法,圖1示出了本發(fā)明實(shí)施例的方法流程圖,包括:
[0027]S101、接收以太網(wǎng)報文,以太網(wǎng)報文攜帶有報文序列號。
[0028]假設(shè)接收的以太網(wǎng)報文格式如下表1.1所示,其中,以太網(wǎng)報文攜帶的16位的報文序列號位于控制字的后兩個字節(jié),提取當(dāng)前報文序列號seq_id。
[0029]
【權(quán)利要求】
1.一種以太網(wǎng)報文排序方法,其特征在于,包括以下步驟: 接收以太網(wǎng)報文,所述報文攜帶有報文序列號; 計(jì)算當(dāng)前的最大報文序列號,并根據(jù)所述報文序列號計(jì)算所述報文的存儲區(qū)塊號; 計(jì)算所述最大報文序列號與讀指針之間的差值,如果所述差值小于預(yù)設(shè)的第一標(biāo)志位,則根據(jù)所述報文的存儲區(qū)塊號將所述報文寫入所述存儲區(qū)塊號對應(yīng)的區(qū)塊;其中,所述讀指針初始值為O ; 當(dāng)所述差值小于預(yù)設(shè)的第一標(biāo)志位、大于等于預(yù)設(shè)的第二標(biāo)志位且所述最大報文序列號與所述讀指針之間的存儲區(qū)塊被連續(xù)寫滿時,利用所述讀指針依次讀取所述最大報文序列號與所述讀指針之間的存儲區(qū)塊。
2.如權(quán)利要求1所述的以太網(wǎng)報文排序方法,其特征在于,所述計(jì)算當(dāng)前的最大報文序列號具體為:將接收的第一個報文的報文序列號作為初始的最大報文序列號,當(dāng)后續(xù)接收的報文的報文序列號比所述最大報文序列號大時,將所述后續(xù)接收的報文的報文序列號作為最大報文序列號。
3.如權(quán)利要求1所述的以太網(wǎng)報文排序方法,其特征在于,根據(jù)所述報文序列號計(jì)算所述報文的存儲區(qū)塊號具體為:將所述報文序列號與存儲器的最大緩存報文數(shù)進(jìn)行取模計(jì)算,取模計(jì)算得到的結(jié)果作為所述報文的存儲區(qū)塊號。
4.如權(quán)利要求1所述的以太網(wǎng)報文排序方法,其特征在于,當(dāng)所述最大報文序列號與讀指針之間的差值大于 等于預(yù)設(shè)的第一標(biāo)志位時,丟棄所述報文。
5.如權(quán)利要求1所述的以太網(wǎng)報文排序方法,其特征在于,當(dāng)在一段時間內(nèi)所述最大報文序列號與所述讀指針之間的存儲區(qū)塊被連續(xù)寫滿,而所述最大報文序列號與所述讀指針之間的差值小于第二標(biāo)志位時,發(fā)送告警信息。
6.一種以太網(wǎng)報文排序裝置,其特征在于,包括: 接收裝置,用于接收以太網(wǎng)報文,所述報文攜帶有報文序列號; 存儲器,用于暫存所述報文,所述存儲器包括讀指針和寫指針; 處理器,用于計(jì)算當(dāng)前的最大報文序列號,并根據(jù)所述報文序列號計(jì)算所述報文的存儲區(qū)塊號;當(dāng)所述最大報文序列號與讀指針之間的差值小于預(yù)設(shè)的第一標(biāo)志位,則根據(jù)所述報文的存儲區(qū)塊號將所述報文寫入所述存儲區(qū)塊號對應(yīng)的區(qū)塊;其中,所述讀指針初始值為O ;當(dāng)所述差值小于預(yù)設(shè)的第一標(biāo)志位、大于等于預(yù)設(shè)的第二標(biāo)志位且所述最大報文序列號與所述讀指針之間的存儲區(qū)塊被連續(xù)寫滿時,利用所述讀指針依次讀取所述最大報文序列號與所述讀指針之間的存儲區(qū)塊。
7.如權(quán)利要求5所述的以太網(wǎng)報文排序裝置,其特征在于,所述處理器計(jì)算當(dāng)前的最大報文序列號是將接收的第一個報文的報文序列號作為初始的最大報文序列號,當(dāng)后續(xù)接收的報文的報文序列號比所述最大報文序列號大時,更新所述最大報文序列號。
8.如權(quán)利要求5所述的以太網(wǎng)報文排序裝置,其特征在于,所述處理器將所述報文序列號與存儲器的最大緩存報文數(shù)進(jìn)行取模計(jì)算,取模計(jì)算得到的結(jié)果作為所述報文的存儲區(qū)塊號。
9.如權(quán)利要求5所述的以太網(wǎng)報文排序裝置,其特征在于,所述處理器還用于當(dāng)所述最大報文序列號與讀指針之間的差值大于等于預(yù)設(shè)的第一標(biāo)志位時,丟棄所述報文。
10.如權(quán)利要求5所述的以太網(wǎng)報文排序裝置,其特征在于,所述處理器還用于當(dāng)在一段時間內(nèi)所述最大報文序列號與所述讀指針之間的存儲區(qū)塊被連續(xù)寫滿,而所述最大報文序列號與所述讀指針之間的差值小于第二`標(biāo)志位時,發(fā)送告警信息。
【文檔編號】H04L12/861GK103825841SQ201410103385
【公開日】2014年5月28日 申請日期:2014年3月19日 優(yōu)先權(quán)日:2014年3月19日
【發(fā)明者】張浩明 申請人:北京眾合德信技術(shù)有限公司