專利名稱::Hsupa中包重組的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及在第三代移動通信系統(tǒng)中采用HSUPA技術(shù)時,用于在RNC端進行包重組的一種方法。
背景技術(shù):
:高速上行分組接入(HSUPA)是對第三代移動通信系統(tǒng)一通用移動通信系統(tǒng)(UMTS)的一種重要增強。寬帶碼分多址(WCDMA)是國際電聯(lián)(ITU)及第三代合作伙伴計劃(3GPP)3GPP確定的三種無線接入技術(shù)之一。在第三代無線通訊系統(tǒng)中,移動用戶設(shè)備(UE)通過無線接入網(wǎng)(RAN)和一個或多個核心網(wǎng)(CN)進行通訊。無線接入網(wǎng)由一個無線網(wǎng)絡(luò)控制器(RNC)和一個或多個基站(NodeB)組成。UE通過空中接口和NodeB依據(jù)空中接口協(xié)議進行通信。如圖l所示。HSUPA在以上基礎(chǔ)上,引入了3種技術(shù)物理層混合重傳,基于NodeB的快速調(diào)度,及2ms發(fā)送時間間隔(TTI)的短幀傳輸。并在NodeB中引入一個新的MAC實體MAC-e,在RNC中引入了一個新的MAC實體MAC-es。如圖2所示當采用HSUPA技術(shù)傳輸上行分組數(shù)據(jù)時,NodeB在增強專用物理數(shù)據(jù)信道(E-DPDCH)上傳輸上行分組數(shù)據(jù),經(jīng)過快速混合重傳(HARQ)過程,由MAC-e實體得到MAC-e協(xié)議數(shù)據(jù)單元(MAC-ePDU),經(jīng)由RNC-NodeB之間的Iub接口,由RNC中的MAC-es實體進行包的重組和分解到各個邏輯信道。由于所有到達重組隊列(Reorderqueue)的包必須經(jīng)過重組后,按發(fā)送順序遞交給重組隊列分發(fā)實體(Reorderqueuedistribution),再通過MAC-d,RLC送到各個邏輯信道。由于最新的協(xié)議未曾明確定義RNC側(cè)重組(reordering)方法,參考TS25.32111.9.3.1重組實體(Re-orderingentity)中重組機制細節(jié)有待具體實現(xiàn)(Thedetailsofthere-orderingmechanismareleftuptotheimplementation),也就是說有待于各個廠家的實現(xiàn),這樣各個廠家在實現(xiàn)時,會根據(jù)自己的需要來設(shè)計。Iub接口的數(shù)據(jù)包包含了從NodeB帶來的連接幀號(CFN)及連續(xù)的傳送序列號(TransmissionSequenceNumber,TSN)信息?,F(xiàn)有的重組方法主要分為基于定時器(timer-based)和基于滑動窗口(window-based)以及混合型重組方法三種?,F(xiàn)簡要介紹基于滑動窗口以及混合型重組方法的原理及存在的缺陷。1、基于滑動窗口的重組方法發(fā)送方設(shè)一個發(fā)送窗口,接收方設(shè)一個相等的接收窗口,只允許發(fā)送方發(fā)送窗口之內(nèi)的包,接收方只接收在接收窗口之內(nèi)的包,當接收方收齊全部接收窗口的包后,接收方向上分發(fā)包并移動接收窗口。該方法容易引起死鎖(stall)。假設(shè)無線鏈路控制(RLC)模式為非確認模式(UM),窗口大小為5,收到TSN分別為1、2、4、5的包,TSN為3的包(簡稱為"包3",下文中依此類推)在空口中丟失,則這種算法會因為RLC沒有引入重傳機制而死等包3,不向上分發(fā),從而陷入死鎖。在誤碼率(BLER)不等0的情況下,死鎖發(fā)生的幾率為100%。2、基于滑動窗口和定時器的混合重組方法發(fā)送方設(shè)一個發(fā)送窗口,接收方設(shè)一個相等的接收窗口,只允許發(fā)送方發(fā)送窗口之內(nèi)的包,接收方只接收在接收窗口之內(nèi)的包,當接收方收齊全部接收窗口的包后或者由于接收到非連續(xù)的包時延過大導(dǎo)致保護定時器超時,接收方向上分發(fā)包并移動接收窗口。混合型算法增大了接收方丟包的幾率(possibilityofdiscard),而且對發(fā)送方有發(fā)送窗口限制,從而進一步增大了發(fā)送方丟包的幾率。例如,同樣假設(shè)其窗口大小為5,如果當前發(fā)送包9,則不能重傳包l、2、3、4。若包2、4在空口中丟失需要重傳,則丟包的幾率增加了50%。如果收到包l、5,下一個收到包IO,則須立即分發(fā)包l、5,將滑動窗口移至6-10,如馬上收到包2、3、4,也必須將其丟棄,丟包的幾率增加了60%。
發(fā)明內(nèi)容本發(fā)明提出一種HSUPA中包重組方法,在保證實時性的前提下,減小接收方的丟包幾率。為達上述目的,本發(fā)明采用如下技術(shù)方案1、一種HSUPA中包重組的方法,其特征在于包括以下步驟對接收到的MAC-ePDU中的包依次讀取,建立按TSN大小建立重組隊列,設(shè)定next—expected—TSN、Tl—TSN和定時器的值,其中,next—expected—TSN表示希望接收的下一個按序到達包的TSN,發(fā)送包時,其值為已經(jīng)發(fā)送的包的最大的TSN加1,T1—TSN為重組隊列中第一個收到但未分發(fā)的包的TSN;當定時器超時時,發(fā)送TSN大于next—expected—TSN小于等于Tl—TSN的包分發(fā)至分解實體;當讀取的包的TSN為next_expected_TSN時,發(fā)送此包及TSN從next—expected_TSN開始的連續(xù)的包至分解實體。作為本發(fā)明的一種優(yōu)選方式,其具體包括以下步驟1)設(shè)定next—expected_TSN、T1_TSN和定時器的值,啟動定時器;2)依次讀取接收到的MAC-ePDU中的包;3)判定當前讀取的包的TSN是否等于next—expectecLTSN,如果是,則將該包及重組隊列中與該包TSN連續(xù)的包分發(fā)至分解實體;設(shè)定next—expected—TSN為已經(jīng)發(fā)送的包的最大的TSN加1;進入步驟4),否則轉(zhuǎn)步驟5);4)判定重組緩存器中是否存在未讀取的包;如果是,則轉(zhuǎn)步驟2);如果否,則轉(zhuǎn)步驟8);5)將該包插入重組隊列中;6)判定定時器是否超時,如果是,則將TSN大于next一expectedJTSN小于等于Tl—TSN的包送至分解實體,停止定時器;進入步驟7);如果定時器未超時,則轉(zhuǎn)步驟4);7)判定重組緩存器中是否存在未讀取的包;如果是,則轉(zhuǎn)步驟l);如果否,則進入步驟8);8)當重組隊列中存在未發(fā)送的包時,發(fā)送該包,結(jié)束包重組。作為本發(fā)明的一種改進,在所述步驟4)之后所述步驟5)之前,還包括判定當前讀取的包的TSN是否小于next—expected—TSN步驟,如果是,則丟棄此包,轉(zhuǎn)步驟4),如果否,則進入步驟5)。作為本發(fā)明的又一改進,當定時器超時時,發(fā)送TSN大于next—expected—TSN小于等于T1一TSN及與Tl—TSN連續(xù)的包分發(fā)至分解實體。本發(fā)明通過簡化了現(xiàn)有包重組方法本身復(fù)雜度,能更好地滿足通信的實時性要求,并且在實時性和實用性上有顯著的優(yōu)勢。以下結(jié)合附圖及實施例進一步說明本發(fā)明。圖1為現(xiàn)有通用移動通信系統(tǒng)(UMTS)結(jié)構(gòu)示意圖;圖2為現(xiàn)有高速上行分組接入(HSUPA)結(jié)構(gòu)示意圖;圖3為現(xiàn)有HSUPA的包重組過程示意圖;圖4為本發(fā)明一實施例流程圖;圖5為本發(fā)明另一實施例流程圖。具體實施方式實施例一一種HSUPA中包重組的方法,其特征在于包括以下步驟對接收到的MAC-ePDU中的包依次讀取,建立按TSN大小建立重組隊列,設(shè)定next_eXpected_TSN、Tl—TSN和定時器的值,其中,next—expectedJTSN表示希望接收的下一個按序到達包的TSN,發(fā)送包時,其值為已經(jīng)發(fā)送的包的最大的TSN加1,T1_TSN為重組隊列中第一個收到但未分發(fā)的包的TSN;當定時器超時時,發(fā)送TSN大于next_expected—TSN小于等于T1_TSN的包分發(fā)至分解實體;當讀取的包的TSN為next_expected_TSN時,發(fā)送此包及TSN從next_expected_TSN開始的連續(xù)的包至分解實體。實施例二如圖4所示,一種HSUPA中包重組的方法,包括以下步驟1)設(shè)定next—expected—TSN、Tl—TSN和定時器的值,啟動定時器;2)依次讀取接收到的MAC-ePDU中的包;3)判定當前讀取的包的TSN是否等于next—expected—TSN,如果是,則將該包及重組隊列中與該包TSN連續(xù)的包分發(fā)至分解實體;設(shè)定next—expected—TSN為己經(jīng)發(fā)送的包的最大的TSN加1:進入步驟4),否則轉(zhuǎn)步驟5);4)判定重組緩存器中是否存在未讀取的包;如果是,則轉(zhuǎn)步驟2);如果否,則轉(zhuǎn)步驟8);5)將該包插入重組隊列中;6)判定定時器是否超時,如果是,則將TSN大于next—expectedJTSN小于等于Tl—TSN的包送至分解實體,停止定時器;進入步驟7);如果定時器未超時,則轉(zhuǎn)步驟4);7)判定重組緩存器中是否存在未讀取的包;如果是,則轉(zhuǎn)步驟l);如果否,則進入步驟8);8)當重組隊列中存在未發(fā)送的包時,發(fā)送該包,結(jié)束包重組。其中,在所述步驟4)之后所述步驟5)之前,還包括判定當前讀取的包的TSN是否小于next_expected—TSN步驟,如果是,則丟棄此包,轉(zhuǎn)步驟4),如果否,則進入步驟5)。其中,當定時器超時時,也可以發(fā)送TSN大于next—expectedJTSN小于等于TlJTSN以及與T1—TSN連續(xù)的包分發(fā)至分解實體。這樣可以進一步滿足通信的實時性要求。實施例三如圖5所示,一種HSUPA中包重組的方法,包括以下步驟21)將從基站處收到的MAC-ePDU放入重組緩沖器(reorderingbuffer)中;22)設(shè)定next—expected—TSN、T1_TSN的初始值,啟動定時器;23)讀取重組緩沖器MAC-ePDU中的包;判定當前讀取的包的TSN的值是否等于next—expected—TSN,如果是,則進入步驟24),如果否,轉(zhuǎn)步驟25);24)將該包及重組隊列中與該包TSN連續(xù)的包分發(fā)至分解實體(即發(fā)送該包及TSN從next_expected_TSN開始的連續(xù)的包至分解實體),將next_expected_TSN設(shè)為當前已經(jīng)發(fā)送包中TSN最大的包的TSN的加1;轉(zhuǎn)步驟28);25)判定當前包的TSN的值是否小于nextjxpectedJTSN,即判斷是否為期待的包,如果是,則丟棄此包,轉(zhuǎn)步驟28);否則,根據(jù)該包的TSN大小將其插入重組隊列中,設(shè)定T1JTSN為重組隊列中第一個收到且未分發(fā)的包的TSN(由于每個MAC-esPDU中均有對應(yīng)的CFN時間信息,因此可以根據(jù)該信息判斷哪一個包為重組隊列中第一個收到的包);進入步驟26);26)判斷定時器是否超時,如果是,則發(fā)送TSN大于next—expectedJTSN小于等于T1_TSN及與T1_TSN連續(xù)的包分發(fā)至分解實體;將next_expected_TSN設(shè)為已經(jīng)分發(fā)包中TSN最大的包的TSN的加1,停止定時器,進入步驟27);27)判斷重組緩存器中是否存在未讀取的包;如果是,則啟動定時器,轉(zhuǎn)驟23);如果否,轉(zhuǎn)步驟29);28)判斷重組緩存器中是否存在未讀取的包;如果是,則轉(zhuǎn)驟23);如果否,則停止定時器,進入步驟29);29)發(fā)送重組隊列中全部的包至分解實體,結(jié)束包重組。其中,所述步驟29)具體包括以下步驟291)判斷重組隊列是否存在未分發(fā)的包,如果是,則啟動定時器,將next—expected—TSN、T1一TSN分別設(shè)為該重組隊列中不能分發(fā)的TSN最小和TSN最大的包的TSN;292)判斷重組緩存器中是否存在未讀取的包;如果是,則轉(zhuǎn)驟23);如果否,則進入步驟293);293)判斷定時器是否超時,如果是,則發(fā)送TSN大于等于next—expected_TSN小于等于Tl—TSN的包分發(fā)室分解實體;進入步驟294),否則轉(zhuǎn)步驟292);294)結(jié)束。其中,所述步驟25)中設(shè)定T1—TSN為重組隊列中第一個收到且未分發(fā)的包的TSN時,先判定T1JTSN的包是否存在,如果存在則直接進入步驟26);否則設(shè)定T1—TSN為重組隊列中第一個收到且未分發(fā)的包的TSN;進入步驟26)。例如先設(shè)定next_expected—TSN、T1—TSN的初始值為1,首先收到TSN等于5的包,將其放入重組隊列中,設(shè)T1JTSN為重組隊列中第一個收到且未分發(fā)的包的TSN,即T1JTS^5,下表表示重組隊列,其中斜體部分表示期望收到的包的TSN值。<table>tableseeoriginaldocumentpage10</column></row><table>啟動定時器T1;在定時器T1超時之前,陸續(xù)讀取到包2、6、10、11、8和4。此時根據(jù)TSN大小排列的重組隊列為"2、4、5、6、8、10、11"。結(jié)果如下表<table>tableseeoriginaldocumentpage10</column></row><table>定時器Tl超時后,next—expected—TSN=1,T1—TSN=5;此時將TSN大于next—expected—TSN與T1一TSN連續(xù)的包分發(fā)至分解實體。則啟動定時器T1。即將包2、4、5、6分發(fā)至分解實體。并將next_expected—TSN設(shè)為己發(fā)送包中最大的TSN加1;即next—expected—TSN=6+1=7,設(shè)T1—TSN為重組隊列中第一個收到且未分發(fā)的包的TSN,即設(shè)T1—TSN=9。如下表所示<table>tableseeoriginaldocumentpage10</column></row><table>假設(shè)重組緩存器中下一個包的TSN為7,在讀到包7時,由于該包的TSN等于next—expected—TSN,此時發(fā)送此包及與此包TSN連續(xù)的包8分發(fā)至分解實體,設(shè)next—expected—TSN等于9。如下表所示<table>tableseeoriginaldocumentpage10</column></row><table>如果此時重組緩存器不存在未讀取的包,則停止定時器。判定重組隊列還剩下TSN為10和11的兩個包。此時,啟動定時器,將next—expected—TSN、T1一TSN分別設(shè)為該重組隊列中不能分發(fā)的TSN最小和TSN最大的包的TSN;即分別為10與11。如下表所示<table>tableseeoriginaldocumentpage10</column></row><table>在定時器Tl超時后,將TSN小于等于Tl—TSN大于等于next—expected—TSN的包送至分解實體,即將TSN為IO和11的包發(fā)送至分解實體,停止定時器,結(jié)束包重組。本發(fā)明提供的方法滿足了服務(wù)質(zhì)量(QoS)要求,即滿足了UMTSQoS中分發(fā)重組求(Deliveryorder)要求,能夠?qū)葱蛱峤唤o上層。通過對定時器T1的設(shè)置,同時滿足了UMTSQoS中傳送時延(Transferdelay)的要求,所述定時器Tl的定時值大于HARQ過程(HARQprocess)中最大重傳次數(shù)所需要的時間,小于最大時延與處理時間的差值。例如,假設(shè)傳送時延為100毫秒(ms),在空口傳輸和基站、RNC的處理時間為20ms,則可以設(shè)定時器T1的定時值為50ms,即20+50=70〈100ms,定時器T1超時后,將會把包分發(fā)給上層。綜上所述,本方案在保證傳送時延和丟包率上做到了一個非常好的均衡,是一個易于實現(xiàn),具有實時性和實用性優(yōu)點的方法。并且由于RNC側(cè)網(wǎng)絡(luò)設(shè)備與UE相比較,具有計算能力強大,存貯空間大,運算速度快的優(yōu)勢,依托這些優(yōu)勢,可以偏重滿足QoS的要求,而不必計較本發(fā)明方案本身對存儲空間、運算復(fù)雜度等的少量要求。以上所述僅為本發(fā)明的一較佳實施例,并不構(gòu)成對本發(fā)明保護范圍的限定,只要通過設(shè)定定時器并利用next—expected—TSN、Tl—TSN兩個TSN標示值實現(xiàn)包重組的方案,均在本發(fā)明的保護范圍之內(nèi)。權(quán)利要求1、一種HSUPA中包重組的方法,其特征在于包括以下步驟對接收到的MAC-ePDU中的包依次讀取,建立按TSN大小建立重組隊列,設(shè)定next_expected_TSN、T1_TSN和定時器的值,其中,next_expected_TSN表示希望接收的下一個按序到達包的TSN,發(fā)送包時,其值為已經(jīng)發(fā)送的包的最大的TSN加1,T1_TSN為重組隊列中第一個收到但未分發(fā)的包的TSN;當定時器超時時,發(fā)送TSN大于next_expected_TSN小于等于T1_TSN的包分發(fā)至分解實體;當讀取的包的TSN為next_expected_TSN時,發(fā)送此包及TSN從next_expected_TSN開始的連續(xù)的包至分解實體。2、根據(jù)權(quán)利要求1所述的HSUPA中包重組的方法,其特征在于具體包括以下步驟1)設(shè)定next_expected—TSN、T1_TSN和定時器的值,啟動定時器;2)依次讀取接收到的MAC-ePDU中的包;3)判定當前讀取的包的TSN是否等于next—expected一TSN,如果是,則將該包及重組隊列中與該包TSN連續(xù)的包分發(fā)至分解實體;設(shè)定next—expected一TSN為己經(jīng)發(fā)送的包的最大的TSN加1;進入步驟4),否則轉(zhuǎn)步驟5);4)判定重組緩存器中是否存在未讀取的包;如果是,則轉(zhuǎn)步驟2);如果否,則轉(zhuǎn)步驟8);5)將該包插入重組隊列中;6)判定定時器是否超時,如果是,則將TSN大于next_expected_TSN小于等于Tl—TSN的包送至分解實體,停止定時器;進入步驟7);如果定時器未超時,則轉(zhuǎn)步驟4);7)判定重組緩存器中是否存在未讀取的包;如果是,則轉(zhuǎn)步驟l);如果否,則進入步驟8);8)當重組隊列中存在未發(fā)送的包時,發(fā)送該包,結(jié)束包重組。3、根據(jù)權(quán)利要求2所述的HSUPA中包重組的方法,其特征在于在所述步驟4)之后所述步驟5)之前,還包括判定當前讀取的包的TSN是否小于next—expected—TSN步驟,如果是,則丟棄此包,轉(zhuǎn)步驟4),如果否,則進入步驟5)。4、根據(jù)權(quán)利要求1或2或3所述的HSUPA中包重組的方法,其特征在于當定時器超時時,發(fā)送TSN大于next—expected—TSN小于等于Tl—TSN及與Tl—TSN連續(xù)的包分發(fā)至分解實體。5、根據(jù)權(quán)利要求1所述的HSUPA中包重組的方法,其特征在于具體包括以下步驟21)將收到的MAC-ePDU放入重組緩沖器中;22)設(shè)定next—expected—TSN、Tl—TSN的初始值,啟動定時器;23)讀取重組緩沖器MAC-ePDU中的包;判定當前讀取的包的TSN的值是否等于next—expected—TSN,如果是,則進入步驟24),如果否,轉(zhuǎn)步驟25);24)將該包及重組隊列中與該包TSN連續(xù)的包分發(fā)至分解實體(即發(fā)送該包及TSN從next_expected—TSN開始的連續(xù)的包至分解實體),將next一expected一TSN設(shè)為當前已經(jīng)發(fā)送包中TSN最大的包的TSN的加1;轉(zhuǎn)步驟28);25)判定當前包的TSN的值是否小于next一expected—TSN,即判斷是否為期待的包,如果是,則丟棄此包,轉(zhuǎn)步驟28);否則,根據(jù)該包的TSN大小將其插入重組隊列中,設(shè)定T1JTSN為重組隊列中第一個收到且未分發(fā)的包的TSN;進入步驟26);26)判斷定時器是否超時,如果是,則發(fā)送TSN大于next_expected_TSN小于等于Tl—TSN及與Tl—TSN連續(xù)的包分發(fā)至分解實體;將next_expected—TSN設(shè)為已經(jīng)分發(fā)包中TSN最大的包的TSN的加1,停止定時器,進入步驟27);27)判斷重組緩存器中是否存在未讀取的包;如果是,則啟動定時器,轉(zhuǎn)驟23);如果否,轉(zhuǎn)步驟29);28)判斷重組緩存器中是否存在未讀取的包;如果是,則轉(zhuǎn)驟23);如果否,則停止定時器,進入步驟29);29)發(fā)送重組隊列中全部的包至分解實體,結(jié)束包重組。6、根據(jù)權(quán)利要求5所述的HSUPA中包重組的方法,其特征在于所述步驟29)具體包括以下步驟291)判斷重組隊列是否存在未分發(fā)的包,如果是,則啟動定時器,將next_expected_TSN、Tl—TSN分別設(shè)為該重組隊列中不能分發(fā)的TSN最小和TSN最大的包的TSN;292)判斷重組緩存器中是否存在未讀取的包;如果是,則轉(zhuǎn)驟23);如果否,則進入步驟293);293)判斷定時器是否超時,如果是,則發(fā)送TSN大于等于next—expectedJTSN小于等于Tl—TSN的包分發(fā)至分解實體;進入步驟294),否則轉(zhuǎn)步驟292);294)結(jié)束。7、根據(jù)權(quán)利要求5所述的HSUPA中包重組的方法,其特征在于所述步驟25)中設(shè)定T1一TSN為重組隊列中第一個收到且未分發(fā)的包的TSN時,先判定T1JTSN的包是否存在,如果存在則直接進入步驟26);否則設(shè)定T1_TSN為重組隊列中第一個收到且未分發(fā)的包的TSN;進入步驟26)。8、根據(jù)權(quán)利要求5所述的HSUPA中包重組的方法,其特征在于所述步驟24)將next_expected_TSN設(shè)為該連續(xù)的包中TSN最大的包的TSN的加1之后,停止定時器;轉(zhuǎn)步驟27)。9、根據(jù)權(quán)利要求5所述的HSUPA中包重組的方法,其特征在于所述定時器的定時值大于HARQ過程中最大重傳次數(shù)所需要的時間,小于最大時延與處理時間的差值。全文摘要一種HSUPA中包重組方法,對接收到的MAC-ePDU中的包依次讀取,建立按TSN大小建立重組隊列,設(shè)定next_expected_TSN、T1_TSN和定時器的值,其中,next_expected_TSN表示希望接收的下一個按序到達包的TSN或者已經(jīng)發(fā)送的包的最大的TSN加1,T1_TSN為重組隊列中第一個收到但未分發(fā)的包的TSN;當定時器超時時,發(fā)送TSN大于next_expected_TSN小于等于T1_TSN及與T1_TSN連續(xù)的包分發(fā)至分解實體;當讀取的包的TSN為next_expected_TSN時,發(fā)送此包及TSN從next_expected_TSN開始的連續(xù)的包至分解實體。本發(fā)明通過簡化了現(xiàn)有包重組方法本身復(fù)雜度,能更好地滿足通信的實時性要求,并且在實時性和實用性上有顯著的優(yōu)勢。文檔編號H04L1/18GK101291280SQ20071009380公開日2008年10月22日申請日期2007年4月20日優(yōu)先權(quán)日2007年4月20日發(fā)明者平江申請人:上海宇夢通信科技有限公司