專利名稱:無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域:
,尤其涉及一種無連接報文交換網(wǎng)絡(luò)OAM(操作管理和維護(hù))中報文的檢測技術(shù)。
背景技術(shù):
隨著網(wǎng)絡(luò)通信技術(shù)的發(fā)展,Ethernet(以太網(wǎng))技術(shù)以其高性價比的優(yōu)勢逐漸由局域網(wǎng)向城域網(wǎng)發(fā)展,相應(yīng)的端口速率也從10M發(fā)展到10G。在以太網(wǎng)向城域網(wǎng)發(fā)展的過程中,要求Ethernet技術(shù)必須滿足電信級網(wǎng)絡(luò)要求。其中,在網(wǎng)絡(luò)中實(shí)現(xiàn)OAM機(jī)制便是電信級網(wǎng)絡(luò)對各種網(wǎng)絡(luò)技術(shù)的基本要求。所述的OAM機(jī)制包括網(wǎng)絡(luò)故障管理機(jī)制和網(wǎng)絡(luò)性能管理機(jī)制。
具體一點(diǎn)講,目前定義的針對ETH(以太網(wǎng))網(wǎng)絡(luò)的故障/性能管理機(jī)制中主要包括以下內(nèi)容ETH-CC(以太網(wǎng)連通性檢測)連續(xù)性檢測功能,用于檢測ETH MEP之間連通性;ETH-LB(以太網(wǎng)環(huán)回)環(huán)回功能,用于MEP和MIP/MEP之間連通性檢測,以及性能參數(shù)中的幀延遲和幀延遲抖動測量;ETH-LT(以太網(wǎng)鏈路跟蹤)功能,用于故障定位;ETH-AIS(以太網(wǎng)告警指示信號)和ETH-RDI(以太網(wǎng)反向檢查指示)的告警指示功能用于故障告警前向/反向抑制;ETH-LM(以太網(wǎng)幀丟失測量)和ETH-DM(以太網(wǎng)延遲測量)功能,用于測量性能參數(shù)中的幀丟失率及延遲。
基于上述各處理機(jī)制并通過相應(yīng)的報文的交互便可以測量獲得以太網(wǎng)中的各網(wǎng)絡(luò)性能參數(shù),并實(shí)現(xiàn)網(wǎng)絡(luò)故障的定位處理。
對于以太網(wǎng)來說,在網(wǎng)絡(luò)性能的測量過程中還應(yīng)考慮報文亂序的問題。報文亂序問題是基于存儲轉(zhuǎn)發(fā)的無連接報文交換網(wǎng)絡(luò)的一個固有問題。同時,報文重復(fù)的問題也可能在以太網(wǎng)等無連接交換類網(wǎng)絡(luò)中發(fā)生。
在以太網(wǎng)發(fā)展的初期,由于局限在小規(guī)模的企業(yè)網(wǎng)中,因而對于網(wǎng)絡(luò)性能和可靠性要求比較低,亂序和重復(fù)問題產(chǎn)生的影響微不足道。但是,當(dāng)以太網(wǎng)向電信級網(wǎng)絡(luò)發(fā)展后,網(wǎng)絡(luò)規(guī)模將大大增加,同時網(wǎng)絡(luò)拓?fù)湟矔訌?fù)雜,此時,亂序及重復(fù)問題將嚴(yán)重影響到網(wǎng)絡(luò)的可靠性。也就是說亂序和重復(fù)問題(即綜合失序問題)將成為多路徑無連接報文交換網(wǎng)絡(luò)的一個性能衡量指標(biāo),是一個網(wǎng)絡(luò)應(yīng)付多路徑以及網(wǎng)絡(luò)拓?fù)渥兓囊环N能力說明。因此,以太網(wǎng)維護(hù)管理機(jī)制還應(yīng)考慮針對網(wǎng)絡(luò)中的報文亂序及重復(fù)問題的檢測,從而進(jìn)一步衡量確定以太網(wǎng)性能。
目前,在報文交換的網(wǎng)絡(luò)中還沒有具體的亂序和重復(fù)檢測的機(jī)制,從而也就無法面向OAM平面,提供更好的網(wǎng)絡(luò)性能評估。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,以便于準(zhǔn)確地衡量無連接報文交換網(wǎng)絡(luò)中的報文亂序及重復(fù)問題,進(jìn)而可以輔助無連接報文交換網(wǎng)絡(luò)OAM提供更好的網(wǎng)絡(luò)性能評估。
本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的本發(fā)明提供了一種無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,包括A、在用于檢測的無連接報文交換網(wǎng)絡(luò)報文中承載設(shè)置報文的序列號信息;
B、在接收端,根據(jù)接收到的所述無連接報文交換網(wǎng)絡(luò)報文中承載的序列號信息進(jìn)行無連接報文交換網(wǎng)絡(luò)中報文的亂序及重復(fù)檢測。
所述的步驟A包括在用于檢測的無連接報文交換網(wǎng)絡(luò)報文中承載設(shè)置規(guī)律變化的數(shù)字信息作為報文的序列號。
所述的無連接報文交換網(wǎng)絡(luò)報文包括以太網(wǎng)操作管理和維護(hù)過程中的以太網(wǎng)檢測報文。
所述的方法還包括C、設(shè)置中心檢測窗口,所述中心檢測窗口為一個采用報文序列號界定的邊界參考,其用于檢測報文的亂序和重復(fù)。
所述的步驟C還包括設(shè)置前部重復(fù)檢測窗口和后部檢測窗口,其中,所述前部重復(fù)檢測窗口位于中心檢測窗口的前面,用于作為檢測重復(fù)報文的邊界參考,后部檢測窗口位于中心檢測窗口的后面,用于檢測重復(fù)和亂序報文的邊界參考。
所述的步驟B包括在接收到接收報文時,解析獲得所述報文中的序列號信息,根據(jù)中心檢測窗口中的報文序列號信息進(jìn)行報文的亂序及重復(fù)檢測。
所述的步驟B包括B1、確定接收報文的序列號;B2、根據(jù)中心檢測窗口位置確定未亂序報文序列號,所述的未亂序報文序列號為在該序列號以前收到的報文均未出現(xiàn)亂序;B3、根據(jù)接收報文的序列號與未亂序報文序列號之間的間隔值、中心檢測窗口寬度以及接收到的報文的序列號進(jìn)行報文的亂序及重復(fù)檢測。
所述的步驟B3還包括還根據(jù)前部重復(fù)檢測窗口和后部檢測窗口的信息進(jìn)行報文的亂序及重復(fù)檢測。
所述的步驟B3包括當(dāng)接收報文的序列號位于中心檢測窗口內(nèi)時,則確定未出現(xiàn)亂序,否則確定出現(xiàn)為亂序;當(dāng)接收報文的序列號與中心檢測窗口、前部重復(fù)檢測窗口及后部檢測窗口內(nèi)已經(jīng)接收到報文的序列號相同時,則確定出現(xiàn)重復(fù),否則,確定未出現(xiàn)重復(fù);當(dāng)接收報文的序列號未處于中心檢測窗口、前部重復(fù)檢測窗口及后部檢測窗口內(nèi),則確定出現(xiàn)綜合失序。
本發(fā)明中,當(dāng)僅設(shè)置中心檢測窗口時,所述的步驟B3包括當(dāng)接收報文的序列號位于中心檢測窗口內(nèi)時,則確定未出現(xiàn)亂序,否則,確定出現(xiàn)亂序;當(dāng)接收報文的序列號與中心檢測窗口內(nèi)已經(jīng)接收到報文的序列號相同時,則確定出現(xiàn)重復(fù),否則確定未出現(xiàn)重復(fù)。
所述的步驟B3包括當(dāng)接收報文的序列號為當(dāng)前未亂序報文序列號加一時,則確定未出現(xiàn)綜合失序,否則確定出現(xiàn)綜合失序。
所述的步驟B3還包括針對檢測出現(xiàn)的亂序和重復(fù)設(shè)置各自對應(yīng)的告警開關(guān),當(dāng)告警開關(guān)關(guān)閉時,則不上報告警,否則上報告警。
所述的步驟B3還包括針對中心檢測窗口設(shè)置對應(yīng)的比特序列,用于標(biāo)識中心檢測窗口內(nèi)各序列號對應(yīng)的報文是否收到,根據(jù)該比特序列進(jìn)行亂序及重復(fù)檢測,和/或,依據(jù)該比特序列進(jìn)行中心檢測窗口的滑動處理。
所述的步驟B3還包括
當(dāng)中心檢測窗口中的窗口滑動方向起始點(diǎn)開始連續(xù)接收未亂序報文,則滑動中心檢測窗口,并更新窗口滑動方向起始點(diǎn)位置。
由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明提供的基于報文序列檢測窗口的數(shù)學(xué)模型,明確定義了無連接報文交換網(wǎng)絡(luò)中的亂序、重復(fù)和綜合失序問題,適用于采用報文交換網(wǎng)絡(luò)作為承載網(wǎng)的OAM領(lǐng)域,例如,用于電信級的以太城域網(wǎng)的OAM領(lǐng)域中進(jìn)行網(wǎng)絡(luò)中的亂序及重復(fù)問題的檢測。
也就是說,在電信級的以太網(wǎng)中利用本發(fā)明可以方便地檢測到亂序、重復(fù)或者綜合失序,并提供OAM告警。
同時,還由于本發(fā)明提供的實(shí)現(xiàn)機(jī)制具有簡潔明了的優(yōu)點(diǎn),因而更易于在芯片中實(shí)現(xiàn)。
圖1為亂序和重復(fù)檢測實(shí)施的整體示意圖。
具體實(shí)施方式本發(fā)明的核心是基于檢測窗口提出多路徑無連接報文交換網(wǎng)絡(luò)的亂序和重復(fù)的定義以及檢測機(jī)制,可以很好地適用于電信級的無連接報文交換方式的承載網(wǎng)絡(luò)的OAM,比如以太承載網(wǎng)OAM。利用本發(fā)明提供的檢測機(jī)制可以進(jìn)行亂序和重復(fù)檢測,從而提供OAM平面的相關(guān)告警。
為便于理解本發(fā)明,下面將首先對本發(fā)明中涉及的一些基本概念的含義進(jìn)行解釋說明。
(1)報文序列Frames Sequence,是指前后有序的一組報文。
(2)序列號Sequence ID,用于表示報文序列的整數(shù),實(shí)施亂序和重復(fù)檢測的報文都必須帶有序列號;
定義序列號后,每個報文就可以用其序列號表示,因此,要表示一個報文序列只需要給出一個數(shù)字序列即可,比如序列199 100 101 102 103;序列288 121 111 114 182;為了方便的表示一個有序報文序列,不妨令報文序列號循環(huán)遞增,比如序列號最大為2^32-1,則無限序列的任何一段,都是一個有序報文序列,具體如下所示......0 1 2......2^32-1 0 1 2......2^32-1 0 1 2......。
(3)亂序Misorder,是指接收點(diǎn)收到的報文順序和發(fā)送點(diǎn)發(fā)送的報文順序不一致,特指報文順序的前后錯亂;一個亂序的例子如發(fā)送序列0 1 2 3 4 5;接收序列0 2 3 1 4 5。
(4)重復(fù)Duplication,是指接收點(diǎn)再次收到前面已經(jīng)收到的報文;一個存在重復(fù)的例子如發(fā)送序列0 1 2 3 4 5;接收序列0 1 2 3 2 4 5。
(5)綜合失序General Misorder,是指接收點(diǎn)收到的報文序列和發(fā)送點(diǎn)發(fā)送的報文序列不一致,亂序和重復(fù)的結(jié)果都能導(dǎo)致綜合失序;導(dǎo)致接收序列和發(fā)送不一致的原因很多,誤碼幀、幀丟失等也都能導(dǎo)致綜合失序。
(6)中心檢測窗口Central Detection Window,用序列號衡量的一個邊界參考,用于檢測報文的亂序和重復(fù)情況。
(7)前部重復(fù)檢測窗口Foreside Duplication Detection Window,在中心檢測窗口前面,用于檢測報文重復(fù)情況的一個邊界參考。
(8)后部檢測窗口Tail Detection Window,在中心檢測窗口后面,用于檢測報文的亂序和重復(fù)情況的一個邊界參考。
(9)亂序告警Misorder Alarm,亂序發(fā)生后而發(fā)出的告警,在本發(fā)明中,如果報文落在后部檢測窗口中,則發(fā)出亂序告警,落在中心檢測窗口中則不發(fā)出該告警。
(10)重復(fù)告警Duplication Alarm,重復(fù)發(fā)生后而發(fā)出的告警,在本發(fā)明中,如果報文落在前部重復(fù)檢測窗口、中心檢測窗口及后部檢測窗口中,都要發(fā)出重復(fù)告警,但是可以通過開關(guān)關(guān)閉所不需要的告警。
(11)綜合失序告警General Misorder Alarm,亂序告警和重復(fù)告警都屬于綜合失序告警,但是如果報文落入檢測窗口中,根據(jù)情況發(fā)出亂序告警或者重復(fù)告警或者不發(fā)出告警,而不再發(fā)出綜合失序告警,而如果一個報文沒有落入任何一個檢測窗口,則發(fā)出綜合失序告警,各窗口如表1所示表1
。
(12)最近未亂序報文SID Latest non-misordered SID,表示包括該SID以及以前的SID都沒有發(fā)生亂序,它始終位于中心檢測窗口的最左側(cè),是三個檢測窗口挪動的基準(zhǔn),在實(shí)現(xiàn)程序中定義為SID_o。
現(xiàn)在按照表1所示,假設(shè)又收到一個報文,其序列號表示為SID_x,則如果SID_x==6,表示在亂序容忍限度內(nèi),不發(fā)出任何告警,并且窗口可向右滑動,SID_o更新為8。
如果SID_x==9,表示在亂序容忍限度內(nèi),不發(fā)出任何告警;如果SID_x==12,表示有亂序發(fā)生,發(fā)出亂序告警;如果SID_x==2或5或者11,都表示有重復(fù)發(fā)生,如果相應(yīng)的開關(guān)打開,則發(fā)出重復(fù)告警,三個窗口的重復(fù)告警開關(guān)可分別定義為WfDupAlm,WcDupAlm,WtDupAlm;如果SID_x==20,則落入三個窗口之外,發(fā)出綜合失序告警。
基于上述各個基本概念,下面將對本發(fā)明中實(shí)現(xiàn)亂序和重復(fù)檢測的實(shí)現(xiàn)方法進(jìn)行說明。
相應(yīng)的亂序和重復(fù)檢測必須在兩個通信點(diǎn)之間進(jìn)行,可以以one-way(單向)方式檢測單向的亂序,也可以以two-way(雙向)方式檢測雙向的亂序。無論哪種方式,在檢測過程中發(fā)送的報文均必須帶有序列號,序列號從0到MAX(最大值)循環(huán),典型情況為MAX=2^32-1,具體可以令序列號占用報文的32bits。
對于one-way方式,發(fā)送點(diǎn)發(fā)送帶有連續(xù)SID的報文,由對端接收到報文并實(shí)施亂序和重復(fù)檢測。具體可以在ETH-CC功能中實(shí)現(xiàn),即令ETH-CC的發(fā)送報文中包含SID,具體如圖1所示。
對于two-way方式,發(fā)送點(diǎn)發(fā)送帶有連續(xù)SID的報文,對端接收報文后,將報文簡單環(huán)回,帶回SID,由發(fā)送點(diǎn)實(shí)施亂序檢測,具體可以在ETH-TEST功能中實(shí)現(xiàn),在ETH-TEST中已經(jīng)帶有可以作為SID的Transaction ID(發(fā)送標(biāo)識),利用該標(biāo)識即可以實(shí)現(xiàn)相應(yīng)的亂序及重復(fù)檢測。
需要說明的是,本發(fā)明中的亂序和重復(fù)檢測功能必須實(shí)現(xiàn)同一ME Level(維護(hù)實(shí)體層)的MEP(維護(hù)組端點(diǎn))上。
最后,根據(jù)應(yīng)用環(huán)境的不同,亂序和重復(fù)檢測可以實(shí)現(xiàn)為不同規(guī)模,比如可以采用以下三種實(shí)現(xiàn)規(guī)模(1)全實(shí)現(xiàn)Wf>=1,Wc>=2,Wt>=1,即同時設(shè)置前部重復(fù)檢測窗口、中心檢測窗口和后部檢測窗口;當(dāng)利用三個檢測窗口檢測亂序及重復(fù)時,如果接收到的報文的序列號超過三個檢測窗口的范圍,則認(rèn)為是一種比較嚴(yán)重的失序,需要上報一個綜合失序告警即可,但是落入三個檢測窗口之內(nèi),則可以細(xì)分告警類型,具體可以劃分為以下幾種情況由于假設(shè)SID_o為最近未亂序報文的SID,因此在前部重復(fù)檢測窗口中,表示已經(jīng)收到的報文,假如當(dāng)前報文再一次收到前部重復(fù)檢測窗口的報文,表示有重復(fù)發(fā)生,則可以上報重復(fù)告警;中心檢測窗口認(rèn)為是接收端的亂序容忍度,即假定接收端有一定的亂序處理能力,如果接收報文的序列號落入中心窗口,即使SID值前后有所錯亂,也不告警,但是中心窗口中也可能發(fā)生重復(fù),假如收到的報文和緩存的報文沖突,則表示有重復(fù)發(fā)生,可以上報重復(fù)告警;后部檢測窗口表示接收端不能容忍的亂序,報文落入該窗口中,假如不重復(fù),則上報亂序告警。
(2)典型實(shí)現(xiàn)Wf==0,Wc>2,Wt==0,即僅設(shè)置中心檢測窗口;(3)最小實(shí)現(xiàn)Wf==0,Wc==2,Wt==0,即僅設(shè)置中心檢測窗口,且中心檢測窗口的寬度設(shè)置為2。
也就是說,可以用一個(Wf,Wc,Wt)組表示一個亂序和重復(fù)檢測實(shí)現(xiàn),其中Wc>=2,Wf>=0,Wt>=0。上述三種實(shí)現(xiàn)規(guī)模只是用做常用的配置方式,在實(shí)際應(yīng)用過程中顯然也可以根據(jù)需要使用其他組合。
在實(shí)際的亂序和重復(fù)檢測過程中,各種實(shí)現(xiàn)規(guī)模對應(yīng)的實(shí)現(xiàn)亂序和重復(fù)檢測功能的操作具體包括(1)參數(shù)的配置處理具體說來,就是配置Wf、Wc、Wt三個參數(shù)值,確定檢測窗口寬度,以及配置WfDupAlm,WcDupAlm,WtDupAlm,確定是否允許重復(fù)告警;(2)復(fù)位啟動具體說來,就是初始化程序中所用到的變量,啟動的時候必須提供的SID_o值,可以設(shè)置為當(dāng)前報文的SID值;(3)執(zhí)行操作具體說來,就是令功能模塊隨收幀節(jié)奏執(zhí)行,要求提供當(dāng)前幀的SID_x,每一次執(zhí)行都會有個反饋,重復(fù)告警、亂序告警、綜合失序告警或者不告警;并且,當(dāng)發(fā)生綜合失序告警后,檢測功能必須復(fù)位重啟,即重新設(shè)置SID_o,設(shè)置為下一個報文的SID值。
下面將以具體的應(yīng)用實(shí)例分別對前面描述的三種不同規(guī)模的本發(fā)明的實(shí)現(xiàn)進(jìn)行說明。
(一)全實(shí)現(xiàn)在該規(guī)模下,首先需要定義如下變量Wf、Wc和Wt整數(shù),分別用于表示前部重復(fù)檢測窗口、中心檢測窗口和后部檢測窗口的寬度;WfDupAlm、WcDupAlm和WtDupAlmBool(布爾)型,分別用于表示三個窗口對應(yīng)的重復(fù)告警開關(guān);SID_o整數(shù),用于表示最近未亂序報文的SID,最大值為MAX;SID_x整數(shù),用于表示當(dāng)前收到報文的SID,最大值為MAX;Lx有符號整數(shù),表示SID_x相對于前部重復(fù)檢測窗口左邊沿的距離,位寬超過SID_o和SID_x;Wx有符號整數(shù),表示SID_x相對于中心檢測窗口左邊沿即SID_o的距離,位寬超過SID_o和SID_x;B[Wc+Wt];比特?cái)?shù)組,用于表示比特序列,覆蓋中心檢測窗口和后部檢測窗口,即B[0],B[1],...B[Wc+Wt-1],每個位置表示從SID_o開始往后的SID,如果B[i]==0,表示未收到SID_o+i的報文,如果B[i]==1,表示收到了SID_o+i的報文,在亂序和重復(fù)檢測功能啟動時,B[0]初始化為1,其他bit初始化為0。在運(yùn)行過程中,如果從B[0]開始出現(xiàn)連續(xù)的“1”,表示窗口可以向后滑動,令B序列整體左移,右邊補(bǔ)零,一直移動到B[1]==1,然后可以根據(jù)移動的距離更新SID_o;具體如表2所示表2
Cnt用于計(jì)數(shù)的臨時變量,計(jì)算B移位的距離,即窗口需要滑動的距離,用于更新SID_o。
在具體實(shí)現(xiàn)本發(fā)明過程中,首先,程序啟動,配置窗口寬度Wf、Wc和Wt,配置開關(guān)變量WfDupAlm、WcDupAlm和WtDupAlm,配置SID_o為當(dāng)前報文的SID,清零B序列,令B[0]=1;其次,基于上述各參數(shù),每收到一個報文,得到SID_x之后,將根據(jù)SID_o、B序列的當(dāng)前值進(jìn)入程序分支,相應(yīng)的處理過程具體如下如果所述的SID_x落入前部重復(fù)檢測窗口,并且重復(fù)告警開關(guān)打開,則輸出重復(fù)告警;如果所述的SID_x落入中心檢測窗口,如果B[Wx]==1,表示已經(jīng)收到該報文,如果重復(fù)告警開關(guān)打開,輸出重復(fù)告警;如果B[Wx]==0,則令B[Wx]==1,表示該位置已經(jīng)收到報文,檢測B[1]是否為1,如果為1,則B序列做左移位,一直到B[1]==0為止,并記錄左移的距離Cnt(即左移的次數(shù)值),并利用其更新SID_o;當(dāng)所述的SID_x落入后部檢測窗口時,如果B[Wx]==1,表示已經(jīng)收到該報文,如果重復(fù)告警開關(guān)打開,輸出重復(fù)告警;如果B[Wx]==0,則今B[Wx]==1,表示該位置已經(jīng)收到報文,然后輸出亂序告警;
如果所述的SID_x落入三個檢測窗口之外,則輸出綜合失序告警,在下一個報文時刻,復(fù)位程序,即清零B序列,將SID_o設(shè)置為該報文的SID,并令B[0]==1。
使用B序列是為簡化操作以及節(jié)省存儲空間,以便在芯片中實(shí)現(xiàn)。為了實(shí)施亂序和重復(fù)檢測,必須緩存一定數(shù)量的SID值,前部檢測窗口不需要緩存,直接比較SID_o和SID_x即可,而中心檢測窗口和后部檢測窗口的SID則需要緩存。而直接緩存SID太浪費(fèi)空間,比如一個SID值32比特,中心檢測窗口寬度6,后部檢測窗口寬度4,則需要32*(6+4)=320個比特。由于已經(jīng)規(guī)定了SID遞增,因此可以緩存最近未亂序報文SID_o,對應(yīng)B[0]=1,如果收到了SID_o+2,則在B[2]記錄為1,收到SID_o+3,則在B[3]記錄為1,由于SID_o+1仍然沒有收到,B[1]仍然為0,所以B序列對應(yīng)著后繼SID對SID_o的差值,這種緩存方法僅僅需要SID_o的32比特,SID_x的32比特,B序列的10比特,總共才74比特。
另外,B序列也方便操作,仍然以上述為例,當(dāng)前的B序列為B[0-9]={1,0,1,1,0,0,0,0,0,0},現(xiàn)在假如收到了SID_o+1,則B[1]=1,現(xiàn)在B[0-9]={1,1,1,1,0,0,0,0,0,0},已經(jīng)滿足窗口滑動條件了,很簡單往左移3位并在右側(cè)補(bǔ)0即可,并且SID_o也更新為SID_o+3,B經(jīng)過移位后變?yōu)锽[0-9]={1,0,0,0,0,0,0,0,0,0}。移位操作在芯片中也非常容易實(shí)現(xiàn)。
在實(shí)現(xiàn)過程中,計(jì)算SID_x相對于SID_o的偏移,要用有符號數(shù)Lx和Wx表示,保證Lx和Wx的位寬超過SID,這在計(jì)算中可以避免溢出引起的問題,另外更新SID_o可能會有溢出,直接忽略即可,在芯片中實(shí)現(xiàn)忽略溢出的加減法很方便,在整個程序中,避免使用除法和模運(yùn)算。
具體過程可以采用以下偽碼實(shí)現(xiàn)<pre listing-type="program-listing">BEGIN/*開始*/
Lx=SID_x-SID_o+Wf/*計(jì)算SID_x到重復(fù)檢測窗口左邊沿的距離*/
IF Lx<0 THEN/*如果Lx小于0,則*/
Lx=Lx+MAX+1/*調(diào)整SID加減的溢出*/END/*IF結(jié)束*/IF Lx<Wf THEN/*落入了前部檢測窗口*/
IF WfDupAlm not Off THEN/*如果允許開關(guān)輸出該告警,則*/
Duplication Alarm/*輸出重復(fù)告警*/
END
ELSE/*否則,不是落入前部檢測窗口*/
Wx=Lx-Wf/*計(jì)算SID_x到SID_o距離*/
IF Wx<Wc+Wt THEN/*落入了中心或者后部檢測窗口*/
IF B[Wx]==1 THEN/*該位置的報文已經(jīng)收到過,重復(fù)*/
IF Wx<Wc THEN
IF WcDupAlm not Off THEN/*允許輸出告警*/
Duplication Alarm/*輸出重復(fù)告警*/
END
ELSE
IF WtDupAlm not Off THEN/*允許輸出告警*/
Duplication Alarm/*輸出重復(fù)告警*/
END
END
ELSE/*否則B[Wx]==0,表示沒有發(fā)生重復(fù)*/
B[Wx]=1
IF Wx>=Wc THEN/*落入了后部檢測窗口*/
Misorder Alarm/*輸出亂序告警*/
ELSE/*落入了前部檢測窗口*/
Cnt=0/*清零,開始計(jì)算需左移的距離*/
WHILE B[1]==1 THEN/*直到B[1]==0退出*/
B<<1/*B序列左移,右邊補(bǔ)零*/
Cnt++/*計(jì)數(shù)器加1*/
END WHILE
IF SID_o<=MAX-Cnt THEN/*更新SID_o*/
SID_o=SID_o+Cnt/*不需要調(diào)整溢出*/
ELSE
SID_o=SID_o+Cnt-MAX-1/*調(diào)整溢出*/
END
END/*落入中心或者后部窗口,沒有重復(fù)處理結(jié)束*/
END/*落入中心或者后部窗口*/
ELSE/*落入三個檢測窗口之外*/
General Misorder Alarm/*輸出綜合失序告警*/
END/*Wx處理結(jié)束*/
END/*Lx處理結(jié)束*/
END/*本次程序執(zhí)行結(jié)束*/</pre>(二)典型實(shí)現(xiàn)定義如下變量Wc整數(shù),用于表示中心檢測窗口的寬度;WcDupAlmBool型,用于表示重復(fù)告警開關(guān);SID_o整數(shù),用于表示最近為亂序報文的SID;SID_x整數(shù),用于表示當(dāng)前收到報文的SID;Wx有符號整數(shù),表示SID_x相對于中心檢測窗口左邊沿即SID_o的距離,位寬超過SID_o和SID_x;B[Wc]用于表示比特序列,B[0],B[1],...B[Wc-1],每個位置表示從SID_o開始往后的SID,如果B[i]==0,表示未收到SID_o+i的報文,如果B[i]==1,表示收到了SID_o+i的報文,在亂序和重復(fù)檢測功能啟動時,B[0]初始化為1,其他bit初始化為0。在運(yùn)行過程中,如果從B[0]開始出現(xiàn)連續(xù)的“1”,表示窗口可以向后滑動,令B序列整體左移,右邊補(bǔ)零,一直移動到B[1]==1,然后可以根據(jù)移動的距離更新SID_o;Cnt用于計(jì)數(shù)的臨時變量,計(jì)算B移位的距離,即窗口需要滑動的距離,用于更新SID_o。
本發(fā)明在具體實(shí)現(xiàn)過程中,首先,程序啟動,配置窗口寬度Wc,配置開關(guān)變量WcDupAlm,配置SID_o為當(dāng)前報文的SID,清零B序列,令B[0]=1。
其次,基于上述各參數(shù),每收到一個報文,得到SID_x之后,將根據(jù)SID_o、B序列的當(dāng)前值進(jìn)入程序分支,相應(yīng)的處理過程具體如下SID_x落入中心檢測窗口,如果B[Wx]==1,表示已經(jīng)收到該報文,如果重復(fù)告警開關(guān)大開,輸出重復(fù)告警;如果B[Wx]==0,則令B[Wx]==1,表示該位置已經(jīng)收到報文,檢測B[1]是否為1,如果為1,則B序列做左移位,一直到B[1]==0為止,并記錄左移的距離Cnt,用其更新SID_o;SID_x落入中心檢測窗口之外,輸出綜合失序告警,在下一個報文時刻,復(fù)位程序,即清零B序列,將SID_o設(shè)置為該報文的SID,并令B[0]==1。
同樣,使用B序列是為簡化操作以及節(jié)省存儲空間,以便在芯片中實(shí)現(xiàn)。為了實(shí)施亂序和重復(fù)檢測,必須緩存一定數(shù)量的SID值,直接緩存SID太浪費(fèi)空間,采用緩存SID_o和SID_x,中間的值使用相對位置是否在位來表示即可,因此使用一個比特序列來映射相對位置。另外,B序列在操作過程可以使用右補(bǔ)零的左移位運(yùn)算,在芯片中也非常容易實(shí)現(xiàn)。
在實(shí)現(xiàn)過程中,計(jì)算SID_x相對于SID_o的偏移,要用有符號數(shù)Lx和Wx表示,保證Wx的位寬超過SID,這在計(jì)算中可以避免溢出引起的問題,另外更新SID_o可能會有溢出,直接忽略即可,在芯片中實(shí)現(xiàn)忽略溢出的加減法很方便,在整個程序中,避免使用除法和模運(yùn)算。
在典型實(shí)現(xiàn)中,Wf=0,Wc>2,Wt=0,退化了前部重復(fù)檢測窗口和后部檢測窗口,也不再有專門的亂序告警,只有重復(fù)告警和綜合失序告警。
具體的檢測實(shí)現(xiàn)如下<pre listing-type="program-listing">BEGIN/*開始*/
Wx=SID_x-SID_o/*計(jì)算SID_x到SID_o距離*/
IF Wx<0 THEN/*如果Wx小于0,則*/
Wx=Wx+MAX+1/*調(diào)整SID加減的溢出*/
END/*IF結(jié)束*/
IF Wx<Wc THEN/*落入了中心檢測窗口*/
IF B[Wx]==1 THEN/*該位置的報文已經(jīng)收到過,重復(fù)*/
IF WcDupAlm not Off THEN/*允許輸出告警*/
Duplication Alarm/*輸出重復(fù)告警*/
END
ELSE
B[Wx]=1
Cnt=0/*清零,開始計(jì)算需左移的距離*/
WHILE B[1]==1 THEN/*直到B[1]==0退出*/
B<<1/*B序列左移,右邊補(bǔ)零*/
Cnt++/*計(jì)數(shù)器加1*/
END WHILE
IF SID_o<=MAX-Cnt THEN/*更新SID_o*/
SID_o=SID_o+Cnt/*不需要調(diào)整溢出*/
ELSE
SID_o=SID_o+Cnt-MAX-1/*調(diào)整溢出*/
END
END
ELSE/*落入中心檢測窗口之外*/
General Misorder Alarm/*輸出綜合失序告警*/
END/*Wx處理結(jié)束*/
END/*本次程序執(zhí)行結(jié)束*/</pre>(三)最小實(shí)現(xiàn)在最小實(shí)現(xiàn)中,Wf=0,Wc=2,Wt=0,三個窗口都退化了,告警也不再區(qū)分出亂序告警和重復(fù)告警,而只有綜合失序告警,這時檢測的實(shí)現(xiàn)簡單而又有效,簡化描述為檢測后收到的SID_x是否等于SID_o+1,如果相等,表示未失序,否則表示失序,如果有溢出,不考慮溢出部分。
該規(guī)模實(shí)現(xiàn)方式下具體的實(shí)現(xiàn)方式如下BEGINIF SID_x!=SID_o+1 THENGeneral Misorder alarmENDEND在以太網(wǎng)OAM的ETH-CC中實(shí)現(xiàn)本發(fā)明時,可以進(jìn)行常規(guī)的OAM監(jiān)控,具體由接收點(diǎn)檢測失序情況。當(dāng)在ETH-TEST(以太網(wǎng)測試)中實(shí)現(xiàn)本發(fā)明時,則還可以由管理人員發(fā)起失序檢測過程,以進(jìn)行相應(yīng)的綜合失序檢測。
綜上所述,本發(fā)明提供的基于報文序列檢測窗口的數(shù)學(xué)模型,明確定義了無連接報文交換網(wǎng)絡(luò)中的亂序、重復(fù)和綜合失序問題,適用于采用報文交換網(wǎng)絡(luò)作為承載網(wǎng)的OAM領(lǐng)域,例如,用于電信級的以太城域網(wǎng)的OAM領(lǐng)域中進(jìn)行網(wǎng)絡(luò)中的亂序及重復(fù)問題的檢測。
也就是說,在電信級的以太網(wǎng)中利用本發(fā)明可以方便地檢測到亂序、重復(fù)或者綜合失序,并提供OAM告警,而且,由于本發(fā)明提供的實(shí)現(xiàn)機(jī)制具有簡潔明了的優(yōu)點(diǎn),因而更易于在芯片中實(shí)現(xiàn)。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求
的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,其特征在于,包括A、在用于檢測的無連接報文交換網(wǎng)絡(luò)報文中承載設(shè)置報文的序列號信息;B、在接收端,根據(jù)接收到的所述無連接報文交換網(wǎng)絡(luò)報文中承載的序列號信息進(jìn)行無連接報文交換網(wǎng)絡(luò)中報文的亂序及重復(fù)檢測。
2.根據(jù)權(quán)利要求
1所述的無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,其特征在于,所述的步驟A包括在用于檢測的無連接報文交換網(wǎng)絡(luò)報文中承載設(shè)置規(guī)律變化的數(shù)字信息作為報文的序列號。
3.根據(jù)權(quán)利要求
1所述的無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,其特征在于,所述的無連接報文交換網(wǎng)絡(luò)報文包括以太網(wǎng)操作管理和維護(hù)過程中的以太網(wǎng)檢測報文。
4.根據(jù)權(quán)利要求
1所述的無連接報文交換網(wǎng)絡(luò)中亂序及重復(fù)的檢測方法,其特征在于,所述的方法還包括C、設(shè)置中心檢測窗口,所述中心檢測窗口為一個采用報文序列號界定的邊界參考,其用于檢測報文的亂序和重復(fù)。
5.根據(jù)權(quán)利要求
4所述的無連接交換網(wǎng)絡(luò)中亂序及重復(fù)的檢測方法,其特征在于,所述的步驟C還包括設(shè)置前部重復(fù)檢測窗口和后部檢測窗口,其中,所述前部重復(fù)檢測窗口位于中心檢測窗口的前面,用于作為檢測重復(fù)報文的邊界參考,后部檢測窗口位于中心檢測窗口的后面,用于檢測重復(fù)和亂序報文的邊界參考。
6.根據(jù)權(quán)利要求
4或5所述的無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,其特征在于,所述的步驟B包括在接收到接收報文時,解析獲得所述報文中的序列號信息,根據(jù)中心檢測窗口中的報文序列號信息進(jìn)行報文的亂序及重復(fù)檢測。
7.根據(jù)權(quán)利要求
6所述的無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,其特征在于,所述的步驟B包括B1、確定接收報文的序列號;B2、根據(jù)中心檢測窗口位置確定未亂序報文序列號,所述的未亂序報文序列號為在該序列號以前收到的報文均未出現(xiàn)亂序;B3、根據(jù)接收報文的序列號與未亂序報文序列號之間的間隔值、中心檢測窗口寬度以及接收到的報文的序列號進(jìn)行報文的亂序及重復(fù)檢測。
8.根據(jù)權(quán)利要求
7所述的無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,其特征在于,所述的步驟B3還包括還根據(jù)前部重復(fù)檢測窗口和后部檢測窗口的信息進(jìn)行報文的亂序及重復(fù)檢測。
9.根據(jù)權(quán)利要求
8所述的無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,其特征在于,所述的步驟B3包括當(dāng)接收報文的序列號位于中心檢測窗口內(nèi)時,則確定未出現(xiàn)亂序,否則確定出現(xiàn)為亂序;當(dāng)接收報文的序列號與中心檢測窗口、前部重復(fù)檢測窗口及后部檢測窗口內(nèi)已經(jīng)接收到報文的序列號相同時,則確定出現(xiàn)重復(fù),否則,確定未出現(xiàn)重復(fù);當(dāng)接收報文的序列號未處于中心檢測窗口、前部重復(fù)檢測窗口及后部檢測窗口內(nèi),則確定出現(xiàn)綜合失序。
10.根據(jù)權(quán)利要求
7所述的無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,其特征在于,當(dāng)僅設(shè)置中心檢測窗口時,所述的步驟B3包括當(dāng)接收報文的序列號位于中心檢測窗口內(nèi)時,則確定未出現(xiàn)亂序,否則,確定出現(xiàn)亂序;當(dāng)接收報文的序列號與中心檢測窗口內(nèi)已經(jīng)接收到報文的序列號相同時,則確定出現(xiàn)重復(fù),否則確定未出現(xiàn)重復(fù)。
11.根據(jù)權(quán)利要求
10所述的無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,其特征在于,當(dāng)僅設(shè)置中心檢測窗口,且中心檢測窗口寬度為2時,所述的步驟B3包括當(dāng)接收報文的序列號為當(dāng)前未亂序報文序列號加一時,則確定未出現(xiàn)綜合失序,否則確定出現(xiàn)綜合失序。
12.根據(jù)權(quán)利要求
7所述的無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,其特征在于,所述的步驟B3還包括針對檢測出現(xiàn)的亂序和重復(fù)設(shè)置各自對應(yīng)的告警開關(guān),當(dāng)告警開關(guān)關(guān)閉時,則不上報告警,否則上報告警。
13.根據(jù)權(quán)利要求
7所述的無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,其特征在于,所述的步驟B3還包括針對中心檢測窗口設(shè)置對應(yīng)的比特序列,用于標(biāo)識中心檢測窗口內(nèi)各序列號對應(yīng)的報文是否收到,根據(jù)該比特序列進(jìn)行亂序及重復(fù)檢測,和/或,依據(jù)該比特序列進(jìn)行中心檢測窗口的滑動處理。
14.根據(jù)權(quán)利要求
7所述的無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法,其特征在于,所述的步驟B3還包括當(dāng)中心檢測窗口中的窗口滑動方向起始點(diǎn)開始連續(xù)接收未亂序報文,則滑動中心檢測窗口,并更新窗口滑動方向起始點(diǎn)位置。
專利摘要
本發(fā)明涉及一種無連接報文交換網(wǎng)絡(luò)中報文亂序及重復(fù)的檢測方法。本發(fā)明主要包括首先,發(fā)送端在用于檢測的無連接報文交換網(wǎng)絡(luò)報文中設(shè)置報文的序列號信息;然后,在接收端,根據(jù)接收到的所述報文中的序列號信息進(jìn)行無連接報文交換網(wǎng)絡(luò)中報文的亂序及重復(fù)檢測。本發(fā)明可以應(yīng)用于電信級的以太城域網(wǎng)的OAM領(lǐng)域中,進(jìn)行網(wǎng)絡(luò)中的亂序及重復(fù)問題的檢測。從而可以方便地檢測到亂序、重復(fù)或者綜合失序,提供OAM告警,對網(wǎng)絡(luò)拓?fù)渥兓峁┰u估依據(jù)。同時,本發(fā)明提供的實(shí)現(xiàn)機(jī)制具有簡潔明了的優(yōu)點(diǎn),因而更易于在芯片中實(shí)現(xiàn)。
文檔編號H04L12/24GK1992652SQ200510135299
公開日2007年7月4日 申請日期2005年12月29日
發(fā)明者李賀軍 申請人:華為技術(shù)有限公司導(dǎo)出引文BiBTeX, EndNote, RefMan