專利名稱:數(shù)據(jù)報(bào)文傳輸序列號(hào)合法性的檢查方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種GTP協(xié)議的實(shí)現(xiàn)技術(shù),更確切地說(shuō)是涉及一種在GTP協(xié)議的應(yīng)用實(shí)現(xiàn)中,對(duì)傳輸接收的G-PDU(協(xié)議數(shù)據(jù)單元)數(shù)據(jù)報(bào)文(包)的序列號(hào)進(jìn)行合法性檢查的優(yōu)化方法,并進(jìn)一步延伸到對(duì)數(shù)據(jù)報(bào)文(包)的合法性檢查。
在GPRS及UMTS的相關(guān)協(xié)議中,為排除受損報(bào)文或殘余報(bào)文等非法報(bào)文對(duì)接收方的干擾,而對(duì)經(jīng)GTP隧道傳輸后接收的數(shù)據(jù)包序列號(hào)的合法性檢查做出了規(guī)定。例如在3G TS 29.060協(xié)議中所記載的序列號(hào)的合法性檢查方法原文描述如下This annex describes a method to determine whether or not a receivedT-PDU is valid,for the Usage of the Sequence Number subclause,9.3.1.1.
This method deals with two distinct problems.
The first one is the′drifting′between the Sequence Number valuethat we expect to receive in the light of the total number of T-PDUreceived for this tunnel(the Expected value),and the effective receivecdvalue.The probability that the received T-PDU is not correct becausenot awaited is higher if the distance between expected and receivedSequence Numbers is high than if this distance is low.This leads toCondition l.I received values,in a circular 65536 dimension.
The second one is the duplication of T-PDU frames within a givennumber of Last received frames that have been accepted by the conditionl.
This leads to the following actionsThis operation shall start when the dialogue is established betweenthe GSNs.When each T-PDU is received during the dialogue,if this T-PDUis valid,its Sequence Number shall be saved.The last′A′saved SequenceNumbers represent the′Recorded Sequence Number Set′.
A received T-PDU sequence number is valid only if it satisfies bothof the following conditions1)Min(Abs(E-r),Abs(r-65536-E),Abs(E-65536-r))<′B′Condition lWhere′E′is the Expected Sequence Number and′r′is the receivedSequence Number.
2)The received Sequence Number is not a member of the RecordedSequence Number Set.Condition 2.
′A′and′B′are parameters.The receiving GSN shall discard areceived T-PDU with an invalid Sequence Number.
Abs(X)represents the absolute value of the number X.
Min(X,Y,Z)represents the lowest value taken from the numbers X,Y,and Z.
從上面的描述可知,GTP協(xié)議規(guī)定了兩種數(shù)據(jù)包序列號(hào)合法性檢查的方法第一種檢查方法是在實(shí)際接收?qǐng)?bào)文的序列號(hào)與期望接收?qǐng)?bào)文的序列號(hào)間的差距超過(guò)規(guī)定值時(shí),認(rèn)為此接收?qǐng)?bào)文是不正確的,如判定為過(guò)時(shí)或者受損的報(bào)文,用算式可表示為Min(Abs(E-r),Abs(r-65536-E),Abs(E-65536-r))<′B′(公式1)
式中E代表期望接收?qǐng)?bào)文的序列號(hào),r代表實(shí)際接收?qǐng)?bào)文的序列號(hào),B代表期望接收?qǐng)?bào)文的序列號(hào)與實(shí)際接收?qǐng)?bào)文序列號(hào)間的最大距離(預(yù)先設(shè)定)。式中的65536是最大序列號(hào)(2個(gè)字節(jié)、16比特位長(zhǎng)度),達(dá)到65536后回卷歸零,上式中考慮了序列號(hào)回卷對(duì)序列號(hào)合法性判斷的影響,即加上了對(duì)邊界值(0,65536)的判斷Abs(r-65536-E),Abs(E-65536-r)。
第二種檢查方法將接收?qǐng)?bào)文的序列號(hào)與記錄的序列號(hào)集合進(jìn)行比較,若接收?qǐng)?bào)文的序列號(hào)處在記錄的序列號(hào)集合之內(nèi),則認(rèn)為此報(bào)文非法,接收方對(duì)序列號(hào)非法的接收包作拋棄處理。
在第一種方法中,根據(jù)協(xié)議規(guī)定,E取自接收數(shù)據(jù)包計(jì)數(shù)器的值,即接收方每接收一個(gè)合法數(shù)據(jù)包,E值就加1,當(dāng)超過(guò)65535時(shí)就回卷歸零。
按這種方法得到的E值,會(huì)產(chǎn)生“漂移”或“片段丟失”問(wèn)題,會(huì)發(fā)生合法數(shù)據(jù)包被大量拒絕的情況。
如
圖1中所示,在發(fā)送10端向接收20端傳送數(shù)據(jù)包(報(bào)文)的過(guò)程中,不可避免會(huì)產(chǎn)生丟包現(xiàn)象,然而10端并不知道丟包,仍然按照遞增規(guī)律為每一個(gè)發(fā)送數(shù)據(jù)包分配序列號(hào),導(dǎo)致20端期望接收數(shù)據(jù)包的E值與實(shí)際接收的序列號(hào)間的間距越來(lái)越大,在超過(guò)B值的情況下,合法包也會(huì)被20端丟棄,產(chǎn)生“漂移”,當(dāng)出現(xiàn)連續(xù)若干個(gè)數(shù)據(jù)包丟失的情況時(shí),則稱作“片段丟失”。
在GTP協(xié)議規(guī)定方法的基礎(chǔ)上,可以采用兩種改良的方法來(lái)避免上述現(xiàn)象的發(fā)生。
改良方法一是改變期望接收?qǐng)?bào)文序列號(hào)E的取值E=(上次合法接收數(shù)據(jù)包的序列號(hào)+1)%(取模)65535這種方法可以解決隨機(jī)丟包產(chǎn)生的接收序列號(hào)“漂移”問(wèn)題,但不能解決“片段丟失”問(wèn)題,如B=3,接收數(shù)據(jù)包的序列號(hào)為0,1,2,3,4,5,10,11,12,在序列號(hào)5后由于線路問(wèn)題發(fā)生連續(xù)丟包(6,7,8,9),當(dāng)接收到序列號(hào)為10的數(shù)據(jù)包的時(shí)候,由于r-E=10-(5+1)=4>3,則拋棄此包,按同樣的方法計(jì)算,后繼的包(11,12)也都會(huì)被拋棄。
改良方法二是隨條件變化改變期望接收?qǐng)?bào)文序列號(hào)(E)與實(shí)際接收?qǐng)?bào)文序列號(hào)的(r)間的最大間距(B),在上次接收的合法數(shù)據(jù)包序列號(hào)減去上次的(期望接收數(shù)據(jù)包的序列號(hào))E值等于零時(shí),讓B等于系統(tǒng)規(guī)定的初始B值;在上次接收的合法數(shù)據(jù)包序列號(hào)減去上次的E值不等于零時(shí),讓B等于上次接收的合法數(shù)據(jù)包序列號(hào)減去上次的E值(取絕對(duì)值),再加上系統(tǒng)規(guī)定的初始B值,用偽算法表示其改變規(guī)律如下if(上次接收的合法數(shù)據(jù)包序列號(hào)-上次的E值)=0{B=系統(tǒng)規(guī)定的初始B值}else{B=abs((上次接收的合法數(shù)據(jù)包序列號(hào)-上次的E值))+B}兩種改良方法的優(yōu)缺點(diǎn)類似,后者還存在B值會(huì)不斷增大的問(wèn)題,以至于使合法性檢查失去應(yīng)有的作用。從上述兩種改良方法也不難看出,在協(xié)議規(guī)定方法的基礎(chǔ)上作改良,不論怎樣處理,都會(huì)存在一些缺陷,不能完全解決問(wèn)題。
被GTP協(xié)議認(rèn)定為非法包的是受損報(bào)文或殘余報(bào)文,這些報(bào)文的特點(diǎn)是報(bào)文的序列號(hào)不相關(guān),如果能夠判斷出連續(xù)幾個(gè)報(bào)文之間的相關(guān)性,就可以判定這些報(bào)文是否合法。協(xié)議中規(guī)定的檢查方法的缺陷恰在于不能根據(jù)與當(dāng)前接收包相連續(xù)的幾個(gè)包的情況來(lái)決定當(dāng)前包是否合法。本發(fā)明的技術(shù)方案就是基于上述的基本分析作出的。
本發(fā)明方法的基本設(shè)計(jì)思想就是設(shè)置一個(gè)待判定緩沖區(qū),來(lái)緩存尚且不能判定是否合法的報(bào)文,再根據(jù)其后續(xù)接收包序列號(hào)與該緩存包序列號(hào)之間的連續(xù)性或者相關(guān)性來(lái)決定該緩存包是否是合法報(bào)文。
實(shí)現(xiàn)本發(fā)明目的的技術(shù)方案是這樣的一種數(shù)據(jù)報(bào)文傳輸序列號(hào)合法性的檢查方法,其特征在于包括A.設(shè)置一個(gè)待判定緩沖區(qū),和設(shè)置一個(gè)期望接收?qǐng)?bào)文序列號(hào)(E)與實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的最大間距值(B);B.在當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值小于最大間距值(B),且當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)沒(méi)有處于記錄的序列號(hào)集合內(nèi)時(shí),判定當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)是合法的;C.在當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值小于最大間距值(B),但當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)處于記錄的序列號(hào)集合內(nèi)時(shí),判定當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)是非法的,并拋棄該序列號(hào)的接收?qǐng)?bào)文;D.在當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值大于最大間距值(B),且緩沖區(qū)內(nèi)未被判定合法的報(bào)文的期望接收序列號(hào)(E′)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值大于最大間距值(B)時(shí),將當(dāng)前實(shí)際接收?qǐng)?bào)文存儲(chǔ)在待判定緩沖區(qū)內(nèi),并讓待判定緩沖區(qū)內(nèi)未被判定合法的報(bào)文的期望接收序列號(hào)(E′)等于當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)與1的和;E.在當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值大于最大間距值(B),且待判定緩沖區(qū)內(nèi)未被判定合法的報(bào)文的期望接收序列號(hào)(E′)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值小于最大間距值(B)時(shí),將當(dāng)前實(shí)際接收?qǐng)?bào)文及待判定緩沖區(qū)內(nèi)存儲(chǔ)的接收?qǐng)?bào)文取出,并返回執(zhí)行步驟B、C,并在步驟B中交換當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與待判定緩沖區(qū)內(nèi)未被判定合法的報(bào)文的期望接收序列號(hào)(E′)的值。
所述的步驟A中,設(shè)置的最大間距值(B),為2×(B′-1),B′是GTP協(xié)議中規(guī)定的期望接收?qǐng)?bào)文序列號(hào)(E)與實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的最大間距值。
所述的步驟B、C、D、E中,在判斷當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值與最大間距值(B)的大小關(guān)系時(shí),還包括判斷當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)與最大回卷序列號(hào)(65535)及當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)的差值的絕對(duì)值與最大間距值(B)的大小關(guān)系;當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與最大回卷序列號(hào)(65535)及當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值與最大間距值(B)的大小關(guān)系。
上述操作只在報(bào)文序列號(hào)為(最大回卷序列號(hào)(65535)-(最大間距值(B)-1))至(最大回卷序列號(hào)(65535)+(最大間距值(B)-1))的范圍內(nèi)時(shí)執(zhí)行。
所述步驟D、E中,在判斷待判定緩沖區(qū)內(nèi)未被判定合法的報(bào)文的期望接收序列號(hào)(E′)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值與最大間距值(B)的大小關(guān)系時(shí),還包括判斷當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)與最大回卷序列號(hào)(65535)及期望接收序列號(hào)(E′)的差值的絕對(duì)值與最大間距值(B)的大小關(guān)系;期望接收序列號(hào)(E′)與最大回卷序列號(hào)(65535)及當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值與最大間距值(B)的大小關(guān)系。
上述操作也只在報(bào)文序列號(hào)為(最大回卷序列號(hào)(65535)-(最大間距值(B)-1))至(最大回卷序列號(hào)(65535)+(最大間距值(B)-1))的范圍內(nèi)時(shí)執(zhí)行。
所述的當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)為上次接收的合法報(bào)文序列號(hào)加1。
所述的步驟C中,是采用比較當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)與記錄的序列號(hào)集合的方法進(jìn)行的。
本發(fā)明的數(shù)據(jù)包傳輸序列號(hào)合法性的檢查方法,通過(guò)設(shè)置待判定緩沖區(qū)來(lái)暫存序列號(hào)超過(guò)規(guī)定范圍的接收?qǐng)?bào)文,然后再等待此后接收的連續(xù)n個(gè)數(shù)據(jù)包,由它們的序列號(hào)來(lái)決定緩存的接收?qǐng)?bào)文序列號(hào)是否合法,以決定是丟棄還是取出??梢越鉀Q背景技術(shù)方案中報(bào)文序列號(hào)“漂移”和“片段丟失”問(wèn)題。
圖2是本發(fā)明方法的實(shí)施例流程框圖。
本發(fā)明方法對(duì)合法報(bào)文的判定是由第一、第二兩大步驟的操作決定的,即是否滿足由圖2中步驟202及203所決定的兩個(gè)條件。
步驟201,設(shè)置待判定緩沖區(qū),和設(shè)置初始B值,即所規(guī)定的期望接收?qǐng)?bào)文的序列號(hào)與實(shí)際接收?qǐng)?bào)文的序列號(hào)間的最大距離;步驟202,對(duì)于接收的報(bào)文,先利用公式(2)檢查該接收?qǐng)?bào)文,通過(guò)判定其是否滿足小于B值來(lái)確定其是否在期望接收的范圍內(nèi),即是否滿足合法報(bào)文的第一條件Min(Abs(E-r),Abs(r-65536-E),Abs(E-65536-r))<B(公式2)其中E是期望接收?qǐng)?bào)文的序列號(hào),表示為E=(上次合法接收包的序列號(hào)+1)%65535,r是實(shí)際接收?qǐng)?bào)文的序列號(hào),若是在期望接收的范圍內(nèi)(<B),則執(zhí)行步驟203,否則(>B),則執(zhí)行步驟207;步驟203,判斷接收?qǐng)?bào)文的序列號(hào)是否在記錄的序列號(hào)集合之內(nèi),即是否滿足合法報(bào)文的第二條件,可采用比較接收?qǐng)?bào)文的序列號(hào)與記錄的序列號(hào)集合的檢查方法進(jìn)行;
步驟205、206,若接收?qǐng)?bào)文的序列號(hào)在記錄的序列號(hào)集合之內(nèi)(是已經(jīng)成功接收的報(bào)文),則認(rèn)為此接收?qǐng)?bào)文的序列號(hào)非法,接收方拋棄此數(shù)據(jù)包(該數(shù)據(jù)包已經(jīng)成功接收了);步驟24,若接收?qǐng)?bào)文的序列號(hào)不在記錄的序列號(hào)集合之內(nèi),則認(rèn)為此接收?qǐng)?bào)文的序列號(hào)合法(未接收過(guò)),如果該合法序列號(hào)的接收?qǐng)?bào)文是來(lái)自待判定緩沖區(qū)的,接收方留存此數(shù)據(jù)包,同時(shí)交換E與E′的值;E與E′是兩個(gè)期望接收序列號(hào),E′與E的意義類似,但E是期望接收?qǐng)?bào)文的序列號(hào),其值為上次合法接收數(shù)據(jù)包的序列號(hào)+1,而E′是可能接收?qǐng)?bào)文的序列號(hào),表示待判定緩沖區(qū)中尚未被判定合法的報(bào)文的期望接收序列號(hào),其值為待判定緩沖區(qū)內(nèi)的報(bào)文序列號(hào)+1,表示為E′=(緩沖區(qū)內(nèi)的報(bào)文序列號(hào)+1)%65535;步驟210,對(duì)序列號(hào)合法的數(shù)據(jù)包,將其序列號(hào)記錄在序列號(hào)集合內(nèi),供步驟203比較;步驟27,對(duì)于經(jīng)公式(2)判斷為不在期望接收范圍內(nèi)的接收?qǐng)?bào)文,進(jìn)一步利用公式(3)檢查該接收?qǐng)?bào)文,通過(guò)判定是否滿足小于B值來(lái)確定對(duì)待判定緩沖區(qū)內(nèi)數(shù)據(jù)包的存、取操作Min(Abs(E′-r),Abs(r-65536-E′),Abs(E′-65536-r))<B(公式3)將當(dāng)前接收?qǐng)?bào)文的序列號(hào)按照公式3與E′比較,若滿足公式3(<B)則執(zhí)行步驟29,否則執(zhí)行步驟28(>B);步驟28,將不能滿足公式(3)的當(dāng)前接收?qǐng)?bào)文緩存在待判定緩沖區(qū)中,同時(shí)將可能接收?qǐng)?bào)文的序列號(hào)值(E′)設(shè)置為當(dāng)前接收數(shù)據(jù)包序列號(hào)加1,表示為E′=(r+1)%65536;步驟29,若經(jīng)步驟27操作后,能滿足公式3(<B),則說(shuō)明當(dāng)前接收數(shù)據(jù)包及待判定緩沖區(qū)內(nèi)的數(shù)據(jù)包都在接收范圍內(nèi),將當(dāng)前接收數(shù)據(jù)包及緩存在待判定緩沖區(qū)內(nèi)的包都取出,并再執(zhí)行步驟23,進(jìn)行是否滿足合法報(bào)文第二條件的判定,對(duì)于從待判定緩沖區(qū)中取出的合法數(shù)據(jù)包,則需作交換E與E′值的操作。
上述步驟過(guò)程說(shuō)明,待判定緩沖區(qū)的大小決定了對(duì)報(bào)文合法性判斷的準(zhǔn)確性,通常緩存2-3個(gè)數(shù)據(jù)包就能取得較好的效果。
公式2、3的關(guān)鍵處理是Abs(E-r)<B、Abs(E′-r)<B,但是為了解決序列號(hào)回卷對(duì)序列號(hào)合法性判斷的影響,公式中加上了對(duì)邊界值(0,65535)的判斷,即Abs(E-65536-r),Abs(r-65536-E),Abs(r-65536-E′),Abs(E′-65536-r)。在要求較快的報(bào)文轉(zhuǎn)發(fā)速度時(shí),若對(duì)大多數(shù)序列號(hào)非邊界情況的報(bào)文也進(jìn)行這種處理無(wú)疑會(huì)影響轉(zhuǎn)發(fā)速度,因此可以對(duì)邊界報(bào)文作單獨(dú)處理。本發(fā)明采取的方法是取窗口寬度為2×(B-1),即對(duì)于在((65535-(B-1))-(65535+(B-1)))之間的序列號(hào),需要判斷邊界情況,其它報(bào)文則按照Abs(E-r)<B處理。
關(guān)于B的取值。采用本發(fā)明方法時(shí),為解決序列號(hào)漂移問(wèn)題,E的取值與協(xié)議中規(guī)定的不盡相同,GTP協(xié)議中規(guī)定E為已接受報(bào)文個(gè)數(shù)的累加值,但是本方法采用E=(上次接收的合法報(bào)文序列號(hào)+1)%65535。當(dāng)采用GTP協(xié)議中規(guī)定的E值時(shí),GTP協(xié)議中規(guī)定序列號(hào)在當(dāng)前已接收合法報(bào)文個(gè)數(shù)范圍B之內(nèi)的報(bào)文都合法,即序列號(hào)為(E-(B-1))和(E+(B-1))內(nèi)的報(bào)文合法。而采用本發(fā)明方法中的E取值,當(dāng)本次接收數(shù)據(jù)包的序列號(hào)與上一個(gè)接收數(shù)據(jù)包序列號(hào)(SeqNo1)相差(B-1)時(shí),即處于接收邊緣時(shí)(比如序列號(hào)為SeqNo1-(B-1)),下一次的合法包處于另一個(gè)邊緣時(shí)(比如SeqNo1+(B-1)),按照公式2不能判定它是合法包。為能夠準(zhǔn)確快速接收合法報(bào)文,采用新的期望序列號(hào)與接收序列號(hào)的最大距離B,新B值=2×(協(xié)議判斷方法中的B值-1),這樣通過(guò)擴(kuò)大接收范圍,就可以解決上述問(wèn)題。
例如根據(jù)GTP協(xié)議,B=3,當(dāng)采用本發(fā)明的上述方法時(shí),B=2×(3-1)=4,相當(dāng)于當(dāng)前序列號(hào)左右兩邊的序列號(hào)都合法如接收?qǐng)?bào)文序列號(hào)的順序?yàn)?,1,3,4,2,5,6,7,當(dāng)接收到4時(shí),按照GTP協(xié)議方法,E=4,意味著2,3,4,5,6都是合法的報(bào)文;根據(jù)本發(fā)明方法,E=5,若仍然規(guī)定B=3,E-r=5-2=3,就無(wú)法接收到合法報(bào)文′2′。本發(fā)明采用新B值時(shí),B=4,收到報(bào)文4時(shí),E=(r+1)=4+1=5,當(dāng)收到報(bào)文2時(shí),E-r=5-2=3<4,可以接收。
下面以緩存一個(gè)包的情況說(shuō)明本發(fā)明的實(shí)現(xiàn)方法。
比如B=4,接收數(shù)據(jù)包序列號(hào)為0,1,2,3,4,5,11,12,13。
在接收到序列號(hào)為5的合法數(shù)據(jù)包后,E=6(5+1),E′=0。
當(dāng)接收到序列號(hào)為11(r)的當(dāng)前數(shù)據(jù)包后,根據(jù)公式2,r-E=11-6=5>B,判斷此值超過(guò)范圍,再按照公式3,r-E′=11-0=11>B,此時(shí)不拋棄此數(shù)據(jù)包,將其緩存在待判定緩沖區(qū)中,但使E′=12(11+1);當(dāng)接收到序列號(hào)為12(r)的數(shù)據(jù)包時(shí),由公式(2)判斷r-E=12-6=5>B,再由公式(3)判斷r-E′=12-12=0<B,應(yīng)該接收序列號(hào)為12的數(shù)據(jù)包及接收緩沖區(qū)內(nèi)序列號(hào)為11的數(shù)據(jù)包,并交換E與E′,即置E=13,E′=6;當(dāng)接收到序列號(hào)為13(r)的當(dāng)前數(shù)據(jù)包后,根據(jù)公式2,r-E=13-13=0<B,應(yīng)該接收序列號(hào)為13的數(shù)據(jù)包。
本發(fā)明方法的缺點(diǎn)是(1)需要在發(fā)送與接收兩端都采用本發(fā)明的方法,才能充分發(fā)揮本發(fā)明方法的所有優(yōu)點(diǎn)。
按照GTP協(xié)議中規(guī)定的方法,為判斷接收的報(bào)文是否合法,需要記錄期望接收?qǐng)?bào)文序列號(hào)的E值,為使對(duì)端(接收端)能夠正確地接收本端(發(fā)送端)發(fā)送的報(bào)文,需要記錄發(fā)送報(bào)文的序列號(hào)。若兩端都采用本發(fā)明的方法,則不需要擔(dān)心重啟后不能記載發(fā)送報(bào)文的序列號(hào)值。若接收端采用本發(fā)明的方法,接收端重啟后,由于發(fā)送端報(bào)文的發(fā)送序列號(hào)是連續(xù)的,接收端可以正常接收發(fā)送端報(bào)文。若發(fā)送端采用本發(fā)明的方法,發(fā)送端重啟后,對(duì)發(fā)送報(bào)文將從零開(kāi)始分配序列號(hào),接收端也可以正常接收發(fā)送端的報(bào)文。
(2)使接收非法報(bào)文的可能性增大,因?yàn)槿绻凑誈TP協(xié)議的方法處理,對(duì)于與E值相差B范圍內(nèi)的序列號(hào)都判定是合法的,采用本發(fā)明方法后,需要擴(kuò)大接收范圍B的范圍,即新B值=2×(協(xié)議判斷方法中B值-1),這意味著會(huì)使接收非法報(bào)文的可能性增大。但是由于新B值相對(duì)于65535來(lái)說(shuō)是很小的,這種影響也可忽略不計(jì)。
權(quán)利要求
1.一種數(shù)據(jù)報(bào)文傳輸序列號(hào)合法性的檢查方法,其特征在于包括A.設(shè)置一個(gè)待判定緩沖區(qū),和設(shè)置一個(gè)期望接收?qǐng)?bào)文序列號(hào)(E)與實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的最大間距值(B);B.在當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值小于最大間距值(B),且當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)沒(méi)有處于記錄的序列號(hào)集合內(nèi)時(shí),判定當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)是合法的,并將合法的序列號(hào)記錄在序列號(hào)集合內(nèi);C.在當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值小于最大間距值(B),但當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)處于記錄的序列號(hào)集合內(nèi)時(shí),判定當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)是非法的,并拋棄該序列號(hào)的接收?qǐng)?bào)文;D.在當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值大于最大間距值(B),且緩沖區(qū)內(nèi)未被判定合法的報(bào)文的期望接收序列號(hào)(E′)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值大于最大間距值(B)時(shí),將當(dāng)前實(shí)際接收?qǐng)?bào)文存儲(chǔ)在待判定緩沖區(qū)內(nèi),并讓待判定緩沖區(qū)內(nèi)未被判定合法的報(bào)文的期望接收序列號(hào)(E′)等于當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)與1的和;E.在當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值大于最大間距值(B),且待判定緩沖區(qū)內(nèi)未被判定合法的報(bào)文的期望接收序列號(hào)(E′)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值小于最大間距值(B)時(shí),將當(dāng)前實(shí)際接收?qǐng)?bào)文及待判定緩沖區(qū)內(nèi)存儲(chǔ)的接收?qǐng)?bào)文取出,并返回步驟B、C執(zhí)行,并在步驟B中交換當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與待判定緩沖區(qū)內(nèi)未被判定合法的報(bào)文的期望接收序列號(hào)(E′)的值。
2.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)報(bào)文傳輸序列號(hào)合法性的檢查方法,其特征在于所述的步驟A中,設(shè)置的最大間距值(B),為2×(B′-1),B′是GTP協(xié)議中規(guī)定的期望接收?qǐng)?bào)文序列號(hào)(E)與實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的最大間距值。
3.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)報(bào)文傳輸序列號(hào)合法性的檢查方法,其特征在于所述的步驟B、C、D、E中,在判斷當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值與最大間距值(B)的大小關(guān)系時(shí),還包括判斷當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)與最大回卷序列號(hào)(65535)及當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)的差值的絕對(duì)值與最大間距值(B)的大小關(guān)系;當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)與最大回卷序列號(hào)(65535)及當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值與最大間距值(B)的大小關(guān)系。
4.根據(jù)權(quán)利要求3所述的一種數(shù)據(jù)報(bào)文傳輸序列號(hào)合法性的檢查方法,其特征在于上述操作只在報(bào)文序列號(hào)為(最大回卷序列號(hào)(65535)-(最大間距值(B)-1))至(最大回卷序列號(hào)(65535)+(最大間距值(B)-1))的范圍內(nèi)時(shí)執(zhí)行。
5.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)報(bào)文傳輸序列號(hào)合法性的檢查方法,其特征在于所述步驟D、E中,在判斷待判定緩沖區(qū)內(nèi)未被判定合法的報(bào)文的期望接收序列號(hào)(E′)與當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值與最大間距值(B)的大小關(guān)系時(shí),還包括判斷當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)與最大回卷序列號(hào)(65535)及期望接收序列號(hào)(E′)的差值的絕對(duì)值與最大間距值(B)的大小關(guān)系;期望接收序列號(hào)(E′)與最大回卷序列號(hào)(65535)及當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)的差值的絕對(duì)值與最大間距值(B)的大小關(guān)系。
6.根據(jù)權(quán)利要求5所述的一種數(shù)據(jù)報(bào)文傳輸序列號(hào)合法性的檢查方法,其特征在于上述操作也只在報(bào)文序列號(hào)為(最大回卷序列號(hào)(65535)-(最大間距值(B)-1))至(最大回卷序列號(hào)(65535)+(最大間距值(B)-1))的范圍內(nèi)時(shí)執(zhí)行。
7.根據(jù)權(quán)利要求1或2或3所述的一種數(shù)據(jù)報(bào)文傳輸序列號(hào)合法性的檢查方法,其特征在于所述的當(dāng)前期望接收?qǐng)?bào)文序列號(hào)(E)為上次接收的合法報(bào)文序列號(hào)加1。
8.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)報(bào)文傳輸序列號(hào)合法性的檢查方法,其特征在于所述的步驟C中,是采用比較當(dāng)前實(shí)際接收?qǐng)?bào)文序列號(hào)(r)與記錄的序列號(hào)集合的方法進(jìn)行的。
全文摘要
本發(fā)明涉及一種在GTP協(xié)議中,對(duì)接收?qǐng)?bào)文序列號(hào)進(jìn)行合法性檢查的方法。包括設(shè)置一個(gè)緩沖區(qū),一個(gè)期望接收?qǐng)?bào)文序列號(hào)E與實(shí)際接收?qǐng)?bào)文序列號(hào)r的最大間距值B;當(dāng)|E-r|<B,且r沒(méi)有處于當(dāng)前序列號(hào)集合內(nèi)時(shí),判定其序列號(hào)合法,否則判為非法并丟棄;在|E-r|>B時(shí),進(jìn)一步判定是否滿足|E′-r|<B,E′為緩沖區(qū)內(nèi)暫時(shí)未被判定合法的報(bào)文的期望接收序列號(hào),不滿足時(shí)將當(dāng)前實(shí)際接收?qǐng)?bào)文存儲(chǔ)在待判定緩沖區(qū)內(nèi),并讓E′=r+1,滿足時(shí),取出當(dāng)前實(shí)際接收?qǐng)?bào)文及待判定緩沖區(qū)內(nèi)存儲(chǔ)的報(bào)文,并交換E與E′。本發(fā)明通過(guò)將尚不能判定為合法的數(shù)據(jù)包暫存在緩存區(qū)內(nèi),然后根據(jù)后續(xù)接收包與該緩存包序列號(hào)間的相關(guān)性來(lái)決定緩存包是否合法,可以解決“漂移”和“片段丟失”現(xiàn)象。
文檔編號(hào)H04L29/06GK1400787SQ0112393
公開(kāi)日2003年3月5日 申請(qǐng)日期2001年8月6日 優(yōu)先權(quán)日2001年8月6日
發(fā)明者于建港 申請(qǐng)人:華為技術(shù)有限公司