專利名稱:一種arq連接的反饋方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線通信領(lǐng)域,特別涉及一種ARQ連接的反饋方法及裝置。
背景技術(shù):
為了減少到達(dá)網(wǎng)絡(luò)鏈路層的信息差錯率,節(jié)省空口帶寬資源,提高系統(tǒng)的業(yè)務(wù)吞吐量,IEEE802. 16 標(biāo)準(zhǔn)在 MAC 層引入了 ARQ(Automatic Repeat request,自動重傳請求) 技術(shù)。ARQ(Automatic Reat-reQuest,自動重傳請求)是一種實現(xiàn)通信節(jié)點之間信號可 靠傳輸?shù)募夹g(shù),通過接收方請求發(fā)送方重傳出錯的數(shù)據(jù)報文來重新接收出錯的報文,以及 發(fā)送方在收到接收方的確認(rèn)信息之前采取自動重傳機(jī)制,是通信中用于處理信道所帶來的 差錯的方法之一。ARQ的每個傳輸?shù)幕締挝恍畔K(block)都有自己唯一的塊序列號(BSN)。ARQ 將所有信息塊的確認(rèn)信息均封裝在ARQ反饋凈荷(ARQFeedback Payload)中。一個ARQ反 饋凈荷可以包含一個或多個ARQ FeedbackInformation Element (ARQ反饋信息元素,S卩ARQ Feedback IE)。在IEEE802. 16標(biāo)準(zhǔn)中,ARQ Feedback IE有四種類型選擇型的反饋(類 型0)、累積型的反饋(類型1)、選擇累積型的反饋(類型2)及累積的塊序列型的反饋(類型3)。ARQ需要選擇合適的反饋類型以保證用盡量少的ARQ Feedback IE反饋盡量多的 信息塊。同時,應(yīng)選擇正確的反饋時機(jī),在保證協(xié)議兩端狀態(tài)機(jī)正常協(xié)作的情況下,盡量減 少反饋的ARQ Feedback IE,以減少ARQ Feedback IE對帶寬和網(wǎng)元處理能力的消耗。在確定反饋時機(jī)時,要求收到報文要及時反饋,但這樣反饋消息過多,反饋消息會 占用較大的帶寬開銷,同時也加大了中間網(wǎng)元或發(fā)送端網(wǎng)元對反饋消息處理的壓力。同時 要求將收到的大量報文一起反饋,但這可能會影響發(fā)送窗口的及時更新,造成不必要的擁塞。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種ARQ連接的反饋方法,用于實現(xiàn)對ARQ反饋類型的正確選 擇,以保證用盡量少的ARQ Feedback IE反饋盡量多的信息塊?!N自動重傳請求ARQ連接的反饋方法,包括以下步驟確定接收窗口中第一個未接收到的信息塊的序列號BSN ;判斷第一個未接收到的信息塊的塊序列號BSN是否等于最大塊序列號 HightestBSN,當(dāng)判斷結(jié)果為是時,生成類型1自動重傳請求反饋信息元素ARQFeedback IE ;發(fā)送ARQ Feedback IE組成的反饋凈荷。一種自動重傳請求ARQ連接的反饋裝置,包括查找模塊,用于確定接收窗口中第一個未接收到的信息塊的序列號BSN ;判斷模塊,用于判斷第一個未接收到的信息塊的塊序列號BSN是否等于最大塊序列號 HightestBSN ;生成模塊,用于當(dāng)判斷結(jié)果為是時,生成類型1自動重傳請求反饋信息元素ARQ Feedback IE ;收發(fā)模塊,用于發(fā)送ARQ Feedback IE組成的反饋凈荷。本發(fā)明實施例中確定第一個未接收到的信息塊的序列號BSN ;判斷第一個未接收 到的信息塊的塊序列號BSN是否等于最大塊序列號HightestBSN,當(dāng)判斷結(jié)果為是時,生成 類型1自動重傳請求反饋信息元素ARQ Feedback IE ;將ARQ Feedback IE組成反饋凈荷, 進(jìn)行發(fā)送。第一個未收到的信息塊之前的信息塊均已收到,且其BSN連續(xù),因此用累積的方 式來進(jìn)行反饋,從而在確定ARQ反饋時機(jī)之后完成了對ARQ反饋類型的較佳選擇,以保證用 盡量少的ARQ Feedback IE反饋盡量多的信息塊,使ARQ反饋時可能出現(xiàn)的問題得到一定 程度上的均衡。
圖IA為本發(fā)明實施例中類型OARQ Feedback IE的示意圖;圖IB為本發(fā)明實施例中類型IARQ Feedback IE的示意圖;圖IC為本發(fā)明實施例中類型2ARQ Feedback IE的示意圖;圖ID為本發(fā)明實施例中類型3ARQ Feedback IE的示意圖;圖2A為本發(fā)明實施例中ARQ連接的反饋裝置的主要結(jié)構(gòu)圖;圖2B為本發(fā)明實施例中ARQ連接的反饋裝置的詳細(xì)結(jié)構(gòu)圖;圖2C為本發(fā)明實施例中帶有計時器模塊的ARQ連接的反饋裝置的詳細(xì)結(jié)構(gòu)圖;圖3為本發(fā)明實施例中ARQ連接反饋的主要流程圖;圖4為本發(fā)明實施例中ARQ連接反饋的詳細(xì)流程圖;圖5為本發(fā)明實施例中當(dāng)不選擇生成類型IARQ Feedback IE時判斷是否能生成 類型2ARQ Feedback IE的ARQ連接反饋的詳細(xì)流程圖;圖6為本發(fā)明實施例中當(dāng)不選擇生成類型IARQ Feedback IE時判斷是否能生成 類型3ARQ Feedback IE的ARQ連接反饋的詳細(xì)流程圖;圖7為本發(fā)明實施例中確定反饋時機(jī)的詳細(xì)流程圖。
具體實施例方式本發(fā)明實施例中確定第一個未接收到的信息塊的序列號BSN ;判斷第一個未接收 到的信息塊的塊序列號BSN是否等于最大塊序列號HightestBSN,當(dāng)判斷結(jié)果為是時,生成 類型1自動重傳請求反饋信息元素ARQ Feedback IE ;將ARQ Feedback IE組成反饋凈荷, 進(jìn)行發(fā)送。第一個未收到的信息塊之前的信息塊均已收到,且其BSN連續(xù),因此用累積的方 式來進(jìn)行反饋,從而在確定ARQ反饋時機(jī)之后完成了對ARQ反饋類型的正確選擇,以保證用 盡量少的ARQ Feedback IE反饋盡量多的信息塊,使ARQ反饋時可能出現(xiàn)的問題得到一定 程度上的均衡。以下具體說明每種ARQ Feedback IE類型的特點類型0 如圖IA?,F(xiàn)有協(xié)議中規(guī)定該類型的ARQ Feedback IE由四個位圖(bitmap) 組成,每個bitmap包括16個bit (比特),每個bit反饋一個信息塊,一共可以反饋64個塊。如果今后協(xié)議發(fā)生變化,則該數(shù)值也可以相應(yīng)改變。針對每個信息塊都反饋一次,在發(fā) 送端及接收端都需要逐個處理每個bit。類型1:如圖IB。該類型的ARQ Feedback IE可以反饋接收窗口內(nèi)第一個未收 到的信息塊之前所有的信息塊。當(dāng)有一個信息塊未收到或接收異常時,將該信息塊在ARQ Feedback IE中的位置的前一個信息塊的BSN設(shè)為BSN字段,窗口中該BSN字段之前的信息 塊都被正確接收??蓪⒋翱诘钠鹗嘉恢迷O(shè)置為ARQFeedback IE中BSN字段的值加1。類型2 如圖1C。該類型ARQ Feedback IE中有一個BSN字段,表示接收窗口內(nèi)該 BSN字段前的信息塊都被正確接收。該ARQ Feedback IE包含4個16bit的bitmap,其中 BSN字段之后的bitmap表示該BSN字段后的信息塊的接收狀態(tài),其中也包括BSN字段對應(yīng) 的信息塊。類型3 如圖1D。該類型ARQ Feedback IE中有一個BSN字段,表示接收窗口內(nèi)該 BSN字段前的信息塊都被正確接收。該ARQ Feedback IE包含4個16bit的bitmap,每個 bitmap的第一個bit表示bitmap的類型。類型0的bitmap,第2、3兩個bit表示信息塊序 列接收狀態(tài),其后連續(xù)的兩個6個bit的bitmap表示對應(yīng)信息塊序列長度。每個序列長度 最大值為26-1 = 63個。類型1的bitmap,第2、3、4三個bit表示信息塊序列接收狀態(tài),其 后連續(xù)的三個4個bit的bitmap表示對應(yīng)信息塊序列長度。每個序列長度最大值為24-1 =15個。以上的具體數(shù)字均為現(xiàn)有協(xié)議中的規(guī)定,如果今后協(xié)議發(fā)生變化,則以上數(shù)字也 可以相應(yīng)改變。ARQ發(fā)送端可以根據(jù)每組的長度按段處理反饋的信息塊。但接收生成反饋 時,需要考察接收到的信息塊,以確定采用何種類型的bitmap可以反饋較多的信息塊。參見圖2A,本發(fā)明實施例中,ARQ連接的反饋裝置包括查找模塊201、判斷模塊 202、生成模塊203及收發(fā)模塊204。所述裝置位于ARQ接收端,即數(shù)據(jù)接收端。查找模塊201用于確定接收窗口中第一個未接收到的信息塊的BSN。查找模塊 201查找接收窗口中接收到的信息塊,當(dāng)查找到第一個未接收到的信息塊時,確定該信息塊 的BSN。反饋執(zhí)行完畢后查找模塊201遍歷接收窗口,如果檢查到還有沒有反饋的信息塊, 則生成模塊203生成類型0 ARQ Feedback IE。判斷模塊202用于判斷第一個未接收到的信息塊的BSN是否等于最大塊序列號 (HightestBSN)。其中,連續(xù)的信息塊對應(yīng)的BSN也是連續(xù)的。當(dāng)確定反饋時機(jī)后,查找模 塊201從接收窗口起始位置開始查找,當(dāng)查找到第一個未接收到的信息塊時,判斷模塊202 判斷該信息塊的BSN是否等于HightestBSN,其中HightestBSN為收到的信息塊所對應(yīng)的 BSN中最大的BSN值加1,即HightestBSN對應(yīng)的塊和其后對應(yīng)的塊都沒有收到。例如,如 果接收窗口從BSN為1的塊開始,BSN為1、3、4、5塊都已收到,這個時候收到的信息塊所對 應(yīng)的BSN中最大的BSN就是5,HightestBSN就是6,第一個沒有收到的BSN就是2。如果2 也收到了,那么第一個未收到塊的BSN就是6,和HightestBSN相等。這兩個值相等說明窗 口內(nèi)收到的塊都是連續(xù)的。如果收到了一個BSN為6的塊,就把HightestBSN更新為6+1 =7。該HightestBSN可以記錄在判斷模塊202中,如果該第一個未接收到信息塊的BSN 等于HightestBSN,則生成模塊203生成類型IARQ Feedback IE,此時類型IARQFeedback IE已經(jīng)可以反饋完接收窗口中所有的信息塊,并且類型IARQFeedback IE較容易生成和 解析,生成和解析的復(fù)雜程度是常數(shù)值。此時取ARQFeedback IE反饋信息中的BSN為該 第一個未接收到的信息塊的BSN的前一個值。如果第一個未接收到的信息塊的BSN不等于HightestBSN,則不選擇生成類型IARQ Feedback IE,可以選擇生成類型OARQ Feedback IE、類型3ARQFeedback IE或類型2ARQ Feedback IE,且判斷模塊202可以繼續(xù)進(jìn)行后續(xù)判 斷,以選擇更為合適的類型。以下介紹判斷模塊202繼續(xù)判斷的過程判斷模塊202可以繼 續(xù)判斷所有序列的總長度是否滿足第二設(shè)定條件,當(dāng)所有序列的總長度滿足第二設(shè)定條件 時,生成類型3ARQ Feedback IE。此時類型3ARQFeedback IE可以保證反饋完接收窗口中 最多的信息塊甚至接收窗口中所有的信息塊,并且在反饋同樣多信息塊的前提下選擇類型 3ARQ Feedback IE時帶寬消耗最少。其中,所述第二設(shè)定條件為接收窗口內(nèi)所有序列的總 長度不小于第一設(shè)定值,例如第一設(shè)定值為64,或者接收窗口內(nèi)所有序列的總長度等于第 一個未接收到的信息塊的BSN和HightestBSN之間的差值;或者,如果第一個未接收到的信 息塊的BSN不等于HightestBSN,則不選擇生成類型IARQFeedback IE,判斷模塊202可以 繼續(xù)判斷所有序列的總長度是否滿足第一設(shè)定條件,其中,第一設(shè)定條件可以是所有序列 的總長度小于第一設(shè)定值,例如第一設(shè)定值為64。或者所有序列的總長度小于第一個未接 收到的信息塊的BSN和HightestBSN之間的差值。當(dāng)判斷結(jié)果為否時,繼續(xù)其它執(zhí)行過程, 當(dāng)判斷結(jié)果為是時,判斷接收窗口起始位置對應(yīng)的信息塊是否已收到,其中,處理模塊205 維護(hù)一個長度與接收窗口相同大小的狀態(tài)數(shù)組,連續(xù)的環(huán)回存儲從接收窗口起始位置開始 的接收窗口內(nèi)所有信息塊的接收狀態(tài)。如果接收窗口收到一個信息塊,則根據(jù)該信息塊在 接收窗口內(nèi)的位置,相應(yīng)標(biāo)記狀態(tài)數(shù)組中對應(yīng)位置數(shù)組元素的值為已接收,其中,狀態(tài)數(shù)組 中的首元素對應(yīng)接收窗口的起始位置。判斷模塊202在該狀態(tài)數(shù)組中查詢并判斷接收窗口 起始位置對應(yīng)的信息塊是否已收到,如果已收到,則生成模塊203生成類型2ARQ Feedback IE,此時,因為類型2ARQ Feedback IE的BSN字段具有類型反饋作用,類型2ARQFeedback IE會比類型OARQ Feedback IE多反饋BSN字段標(biāo)記的信息塊之前的信息塊,因為此時所 有信息塊的序列長度之和小于第一設(shè)定值,例如第一設(shè)定值為64,則類型2ARQ Feedback IE比類型OARQ Feedback IE反饋的信息塊也多?;蛘呱深愋蚈ARQ Feedback IE和類 型IARQ Feedback IE,或者生成類型3ARQ Feedback IE,如果接收窗口起始位置對應(yīng)的信 息塊未收到,則生成模塊203生成類型OARQ Feedback IE,或者生成類型3ARQ Feedback IE。因為窗口起始位置對應(yīng)的信息塊未收到,所以不選擇生成類型2ARQ FeedbacklE,而因 為此時所有信息塊的序列長度之和小于第一設(shè)定值,例如第一設(shè)定值為64,因此類型OARQ Feedback IE比類型3ARQ Feedback IE反饋的信息塊要多。其中,生成ARQ Feedback IE都 是根據(jù)狀態(tài)數(shù)組中所記錄的信息塊的接收狀態(tài)來生成,根據(jù)狀態(tài)數(shù)組中記錄的信息塊的接 收狀態(tài),從序列記錄的BSN開始依次設(shè)置ARQ Feedback IE中每個塊的接收狀態(tài),用來反饋 對應(yīng)信息塊的接收狀態(tài)。協(xié)議規(guī)定ARQ發(fā)送端和ARQ接收端都必須支持類型IARQFeedback IE,而協(xié)議可能會不支持其它三種ARQ Feedback IE。判斷模塊202還需判斷數(shù)據(jù)傳輸?shù)?兩端是否支持所選擇的ARQ的反饋類型,如果不支持,則生成另外的類型。例如,如果數(shù)據(jù) 傳輸?shù)膬啥瞬恢С诸愋?ARQ Feedback IE,則判斷模塊202判斷接收窗口起始位置對應(yīng)的 信息塊是否已收到,如果接收窗口起始位置對應(yīng)的信息塊已收到,則生成模塊203生成類 型2ARQ FeedbacklE,如果接收窗口起始位置對應(yīng)的信息塊未收到,則生成模塊203生成類 型OARQ Feedback IE ;如果數(shù)據(jù)傳輸?shù)膬啥瞬恢С诸愋?ARQ Feedback IE,則判斷模塊202 判斷數(shù)據(jù)傳輸?shù)膬啥耸欠裰С诸愋蚈ARQ Feedback IE,如果支持類型OARQ Feedback IE, 則生成模塊203生成類型OARQ Feedback IE和類型IARQ Feedback IE來代替類型2ARQFeedback IE,如果數(shù)據(jù)傳輸?shù)膬啥艘膊恢С诸愋蚈ARQ Feedback IE,則判斷模塊202繼 續(xù)數(shù)據(jù)傳輸?shù)膬啥耸欠裰С诸愋?ARQ Feedback IE,如果數(shù)據(jù)傳輸?shù)膬啥酥С诸愋?ARQ Feedback IE,則生成模塊203生成類型3ARQ Feedback IE,如果數(shù)據(jù)傳輸?shù)膬啥瞬恢С诸?型3ARQ Feedback IE,則生成模塊203生成類型IARQ Feedback IE ;如果數(shù)據(jù)傳輸?shù)膬啥瞬?支持類型OARQ Feedback IE,則生成模塊203生成類型3ARQFeedback IE來代替類型OARQ Feedback IE。繼續(xù)反饋剩余的信息塊。如果以上幾種情況均不能得到解決,且判斷模塊202 判定不選擇使用類型IARQFeedback IE,則此次不做ARQ反饋。其中,因為HightestBSN是 接收到的信息塊所對應(yīng)的BSN中最大的BSN值加1,考察信息塊的時候就是考察接收窗口內(nèi) 第一個未接收到的信息塊到最后一個接收到的信息塊之間的信息塊,因此所有序列的總長 度只會小于或等于第一個未接收到的BSN與HightestBSN之間的差值,而不會出現(xiàn)所有序 列的總長度大于第一個未接收到的BSN與HightestBSN之間的差值的情況。生成模塊203用于生成不同的ARQ Feedback IE類型。生成模塊203用于在不同 應(yīng)用場景下生成類型 OARQ Feedback IE、類型 IARQ Feedback IE、類型 2ARQ Feedback IE 或類型 3ARQ Feedback IE。收發(fā)模塊204用于發(fā)送ARQ Feedback IE組成的反饋凈荷。收發(fā)模塊204還用于 接收PDU (Packet Data Unit,分組數(shù)據(jù)單元)。收發(fā)模塊204包含一個接收窗口,所有接收 到的信息塊及反饋凈荷均放置于此接收窗口中,同時還包括一個發(fā)送窗口,所有待發(fā)送的 信息塊均位于此發(fā)送窗口中。其中,發(fā)送窗口將信息塊發(fā)送后,需等待數(shù)據(jù)接收端的ARQ反 饋消息,如果數(shù)據(jù)接收端發(fā)送的ARQ反饋消息中標(biāo)記數(shù)據(jù)接收端已收到了某信息塊,則將 該信息塊從發(fā)送窗口中刪除,否則需根據(jù)設(shè)置進(jìn)行重傳。接收窗口中每個位置都對應(yīng)一個 信息塊,如果接收窗口中某位置所對應(yīng)的信息塊沒有收到,則該信息塊在ARQFeedback IE 中所對應(yīng)的bitmap的位置會被置為零。參見圖2B,所述裝置還可以包括處理模塊205及計算模塊206。處理模塊205用于對接收窗口內(nèi)接收到的信息塊進(jìn)行處理。如果第一個未接 收到的信息塊的塊序列號BSN不等于最大塊序列號HightestBSN,不選擇生成類型IARQ Feedback IE,則處理模塊205可以從接收窗口中第一個未接收到的信息塊開始,將接收窗 口內(nèi)所有的信息塊按照接收狀態(tài)依次組成連續(xù)的序列,較佳的,最多可以組成12個長度小 于第一設(shè)定值的序列,其中,對于類型3ARQ Feedback IE最多有4個bitmap,每個bitmap 最多用3個塊序列,3*4 = 12。該第一設(shè)定值可以為64,其中,64個信息塊是類型OARQ Feedback IE和類型2ARQ Feedback IE可以反饋的不連續(xù)的信息塊的最大值。處理模塊 205記錄下每個序列中信息塊的接收狀態(tài),記錄每個序列中第一個信息塊的BSN,及每個序 列中信息塊的數(shù)目。如果生成類型3ARQ Feedback IE,則處理模塊205依次處理每個序列, 如果計算模塊206計算出的當(dāng)前序列和下一個序列的長度之和大于第二設(shè)定值,例如該第 二設(shè)定值可以為45,其中,一個bitmap中最多用3個信息塊,每個序列最多反饋15個信息 塊,3*15 = 45,則此bitmap為0型,取2個序列,該2個序列的最大長度可以為第一設(shè)定值 減1,例如,第一設(shè)定值可以為64,則這2個序列的最大長度都可以為63,否則此bitmap為 1型,取3個序列,該3個序列的最大長度可以為第二設(shè)定值的三分之一,例如,第二設(shè)定值 可以為45,則該3個序列的最大長度可以為15。其中,本發(fā)明實施例中的具體數(shù)字,如12、 15、64、45、2、3、4等,均為現(xiàn)有協(xié)議中的規(guī)定,如果現(xiàn)有協(xié)議發(fā)生變化,則以上數(shù)字也可以相應(yīng)更改。處理模塊205用于當(dāng)生成模塊203生成完ARQ Feedback IE的類型后,將ARQ Feedback IE組成ARQ反饋凈荷。處理模塊205用于維護(hù)一個長度與接收窗口相同大小 的狀態(tài)數(shù)組,連續(xù)的環(huán)回存儲從接收窗口起始位置開始的接收窗口內(nèi)所有信息塊的接收狀 態(tài)。如果接收窗口收到一個信息塊,則根據(jù)該信息塊在接收窗口內(nèi)的位置,相應(yīng)標(biāo)記狀態(tài)數(shù) 組中對應(yīng)位置的狀態(tài)為已接收。具體的,為了防止出現(xiàn)這樣的現(xiàn)象接收窗口內(nèi)只有很少的 幾個信息塊,未超過按信息塊的個數(shù)反饋的門限值,如果不繼續(xù)收到新的信息塊則這幾個 剩余的信息塊就得不到反饋。采取以下操作當(dāng)接收窗口中接收到第一個信息塊,并將其對 應(yīng)的狀態(tài)數(shù)組中對應(yīng)位置的狀態(tài)標(biāo)記為已接收時,啟動反饋最大時間間隔計時器。如果該 反饋最大時間間隔計時器超時且接收窗口內(nèi)仍然有信息塊沒有反饋,則重啟該計時器,開 始選擇ARQ Feedback IE的類型。以保證接收窗口內(nèi)所有的信息塊都能得到反饋。在反饋 執(zhí)行完畢后,判斷模塊202判斷反饋的信息塊所對應(yīng)的BSN中最大的BSN值加一是否等于 HightestBSN,當(dāng)反饋的信息塊所對應(yīng)的BSN中最大的BSN值加一不等于HightestBSN時, 處理模塊205遍歷接收窗口中從該最大的BSN值所對應(yīng)的信息塊開始到接收窗口結(jié)束位置 之間的信息塊,生成模塊203生成類型OARQ Feedback IE。計算模塊206用于計算所有序列的總長度。當(dāng)處理模塊205將接收窗口內(nèi)所有 的信息塊按照接收狀態(tài)依次組成連續(xù)的序列之后,計算模塊206計算所有序列的總長度, 及計算出第一個未接收到的信息塊的BSN和HightestBSN之間的差值,判斷模塊202判斷 計算模塊206計算出的所有序列的總長度是否滿足第二設(shè)定條件。其中,所述第二設(shè)定條 件為,所有序列的總長度不小于第一設(shè)定值,該第一設(shè)定值可以為64,或者所有序列的總 長度等于第一個未接收到的信息塊的BSN和HightestBSN之間的差值,當(dāng)計算出所有序 列的總長度滿足第二設(shè)定條件時,生成模塊203生成類型3ARQ Feedback IE。生成類型 3ARQFeedback IE,處理模塊205依次處理每個序列,計算模塊206還用于計算當(dāng)前序列和 下一個序列的長度之和是否大于第二設(shè)定值,該第二設(shè)定值可以為45,如果當(dāng)前序列和下 一個序列的長度之和大于第二設(shè)定值,則此bitmap為0型,取兩個序列,否則此bitmap為 1型,取3個序列。參見圖2C,所述裝置還可以包括獲取模塊207及計時器模塊208。獲取模塊207用于獲取當(dāng)前PDU子包的起始BSN和分片長度。PDU可以有多個子 包,獲取模塊207對其分別進(jìn)行處理。獲取模塊207將收發(fā)模塊204接收到的PDU解封裝, 解出PDU的子包或分片字頭。獲取模塊207依次考察所有子包中的信息塊,如果有的信息塊 在收發(fā)模塊204接收時未能成功放入接收窗口中,使該信息塊位于接收窗口之外,則丟棄 該信息塊。判斷模塊202可以將接收到的所有子包中的信息塊所對應(yīng)的BSN中最大的BSN 值(即HightestBSN)記錄下來,如果當(dāng)前PDU子包中信息塊所對應(yīng)的BSN中最大的BSN不 比該HightestBSN小,則將該HightestBSN的值取為該子包中最大的BSN值加1。計時器模塊208用于計時。計時器模塊208中至少包含反饋最大時間間隔計時 器,還可以包含其它與ARQ反饋相關(guān)的計時器。當(dāng)收發(fā)模塊204中的接收窗口中接收到第 一個信息塊,并將其對應(yīng)的狀態(tài)數(shù)組中對應(yīng)位置的狀態(tài)標(biāo)記為已接收時,啟動計時器模塊 208中的反饋最大時間間隔計時器。其中,取反饋最大時間間隔計時器的間隔=重傳計時器 時間間隔-環(huán)回時延的最大值-常數(shù)C。具體的,環(huán)回時延為ARQ發(fā)送端從發(fā)出信息塊到 接收到反饋ARQ FeedbackIE之間的時間間隔。在沒有鏈路擁塞的情況下,上下行的環(huán)回時延基本相同。因此在本發(fā)明實施例中,ARQ接收端作為反向鏈路的ARQ發(fā)送端,可以獲得環(huán) 回時延。常數(shù)C遠(yuǎn)小于重傳計時器時間間隔減去環(huán)回時延的最大值后所得到的值,例如,常 數(shù)C可以取一幀的時延。查找模塊201從收發(fā)模塊204中的接收窗口起始位置開始查找, 當(dāng)查找到第一個未接收到的信息塊時,如果該信息塊和接收窗口起始位置之間相隔的信息 塊的數(shù)目超過一個常數(shù)A,則計時器模塊208重啟反饋最大時間間隔計時器,開始進(jìn)行ARQ Feedback IE類型的選擇,否則,如果該信息塊和接收窗口起始位置之間相隔的信息塊的數(shù) 目沒有超過常數(shù)A,當(dāng)反饋最大時間間隔計時器超時時,如果接收窗口內(nèi)仍然有信息塊沒有 得到反饋,則重啟反饋最大時間間隔計時器,開始進(jìn)行ARQ Feedback IE類型的選擇。其 中,從接收窗口起始位置開始連續(xù)收到的信息塊的數(shù)目,取值的理論范圍應(yīng)為不小于0,且 小于第四設(shè)定值,例如第四設(shè)定值為1024,實際取值范圍一般不會太大,因此設(shè)置一個常數(shù) A,以判斷接收到的信息塊數(shù)目是偏多還是偏少。下面通過實現(xiàn)流程來介紹ARQ連接的反饋方法。參見圖3,本發(fā)明實施例中ARQ連接反饋的主要方法流程如下步驟301 確定接收窗口中第一個未接收到的信息塊的BSN。步驟302 判斷第一個未接收到的信息塊的BSN是否等于HightestBSN,當(dāng)判斷結(jié) 果為是時,繼續(xù)步驟303。步驟303 生成類型 IARQ Feedback IE。步驟304 發(fā)送ARQ Feedback IE組成的反饋凈荷。參見圖4,本發(fā)明實施例中ARQ連接反饋的詳細(xì)方法流程如下步驟401 查找與接收窗口的位置對應(yīng)的狀態(tài)數(shù)組。步驟402 判斷第一個未接收到的信息塊的BSN是否等于HightestBSN。當(dāng)判斷結(jié) 果為是時,執(zhí)行步驟403,否則執(zhí)行步驟404。步驟403 生成類型IARQ Feedback IE。執(zhí)行步驟410。步驟404 將第一個未接收到的信息塊之后的信息塊計為序列。其中,從接收窗口 中第一個未接收到的信息塊開始,將接收窗口內(nèi)所有的信息塊按照接收狀態(tài)依次組成連續(xù) 的序列,最多組成12個長度小于第一設(shè)定值的序列,例如第一設(shè)定值可以為64,并記錄下 每個序列的接收狀態(tài),及每個序列中第一個信息塊的BSN及每個序列中信息塊的數(shù)目。步驟405 判斷所有序列的總長度是否滿足第二設(shè)定條件。當(dāng)判斷結(jié)果為是時,執(zhí) 行步驟406,否則執(zhí)行步驟407。其中,第二設(shè)定條件可以是,所有序列的總長度不小于第一 設(shè)定值,例如第一設(shè)定值可以為64,或者所有序列的總長度等于接收窗口內(nèi)第一個未接收 到的信息塊的BSN和HightestBSN之間的差值。步驟406 生成類型3ARQ Feedback IE。執(zhí)行步驟410。步驟407 判斷接收窗口起始位置對應(yīng)的信息塊是否已收到。當(dāng)判斷結(jié)果為是時, 執(zhí)行步驟408,否則執(zhí)行步驟409。步驟408 生成類型2ARQ Feedback IE。執(zhí)行步驟410。步驟409 生成類型OARQ Feedback IE。執(zhí)行步驟410。步驟410 發(fā)送ARQ Feedback IE組成的反饋凈荷。參見圖5,本發(fā)明實施例中當(dāng)不選擇生成類型IARQ Feedback IE時判斷是否能生 成類型2ARQ Feedback IE的ARQ連接反饋的詳細(xì)方法流程如下
步驟501 查找與接收窗口的位置對應(yīng)的狀態(tài)數(shù)組。步驟502 判斷第一個未接收到的信息塊的BSN是否等于HightestBSN。當(dāng)判斷結(jié) 果為是時,執(zhí)行步驟503,否則執(zhí)行步驟504。步驟503 生成類型 IARQ Feedback IE。取 ARQ Feedback IE 的 BSN 為第一個未 接收到的信息塊的BSN的前一個值。執(zhí)行步驟510。步驟504 將第一個未接收到的信息塊之后的信息塊計為序列。步驟505:判斷序列的總長度是否小于第一設(shè)定值。例如第一設(shè)定值為64。當(dāng)判 斷結(jié)果為否時,繼續(xù)步驟506,否則執(zhí)行步驟507。步驟506:判斷序列的總長度是否小于第一個未接收到的信息塊的BSN和 HightestBSN之間的差值。當(dāng)判斷結(jié)果為是時,執(zhí)行步驟507,否則執(zhí)行步驟511。步驟507 判斷接收窗口起始位置對應(yīng)的信息塊是否已收到。當(dāng)判斷結(jié)果為是時, 執(zhí)行步驟508,否則執(zhí)行步驟509。步驟508 生成類型2ARQ Feedback IE。按照序列記錄的接收狀態(tài)設(shè)置bitmap。 如果bitmap中相應(yīng)位置對應(yīng)的信息塊在狀態(tài)數(shù)組中標(biāo)記為已接收,則將bitmap中相應(yīng)位 置置1,否則將bitmap中相應(yīng)位置置0。執(zhí)行步驟510。步驟509 生成類型OARQ Feedback IE。執(zhí)行步驟510。步驟510 將ARQ Feedback IE組成反饋凈荷,進(jìn)行發(fā)送。步驟511 執(zhí)行其它流程。例如,其它流程可以是繼續(xù)進(jìn)行是否可以構(gòu)造類型3ARQ Feedback IE的判斷過程。參見圖6,本發(fā)明實施例中當(dāng)不選擇生成類型IARQ Feedback IE時判斷是否能生 成類型3ARQ Feedback IE的ARQ連接反饋的詳細(xì)方法流程如下步驟601 查找與接收窗口的位置對應(yīng)的狀態(tài)數(shù)組。步驟602 判斷第一個未接收到的信息塊的BSN是否等于HightestBSN。當(dāng)判斷結(jié) 果為是時,執(zhí)行步驟603,否則執(zhí)行步驟604。步驟603 生成類型 IARQ Feedback IE,取 ARQ Feedback IE 的 BSN 為第一個未接 收到的信息塊的BSN的前一個值。執(zhí)行步驟611。步驟604 將第一個未接收到的信息塊之后的信息塊計為序列。步驟605 判斷所有序列的總長度是否不小于第一設(shè)定值。例如第一設(shè)定值為64。 當(dāng)判斷結(jié)果為否時,繼續(xù)步驟606,否則執(zhí)行步驟607。步驟606 判斷所有序列的總長度是否等于接收窗口內(nèi)第一個未接收到的信息塊 所對應(yīng)的BSN和HightestBSN之間的差值。當(dāng)判斷結(jié)果為是時,執(zhí)行步驟607,否則執(zhí)行步 驟 612。步驟607 生成類型 3ARQ Feedback IE。步驟608 判斷當(dāng)前序列和下一個序列的長度之和是否大于第二設(shè)定值。當(dāng)判斷 結(jié)果為是時,執(zhí)行步驟609,否則繼續(xù)步驟610。例如,第二設(shè)定值可以為45。步驟609 采用0型bitmap,取兩個序列。如果當(dāng)前序列和下一個序列的長度之和 大于第二設(shè)定值,則此bitmap為0型,則取兩個序列。執(zhí)行步驟611。步驟610 采用1型bitmap,取三個序列。如果當(dāng)前序列和下一個序列的長度之和 不大于第二設(shè)定值,則此bitmap為1型,則取三個序列。執(zhí)行步驟611。
其中,當(dāng)?shù)谝粋€未接收到的信息塊的BSN不等于HightestBSN,不選擇生成類型 IARQ Feedback IE 后,進(jìn)行是否能生成類型 OARQ Feedback IE、類型 2ARQ Feedback IE 或 類型3ARQ Feedback IE的判斷,該三個判斷過程的順序可以任意,可以不局限于圖4、圖5 及圖6所示的流程,例如,可以根據(jù)條件進(jìn)行選擇如何設(shè)置判斷順序等。圖4、圖5及圖6所 示的流程僅為本發(fā)明實施例的優(yōu)選實施例,不能看作是對本發(fā)明的限制。步驟611 將ARQ Feedback IE組成反饋凈荷,進(jìn)行發(fā)送。步驟612 繼續(xù)其它判斷過程。例如可以繼續(xù)進(jìn)行是否可以生成類型 2ARQFeedback IE 或類型 OARQ Feedback IE 的判斷過程。參見圖7,本發(fā)明實施例中確定反饋時機(jī)的詳細(xì)方法流程如下步驟701 將接收到的PDU解封裝。解出PDU的子包或分片字頭。步驟702 獲取當(dāng)前PDU子包的起始BSN和分片長度。其中,分片長度即該PDU子 包的總長度,也就是該PDU子包中所有信息塊的長度之和。如果有子包的信息塊位于接收 窗口之外,則丟棄該信息塊。步驟703 判斷當(dāng)前子包所有信息塊所對應(yīng)的BSN中的最大BSN是否小于 HightestBSN,當(dāng)判斷結(jié)果為否時,繼續(xù)步驟704,否則繼續(xù)步驟705。步驟704 取HightestBSN為該最大BSN的下一個位置。步驟705 將所有接收到的信息塊的狀態(tài)標(biāo)記為已接收。其中,是在狀態(tài)數(shù)組中進(jìn) 行標(biāo)記。步驟706 將接收窗口接收到的第一個信息塊的狀態(tài)標(biāo)記為已接收后,啟動反饋 最大時間間隔計時器。步驟707 查找接收窗口內(nèi)第一個未接收到的信息塊。從接收窗口起始位置開始 查找接收窗口內(nèi)第一個未接收到的信息塊。步驟708 判斷該第一個未接收到的信息塊與接收窗口起始位置之間的信息塊數(shù) 目是否超過常數(shù)A。當(dāng)判斷結(jié)果為是時,繼續(xù)步驟711,否則繼續(xù)步驟709。步驟709 反饋最大時間間隔計時器超時。步驟710 判斷接收窗口內(nèi)是否有信息塊沒有反饋。當(dāng)判斷結(jié)果為是時,繼續(xù)步驟 711,否則結(jié)束流程。步驟711 進(jìn)行ARQ Feedback IE類型的選擇。即進(jìn)行如圖5所示的流程。本發(fā)明實施例中確定第一個未接收到的信息塊的序列號BSN ;判斷第一個未接收 到的信息塊的塊序列號BSN是否等于最大塊序列號HightestBSN,當(dāng)判斷結(jié)果為是時,生成 類型1自動重傳請求反饋信息元素ARQ Feedback IE ;將ARQ Feedback IE組成反饋凈荷, 進(jìn)行發(fā)送。第一個未收到的信息塊之前的信息塊均已收到,且其BSN連續(xù),因此用累積的方 式來進(jìn)行反饋,從而在確定ARQ反饋時機(jī)之后完成了對ARQ反饋類型的正確選擇,以保證用 盡量少的ARQ Feedback IE反饋盡量多的信息塊,使ARQ反饋時可能出現(xiàn)的問題得到一定 程度上的均衡。當(dāng)判斷結(jié)果為不選擇生成類型IARQ Feedback IE時,可以繼續(xù)判斷是否可 以生成類型 OARQ Feedback IE、類型 2ARQ Feedback IE 或類型 3ARQ Feedback IE,盡量減 小帶寬開銷及對中間網(wǎng)元或發(fā)送端網(wǎng)元對反饋消息處理的壓力,減少不必要的擁塞,且該 三個判斷過程的順序可以任意,例如可以根據(jù)條件進(jìn)行選擇如何設(shè)置判斷順序,實現(xiàn)靈活, 可以適應(yīng)不同需要。設(shè)置了反饋最大時間間隔計時器,防止出現(xiàn)信息塊不能得到全部反饋的現(xiàn)象,使信息塊得到完全反饋,有利于及時更新發(fā)送窗口,避免出現(xiàn)鏈路擁塞,同時保證 所有信息塊都能收到正確的反饋。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機(jī)程序 產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實 施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī) 可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實施的計算機(jī)程序產(chǎn)品的形 式。本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程 圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實現(xiàn)流程圖和/或方框圖中的每一 流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算 機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理 器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生 用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能 的裝置。這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特 定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或 多個方框中指定的功能。這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計 算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實現(xiàn)的處理,從而在計算機(jī)或 其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖 一個方框或多個方框中指定的功能的步驟。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各 種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本 發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
一種自動重傳請求ARQ連接的反饋方法,其特征在于,包括以下步驟確定第一個未接收到的信息塊的序列號BSN;判斷第一個未接收到的信息塊的塊序列號BSN是否等于最大塊序列號HightestBSN,當(dāng)判斷結(jié)果為是時,生成類型1自動重傳請求反饋信息元素ARQFeedback IE;發(fā)送ARQ Feedback IE組成的反饋凈荷。
2.如權(quán)利要求1所述的方法,其特征在于,當(dāng)判斷結(jié)果為否時,判斷所有序列的總長度 是否滿足第一設(shè)定條件,當(dāng)判斷結(jié)果為是時,判斷接收窗口起始位置對應(yīng)的信息塊是否已 收到,當(dāng)接收窗口起始位置對應(yīng)的信息塊未收到時,生成類型OARQ Feedback IE。
3.如權(quán)利要求1所述的方法,其特征在于,所述HightestBSN為收到的信息塊所對應(yīng)的 BSN中最大的BSN值加1。
4.如權(quán)利要求2所述的方法,其特征在于,在生成類型OARQFeedback IE之前還包括 步驟判斷數(shù)據(jù)傳輸?shù)膬啥耸欠裰С诸愋蚈ARQ Feedback IE,當(dāng)數(shù)據(jù)傳輸?shù)膬啥瞬恢С诸?型 OARQ Feedback IE 時,生成類型 3ARQ FeedbackIE。
5.如權(quán)利要求2所述的方法,其特征在于,所述第一設(shè)定條件為所有序列的總長度小 于第一設(shè)定值,或者所有序列的總長度小于第一個未接收到的信息塊的BSN和HighestBSN 之間的差值。
6.如權(quán)利要求2所述的方法,其特征在于,當(dāng)接收窗口起始位置對應(yīng)的信息塊已收到 時,生成類型 2ARQ Feedback IE。
7.如權(quán)利要求2或6所述的方法,其特征在于,判斷接收窗口起始位置對應(yīng)的信息塊是 否已收到的步驟包括在狀態(tài)數(shù)組中查詢并判斷接收窗口起始位置對應(yīng)的信息塊是否已收 到。
8.如權(quán)利要求6所述的方法,其特征在于,在生成類型2ARQFeedback IE之前還包 括步驟判斷數(shù)據(jù)傳輸?shù)膬啥耸欠裰С诸愋?ARQ Feedback IE,當(dāng)數(shù)據(jù)傳輸?shù)膬啥瞬恢С?類型2ARQ Feedback IE時,判斷數(shù)據(jù)傳輸?shù)膬啥耸欠裰С诸愋蚈ARQ Feedback IE,當(dāng)數(shù) 據(jù)傳輸?shù)膬啥酥С诸愋蚈ARQ Feedback IE時,生成類型OARQ Feedback IE和類型IARQ Feedback IE,當(dāng)數(shù)據(jù)傳輸?shù)膬啥瞬恢С诸愋蚈ARQ Feedback IE時,判斷數(shù)據(jù)傳輸?shù)膬啥耸?否支持類型3ARQ Feedback IE,當(dāng)數(shù)據(jù)傳輸?shù)膬啥酥С诸愋?ARQ Feedback IE時,生成類 型3ARQ Feedback IE,當(dāng)數(shù)據(jù)傳輸?shù)膬啥瞬恢С诸愋?ARQ Feedback IE時,生成類型IARQ Feedback IE。
9.如權(quán)利要求1所述的方法,其特征在于,判斷第一個未接收到的信息塊的塊序列號 BSN是否等于最大塊序列號HightestBSN,當(dāng)判斷結(jié)果為否時,判斷所有序列的總長度是否 滿足第二設(shè)定條件,當(dāng)所有序列的總長度滿足第二設(shè)定條件時,生成類型3ARQ Feedback IE。
10.如權(quán)利要求9所述的方法,其特征在于,在生成類型3ARQFeedbackIE之前還包 括步驟判斷數(shù)據(jù)傳輸?shù)膬啥耸欠裰С诸愋?ARQ Feedback IE,當(dāng)判斷結(jié)果為不支持類型 3ARQ Feedback IE時,判斷接收窗口起始位置對應(yīng)的信息塊是否已收到,當(dāng)判斷結(jié)果為已 收到時,生成類型2ARQ Feedback IE ;當(dāng)判斷結(jié)果為未收到時,生成類型OARQ Feedback IE。
11.如權(quán)利要求9所述的方法,其特征在于,所述第二設(shè)定條件為,接收窗口內(nèi)所有序列的總長度不小于第一設(shè)定值,或者接收窗口內(nèi)所有序列的總長度等于第一個未接收到的 信息塊的BSN和HightestBSN之間的差值。
12.如權(quán)利要求1,2,3,4,5,6,8,9,10或11所述的方法,其特征在于,在反饋執(zhí)行完 畢后,判斷反饋的信息塊所對應(yīng)的BSN中最大的BSN值加一是否等于HightestBSN,當(dāng)反 饋的信息塊所對應(yīng)的BSN中最大的BSN值加一不等于HightestBSN時,遍歷接收窗口中從 該最大的BSN值所對應(yīng)的信息塊開始到接收窗口結(jié)束位置之間的信息塊,生成類型OARQ Feedback IE0
13.一種自動重傳請求ARQ連接的反饋裝置,其特征在于,包括查找模塊,用于確定接收窗口中第一個未接收到的信息塊的序列號BSN ;判斷模塊,用于判斷第一個未接收到的信息塊的塊序列號BSN是否等于HightestBSN ;生成模塊,用于當(dāng)判斷結(jié)果為是時,生成類型1自動重傳請求反饋信息元素ARQ Feedback IE ;收發(fā)模塊,用于發(fā)送ARQ Feedback IE組成的反饋凈荷。
14.如權(quán)利要求13所述的裝置,其特征在于,所述判斷模塊還用于當(dāng)判斷結(jié)果為否時, 判斷所有序列的總長度是否滿足第一設(shè)定條件,當(dāng)判斷結(jié)果為是時,判斷接收窗口起始位 置對應(yīng)的信息塊是否已收到,所述生成模塊還用于當(dāng)接收窗口起始位置對應(yīng)的信息塊未收 到時,生成類型OARQ Feedback IE。
15.如權(quán)利要求13所述的裝置,其特征在于,所述判斷模塊用于判斷第一個未接收到 的信息塊的塊序列號BSN是否等于最大塊序列號HightestBSN,當(dāng)判斷結(jié)果為否時,判斷所 有序列的總長度是否滿足第二設(shè)定條件;所述生成模塊用于當(dāng)所有序列的總長度滿足第二 設(shè)定條件時,生成類型3ARQ FeedbackIE0
全文摘要
本發(fā)明公開了一種ARQ連接的反饋方法,用于實現(xiàn)對ARQ反饋類型的正確選擇,以保證用盡量少的ARQ Feedback IE反饋盡量多的信息塊。所述方法包括確定接收窗口中第一個未接收到的信息塊的序列號BSN;判斷第一個未接收到的信息塊的塊序列號BSN是否等于最大塊序列號HightestBSN,當(dāng)判斷結(jié)果為是時,生成類型1自動重傳請求反饋信息元素ARQ Feedback IE;發(fā)送ARQ Feedback IE組成的反饋凈荷。本發(fā)明還公開了用于實現(xiàn)所述方法的裝置。
文檔編號H04L1/18GK101989896SQ20101054619
公開日2011年3月23日 申請日期2010年11月15日 優(yōu)先權(quán)日2010年11月15日
發(fā)明者田旌熙 申請人:中興通訊股份有限公司