專利名稱:多單元發(fā)送時的報文序列號檢測方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)傳輸技術(shù)領(lǐng)域,具體涉及多單元發(fā)送時的報文序列號檢測方法及裝置。
背景技術(shù):
在數(shù)據(jù)通訊領(lǐng)域中,通訊雙方通常使用報文序列號來標識報文的唯一性。發(fā)送方維護一個發(fā)送序列號狀態(tài),每發(fā)送一個報文更新發(fā)送序列號狀態(tài);接收方維護一個接收序列號狀態(tài),每收到一個報文更新接收序列號狀態(tài)。序列號狀態(tài)的實際內(nèi)容與通訊協(xié)議相關(guān),但通常發(fā)送方序列號狀態(tài)包含下一個發(fā)送報文使用的序列號。由于報文在到達接收方前,中間要經(jīng)過多個設(shè)備進行轉(zhuǎn)發(fā),不同的報文所經(jīng)過的鏈路和設(shè)備不同,到達接收方的順序與發(fā)送方發(fā)送的順序可能不同。所以,接收方采用滑動窗口來記錄接收序列號狀態(tài)。如圖1所示,滑動窗口通常包括窗口左邊界、窗口寬度、已收到的序列號標記,還可包括窗口右邊界。其中窗口左邊界與接收方可接受的最小報文序列號對應(yīng);與報文序列號的發(fā)送順序?qū)?yīng),每一個小窗口對應(yīng)一個報文序列號;每收到一個序列號,將窗口上對應(yīng)的序列號標記為已收到如可標記為1;窗口寬度小于或等于接收方可接受的報文序列號的寬度,窗口寬度可為固定的也可為可變的。
IPsec是IP安全協(xié)議,在TCP/IP協(xié)議棧的IP層為通訊數(shù)據(jù)提供機密、完整、真實、防重放的安全服務(wù),是目前最可靠的安全技術(shù)之一。根據(jù)IPsec協(xié)議,通訊雙方通過因特網(wǎng)密鑰協(xié)商(IKE)確定安全聯(lián)盟(SA)參數(shù),并將該SA參數(shù)作為IPsec報文的序列號。為了實現(xiàn)防重放,發(fā)送方每使用一個SA發(fā)送一個報文,將該SA的序列號增1,以便用該SA發(fā)送下一個報文。圖2是現(xiàn)有的IPsec報文傳送流程圖,如圖2所示,其具體步驟如下步驟201發(fā)送方將報文序列號填入要發(fā)送的報文中,然后將報文發(fā)送給接收方。
步驟202接收方收到報文后,判斷報文序列號是否落在滑動窗口內(nèi),若是,執(zhí)行步驟203;否則,執(zhí)行步驟205。
步驟203接收方判斷該報文序列號在滑動窗口上是否標記為未收到,若是,執(zhí)行步驟204;否則,執(zhí)行步驟207。
步驟204接收方判定該報文為合法報文,并在滑動窗口上將該報文序列號標記為已收到,本流程結(jié)束。
步驟205接收方判斷報文序列號是否落在滑動窗口的左邊界之外,若是,執(zhí)行步驟207;否則,執(zhí)行步驟206。
步驟206接收方判定該報文為合法報文,同時確定報文序列號落在滑動窗口的左邊界與窗口寬度之和所對應(yīng)邊界之外,將滑動窗口右移,以使滑動窗口包含該報文序列號,并在滑動窗口上將該報文序列號標記為已收到,本流程結(jié)束。
步驟207接收方判定該報文為非法報文,丟棄該報文,本流程結(jié)束。
上述方法只適用于發(fā)送方采用一個單元處理同一個連接的數(shù)據(jù),對發(fā)送方采用多個單元處理同一個連接的數(shù)據(jù)時,由于多個單元使用的序列號集合相同,則一個單元發(fā)送的報文序列號就會與另一個單元發(fā)送的報文序列號相同,接收方就會收到來自多個單元的多個相同序列號的報文,從而在接收到來自其中一個單元的某序列號的報文后,再接收到來自另外一個單元的相同序列號的報文,在進行滑動窗口檢測時就會誤認為該報文已收到而丟棄該報文。為了解決該問題,現(xiàn)有技術(shù)在發(fā)送方采用如下方法在每個單元發(fā)送一個報文時,通知其它單元該報文序列號已使用,其它單元得知該序列號已使用,在后續(xù)的發(fā)送過程中則不會再采用該序列號發(fā)送報文,具體流程如圖3所示,其具體步驟如下步驟301發(fā)送方的單元確定要發(fā)送報文,根據(jù)自身保存的報文序列號總集合和從其它單元發(fā)來的已使用報文序列號集合,選擇一個未使用的報文序列號填入報文中然后將報文發(fā)送給接收方;同時,通知其它單元該報文序列號已使用。
步驟302~307與步驟202~207相同。
這種方法的缺點是增加了系統(tǒng)的消息負載,且也可能會導(dǎo)致報文的丟失。因為在發(fā)送方的單元較多時,由于各單元的發(fā)送時序、發(fā)送速率的不同,以及通知報文序列號已使用消息的時延,很可能出現(xiàn)單元A剛使用過一個序列號發(fā)送報文,但單元A發(fā)送的該序列號已使用信息還未到達單元B而單元B的下一個發(fā)送時刻已經(jīng)到來,導(dǎo)致單元B使用與單元A同樣的序列號發(fā)送下一個報文,從而導(dǎo)致報文的丟失。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種多單元發(fā)送時的報文序列號檢測方法,以在發(fā)送方包含多個單元時,提高報文合法性檢測的準確率,避免報文的丟失;本發(fā)明的另一目的在于,提供一種多單元報文發(fā)送裝置、一種多單元發(fā)送時的報文接收裝置和一種多單元發(fā)送時的報文序列號檢測系統(tǒng),以提高報文合法性檢測的準確率。
為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種多單元發(fā)送時的報文序列號檢測方法,該方法預(yù)先將所有報文序列號劃分為互不重疊的、數(shù)目至少等于發(fā)送方包含的單元數(shù)的子集,將每個子集分配給一個單元;接收方根據(jù)各子集確定滑動窗口,且記錄滑動窗口與序列號子集的對應(yīng)關(guān)系,包括發(fā)送方的單元將自身子集的一個序列號填入到要發(fā)送的報文中,將該報文發(fā)送給接收方;接收方收到該報文后,根據(jù)自身記錄的滑動窗口與序列號子集的對應(yīng)關(guān)系,查找該報文的序列號對應(yīng)的滑動窗口,然后根據(jù)所述查找到的滑動窗口和所述序列號進行報文合法性檢測。
所述根據(jù)所述查找到的滑動窗口和所述序列號進行報文合法性檢測具體為a、接收方判斷序列號是否落在所述滑動窗口內(nèi),若是,執(zhí)行步驟b;否則,執(zhí)行步驟c;b、接收方判斷該序列號在所述滑動窗口上是否標記為未收到,若是,判定該報文為合法報文,并在滑動窗口中將該序列號標記為已收到,本流程結(jié)束;否則,判定該報文為非法報文,丟棄該報文,本流程結(jié)束;c、接收方判斷該序列號是否落在滑動窗口的左邊界之外,若是,判定該報文為非法報文,丟棄該報文,本流程結(jié)束;否則,接收方判定該報文為合法報文,將滑動窗口右移至包含該序列號,并在滑動窗口上將該序列號標記為已收到,本流程結(jié)束。
所述接收方根據(jù)各子集確定滑動窗口具體為接收方根據(jù)各子集為每個子集設(shè)定一個滑動窗口。
所述發(fā)送方的各單元發(fā)送報文的速率相等,所述將序列號劃分為互不重疊的、數(shù)目至少等于發(fā)送方包含的單元數(shù)的子集具體為將所有序列號按照從小到大的順序依次排列,然后將各序列號輪循分配給各個子集;所述接收方根據(jù)各子集確定滑動窗口具體為接收方根據(jù)各子集為所有子集設(shè)定同一個滑動窗口。
所述序列號子集的相鄰兩序列號之間滿足預(yù)定的計算規(guī)則,所述發(fā)送方的單元將自身子集的一個序列號填入到要發(fā)送的報文中具體為所述單元根據(jù)前一次發(fā)送報文的序列號和所述計算規(guī)則,計算出當前報文的序列號,然后將該序列號填入到要發(fā)送的報文中。
所述各滑動窗口以滑動窗口序號區(qū)分,所述滑動窗口與序列號子集的對應(yīng)關(guān)系具體為滑動窗口的序號與該序列號子集中的序列號滿足一定的計算規(guī)則,所述接收方查找報文的序列號對應(yīng)的滑動窗口具體為接收方根據(jù)報文的序列號及所述計算規(guī)則,計算出滑動窗口的序號,從而找到該滑動窗口序號對應(yīng)的滑動窗口。
一種多單元發(fā)送時的報文發(fā)送裝置,該裝置包括發(fā)送方序列號子集分配單元和至少兩個發(fā)送單元,其中發(fā)送方序列號子集分配單元,用于根據(jù)與接收方相同的序列號分配規(guī)則,將序列號集合劃分為數(shù)目至少等于發(fā)送單元數(shù)的、互不重疊的序列號子集,然后為每個發(fā)送單元分配一個序列號子集;任意一個發(fā)送單元,用于在要發(fā)送報文時,將發(fā)送方序列號子集分配單元發(fā)來的一個序列號填入到所述報文中,然后將報文發(fā)送給接收單元。
一種多單元發(fā)送時的報文接收裝置,該裝置包括接收方序列號子集分配單元和接收單元,其中接收方序列號子集分配單元,用于根據(jù)與發(fā)送方相同的序列號分配規(guī)則,將序列號集合劃分為數(shù)目至少等于發(fā)送單元數(shù)的、互不重疊的序列號子集,然后將各序列號子集發(fā)送給接收單元;接收單元,用于根據(jù)接收方序列號子集分配單元發(fā)來的序列號子集,確定滑動窗口,保存序列號子集與滑動窗口的對應(yīng)關(guān)系;在收到發(fā)送單元發(fā)來的報文后,根據(jù)所述滑動窗口和所述報文的序列號對所述報文進行合法性檢測。
所述接收單元包括滑動窗口確定單元和序列號檢測單元,其中,滑動窗口確定單元,用于根據(jù)接收方序列號子集分配單元發(fā)來的序列號子集,確定滑動窗口,并將序列號子集和滑動窗口的對應(yīng)關(guān)系發(fā)送給序列號檢測單元;序列號檢測單元,用于在收到發(fā)送單元發(fā)來的報文后,在自身保存的來自滑動窗口確定單元的序列號子集和滑動窗口的對應(yīng)關(guān)系中,查找到所述報文序列號對應(yīng)的滑動窗口,然后根據(jù)所述滑動窗口和所述報文的序列號對所述報文進行合法性檢測。
一種多單元發(fā)送時的報文序列號檢測系統(tǒng),該系統(tǒng)包括報文發(fā)送裝置和報文接收裝置,且,報文發(fā)送裝置包括發(fā)送方序列號子集分配單元和至少兩個發(fā)送單元,報文接收裝置包括接收方序列號子集分配單元和接收單元,其中發(fā)送方序列號子集分配單元,用于根據(jù)與接收方相同的序列號分配規(guī)則,將序列號集合劃分為數(shù)目至少等于發(fā)送單元數(shù)的、互不重疊的序列號子集,然后為每個發(fā)送單元分配一個序列號子集;任意一個發(fā)送單元,用于在要發(fā)送報文時,將發(fā)送方序列號子集分配單元發(fā)來的一個序列號填入到所述報文中,然后將報文發(fā)送給接收單元;接收方序列號子集分配單元,用于根據(jù)與發(fā)送方相同的序列號分配規(guī)則,將序列號集合劃分為數(shù)目至少等于發(fā)送單元數(shù)的、互不重疊的序列號子集,然后將各序列號子集發(fā)送給接收單元;接收單元,用于根據(jù)接收方序列號子集分配單元發(fā)來的序列號子集,確定滑動窗口,保存序列號子集與滑動窗口的對應(yīng)關(guān)系;在收到任意一個發(fā)送單元發(fā)來的報文后,根據(jù)所述滑動窗口和所述報文的序列號對所述報文進行合法性檢測。
所述接收單元包括滑動窗口確定單元和序列號檢測單元,其中,滑動窗口確定單元,用于根據(jù)接收方序列號子集分配單元發(fā)來的序列號子集,確定滑動窗口,并將序列號子集和滑動窗口的對應(yīng)關(guān)系發(fā)送給序列號檢測單元;序列號檢測單元,用于在收到任意一個發(fā)送單元發(fā)來的報文后,在自身保存的來自滑動窗口確定單元的序列號子集和滑動窗口的對應(yīng)關(guān)系中,查找到所述報文序列號對應(yīng)的滑動窗口,然后根據(jù)所述滑動窗口和所述報文的序列號對所述報文進行合法性檢測。
在所述報文發(fā)送裝置和報文接收裝置位于同一設(shè)備時,所述發(fā)送方序列號子集分配單元和接收方序列號子集分配單元為同一單元。
與現(xiàn)有技術(shù)相比,本發(fā)明預(yù)先將序列號劃分為互不重疊的、數(shù)目至少等于發(fā)送方包含的單元數(shù)的子集,將每個子集分配給一個單元;接收方根據(jù)各子集確定滑動窗口,且記錄滑動窗口與序列號子集的對應(yīng)關(guān)系;接收方收到該報文后,根據(jù)自身記錄的滑動窗口與序列號子集的對應(yīng)關(guān)系,查找該報文的序列號對應(yīng)的滑動窗口,然后根據(jù)所述查找到的滑動窗口和所述序列號確定該報文是否為合法報文。本發(fā)明使得發(fā)送方各單元發(fā)送的報文的序列號沒有重疊,且接收方收到報文后,根據(jù)序列號找到對應(yīng)滑動窗口進行報文合法性檢測,提高了報文合法性檢測的準確率,避免了報文的丟失。
圖1為滑動窗口結(jié)構(gòu)示意圖;圖2為現(xiàn)有的一個單元發(fā)送時的報文序列號檢測流程圖;圖3為現(xiàn)有的多單元發(fā)送時的報文序列號檢測流程圖;圖4為本發(fā)明提供的多單元發(fā)送時的報文序列號檢測流程圖;圖5為本發(fā)明提供的多單元發(fā)送時的報文序列號檢測的實施例的示意圖;圖6為本發(fā)明提供的多單元發(fā)送時的報文發(fā)送裝置框圖;圖7為本發(fā)明提供的多單元發(fā)送時的報文接收裝置框圖一;圖8為本發(fā)明提供的多單元發(fā)送時的報文接收裝置框圖二;圖9為本發(fā)明提供的多單元發(fā)送時的報文序列號檢測系統(tǒng)框圖一;圖10為本發(fā)明提供的多單元發(fā)送時的報文序列號檢測系統(tǒng)框圖二。
具體實施例方式
下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。
圖4是本發(fā)明提供的多單元發(fā)送時的報文序列號檢測流程圖,如圖4所示,其具體步驟如下步驟401預(yù)先將報文序列號劃分為互不重疊的、數(shù)目至少等于發(fā)送方所包含的單元數(shù)的子集,將每個子集包含的序列號分配給一個單元;接收方根據(jù)各序列號子集確定滑動窗口,且接收方記錄滑動窗口與序列號子集的對應(yīng)關(guān)系。
這里,序列號集合的確定和子集的劃分可根據(jù)一定規(guī)則配置,若協(xié)議本身具有序列號集合確定和子集劃分的協(xié)商機制,則根據(jù)該協(xié)商機制來確定序列號集合和劃分子集,接收方根據(jù)該協(xié)商機制可得知序列號集合和劃分的子集。
接收方可為發(fā)送方每個單元對應(yīng)的序列號子集確定一個滑動窗口,即滑動窗口的數(shù)目與序列號子集的數(shù)目相同;或者,若發(fā)送方每個單元發(fā)送報文的速率相同,且序列號子集的劃分是將總集合中的序列號進行有序排列后,按照順序輪循分配給每一個單元,則接收方可以只使用一個滑動窗口對發(fā)送方所有單元發(fā)來的報文進行檢測,如發(fā)送方有3個單元單元1、單元2和單元3,序列號總集合為M={1,2,3,4,5,6},則單元1的序列號集合為A={1,4},單元2的序列號集合為B={2,5},單元3的序列號集合為C={3,6},則接收方可使用一個左邊界為1、寬度為6的滑動窗口對發(fā)送方3個單元發(fā)來的報文進行檢測。
各子集間的序列號必須沒有重合,即一個序列號唯一屬于一個子集。
步驟402發(fā)送方的單元將自身序列號子集的一個序列號填入到要發(fā)送的報文中,然后將該報文發(fā)送給接收方。
發(fā)送方單元在發(fā)送報文時,可依次從自身的序列號子集中取出一個序列號填入到報文中;或者,對某個單元來說,若自身報文的相鄰兩序列號之間滿足一定的計算規(guī)則,則該單元只需保存自身序列號子集的第一個序列號和所述計算規(guī)則,在每發(fā)送一個報文后,可根據(jù)該計算規(guī)則計算出下一個報文序列號,同樣接收方也可根據(jù)接收到報文的序列號計算出該序列號所屬的滑動窗口,例如把遞增的序列號集合{a,b}按照順序輪循分配到m個子集Seq(0)~Seq(m-1),Seq(0)={a,a+m,a+2*m,a+3*m,....,a+n*m},Seq(1)={a+1,a+m+1,a+2*m+1,...,a+n*m+1},...,Seq(i)={a+i,a+2*m+i,...,a+n*m+i},...,每個子集Seq(i)對應(yīng)一個單元i,同時對應(yīng)一個滑動窗口i,這樣,對某個單元來說,若當前報文的序列號為Seq,則可知下一個報文的序列號為Seq+m;接收方收到報文后,可知該序列號Seq所屬的子集為(Seq-a)%m,可利用滑動窗口(Seq-a)%m進行檢測。
步驟403接收方收到該報文后,根據(jù)自身記錄的滑動窗口與序列號子集的對應(yīng)關(guān)系,查找該報文所包含的序列號對應(yīng)的滑動窗口。
步驟404接收方判斷該查找到的序列號是否落在滑動窗口內(nèi),若是,執(zhí)行步驟405;否則,執(zhí)行步驟407。
步驟405接收方判斷該報文序列號在滑動窗口上是否標記為未收到,若是,執(zhí)行步驟406;否則,執(zhí)行步驟409。
步驟406接收方判定該報文為合法報文,并在滑動窗口中將該報文序列號標記為已收到,本流程結(jié)束。
步驟407接收方判斷該報文序列號是否落在滑動窗口的左邊界之外,若是,執(zhí)行步驟409;否則,執(zhí)行步驟408。
步驟408接收方判定該報文為合法報文,并判定該報文序列號落在滑動窗口的左邊界加上滑動窗口寬度后所得邊界之外,將滑動窗口右移至包含該序列號,并在滑動窗口上將該報文序列號標記為已收到,本流程結(jié)束。
步驟409接收方判定該報文為非法報文,丟棄該報文,本流程結(jié)束。
以下給出一個具體例子如圖5所示,設(shè)發(fā)送方有兩個單元單元1和單元2,發(fā)送方的報文序列號為1~2n,且n為整數(shù),則將報文序列號劃分為兩個子集A={1,3,5,...2n-1},B={2,4,6,...,2n},并將A作為單元1的發(fā)送報文序列號集合,將B作為單元2的發(fā)送報文序列號集合,同時,接收方根據(jù)單元1和單元2的報文序列號集合,確定集合A的滑動窗口1為左邊界為1,總寬度為n,確定集合B的滑動窗口2為左邊界為2,總寬度為n;此后,單元1第一次發(fā)送報文時,將序列號1填入到報文中,同時計算出下一個序列號為3;單元2第一次發(fā)送報文時,將序列號2填入到報文中,同時計算出下一個序列號為4;接收方收到報文后,若檢測到報文序列號為奇數(shù),則知該報文來自單元1,則利用滑動窗口1來進行報文合法性檢測,若檢測到報文序列號為偶數(shù),則知該報文來自單元2,則利用滑動窗口2來進行報文合法性檢測。
圖6是本發(fā)明提供的多單元發(fā)送時的報文發(fā)送裝置框圖,如圖6所示,其主要包括發(fā)送方序列號子集分配單元61和至少兩個發(fā)送單元1~n發(fā)送方序列號子集分配單元61用于根據(jù)與接收方相同的序列號分配規(guī)則,將序列號集合劃分為數(shù)目至少等于發(fā)送單元數(shù)的、互不重疊的序列號子集,然后為每個發(fā)送單元分配一個序列號子集。
發(fā)送方序列號子集分配單元61可在劃分完序列號集合之后,立刻將各序列號子集分配給各發(fā)送單元;也可在發(fā)送單元發(fā)送報文時,再將對應(yīng)序列號子集的序列號發(fā)送給發(fā)送單元。
發(fā)送單元1~n用于在要發(fā)送報文時,將發(fā)送方序列號子集分配單元61發(fā)來的一個序列號填入到所述報文中,然后將報文發(fā)送給接收方。
這里,n為大于1的整數(shù)。
圖7是本發(fā)明提供的多單元發(fā)送時的報文接收裝置框圖一,如圖7所示,其主要包括接收方序列號子集分配單元71用于根據(jù)與發(fā)送方相同的序列號分配規(guī)則,將序列號集合劃分為數(shù)目至少等于發(fā)送單元數(shù)的、互不重疊的序列號子集,然后將各序列號子集發(fā)送給接收單元72。
接收單元72用于根據(jù)接收方序列號子集分配單元71發(fā)來的序列號子集,確定滑動窗口,保存序列號子集與滑動窗口的對應(yīng)關(guān)系;在收到發(fā)送單元發(fā)來的報文后,根據(jù)所述滑動窗口和所述報文的序列號對所述報文進行合法性檢測。
圖8是本發(fā)明提供的多單元發(fā)送時的報文接收裝置框圖二,與圖7所示裝置相比,接收單元72包括滑動窗口確定單元721和序列號檢測單元722,其中,滑動窗口確定單元721用于根據(jù)接收方序列號子集分配單元71發(fā)來的序列號子集,確定滑動窗口,并將序列號子集和滑動窗口的對應(yīng)關(guān)系發(fā)送給序列號檢測單元722;序列號檢測單元722用于在收到發(fā)送單元發(fā)來的報文后,在自身保存的來自滑動窗口確定單元721的序列號子集和滑動窗口的對應(yīng)關(guān)系中,查找到所述報文序列號對應(yīng)的滑動窗口,然后根據(jù)所述滑動窗口和所述報文的序列號對所述報文進行合法性檢測。
圖9為本發(fā)明提供的多單元發(fā)送時的報文序列號檢測系統(tǒng)框圖一,如圖9所示,該系統(tǒng)包括報文發(fā)送裝置和報文接收裝置,其中,報文發(fā)送裝置包括發(fā)送方序列號子集分配單元91和發(fā)送單元1~n發(fā)送方序列號子集分配單元91用于根據(jù)與接收方相同的序列號分配規(guī)則,將序列號集合劃分為數(shù)目至少等于發(fā)送單元數(shù)的、互不重疊的序列號子集,然后為每個發(fā)送單元分配一個序列號子集。
發(fā)送單元1~n用于在要發(fā)送報文時,將發(fā)送方序列號子集分配單元91發(fā)來的一個序列號填入到所述報文中,然后將報文發(fā)送給接收單元93。
這里,n為大于1的整數(shù)。
報文接收裝置包括接收方序列號子集分配單元92和接收單元93接收方序列號子集分配單元92用于根據(jù)與發(fā)送方相同的序列號分配規(guī)則,將序列號集合劃分為數(shù)目至少等于發(fā)送單元數(shù)的、互不重疊的序列號子集,然后將各序列號子集發(fā)送給接收單元93。
接收單元93用于根據(jù)接收方序列號子集分配單元92發(fā)來的序列號子集,確定滑動窗口,保存序列號子集與滑動窗口的對應(yīng)關(guān)系;在收到任意一個發(fā)送單元發(fā)來的報文后,根據(jù)所述滑動窗口和所述報文的序列號對所述報文進行合法性檢測。
需要指出的是,在報文發(fā)送裝置和報文接收裝置位于同一設(shè)備中時,發(fā)送方序列號子集分配單元91和接收方序列號子集分配單元92可為同一單元。
圖10為本發(fā)明提供的多單元發(fā)送時的報文序列號檢測系統(tǒng)框圖二,如圖10所示,與圖9所示系統(tǒng)相比,接收單元93包括滑動窗口確定單元931和序列號檢測單元932,其中,滑動窗口確定單元931用于根據(jù)接收方序列號子集分配單元92發(fā)來的序列號子集,確定滑動窗口,并將序列號子集和滑動窗口的對應(yīng)關(guān)系發(fā)送給序列號檢測單元932;序列號檢測單元932用于在收到任意一個發(fā)送單元發(fā)來的報文后,在自身保存的來自滑動窗口確定單元931的序列號子集和滑動窗口的對應(yīng)關(guān)系中,查找到所述報文序列號對應(yīng)的滑動窗口,然后根據(jù)所述滑動窗口和所述報文的序列號對所述報文進行合法性檢測。
以上所述僅為本發(fā)明的過程及方法實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種多單元發(fā)送時的報文序列號檢測方法,其特征在于,預(yù)先將所有報文序列號劃分為互不重疊的、數(shù)目至少等于發(fā)送方包含的單元數(shù)的子集,將每個子集分配給一個單元;接收方根據(jù)各子集確定滑動窗口,且記錄滑動窗口與序列號子集的對應(yīng)關(guān)系,該方法包括發(fā)送方的單元將自身子集的一個序列號填入到要發(fā)送的報文中,將該報文發(fā)送給接收方;接收方收到該報文后,根據(jù)自身記錄的滑動窗口與序列號子集的對應(yīng)關(guān)系,查找該報文的序列號對應(yīng)的滑動窗口,然后根據(jù)所述查找到的滑動窗口和所述序列號進行報文合法性檢測。
2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述查找到的滑動窗口和所述序列號進行報文合法性檢測具體為a、接收方判斷序列號是否落在所述滑動窗口內(nèi),若是,執(zhí)行步驟b;否則,執(zhí)行步驟c;b、接收方判斷該序列號在所述滑動窗口上是否標記為未收到,若是,判定該報文為合法報文,并在滑動窗口中將該序列號標記為已收到,本流程結(jié)束;否則,判定該報文為非法報文,丟棄該報文,本流程結(jié)束;c、接收方判斷該序列號是否落在滑動窗口的左邊界之外,若是,判定該報文為非法報文,丟棄該報文,本流程結(jié)束;否則,接收方判定該報文為合法報文,將滑動窗口右移至包含該序列號,并在滑動窗口上將該序列號標記為已收到,本流程結(jié)束。
3.如權(quán)利要求1所述的方法,其特征在于,所述接收方根據(jù)各子集確定滑動窗口具體為接收方根據(jù)各子集為每個子集設(shè)定一個滑動窗口。
4.如權(quán)利要求1所述的方法,其特征在于,所述發(fā)送方的各單元發(fā)送報文的速率相等,所述將序列號劃分為互不重疊的、數(shù)目至少等于發(fā)送方包含的單元數(shù)的子集具體為將所有序列號按照從小到大的順序依次排列,然后將各序列號輪循分配給各個子集;所述接收方根據(jù)各子集確定滑動窗口具體為接收方根據(jù)各子集為所有子集設(shè)定同一個滑動窗口。
5.如權(quán)利要求1所述的方法,其特征在于,所述序列號子集的相鄰兩序列號之間滿足預(yù)定的計算規(guī)則,所述發(fā)送方的單元將自身子集的一個序列號填入到要發(fā)送的報文中具體為所述單元根據(jù)前一次發(fā)送報文的序列號和所述計算規(guī)則,計算出當前報文的序列號,然后將該序列號填入到要發(fā)送的報文中。
6.如權(quán)利要求1所述的方法,其特征在于,所述各滑動窗口以滑動窗口序號區(qū)分,所述滑動窗口與序列號子集的對應(yīng)關(guān)系具體為滑動窗口的序號與該序列號子集中的序列號滿足一定的計算規(guī)則,所述接收方查找報文的序列號對應(yīng)的滑動窗口具體為接收方根據(jù)報文的序列號及所述計算規(guī)則,計算出滑動窗口的序號,從而找到該滑動窗口序號對應(yīng)的滑動窗口。
7.一種多單元發(fā)送時的報文發(fā)送裝置,其特征在于,該裝置包括發(fā)送方序列號子集分配單元和至少兩個發(fā)送單元,其中發(fā)送方序列號子集分配單元,用于根據(jù)與接收方相同的序列號分配規(guī)則,將序列號集合劃分為數(shù)目至少等于發(fā)送單元數(shù)的、互不重疊的序列號子集,然后為每個發(fā)送單元分配一個序列號子集;任意一個發(fā)送單元,用于在要發(fā)送報文時,將發(fā)送方序列號子集分配單元發(fā)來的一個序列號填入到所述報文中,然后將報文發(fā)送給接收單元。
8.一種多單元發(fā)送時的報文接收裝置,其特征在于,該裝置包括接收方序列號子集分配單元和接收單元,其中接收方序列號子集分配單元,用于根據(jù)與發(fā)送方相同的序列號分配規(guī)則,將序列號集合劃分為數(shù)目至少等于發(fā)送單元數(shù)的、互不重疊的序列號子集,然后將各序列號子集發(fā)送給接收單元;接收單元,用于根據(jù)接收方序列號子集分配單元發(fā)來的序列號子集,確定滑動窗口,保存序列號子集與滑動窗口的對應(yīng)關(guān)系;在收到發(fā)送單元發(fā)來的報文后,根據(jù)所述滑動窗口和所述報文的序列號對所述報文進行合法性檢測。
9.如權(quán)利要求8所述的裝置,其特征在于,所述接收單元包括滑動窗口確定單元和序列號檢測單元,其中,滑動窗口確定單元,用于根據(jù)接收方序列號子集分配單元發(fā)來的序列號子集,確定滑動窗口,并將序列號子集和滑動窗口的對應(yīng)關(guān)系發(fā)送給序列號檢測單元;序列號檢測單元,用于在收到發(fā)送單元發(fā)來的報文后,在自身保存的來自滑動窗口確定單元的序列號子集和滑動窗口的對應(yīng)關(guān)系中,查找到所述報文序列號對應(yīng)的滑動窗口,然后根據(jù)所述滑動窗口和所述報文的序列號對所述報文進行合法性檢測。
10.一種多單元發(fā)送時的報文序列號檢測系統(tǒng),其特征在于,該系統(tǒng)包括報文發(fā)送裝置和報文接收裝置,且,報文發(fā)送裝置包括發(fā)送方序列號子集分配單元和至少兩個發(fā)送單元,報文接收裝置包括接收方序列號子集分配單元和接收單元,其中發(fā)送方序列號子集分配單元,用于根據(jù)與接收方相同的序列號分配規(guī)則,將序列號集合劃分為數(shù)目至少等于發(fā)送單元數(shù)的、互不重疊的序列號子集,然后為每個發(fā)送單元分配一個序列號子集;任意一個發(fā)送單元,用于在要發(fā)送報文時,將發(fā)送方序列號子集分配單元發(fā)來的一個序列號填入到所述報文中,然后將報文發(fā)送給接收單元;接收方序列號子集分配單元,用于根據(jù)與發(fā)送方相同的序列號分配規(guī)則,將序列號集合劃分為數(shù)目至少等于發(fā)送單元數(shù)的、互不重疊的序列號子集,然后將各序列號子集發(fā)送給接收單元;接收單元,用于根據(jù)接收方序列號子集分配單元發(fā)來的序列號子集,確定滑動窗口,保存序列號子集與滑動窗口的對應(yīng)關(guān)系;在收到任意一個發(fā)送單元發(fā)來的報文后,根據(jù)所述滑動窗口和所述報文的序列號對所述報文進行合法性檢測。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述接收單元包括滑動窗口確定單元和序列號檢測單元,其中,滑動窗口確定單元,用于根據(jù)接收方序列號子集分配單元發(fā)來的序列號子集,確定滑動窗口,并將序列號子集和滑動窗口的對應(yīng)關(guān)系發(fā)送給序列號檢測單元;序列號檢測單元,用于在收到任意一個發(fā)送單元發(fā)來的報文后,在自身保存的來自滑動窗口確定單元的序列號子集和滑動窗口的對應(yīng)關(guān)系中,查找到所述報文序列號對應(yīng)的滑動窗口,然后根據(jù)所述滑動窗口和所述報文的序列號對所述報文進行合法性檢測。
12.如權(quán)利要求10或11所述的系統(tǒng),其特征在于,在所述報文發(fā)送裝置和報文接收裝置位于同一設(shè)備時,所述發(fā)送方序列號子集分配單元和接收方序列號子集分配單元為同一單元。
全文摘要
本發(fā)明公開了多單元發(fā)送時的報文序列號檢測方法,預(yù)先將所有報文序列號劃分為互不重疊的、數(shù)目至少等于發(fā)送方包含的單元數(shù)的子集,將每個子集分配給一個單元;接收方根據(jù)各子集確定滑動窗口,且記錄滑動窗口與序列號子集的對應(yīng)關(guān)系;此后接收方根據(jù)所述對應(yīng)關(guān)系和發(fā)送方發(fā)來報文的序列號確定所述報文是否為合法報文;本發(fā)明同時公開了多單元發(fā)送時的報文發(fā)送裝置、報文接收裝置和報文序列號檢測系統(tǒng)。本發(fā)明使得發(fā)送方各單元發(fā)送的報文的序列號沒有重疊,且接收方收到報文后,根據(jù)序列號找到對應(yīng)滑動窗口對報文的合法性進行檢測,提高了報文合法性檢測的準確率,避免了報文的丟失。
文檔編號H04L12/56GK1819560SQ200610064820
公開日2006年8月16日 申請日期2006年3月14日 優(yōu)先權(quán)日2006年3月14日
發(fā)明者楊銀柱 申請人:杭州華為三康技術(shù)有限公司