專利名稱:一種分組數(shù)據(jù)匯聚協(xié)議層處理數(shù)據(jù)包的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域中的數(shù)據(jù)處理技術(shù),特別涉及一種分組數(shù)據(jù)匯
聚協(xié)議(PDCP)層處理數(shù)據(jù)包的方法和裝置。
背景技術(shù):
長期演進(jìn)(LTE)系統(tǒng)中,移動(dòng)終端在基站間的切換過程或者無線資源 控制(RRC)過程中的數(shù)據(jù)傳輸由PDCP層來實(shí)現(xiàn)。PDCP層對(duì)接收數(shù)據(jù)處 理的主要任務(wù)是對(duì)接收端的狀態(tài)變量進(jìn)行維護(hù),使得接收端記錄的接收端超 幀號(hào)(RX—HFN)與發(fā)送端超幀號(hào)(TX—HFN)保持一致以能夠?qū)邮盏降?PDCP協(xié)議數(shù)據(jù)單元(PDU)正確解密,從而保證收發(fā)兩端進(jìn)行順暢的數(shù)據(jù) 傳輸,其中,該P(yáng)DCP層維護(hù)的狀態(tài)變量通常包括下一個(gè)期望接收的PDU 序列號(hào)(Next—PDCP—RX—SN )、接收端的RX—HFN以及最近一次向上層遞 交的SDU序列號(hào)(Last_submitted—PDCP—RX—SN )。
正常情況下PDCP層對(duì)接收到的數(shù)據(jù)包執(zhí)行以下操作判斷狀態(tài)變量中 Next_PDCP_RX—SN 的值是否大于接收到的 PDU 的序歹'j號(hào)
(Received_PDCP—SN),如果是,則將狀態(tài)變量RX—HFN的值進(jìn)行加1, 也就是說,如果下一個(gè)期望接收到的PDU序列號(hào)比實(shí)際接收到的PDU的序 列號(hào)大,例如,最近接收到的PDU序列號(hào)為1101、 1102, Next—PDCP_RX—SN 的值為1103,而當(dāng)前接收到的PDU的序列號(hào)為5,則認(rèn)為當(dāng)前接收到的PDU 為下一輪PDU序列號(hào)空間的數(shù)據(jù)包,即發(fā)生了翻轉(zhuǎn),將RX一HFN的值加l
(每一輪PDU序列號(hào)空間對(duì)應(yīng) 一個(gè)RX—HFN值);否則,狀態(tài)變量RX—HFN 的值保持不變;利用當(dāng)前的狀態(tài)變量RX_HFN的值和PDU的SN值所構(gòu)成 的加密序列號(hào)(COUNT)對(duì)接收到的該P(yáng)DU進(jìn)行解密;更新狀態(tài)變量Next—PDCP—RX—SN,即進(jìn)行加1處理;對(duì)該P(yáng)DU進(jìn)行頭處理形成SDU, 其中進(jìn)行頭處理可以為解頭壓縮或者去包頭等處理;將處理完成的SDU遞 交給上層,并更新狀態(tài)變量Last—submitted—PDCP_RX_SN。
當(dāng)發(fā)生切換時(shí),發(fā)送端需要將未被確認(rèn)正確接收的已發(fā)送數(shù)據(jù)以及未發(fā) 送的數(shù)據(jù)包前轉(zhuǎn)給目標(biāo)基站,再由目標(biāo)基站發(fā)送給接收端。這就可能出現(xiàn)接 收端接收到的數(shù)據(jù)包是亂序數(shù)據(jù)包或者重復(fù)數(shù)據(jù)包,由于在發(fā)生切換時(shí),無 線鏈路控制(RLC)層無法向PDCP層提供按序排列的數(shù)據(jù)包,因此,PDCP 層接收到的數(shù)據(jù)包,即PDU,會(huì)出現(xiàn)亂序或重復(fù)的情況。為了保證向上層 按序遞交服務(wù)數(shù)據(jù)單元(SDU),則PDCP層需要對(duì)接收到的PDU形成的 SDU進(jìn)行重排序和重復(fù)消除的操作。需要說明的是,SDU是PDCP層將PDU 進(jìn)行頭處理形成的,其中進(jìn)行頭處理可以為解頭壓縮或者去包頭等處理。
當(dāng)前PDCP規(guī)范中,切換發(fā)生時(shí)接收端啟動(dòng)用于控制PDCP層進(jìn)行重排 序和重復(fù)消除操作終止時(shí)間的定時(shí)器(Flush timer)并采用重排序 (reordering )窗口機(jī)制。在Flush timer的定時(shí)時(shí)長內(nèi),對(duì)reordering窗口內(nèi) 的PDU形成的SDU進(jìn)行重排序和重復(fù)消除處理。如果新接收到的PDU形 成的SDU與以前接收到的PDU形成的SDU進(jìn)行重排序和重復(fù)消除處理后 形成了連續(xù)的SDU,則將連續(xù)的SDU向上層提交,并更新變量 Last—submitted—PDCP—RX—SN的值用于標(biāo)識(shí)reordering窗口的下邊界。該過 程中,接收端的PDCP層僅在Flush timer的定時(shí)時(shí)長內(nèi)對(duì)reordering窗口內(nèi) 的SDU進(jìn)行重排序和重復(fù)消除的處理,然而,由于接收端不能夠準(zhǔn)確獲知 接收亂序的PDU所需要的時(shí)間,因此,很難準(zhǔn)確的設(shè)置Flush timer的定時(shí)
那么由于正常情況下如果狀態(tài)變量中Next_PDCP—RX一SN的值大于接收到 的PDU的序列號(hào)時(shí)會(huì)將RX—HFN的值加1,因此,恢復(fù)正常的數(shù)據(jù)包處理 方式后如果仍有亂序的數(shù)據(jù)包,則可能會(huì)造成兩端的RX—HFN失去同步, 接收端無法正確解密接收到的數(shù)據(jù),從而造成數(shù)據(jù)傳輸不能順利進(jìn)行。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種PDCP層處理數(shù)據(jù)包的方法和裝置,以便 于在切換過程中維持接收端與發(fā)送端的RX一HFN同步,保證數(shù)據(jù)傳輸順利 進(jìn)行。
一種分組數(shù)據(jù)匯聚協(xié)議PDCP層處理數(shù)據(jù)包的方法,該方法包括 接收端的PDCP層將接收到協(xié)議數(shù)據(jù)單元PDU后,將所述PDU的序列 號(hào)和狀態(tài)變量下一個(gè)期望接收的PDU序列號(hào)Next—PDCP_RX—SN的值進(jìn)行 比較,根據(jù)比較結(jié)果確定所述PDU為正常數(shù)據(jù)包還是亂序數(shù)據(jù)包;如果是 亂序數(shù)據(jù)包,則保持接收端超幀號(hào)RX一HFN不變,丟棄該P(yáng)DU形成的服務(wù) 數(shù)據(jù)單元SDU;如果是正常數(shù)據(jù)包,則進(jìn)一步判斷所述PDU的序列號(hào)是否 發(fā)生翻轉(zhuǎn),如果是,則將RX—HFN的值加1,并將該P(yáng)DU形成的SDU提交 給上層;否則,保持RX一HFN的值不變,并將該P(yáng)DU形成的SDU提交給 上層。
一種PDCP層處理數(shù)據(jù)包的裝置,該裝置設(shè)置于接收端的PDCP層,該裝 置包括
數(shù)據(jù)包接收單元,用于接收PDU;
狀態(tài)變量存儲(chǔ)單元,用于存儲(chǔ)所述接收端的狀態(tài)變量;
第一確定單元,用于從所述狀態(tài)變量存儲(chǔ)單元中獲取狀態(tài)變量 Next一PDCP一RX一SN的值,并將所述PDU的序列號(hào)和狀態(tài)變量 Next一PDCP—RX—SN的值進(jìn)行比較,根據(jù)比較結(jié)果確定所述PDU為正常數(shù)據(jù)包 還是亂序數(shù)據(jù)包;
第 一處理單元,用于在所述第 一確定單元確定所述PDU為亂序數(shù)據(jù)包時(shí), 保持所述狀態(tài)變量存儲(chǔ)單元中的RX—HFN不變,丟棄所述PDU形成的SDU;
第二確定單元,用于在所述第 一確定單元確定所述PDU為正常數(shù)據(jù)包時(shí), 進(jìn)一步確定所述PDU的序列號(hào)是否發(fā)生翻轉(zhuǎn);
第二處理單元,用于在所述第二確定單元確定所述PDU的序列號(hào)發(fā)生翻轉(zhuǎn)時(shí),將所述狀態(tài)變量存儲(chǔ)單元中的RX—HFN的值加1,并將所述PDU 形成的SDU提交給上層;在所述第二確定單元確定所述PDU的序列號(hào)沒有 發(fā)生翻轉(zhuǎn)時(shí),保持所述狀態(tài)變量存儲(chǔ)單元中的RX_HFN不變,并將所述PDU 形成的SDU提交給上層。
由以上技術(shù)方案可以看出,在本發(fā)明提供的方法和裝置中,接收端的PDCP 層將接收到PDU后,通過將所述PDU的序列號(hào)和狀態(tài)變量Next_PDCP—RX_SN 的值進(jìn)行比較,對(duì)接收到的PDU進(jìn)行了具體區(qū)分,確定該P(yáng)DU是亂序數(shù)據(jù)包 還是正常數(shù)據(jù)包,并針對(duì)這兩種不同的情況采用了不同的處理方式,只有在正 常數(shù)據(jù)包且PDU的序列號(hào)發(fā)生翻轉(zhuǎn)時(shí),才將RX—HFN的值加1,其它情況下 保持不變;并在PDU為正常數(shù)據(jù)包時(shí)將PDU形成的SDU提交給上層,在PDU 為亂序數(shù)據(jù)包時(shí),將PDU形成的SDU丟棄。從而維持接收端與發(fā)送端的 RXJIFN同步,保證數(shù)據(jù)傳輸順利進(jìn)行。
圖1為本發(fā)明實(shí)施例提供的方法流程圖; 圖2為本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體 實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
本發(fā)明提供的方法主要包括接收端的PDCP層接收到PDU后,將該 PDU的序列號(hào)和狀態(tài)變量Next_PDCP—RX—SN的值進(jìn)行比較,根據(jù)比較結(jié) 果確定接收到的PDU為正常數(shù)據(jù)包還是亂序數(shù)據(jù)包;如果是亂序數(shù)據(jù)包, 則保持RX—HFN不變;如果是正常數(shù)據(jù)包,則進(jìn)一步判斷該接收到的PDU 的序列號(hào)是否發(fā)生翻轉(zhuǎn),如果是,則將RX—HFN的值加1;否則保持RX_HFN 的值不變。
本發(fā)明的該方法可以基于當(dāng)前的PDCP規(guī)范,在Flush timer超時(shí)的時(shí)候
9開始執(zhí)行本發(fā)明提供的方法,在Flush timer超時(shí)之前則按照現(xiàn)有技術(shù)的方法 對(duì)PDU形成的SDU進(jìn)行重排序和重復(fù)消除的操作;也可以在任何時(shí)候,即 只要接收到PDU時(shí)都對(duì)該P(yáng)DU執(zhí)行本發(fā)明提供的方法。
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明提供的方法進(jìn)行詳細(xì)描述。圖1為本發(fā)明 實(shí)施例提供的方法流程圖,如圖l所示,該方法可以包括以下步驟
步驟101:接收端的PDCP層接收到PDU后,將接收到的PDU的序列 號(hào)和狀態(tài)變量Next_PDCP—RX—SN的值進(jìn)行比較。
步驟102:根據(jù)步驟101的比較結(jié)果確定接收到的PDU為正常數(shù)據(jù)包 還是亂序數(shù)據(jù)包。
本步驟中,步驟101的比較結(jié)果會(huì)存在以下四種情況
第一種情況判決閾值《接收到的PDU的序列號(hào)-Next—PDCP—RX—SN 的值。
在此,判決閾值是預(yù)先設(shè)置的一個(gè)用于進(jìn)行亂序數(shù)據(jù)判定的閾值,可以 根據(jù)具體的需求進(jìn)行判斷,較優(yōu)地,可以設(shè)置PDU序列號(hào)空間長度的一半 作為該判決閾值,例如,映射到無線鏈路控制確認(rèn)模式(RLC AM)的PDU 序列號(hào)的長度為12位時(shí),其PDU序列號(hào)的空間長度為4096,在以下例子 的描述中均以判決閾值設(shè)置為2048為例。
這種情況下說明該接收到的PDU為亂序數(shù)據(jù)包且序列號(hào)發(fā)生翻轉(zhuǎn),例 如最近接收到的PDU序列號(hào)分別是5、 6,而當(dāng)前接收到的PDU的序列 號(hào)為4094,而Next—PDCP—RX—SN的值為7,則說明當(dāng)前接收到的該P(yáng)DU 發(fā)生了亂序,且由于從4094與7之間越過了翻轉(zhuǎn)邊界4096,即不在一輪PDU 序列號(hào)空間內(nèi),因此發(fā)生了翻轉(zhuǎn)。
如果步驟102確定接收到的PDU為這種情況,則確定該P(yáng)DU為亂序數(shù) 據(jù)包,繼續(xù)執(zhí)行步驟103。
第二種情況0< Next—PDCP—RX—SN的值-接收到的PDU的序列號(hào)< 判決閾值。
這種情況下說明該接收到的PDU為亂序數(shù)據(jù)包但PDU序列號(hào)不發(fā)生翻轉(zhuǎn),例如,最近接收到的PDU序列號(hào)分別是13、 14,而當(dāng)前接收到的PDU 的序列號(hào)為7,可以看出當(dāng)前接收到的該P(yáng)DU發(fā)生了亂序,但PDU序列號(hào) 沒有發(fā)生翻轉(zhuǎn)。
如果步驟102確定接收到的PDU為這種情況,則確定該P(yáng)DU為亂序數(shù) 據(jù)包,轉(zhuǎn)至執(zhí)行步驟104。
第三種情況OS接收到的PDU的序列號(hào)-Next—PDCP—RX_SN的值<
判決閾值。
這種情況下說明接收到的該P(yáng)DU為正常數(shù)據(jù)包且該P(yáng)DU的序列號(hào)沒有 發(fā)生翻轉(zhuǎn)。例如,最近接收到的PDU序列號(hào)分別是5、 6,當(dāng)前接收到的PDU 的序列號(hào)為8,說明當(dāng)前接收到的該P(yáng)DU沒有發(fā)生亂序,并且,由于 Next—PDCP_RX_SN的值為7, 8與7的差值在判決閾值2048之內(nèi),因此, 該P(yáng)DU的序列號(hào)沒有發(fā)生偏轉(zhuǎn)。
如果步驟102確定接收到的PDU為這種情況,則確定該P(yáng)DU為正常數(shù) 據(jù)包,轉(zhuǎn)至執(zhí)行步驟106。
第四種情況判決閾值^Next—PDCP—RX—SN的值-接收到的PDU的序 列號(hào)。
這種情況下說明接收到的該P(yáng)DU為正常數(shù)據(jù)包且該P(yáng)DU的序列號(hào)發(fā)生 翻轉(zhuǎn)。例如,最近接收到的PDU序列號(hào)為4091、 4092,而當(dāng)前接收到的PDU 的序列號(hào)為2,而Next—PDCP—RX—SN的值為4093,則說明當(dāng)前接收到的該 PDU沒有發(fā)生亂序,即該P(yáng)DU是正常的數(shù)據(jù)包,但由于4093與2之間越 過了翻轉(zhuǎn)邊界4096,即不在同一輪PDU序列號(hào)空間內(nèi),說明當(dāng)前接收到的 序列號(hào)為2的PDU序列號(hào)發(fā)生了翻轉(zhuǎn)。
如果步驟102確定接收到的PDU為這種情況,則確定該P(yáng)DU為正常數(shù) 據(jù)包,轉(zhuǎn)至執(zhí)行步驟107。
步驟103:使用RX—HFN的值減1后對(duì)應(yīng)的COUNT值對(duì)該P(yáng)DU進(jìn)行 解密,轉(zhuǎn)至執(zhí)行步驟105。
由于接收到的PDU發(fā)生了翻轉(zhuǎn),因此,該P(yáng)DU應(yīng)該是上一輪序列號(hào)空
ii間中的數(shù)據(jù)包,仍以最近接收到的PDU序列號(hào)分別是5、 6,而當(dāng)前接收到 的PDU的序列號(hào)為4094為例,該序列號(hào)為4094的PDU應(yīng)該是上一^^序列 號(hào)空間中的數(shù)據(jù)包,上一輪序列號(hào)空間對(duì)應(yīng)的RX_HFN應(yīng)該是這一輪的序 列號(hào)空間對(duì)應(yīng)的RX一HFN減1的值,因此,為了能夠正確解密該P(yáng)DU,應(yīng) 該使用當(dāng)前HFD的值減1后對(duì)應(yīng)的COUNT值對(duì)該P(yáng)DU進(jìn)行解密。
步驟104:使用當(dāng)前RX—HFN的值對(duì)應(yīng)的COUNT值對(duì)該P(yáng)DU進(jìn)行解 密,轉(zhuǎn)至執(zhí)行步驟105。
由于第二種情況下接收到的PDU僅僅是亂序,但不發(fā)生翻轉(zhuǎn),也就是 說,該P(yáng)DU仍是本輪序列號(hào)空間中的數(shù)據(jù)包,因此,使用當(dāng)前RXJiFN的 值對(duì)應(yīng)的COUNT值便能夠?qū)υ揚(yáng)DU進(jìn)行解密。
步驟105:對(duì)該P(yáng)DU解頭壓縮形成SDU,保持各狀態(tài)變量不變并丟棄 該SDU,轉(zhuǎn)至執(zhí)行步驟101。
在該實(shí)施例中以PDU解頭壓縮形成SDU為例進(jìn)行描述,如果設(shè)置的方 式不是解頭壓縮,則還可能通過去包頭形成SDU。
由于接收到的PDU是亂序數(shù)據(jù)包,因此,為了保證上送的SDU的順序 正確,需要將該P(yáng)DU對(duì)應(yīng)的SDU丟棄,而下一個(gè)期望接收的PDU序列號(hào) 以及最近一次向上層按序遞交的SDU序列號(hào)保持不變。對(duì)于第一種情況, 仍以最近接收到的PDU序列號(hào)分別是5、 6,而當(dāng)前接收到的PDU的序列 號(hào)為4094為例,丟棄該序列號(hào)為4094的PDU對(duì)應(yīng)的SDU,保持 Next_PDCP_RX—SN不變,即下一個(gè)期望接收到的PDU序列號(hào)仍為7;由于 沒有上送新的SDU,因此也保持Last—submitted_PDCP—RX—SN不變。對(duì)于 第二種情況,仍以最近接收到的PDU序列號(hào)分別是13、 14,而當(dāng)前接收到 的PDU的序列號(hào)為7為例,丟棄該序列號(hào)為7的PDU對(duì)應(yīng)的SDU,保持 Next_PDCP_RX_SN不變,即下一個(gè)期望接收到的PDU序列號(hào)仍為15;由 于沒有上送新的SDU,因此也保持Last—submitted—PDCP—RX—SN不變。
步驟106:保持當(dāng)前RX一HFN的值不變,采用該RX—HFN的值對(duì)應(yīng)的 COUNT值對(duì)該P(yáng)DU進(jìn)行解密,執(zhí)行步驟108。
12該步驟對(duì)應(yīng)第三種情況,接收到的PDU是正常數(shù)據(jù)包,且沒有發(fā)生翻 轉(zhuǎn),也就是說,該P(yáng)DU的序列號(hào)仍為本輪PDU序列號(hào)空間內(nèi)的值,因此, 保持RX—HFN的值不變,采用當(dāng)前RX_HFN的值對(duì)對(duì)應(yīng)的COUNT值便可 以對(duì)該P(yáng)DU進(jìn)行解密。
步驟107:將狀態(tài)變量RX_HFN的值力。1后,基于RX—HFN的值對(duì)應(yīng) 的COUNT值對(duì)該P(yáng)DU進(jìn)行解密,對(duì)接收到的PDU解頭壓縮形成SDU后 向上層提交,并將狀態(tài)變量Next_PDCP_RX—SN的值更新為接收到的PDU 的序列號(hào)加1,將狀態(tài)變量Last—submitted—PDCP_RX—SN的值更新為該P(yáng)DU 對(duì)應(yīng)SDU序列號(hào)的值,轉(zhuǎn)至執(zhí)行步驟109。
該步驟對(duì)應(yīng)第四種情況,接收到的PDU為正常數(shù)據(jù)包并發(fā)生了翻轉(zhuǎn), 也就是說,接收到的PDU為下一輪PDU序列空間的數(shù)據(jù),因此,需要將 RX—HFN的值加1,并利用力口 1后的RX—HFN值對(duì)應(yīng)的COUNT值才能夠?qū)?該P(yáng)DU進(jìn)行正確解密。并且,將Next—PDCP—RX—SN的值更新為接收到的 PDU的序列號(hào)加1,即下一個(gè)期望接收到的PDU的序列號(hào)為當(dāng)前接收到的 PDU序列號(hào)的下一個(gè)序列號(hào)。
步驟108:對(duì)接收到的PDU解頭壓縮形成SDU后向上層提交,并將狀 態(tài)變量 Next_PDCP—RX—SN 的值力口 1 , 將狀態(tài)變量 Last—submitted—PDCP—RX—SN的值更新為該P(yáng)DU對(duì)應(yīng)SDU序列號(hào)的值。
步驟109:判斷Next_PDCP—RX_SN的值是否大于PDU序列號(hào)的空間 長度,如果否,轉(zhuǎn)至步驟101,如果是,執(zhí)行步驟IIO。
步驟110:將狀態(tài)變量Next—PDCP—RX—SN的值還原為初始值,并將狀 態(tài)變量RX一HFN的值加1,轉(zhuǎn)至執(zhí)行步驟101。
以上是對(duì)本發(fā)明所提供方法進(jìn)行的描述,下面對(duì)本發(fā)明所提供的裝置進(jìn)行 詳細(xì)描述。圖2為本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)圖,如圖2所示,該裝置可以 包括數(shù)據(jù)包接收單元201、狀態(tài)變量存儲(chǔ)單元202、第一確定單元203、第一 處理單元204、第二確定單元205和第二處理單元206。 數(shù)據(jù)包接收單元201,用于接收PDU。狀態(tài)變量存儲(chǔ)單元202,用于存儲(chǔ)接收端的狀態(tài)變量。
第一確定單元203,用于從狀態(tài)變量存儲(chǔ)單元202中獲取狀態(tài)變量 Next一PDCP一RX—SN的值,并將接收到的該P(yáng)DU的序列號(hào)和狀態(tài)變量 Next_PDCP_RX—SN的值進(jìn)行比較,根據(jù)比較結(jié)果確定該P(yáng)DU為正常數(shù)據(jù)包還 是亂序數(shù)據(jù)包。
第一處理單元204,用于在第一確定單元203確定該P(yáng)DU為亂序數(shù)據(jù)包時(shí), 保持狀態(tài)變量存儲(chǔ)單元202中的RX—HFN不變,丟棄該P(yáng)DU形成的SDU。
第二確定單元205,用于在第一確定單元203確定該P(yáng)DU為正常數(shù)據(jù)包時(shí), 進(jìn)一步確定該P(yáng)DU的序列號(hào)是否發(fā)生翻轉(zhuǎn)。
第二處理單元206,用于在第二確定單元205確定該P(yáng)DU的序列號(hào)發(fā)生翻 轉(zhuǎn)時(shí),將狀態(tài)變量存儲(chǔ)單元202中的RX一HFN的值加1,并將該P(yáng)DU形成的 SDU提交給上層;在第二確定單元確定PDU的序列號(hào)沒有發(fā)生翻轉(zhuǎn)時(shí),保持 狀態(tài)變量存儲(chǔ)單元中的RX—HFN不變,并將該P(yáng)DU形成的SDU提交給上層。
更進(jìn)一步地,第一確定單元203執(zhí)行上述比較的操作后,如果該P(yáng)DU的序 列號(hào)減去Next_PDCP—RX—SN的值所得到的值大于或等于預(yù)設(shè)的判決閾值,則 確定該P(yáng)DU為亂序數(shù)據(jù)包,并向第一處理單元204發(fā)送第一處理通知;如果 Next_PDCP_RX_SN的值減去該P(yáng)DU的序列號(hào)所得到的值大于0且小于預(yù)設(shè)的 判決閾值,則確定該P(yáng)DU為亂序數(shù)據(jù)包,并向第一處理單元204發(fā)送第二處理 通知。
第一處理單元204,還用于接收到第一處理通知后,使用當(dāng)前RX—HFN的 值減1后對(duì)應(yīng)的COUNT值對(duì)該P(yáng)DU進(jìn)行解密,對(duì)解密后的PDU進(jìn)行頭處理 形成SDU,并保持狀態(tài)變量存儲(chǔ)單元202的各狀態(tài)變量不變;接收到第二處理 通知后,使用當(dāng)前RX—HFN的值對(duì)應(yīng)的COUNT值對(duì)PDU進(jìn)行解密,對(duì)解密 后的PDU進(jìn)行頭處理形成SDU,并保持狀態(tài)變量存儲(chǔ)單元202中各狀態(tài)變量 不變。
另夕卜,第二確定單元205判斷Next—PDCP—RX—SN的值減去PDU的序列號(hào) 所得到的值是否大于或等于判決閾值,如果是,則確定PDU的序列號(hào)發(fā)生翻轉(zhuǎn);否則,確定PDU的序列號(hào)沒有發(fā)生翻轉(zhuǎn)。
第二處理單元206,還用于在第二確定單元205確定PDU的序列號(hào)發(fā)生翻 轉(zhuǎn)時(shí),利用RX—HFN的值加1后對(duì)應(yīng)的COUNT值對(duì)PDU進(jìn)行解密,對(duì)解密 后的PDU進(jìn)行頭處理形成SDU,并將狀態(tài)變量存儲(chǔ)單元202中 Next—PDCP_RX—SN的值更新為接收到的PDU的序列號(hào)加1后的值,將 Last—submitted—PDCP—RX—SN的值更新為該P(yáng)DU對(duì)應(yīng)SDU序列號(hào)的值;在第 二確定單元205確定PDU的序列號(hào)沒有發(fā)生翻轉(zhuǎn)時(shí),采用當(dāng)前RX一HFN的值 對(duì)應(yīng)的COUNT值對(duì)PDU進(jìn)行解密,對(duì)解密后的PDU進(jìn)行頭處理形成SDU, 并將狀態(tài)變量存儲(chǔ)單元202中Next—PDCP_RX_SN的值更新為接收到的PDU 的序列號(hào)加1后的值,將Last—submitted—PDCP—RX_SN的值更新為該P(yáng)DU對(duì) 應(yīng)SDU序列號(hào)的值。
在上述結(jié)構(gòu)的基礎(chǔ)上,該裝置還可以包括第三確定單元207和第三處理 單元208。
第三確定單元207,用于在第二處理單元206將狀態(tài)變量存儲(chǔ)單元202中 Next_PDCP_RX_SN的值更新為接收到的PDU的序列號(hào)加1后的值之,判斷 Next_PDCP—RX—SN的值是否大于PDU序列號(hào)的空間長度。
第三處理單元208,用于在第三確定單元207確定Next—PDCP—RX_SN 的值大于PDU序列號(hào)的空間長度時(shí),將狀態(tài)變量存儲(chǔ)單元202中 Next—PDCP—RX—SN的值還原為初始值,并將RX—HFN的值加1。
由以上描述可以看出,在本發(fā)明提供的方法和裝置中,接收端的PDCP層 將接收到PDU后,將所述PDU的序列號(hào)和狀態(tài)變量Next一PDCP一RX—SN的值 進(jìn)行比較,根據(jù)比較結(jié)果確定所述PDU為正常數(shù)據(jù)包還是亂序數(shù)據(jù)包;如果是 亂序數(shù)據(jù)包,則保持RX—HFN不變,丟棄該P(yáng)DU形成的SDU;如果是正常數(shù) 據(jù)包,則進(jìn)一步判斷所述PDU的序列號(hào)是否發(fā)生翻轉(zhuǎn),如果是,則將RXJIFN 的值力。1,并將該P(yáng)DU形成的SDU提交給上層;否則,保持RX一HFN的值不 變,并將該P(yáng)DU形成的SDU提交給上層。即將接收到的PDU進(jìn)行了具體區(qū)分, 確定該P(yáng)DU是亂序數(shù)據(jù)包還是正常數(shù)據(jù)包,并針對(duì)這兩種不同的情況采用了不
15同的處理方式,只有在正常數(shù)據(jù)包且PDU的序列號(hào)發(fā)生翻轉(zhuǎn)時(shí),才將RX—HFN的值加l,其它情況下保持不變;并在PDU為正常數(shù)據(jù)包時(shí)將PDU形成的SDU提交給上層,在PDU為亂序數(shù)據(jù)包時(shí),將PDU形成的SDU丟棄。從而維持接收端與發(fā)送端的RX_HFN同步,保證數(shù)據(jù)傳輸順利進(jìn)行。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1、一種分組數(shù)據(jù)匯聚協(xié)議PDCP層處理數(shù)據(jù)包的方法,其特征在于,該方法包括接收端的PDCP層將接收到協(xié)議數(shù)據(jù)單元PDU后,將所述PDU的序列號(hào)和狀態(tài)變量下一個(gè)期望接收的PDU序列號(hào)Next_PDCP_RX_SN的值進(jìn)行比較,根據(jù)比較結(jié)果確定所述PDU為正常數(shù)據(jù)包還是亂序數(shù)據(jù)包;如果是亂序數(shù)據(jù)包,則保持接收端超幀號(hào)RX_HFN不變,丟棄該P(yáng)DU形成的服務(wù)數(shù)據(jù)單元SDU;如果是正常數(shù)據(jù)包,則進(jìn)一步判斷所述PDU的序列號(hào)是否發(fā)生翻轉(zhuǎn),如果是,則將RX_HFN的值加1,并將該P(yáng)DU形成的SDU提交給上層;否則,保持RX_HFN的值不變,并將該P(yáng)DU形成的SDU提交給上層。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述PDU的序列號(hào)和狀 態(tài)變量Next—PDCP—RX—SN的值進(jìn)行比較之前還包括判斷所述接收端中用于 控制重排序和重消除操作終止時(shí)間的定時(shí)器Flush timer是否超時(shí),如果是,則 繼續(xù)執(zhí)行將所述PDU的序列號(hào)和狀態(tài)變量Next_PDCP_RX_SN的值進(jìn)行比較 的步驟。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)比較結(jié)果確定所述PDU 為正常數(shù)據(jù)包還是亂序數(shù)據(jù)包具體包括如果所述PDU的序列號(hào)減去所述 Next—PDCP—RX—SN的值所得到的值大于或等于預(yù)設(shè)的判決閾值,或者,所述 Next—PDCP—RX—SN的值減去所述PDU的序列號(hào)所得到的值大于O且小于預(yù)設(shè) 的判決閾值,則確定所述PDU為亂序數(shù)據(jù)包;否則,確定所述PDU為正常數(shù) 據(jù)包;判斷所述PDU的序列號(hào)是否發(fā)生翻轉(zhuǎn)具體為如果所述決閾值,則確定所述PDU的序列號(hào)發(fā)生翻轉(zhuǎn),否則,確定所述PDU的序列號(hào) 沒有發(fā)生翻轉(zhuǎn)。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,如果所述PDU的序列號(hào)減去所述Next—PDCP—RX一SN的值所得到的值大于預(yù)設(shè)的判決閾值,則在丟棄該 PDU形成的SDU之前還包括使用當(dāng)前超幀號(hào)RX—HFN的值減1后對(duì)應(yīng)的加 密序列號(hào)COUNT值對(duì)所述PDU進(jìn)行解密,對(duì)解密后的PDU進(jìn)行頭處理形成 SDU,并保持各狀態(tài)變量的值不變;如果所述Next一PDCP—RX—SN的值減去所述PDU的序列號(hào)所得到的值大于 0且小于預(yù)設(shè)的判決閾值,則在丟棄該P(yáng)DU形成的SDU之前還包括使用當(dāng) 前RX_HFN的值對(duì)應(yīng)的COUNT值對(duì)所述PDU進(jìn)4亍解密,對(duì)解密后的PDU進(jìn) 行頭處理形成SDU,并保持各狀態(tài)變量的值不變。
5、 根據(jù)權(quán)利要求1或3所述的方法,其特征在于,如果確定所述PDU為 正常數(shù)據(jù)包且所述PDU的序列號(hào)發(fā)生翻轉(zhuǎn),則在所述將該P(yáng)DU形成的SDU提 交給上層之前,還包括利用RX—HFN的值加1后對(duì)應(yīng)的COUNT值對(duì)所述 PDU進(jìn)行解密,對(duì)解密后的PDU進(jìn)行頭處理后形成SDU,并將狀態(tài)變量 Next—PDCP—RX一SN的值更新為接收到的PDU的序列號(hào)加1后的值,將狀態(tài)變 量最近一次向上層遞交的SDU序列號(hào)Last—submitted_PDCP_RX—SN的值更新 為所述PDU對(duì)應(yīng)SDU序列號(hào)的值;在所述將該P(yáng)DU形成的SDU提交給上層之前還包括釆用當(dāng)前RX_HFN的值 對(duì)應(yīng)的COUNT值對(duì)所述PDU進(jìn)行解密,對(duì)解密后的PDU進(jìn)行頭處理形成 SDU,并將狀態(tài)變量Next—PDCP_RX_SN的值更新為接收到的PDU的序列號(hào) 加1后的值,將狀態(tài)變量最近一次向上層按序遞交的SDU序列號(hào) Last—submitted—PDCP—RX_SN的值更新為所述PDU對(duì)應(yīng)SDU序列號(hào)的值。
6、 根據(jù)權(quán)利要求5所述的方法,其特征在于,在將狀態(tài)變量 Next_PDCP_RX—SN的值更新為接收到的PDU的序列號(hào)加1后的值之后還包 括判斷NexLPDCP一RX一SN的值是否大于PDU序列號(hào)的空間長度,如果是, 則將Next_PDCP—RX_SN的值還原為初始值,并將RX_HFN的值加1 。
7、 一種PDCP層處理數(shù)據(jù)包的裝置,該裝置設(shè)置于接收端的PDCP層,其 特征在于,該裝置包括數(shù)據(jù)包接收單元,用于接收PDU;狀態(tài)變量存儲(chǔ)單元,用于存儲(chǔ)所述接收端的狀態(tài)變量;第一確定單元,用于從所述狀態(tài)變量存儲(chǔ)單元中獲取狀態(tài)變量 Next—PDCP_RX—SN的值,并將所述PDU的序列號(hào)和狀態(tài)變量 Next—PDCP—RX_SN的值進(jìn)行比較,根據(jù)比較結(jié)果確定所述PDU為正常數(shù)據(jù)包 還是亂序數(shù)據(jù)包;第一處理單元,用于在所述第一確定單元確定所述PDU為亂序數(shù)據(jù)包時(shí), 保持所述狀態(tài)變量存儲(chǔ)單元中的RX—HFN不變,丟棄所述PDU形成的SDU;第二確定單元,用于在所述第一確定單元確定所述PDU為正常數(shù)據(jù)包時(shí), 進(jìn)一步確定所述PDU的序列號(hào)是否發(fā)生翻轉(zhuǎn);第二處理單元,用于在所述第二確定單元確定所述PDU的序列號(hào)發(fā)生翻轉(zhuǎn) 時(shí),將所述狀態(tài)變量存儲(chǔ)單元中的RX—HFN的值加1,并將所述PDU形成的 SDU提交給上層;在所述第二確定單元確定所述PDU的序列號(hào)沒有發(fā)生翻轉(zhuǎn) 時(shí),保持所述狀態(tài)變量存儲(chǔ)單元中的RX—HFN不變,并將所述PDU形成的SDU 提交給上層。
8、根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第一確定單元執(zhí)行所述 比較的操作后,如果所述PDU的序列號(hào)減去所述Next—PDCP—RX_SN的值所 得到的值大于或等于預(yù)設(shè)的判決閾值,則確定所述PDU為亂序數(shù)據(jù)包,并向所 述第 一處理單元發(fā)送第 一處理通知;如果所述Next_PDCP—RX_SN的值減去所 述PDU的序列號(hào)所得到的值大于0且小于預(yù)設(shè)的判決閾值,則確定所述PDU 為亂序數(shù)據(jù)包,并向所述第一處理單元發(fā)送第二處理通知;所述第一處理單元,還用于接收到第一處理通知后,使用當(dāng)前RXJffN的 值減1后對(duì)應(yīng)的COUNT值對(duì)所述PDU進(jìn)行解密,對(duì)解密后的PDU進(jìn)行頭處 理形成SDU,并保持所述狀態(tài)變量存儲(chǔ)單元中各狀態(tài)變量不變;接收到第二處 理通知后,使用當(dāng)前RX—HFN的值對(duì)應(yīng)的COUNT值對(duì)所述PDU進(jìn)行解密, 對(duì)解密后的PDU進(jìn)行頭處理形成SDU,并保持所述狀態(tài)變量存儲(chǔ)單元中各狀 態(tài)變量不變。
9、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第二確定單元判斷所述 Next—PDCP—!O^SN的值減去所述PDU的序列號(hào)所得到的值是否大于或等于所 述判決閾值,如果是,則確定所述PDU的序列號(hào)發(fā)生翻轉(zhuǎn);否則,確定所述 PDU的序列號(hào)沒有發(fā)生翻轉(zhuǎn);所述第二處理單元,還用于在所述第二確定單元確定所述PDU的序列號(hào)發(fā) 生翻轉(zhuǎn)時(shí),利用RXJffN的值加1后對(duì)應(yīng)的COUNT值對(duì)所述PDU進(jìn)行解密, 對(duì)解密后的PDU進(jìn)行頭處理后形成SDU,并將所述狀態(tài)變量存儲(chǔ)單元中 Next一PDCP—RX一SN的值更新為接收到的PDU的序列號(hào)加1后的值,將 Last—submittecLPDCP—IO^SN的值更新為所述PDU對(duì)應(yīng)SDU序列號(hào)的值;在 所述第二確定單元確定所述PDU的序列號(hào)沒有發(fā)生翻轉(zhuǎn)時(shí),采用當(dāng)前RX_HFN 的值對(duì)應(yīng)的COUNT值對(duì)所述PDU進(jìn)行解密,對(duì)解密后的PDU進(jìn)行頭處理形 成SDU,并將所述狀態(tài)變量存儲(chǔ)單元中Next_PDCP—RX—SN的值更新為接收到 的PDU的序列號(hào)加1后的值,將Last—submitted—PDCP—RX—SN的值更新為所 述PDU對(duì)應(yīng)SDU序列號(hào)的值。
10、 根據(jù)權(quán)利要求9所述的裝置,其特征在于,該裝置還包括 第三確定單元,用于在所述第二處理單元將所述狀態(tài)變量存儲(chǔ)單元中Next—PDCP_RX_SN的值更新為接收到的PDU的序列號(hào)加1后的值之后,判斷 Next—PDCP_RX—SN的值是否大于PDU序列號(hào)的空間長度;第三處理單元,用于在所述第三確定單元確定Next—PDCP—RX_SN的值大 于PDU序列號(hào)的空間長度時(shí),將所述狀態(tài)變量存儲(chǔ)單元中Next—PDCP_RX—SN 的值還原為初始值,并將RX—HFN的值加1 。
全文摘要
本發(fā)明提供了一種分組數(shù)據(jù)匯聚協(xié)議(PDCP)層處理數(shù)據(jù)包的方法和裝置,接收端的PDCP層將接收到協(xié)議數(shù)據(jù)單元(PDU)后,將PDU的序列號(hào)和狀態(tài)變量下一個(gè)期望接收的PDU序列號(hào)的值進(jìn)行比較,根據(jù)比較結(jié)果確定PDU為正常數(shù)據(jù)包還是亂序數(shù)據(jù)包;如果是亂序數(shù)據(jù)包,則保持接收端超幀號(hào)(RX_HFN)不變,丟棄PDU形成的服務(wù)數(shù)據(jù)單元(SDU);如果是正常數(shù)據(jù)包,則進(jìn)一步判斷PDU的序列號(hào)是否發(fā)生翻轉(zhuǎn),如果是,則將RX_HFN的值加1,并將PDU形成的SDU提交給上層;否則,保持RX_HFN的值不變,并將該P(yáng)DU形成的SDU提交給上層。從而維持接收端與發(fā)送端的RX_HFN同步,保證數(shù)據(jù)傳輸順利進(jìn)行。
文檔編號(hào)H04W28/06GK101686494SQ200810222850
公開日2010年3月31日 申請(qǐng)日期2008年9月22日 優(yōu)先權(quán)日2008年9月22日
發(fā)明者劉佳敏, 李國慶, 毅 趙 申請(qǐng)人:大唐移動(dòng)通信設(shè)備有限公司