亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多拒絕自動請求重傳arq機制的制作方法

文檔序號:7685723閱讀:404來源:國知局
專利名稱:多拒絕自動請求重傳arq機制的制作方法
技術領域
本發(fā)明涉及無線數據通信系統(tǒng)中的數據鏈路層差錯控制的自動請求重傳ARQ機制。
背景技術
高級數據鏈路控制HDLC自動請求重傳機制和選擇重傳SR自動請求重傳機制用于低誤碼率有線數據通信系統(tǒng)中,可以獲得很好數據傳輸效率,而在無線數據通信系統(tǒng)中,由于無線信道質量很差,需要大量的鏈路控制帶寬用于傳輸錯誤幀的確認信息,確認效率很低。因此在無線數據通信系統(tǒng)中,需要高確認效率的自動請求重傳機制。
第三代移動通信標準3GPP采用多拒絕MR自動請求重傳機制[3GPP TS25.322 V4.2.03rd Generation Partnership Project;TechnicalSpecification Group Radio Access Network;RLC protocolspecification;(Release 4)],該機制數據接收方發(fā)送的鏈路控制PDU(即Status PDU)一次可以同時對多個數據PDU(協議數據單元)的接收狀態(tài)進行確認,確認效率比HDLC自動請求重傳機制和SR自動請求重傳機制有了很大提高。但是3GPP采用的多拒絕自動請求重傳機制,存在下面一些問題每次確認都對接收窗口中的所有數據PDU的接收狀態(tài)進行確認,相鄰發(fā)送的兩個鏈路控制PDU包含對很多相同數據PDU的確認,確認信息冗余度很大,造成數據帶寬極大浪費;數據接收方不能對還未發(fā)送的PDU進行確認,這就要求鏈路控制PDU的大小為變長,所以其鏈路控制PDU最大長度與數據PDU大小相同,鏈路控制PDU不能填滿最大長度時,存在很多無用的填充信息,造成很大的數據帶寬浪費;不能根據數據接收方接收窗口內當前數據PDU錯誤的分布情況,用鏈路控制PDU的有限比特對盡可能多的數據PDU同時進行確認。HIPERLAN(High Performance LAN)標準采用部分位圖選擇重傳自動請求重傳(Selective Repeat ARQ with PartialBitmap機制)[ETSI TS 101 761-1 V1.3.1Broadband Radio AccessNetworks(BRAN);HIPERLAN Type2;Data Link Control(DLC)Layer;Part1Basic Data Transport Functions],該機制數據接收方的鏈路控制PDU(即C-PDU)也可一次同時對多個數據PDU的接收狀態(tài)進行確認,但只對接收窗口內的包含有錯誤數據PDU的一部分數據PDU的接收狀態(tài)用位圖進行確認,減小了相鄰鏈路控制PDU之間的確認信息冗余。但該機制存在下面一些問題只用位圖同時對多個數據PDU進行確認,一個鏈路控制PDU最多同時對24個數據PDU進行確認,在數據PDU出錯突發(fā)性很強時確認效率很低,而如果此時用相對偏移確認效率會高得多;雖然該機制只對接收窗口中的部分數據PDU的接收狀態(tài)用位圖進行確認,但是標準中未定義每次如何確定對接收窗口內的哪些數據PDU進行確認的方法;雖然鏈路控制PDU采用固定長度,但未提出如何用固定長度的位圖對發(fā)送方還未發(fā)送的PDU進行確認以及如何避免由此可能引起的鏈路控制PDU包含的確認信息語義歧義的方法;沒有被位圖確認的正確接收的數據PDU,通過累積確認,即對首序號前的所有數據PDU進行肯定確認來進行肯定確認,如果在無線鏈路RTT(數據發(fā)送方發(fā)送數據PDU到收到鏈路控制PDU的往返時間)內數據接收方未能移動接收窗口,則本次發(fā)送的包含累積確認的鏈路控制PDU和上次發(fā)送的包含累積確認的鏈路控制PDU之間包含很多冗余的確認信息,而且由于數據發(fā)送方未進行超時重傳,數據PDU只有收到否定確認后才進行重傳,鏈路的平均時延和吞吐率對包含累積確認的鏈路控制PDU的丟失很敏感。

發(fā)明內容
本發(fā)明的目的為了克服現有技術中存在的無線鏈路高誤碼引起的低信道利用率和高時延的缺點,而提供一種高確認效率和高吞吐率的自動請求重傳機制。
本發(fā)明的技術方案為一種數據鏈路層的多拒絕自動請求重傳機制,將不可靠的無線物理鏈路改造成可靠的數據邏輯鏈路,為網絡層提供可靠的數據傳輸范圍,包括以下步驟數據發(fā)送方和數據接收方通過包含鏈路管理信息的鏈路控制PDU建立數據邏輯鏈路連接;數據發(fā)送方的數據鏈路層從上層獲取SDU(服務數據單元),由分割模塊將SDU分割成固定大小的PU(負載單元),再由封裝模塊封裝成數據PDU,放入發(fā)送窗口緩沖區(qū)的空閑存儲單元,等待發(fā)送;數據發(fā)送方的MAC子層通知數據發(fā)送模塊可以發(fā)送數據PDU以及發(fā)送數據PDU的個數,數據發(fā)送模塊首先根據發(fā)送窗口緩沖區(qū)中各數據PDU的發(fā)送狀態(tài)確定本次發(fā)送哪些數據PDU,然后發(fā)送這些數據PDU,并為發(fā)送的每個數據PDU啟動發(fā)送超時定時器,修改該數據PDU的發(fā)送狀態(tài)為正在發(fā)送狀態(tài);當數據發(fā)送方有發(fā)送超時定時器超時,超時處理模塊修改相應數據PDU的發(fā)送狀態(tài)為等待發(fā)送狀態(tài),等待數據發(fā)送模塊進行重傳;當數據發(fā)送方收到包含確認信息的鏈路控制PDU,確認信息處理模塊首先分析該鏈路控制PDU包含對哪些數據PDU的確認,并對所有的否定確認進行否定有效性判斷,再對每一個有效的確認,包括所有肯定確認和所有有效的否定確認,修改相應數據PDU的發(fā)送狀態(tài),并取消該數據PDU的發(fā)送超時定時器;當數據接收方收到數據PDU,數據接收處理模塊將接收的數據PDU和檢測到丟失的數據PDU的PDU序號和到達時間記錄到確認等待隊列中,將正確接收的數據PDU放到接收窗口緩沖區(qū)的存儲單元中,將其接收狀態(tài)設為已正確接收狀態(tài),如果滿足移動接收窗口的條件則通知移動接收窗口模塊移動接收窗口;當移動接收窗口模塊收到數據接收處理模塊的移動接收窗口的通知,將連續(xù)多個已正確接收的數據PDU移出接收窗口緩沖區(qū),提交給解封模塊,同時將移出的數據PDU原先占用的存儲單元設為空閑,接收狀態(tài)設為未正確接收狀態(tài);解封模塊收到數據PDU后,提取出封裝的PU提交給重組模塊;如果一個SDU對應的所有PU提交給了重組模塊,重組模塊由這些PU重組出SDU提交各上層;數據接收方的確認信息發(fā)送控制模塊周期性的判斷是否滿足發(fā)送包含確認信息的鏈路控制PDU的條件,如果滿足條件則通知確認信息發(fā)送模塊發(fā)送包含確認信息的鏈路控制PDU;數據接收方的確認信息發(fā)送模塊收到確認信息發(fā)送控制模塊的發(fā)送確認信息通知后,利用確認等待隊列,確定發(fā)送包含確認信息的鏈路控制PDU的FSN字段和確認類型字段,再生成Bitmap/Relative Offsets字段,構造出完整的固定大小的鏈路控制PDU,從確認等待隊列中刪除該鏈路控制PDU確認的數據PDU的記錄節(jié)點,并發(fā)送該鏈路控制PDU。
數據PDU的格式定義如表1所示,包括下面一些字段

表1 數據PDU格式定義首標志字段,長度為1個比特,用于標識該數據PDU的數據部分是否封裝將SDU分割所得的第1個PU,為1時該PDU的數據部分為封裝SDU分割所得的第1個PU,為0時該PDU的數據部分封裝的PU不是SDU分割所得的第1個PU。
數據PDU類型字段,長度為5個比特,用于區(qū)分該數據PDU中封裝的SDU的類型。
序號字段,表示該數據PDU的序號,不同的無線數據通信系統(tǒng)可以根據系統(tǒng)最大速率選擇不同的序號字段長度,該字段長度為M個比特,M范圍為8-16比特,系統(tǒng)的最大速率越高,該字段長度越大,而在同一系統(tǒng)中該字段的長度是固定的,序號在0到2M-1之間循環(huán)編號。
數據字段,長度由系統(tǒng)的MAC幀長度決定,包含將SDU分割所得的PU,如果PU長度還不到數據部分的最大長度,則要在PU后加入填充部分,以使整個數據PDU的長度為固定長度。
多拒絕自動請求重傳機制的鏈路控制PDU的格式定義如表2所示,包括下面一些字段

表2 鏈路控制PDU格式定義A/M確認/管理字段,1個比特,該字段為1時表示該鏈路控制PDU用于傳輸自動請求重傳的確認信息;該字段為0時表示該鏈路控制PDU用于鏈路管理,包括數據邏輯鏈路的建立、釋放和復位等鏈路管理過程,數據邏輯鏈路的實現參考HDLC標準或3GPP的RLC標準;FSN首序號字段,長度和數據PDU定義的序號字段長度相同,為M個比特,取值范圍為0到2M-1,當A/M字段為1時,該字段表示該鏈路控制PDU確認的第1個數據PDU的序號;ACK Type確認類型字段,3個比特,當A/M字段為1時,該字段表示該鏈路控制PDU的確認類型,共有8種確認類型,如表3所示,包括兩種位圖確認類型和六種偏移確認類型;

表3 鏈路控制PDU確認類型Bitmap/Relative Offsets位圖/相對偏移字段,當A/M字段為1時,該字段包含位圖確認信息或相對偏移確認信息,通過ACK Type字段的值進行區(qū)分。在不同的無線數據通信系統(tǒng)可以根據系統(tǒng)最大速率選擇不同該字段長度,該字段的長度N個比特,N的范圍為12-64比特,系統(tǒng)的最大速率越高,該字段長度越大,而在同一系統(tǒng)中該字段長度為固定;ACK PDU Count確認PDU計數字段,當A/M字段為1時,該字段表示該鏈路控制PDU從序號為FSN的數據PDU開始實際確認的數據PDU個數,對于不支持按時間進行否認有效性判斷的系統(tǒng),該字段用于幫助判斷確認信息中否定確認的有效性。對于通過時間進行否認有效性判斷的系統(tǒng),可將該字段的值設為0,或在設計鏈路控制PDU格式時不定義該字段,在不同的無線數據通信系統(tǒng)可以根據系統(tǒng)最大速率選擇不同該字段長度,該字段的長度范圍為7-15比特,系統(tǒng)的最大速率越高,該字段長度越大,而在同一系統(tǒng)中該字段長度為固定的;CRC循環(huán)冗余碼字段,用于對鏈路控制PDU進行差錯檢測,可以采用8、12、16、20、24、28或32位的CRC。
鏈路控制PDU中的Bitmap/Relative Offsets字段為Bitmap還是為Relative Offsets是由ACK Type字段決定的,ACK Type字段為000或001時該字段為Bitmap,ACK Type字段為其它數值時該字段為RelativeOffsets。
當該字段為Bitmap時,該字段的格式如表4所示。

表4 Bitmap的格式定義當鏈路控制PDU的確認類型是累積確認位圖類型時,Bit1表示對序號為FSN+1數據PDU的接收情況的確認,如果為1則表示該PDU已被接收方正確接收,即肯定確認;如果為0則表示沒有正確接收,即否定確認。Bit2表示對序號FSN+2的數據PDU的接收情況的確認,同理Bit3到BitN位表示對序號從FSN+3到FSN+N的數據PDU接收情況的確認。
當鏈路控制PDU的確認類型是非累積確認位圖類型時,Bit1表示對序號為FSN數據PDU的接收情況的確認,如果為1則表示該PDU已被接收方正確接收,即肯定確認;如果為0則表示沒有正確接收,即否定確認。Bit2表示對序號FSN+1的數據PDU的接收情況的確認,同理Bit3到BitN位表示對序號從FSN+2到FSN+N-1的數據PDU接收情況的確認。
當該字段為Relative Offsets時,該字段的格式如表5所示。

表5 Relative Offets的格式定義該字段包含多個相對偏移Relative Offset 1、Relative Offset2、…Relative Offset k,相對偏移的個數k的范圍為3~16。每個相對偏移的長度Li(i=1~k)為4-6個比特,所有相對偏移的長度和應滿足等于Bitmap/Relative Offsets字段的長度N。
當相對偏移不為0時,第1個相對偏移的值表示第1個實際偏移與FSN的序號循環(huán)差值,即第1個相對偏移的值=(第1個實際偏移+2M-FSN)MOD2M,第1個實際偏移等于FSN與第1個相對偏移的循環(huán)和值,即第1個實際偏移的值=(第1個相對偏移+FSN)MOD 2M。第2個相對偏移的值表示第2個實際偏移與第1個實際偏移的序號循環(huán)差值,第2個實際偏移等于第1個實際偏移與第2個相對偏移的循環(huán)和值。第i(i=2~k)個相對偏移的值表示第i個實際偏移和第i-1個實際偏移的序號循環(huán)差值,第i個實際偏移等于第i-1個實際偏移與第i個相對偏移的循環(huán)和值。如果ACK Type為010、011、100之一,序號為第i個實際偏移的數據PDU被否定確認,序號在FSN和第1個實際偏移之間的所有數據PDU被肯定確認,序號在第i-1個實際偏移和第i個實際偏移之間的所有數據PDU被肯定確認;如果ACK Type為101、110、111之一,序號為第i個實際偏移的數據PDU被肯定確認,序號在FSN和第1個實際偏移之間的所有數據PDU被否定確認,序號在第i-1個實際偏移和第i個實際偏移之間的所有數據PDU被否定確認。
第1個相對偏移的值等于0,則第1個實際偏移與FSN的序號循環(huán)差值為該相對偏移可以表示的最大值 ,即第1個實際偏移等于FSN與 的循環(huán)和值。第i(i=2~k)個相對偏移的值等于0則第i個實際偏移與第i-1個實際偏移的序號循環(huán)差值為第i個相對偏移可以表示的最大值 ,即第i個實際偏移等于第i-1個實際偏移與 的循環(huán)和值。
如果ACK Type為010、011、100之一,第i(i=1~k)個相對偏移的值等于0時,序號為第i個實際偏移的數據PDU,不是被否定確認,而是被肯定確認。這樣序號在第i-1個實際偏移或FSN(i=1時)和第i+1個實際偏移之間的所有數據PDU都被肯定確認。
如果ACK Type為101、110、111之一,第i(i=1~k)個相對偏移的值等于0時,序號為第i個實際偏移的數據PDU,不是被肯定確認,而是被否定確認。這樣序號在第i-1個實際偏移或FSN(i=1時)和第i+1個實際偏移之間的所有數據PDU都被否定確認。
對于Relative offsets字段,所有相對偏移從序號FSN開始同時確認的數據PDU個數在k+1~ 之間變化。
每種確認類型的鏈路控制PDU包含的確認信息定義為分別為累積確認位圖鏈路控制PDU對FSN之前的所有數據PDU進行肯定確認的同時,用N個比特的位圖對從FSN開始包括FSN的連續(xù)N+1個數據PDU進行確認。累積確認位圖鏈路控制PDU總是對FSN的數據PDU進行否定確認,位圖中為1的比特表示該比特對應的數據PDU已正確接收,位圖中為0的比特表示該比特對應的數據PDU還未正確接收,位圖的第1個比特對應FSN后面的第1個數據PDU,即序號為FSN+1的數據PDU。
非累積確認位圖鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,即FSN之前的數據PDU未全部正確接收。非累積確認位圖鏈路控制PDU用N個比特的位圖對從FSN開始包括FSN連續(xù)N個數據PDU進行確認,位圖中為1的比特表示該比特對應的數據PDU已正確接收,位圖中為0的比特表示該比特對應的數據PDU還未正確接收,位圖的第1個比特對應序號為FSN的數據PDU。
累積確認否定偏移鏈路控制PDU對FSN之前的所有數據PDU進行肯定確認的同時,對序號在k個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行肯定確認。如果第i(i=1~k)個相對偏移不為0時,該累積確認否定偏移鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認,而如果第i(i=1~k)個相對偏移為0時,該累積確認否定偏移鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認。累積確認否定偏移鏈路控制PDU總是對序號為FSN的數據PDU進行否定確認。
非累積確認否定偏移1鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,對序號在k個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行肯定確認。如果第i(i=1~k)個相對偏移不為0時,該累積確認否定偏移1鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認,而如果第i(i=1~k)個相對偏移為0時,該累積確認否定偏移1鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認。非累積確認否定偏移1鏈路控制PDU總是對序號為FSN的數據PDU進行肯定確認。
非累積確認否定偏移2鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,對序號在k個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行肯定確認。如果第i(i=1~k)個相對偏移不為0時,該累積確認否定偏移2鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認,而如果第i(i=1~k)個相對偏移為0時,該累積確認否定偏移2鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認。非累積確認否定偏移2鏈路控制PDU總是對序號為FSN的數據PDU進行否定確認。
累積確認肯定偏移鏈路控制PDU對FSN之前的所有數據PDU進行肯定確認的同時,對序號在k個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行否定確認。如果第i(i=1~k)個相對偏移不為0時,該累積確認肯定偏移鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認,而如果第i(i=1~k)個相對偏移為0時,該累積確認肯定偏移鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認。累積確認肯定偏移鏈路控制PDU總是對序號為FSN的數據PDU進行否定確認。
非累積確認肯定偏移1鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,對序號在k個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行否定確認。如果第i(i=1~k)個相對偏移不為0時,該累積確認肯定偏移1鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認,而如果第i(i=1~k)個相對偏移為0時,該累積確認肯定偏移1鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認。非累積確認肯定偏移1鏈路控制PDU總是對序號為FSN的數據PDU進行肯定確認。
非累積確認肯定偏移2鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,對序號在k個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行否定確認。如果第i(i=1~k)個相對偏移不為0時,該累積確認肯定偏移2鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認,而如果第i(i=1~k)個相對偏移為0時,該累積確認肯定偏移2鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認。非累積確認肯定偏移2鏈路控制PDU總是對序號為FSN的數據PDU進行否定確認。
數據發(fā)送方數據PDU的三種發(fā)送狀態(tài)的定義為等待發(fā)送狀態(tài)、已正確接收狀態(tài)和正在發(fā)送狀態(tài)。其中,等待發(fā)送狀態(tài)表示該數據PDU雖然已經進入發(fā)送窗口的緩沖區(qū),但是還未被發(fā)送過,或者已經被發(fā)送過但由于被否定確認而需重傳;已正確接收狀態(tài)表示該數據PDU已經被發(fā)送,而且已經被鏈路控制PDU確認為正確接收;正在發(fā)送狀態(tài)表示該數據PDU已經被發(fā)送,但是還沒有收到接收方的肯定確認或否定確認信息。
數據接收方對所有未正確接收到的數據PDU,包括數據發(fā)送方還未發(fā)送的數據PDU進行否定確認,數據發(fā)送方對鏈路控制PDU中包含的所有否認確認判斷其有效性。
數據發(fā)送方可以通過ACK PDU Count字段判斷否定確認有效性,或通過發(fā)送數據PDU和收到包含對該PDU否定確認的鏈路控制PDU的時間間隔是否大于鏈路RTT判斷否定確認有效性。對于根據時間判斷,如果從發(fā)送此數據PDU到接收到包含對該數據PDU進行否定確認的鏈路控制PDU的時間間隔小于鏈路RTT,則該否定確認是無效的,否則該否定確認是有效的。對于根據鏈路控制PDU中ACK PDU Count字段進行判斷,從FSN開始的連續(xù)ACK PDU Count個確認是有效的,后面的確認都是無效的。
數據發(fā)送方根據收到的鏈路控制PDU包含的確認信息,對肯定確認將發(fā)送窗口緩沖區(qū)中數據PDU的發(fā)送狀態(tài)修改為已經正確接收狀態(tài),取消該數據PDU的發(fā)送超時定時器;對否定確認,如果否認有效性為有效且該數據PDU的發(fā)送狀態(tài)為正在發(fā)送狀態(tài),將該數據PDU的發(fā)送狀態(tài)修改為等待發(fā)送狀態(tài),取消該數據PDU的發(fā)送超時定時器;數據發(fā)送方發(fā)送定時器超時,不將發(fā)送超時的數據PDU放入重傳緩沖區(qū),而只是將該數據PDU的發(fā)送狀態(tài)修改為等待發(fā)送狀態(tài)。
數據發(fā)送方不使用重傳緩沖區(qū),通過發(fā)送窗口緩沖區(qū)中數據PDU的發(fā)送狀態(tài),從發(fā)送窗口的第1個數據PDU開始選擇發(fā)送狀態(tài)為等待發(fā)送狀態(tài)的數據PDU發(fā)送。
確認等待隊列的定義為數據接收方用于記錄當前還未確認的正確接收的數據PDU和檢測到丟失的數據PDU的隊列,該隊列按數據PDU的到達時間或檢測到丟失的時間的先后順序排列,隊列的每個節(jié)點記錄該PDU的序號和到達時間或檢測到丟失的時間。
數據接收方在接收數據PDU并檢測丟失數據PDU后,如果接收的數據PDU和檢測到丟失數據PDU未記錄在確認等待隊列中,將該數據PDU的序號和到達時間或檢測到丟失的時間記錄到確認等待隊列中。
數據接收方利用確認發(fā)送定時器、確認等待隊列的長度和確認等待隊列的最大等待確認時間自動地確定發(fā)送鏈路控制PDU的時機。確認等待隊列的最大等待確認時間定義為確認等待隊列最前端的記錄節(jié)點記錄的時間和當前時間的時間間隔,即隊列第1個記錄節(jié)點的等待確認時間。當滿足下面任何一個條件時,數據接收方應發(fā)送包含確認信息的鏈路控制PDU。發(fā)送包含確認信息的鏈路控制PDU的條件為確認發(fā)送超時定時器超時;最大等待確認時間超過等待確認時間門限;確認等待隊列的長度超過確認發(fā)送觸發(fā)長度。
確認等待隊列中等待確認時間超過放棄確認時間的數據PDU從確認等待隊列中刪除其對應的記錄節(jié)點,放棄對該數據PDU進行確認。記錄節(jié)點的等待確認時間定義為當前時間與該記錄節(jié)點記錄的時間的時間間隔。
數據接收方利用確認等待隊列,確定本次發(fā)送的鏈路控制PDU的FSN。獲取當前確認等待隊列第1個記錄節(jié)點記錄的數據PDU的序號,如果該序號不在接收窗口序號范圍之內或與接收窗口第1個數據PDU序號相同,FSN設為接收窗口第1個數據PDU的序號;否則,FSN設為確認等待隊列第1個記錄節(jié)點記錄的數據PDU的序號。
根據從序號為FSN+1的數據PDU開始的N-1個數據PDU的中未正確接收的數據PDU個數,確定本次發(fā)送的鏈路控制PDU確認類型。確定鏈路控制PDU確認類型的具體過程為如果未正確接收的個數小于k,則鏈路控制PDU應采用否定偏移進行確認,并根據下面條件決定具體采用哪一種否定偏移確認類型如果FSN等于接收窗口第1個數據PDU的序號,則該鏈路控制PDU應為累積確認否定偏移鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,且序號為FSN的數據PDU的接收狀態(tài)為已正確接收狀態(tài),則鏈路控制PDU為非累積確認否定偏移1鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,且序號為FSN的數據PDU的接收狀態(tài)為未正確接收狀態(tài),則鏈路控制PDU為非累積確認否定偏移2鏈路控制PDU。
如果未正確接收的個數在k和N-k之間,包括k和N-k,則鏈路控制PDU應采用位圖進行確認,并根據下面條件決定具體采用哪一種位圖確認類型如果FSN等于接收窗口第1個數據PDU的序號,則該鏈路控制PDU為累積確認位圖鏈路控制PDU。如果FSN不等于接收窗口第1個數據PDU的序號,則該鏈路控制PDU為非累積確認位圖鏈路控制PDU。
如果未正確接收的個數大于N-k,則鏈路控制PDU應為采用肯定偏移類型進行確認,并根據下面條件決定具體采用哪一種肯定偏移確認類型如果FSN等于接收窗口第1個數據PDU的序號,則該鏈路控制PDU應為累積確認肯定偏移鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,且序號為FSN的數據PDU的接收狀態(tài)為已正確接收狀態(tài),則鏈路控制PDU為非累積確認肯定偏移1鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,且序號為FSN的數據PDU的接收狀態(tài)為未正確接收狀態(tài),則鏈路控制PDU為非累積確認肯定偏移2鏈路控制PDU。
根據FSN和鏈路控制PDU確認類型,構造鏈路控制PDU中位圖/相對偏移字段。對于每一種確認類型,構造鏈路控制PDU中位圖/相對偏移字段的具體過程為
累積確認位圖鏈路控制PDU位圖總長度為N個比特,位圖第1位對應著序號為FSN+1的數據PDU的接收狀態(tài)。從序號為FSN+1的數據PDU到序號為FSN+N的數據PDU,根據數據PDU的接收狀態(tài)依次開始填充位圖信息,如果此數據PDU已被正確接收,即接收狀態(tài)為已正確接收狀態(tài),則位圖對應比特為1;如果此數據PDU未被正確接收,即接收狀態(tài)為未正確接收狀態(tài),則位圖的對應比特為0。
非累積確認位圖鏈路控制PDU位圖總長度為N個比特,位圖第1位對應著序號為FSN的數據PDU的接收狀態(tài)。從序號為FSN的數據PDU到序號為FSN+N-1的數據PDU,根據數據PDU的接收狀態(tài)依次開始填充位圖信息,如果此數據PDU已被正確接收,則位圖對應比特為1;如果此數據PDU未被正確接收,則位圖的對應比特為0。
累積確認否定偏移鏈路控制PDU相對偏移字段長度為N個比特,共包括k個相對偏移。第1個相對偏移的值應為從序號FSN+1開始的第1個未正確接收的數據PDU的序號和FSN的“距離”,即這兩個數據PDU之間的數據PDU個數加1,最大值為 。第2個相對偏移的值應為序號FSN+1開始的第2個未正確接收的數據PDU到第1個未正確接收的數據PDU的距離,最大值為 。第i(i=2~k)個相對偏移的值應為從序號FSN+1開始的第i個未正確接收的數據PDU到第i-1個未正確接收的數據PDU的距離,最大值為 。如果第i-1(i=2~k)個未正確接收的數據PDU或序號為FSN的數據PDU(i=1時)之后的 個數據PDU都已正確接收,則第i個相對偏移的值設為0,并且第i-1(i=2~k)個未正確接收的數據PDU或序號為FSN的數據PDU(i=1時)之后的第 個數據PDU作為求第i+1個相對偏移的值的起始點,即第i+1個相對偏移的值為下一個未正確接收的數據PDU和這個起始點的距離,注意該起始點的數據PDU已正確接收。
非累積確認否定偏移1鏈路控制PDU獲取相對偏移字段各個相對偏移的值的方法與累積確認否定偏移鏈路控制PDU的相同。
非累積確認否定偏移2鏈路控制PDU獲取相對偏移字段各個相對偏移的值的方法與累積確認否定偏移鏈路控制PDU的相同。
累積確認肯定偏移鏈路控制PDU相對偏移字段長度為N個比特,共包括k個相對偏移。第1個相對偏移的值應為從序號FSN+1開始的第1個已正確接收的數據PDU的序號和FSN的“距離”,即這兩個數據PDU之間的數據PDU個數加1,最大值為 。第2個相對偏移的值應為序號FSN+1開始的第2個已正確接收的數據PDU到第1個已正確接收的數據PDU的距離,最大值為 。第i(i=2~k)個相對偏移的值應為從序號FSN+1開始的第i個已正確接收的數據PDU到第i-1個已正確接收的數據PDU的距離,最大值為 。如果第i-1(i=2~k)個已正確接收的數據PDU或序號為FSN的數據PDU(i=1時)之后的 個數據PDU都未正確接收,則第i個相對偏移的值設為0,并且第i-1(i=2~k)個已正確接收的數據PDU或序號為FSN的數據PDU(i=1時)之后的第 個數據PDU作為求第i+1個相對偏移的值的起始點,即第i+1個相對偏移的值為下一個已正確接收的數據PDU和這個起始點的距離,注意該起始點的數據PDU未正確接收。
非累積確認肯定偏移1鏈路控制PDU獲取相對偏移字段各個相對偏移的值的方法與累積確認肯定偏移鏈路控制PDU的相同。
非累積確認肯定偏移2鏈路控制PDU獲取相對偏移字段各個相對偏移的值的方法與累積確認肯定偏移鏈路控制PDU的相同。
數據接收方生成鏈路控制PDU后,將該鏈路控制PDU實際確認的數據PDU的記錄節(jié)點從確認等待隊列中刪除。
與3GPP多拒絕的ARQ機制和HIPERLAN的部分位圖選擇重傳ARQ機制相比較,本發(fā)明的多拒絕的自動請求重傳ARQ機制的確認效率大大提高,并且吞吐率不會下降,這樣系統(tǒng)用于ARQ發(fā)送確認信息的數據帶寬大大下降,可以有更多的數據帶寬發(fā)送反向數據,可以很好的支持數據雙向傳輸;同時在確認帶寬不夠或信道質量急劇惡化時也可保證多拒絕ARQ機制穩(wěn)定工作,并當確認帶寬增加或信道質量得到改善時,可以很快地恢復到高吞吐率。


圖1為多拒絕自動請求重傳結構圖。
分割模塊501、封裝模塊502、數據發(fā)送模塊504、發(fā)送超時處理模塊503、確認信息處理模塊505、數據接收模塊508、確認信息發(fā)送控制模塊507、確認信息發(fā)送模塊506、移動接收窗口模塊509、解封模塊510和重組模塊511。
具體實施例方式
具體實施中采用的數據PDU的格式定義,如表6所示。其中,首標志字段長度為1個比特,數據PDU類型字段長度為4個比特,數據PDU類型字段長度為5個比特,保留字段為1個比特,用于將來數據PDU類型的擴充,序號字段長度M為10個比特,序號是從0到1023的循環(huán)編號,數據部分字段長度為86個字節(jié),所以每個固定長度的數據PDU長度為88個字節(jié)。

表6 具體實施采用的數據PDU格式定義具體實施中采用的鏈路控制PDU的格式定義,如表7所示。其中,A/M字段長度為1個比特,FSN字段的長度等于數據PDU序號長度M,為10個比特,ACK TYPE字段長度為3個比特,保留字段為2個比特,用于將來ACKTYPE字段的擴充,Bitmap/Relative Offsets字段長度N為16個比特,ACKPDU Count字段長度為8個比特,CRC字段的長度為16個比特。所以每個固定長度的鏈路控制PDU長度為7個字節(jié)。

表7 具體實施采用的鏈路控制PDU格式定義對于表7定義的鏈路控制PDU的Bitmap/Relative Offsets,當該字段為Bitmap時,該字段的格式如表8所示。

表8 實體實施采用的Bitmap的格式定義對于表7定義的鏈路控制PDU的Bitmap/Relative Offsets,當該字段為Relative Offsets時,該字段的格式如表9所示,其中相對偏移的個數k為3,其中L1、L2和L3分別為5,5,6,所以一個偏移確認類型的鏈路控制PDU從序號FSN的數據PDU開始同時確認的數據PDU個數最多為126,即32+32+64-3+1。

表9 實體實施采用的Relative Ofsets的格式定義對于表7定義的鏈路控制PDU,每種確認類型的鏈路控制PDU的包含的確認信息為累積確認位圖鏈路控制PDU對FSN之前的所有數據PDU進行肯定確認的同時,用16個比特的位圖對從FSN開始包括FSN的連續(xù)17個數據PDU進行確認。累積確認位圖鏈路控制PDU總是對FSN的的數據PDU進行否定確認,位圖的第1個比特對應FSN后面的第1個數據PDU,即序號為FSN+1的數據PDU。
非累積確認位圖鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,非累積確認位圖鏈路控制PDU用16個比特的位圖對從FSN開始包括FSN連續(xù)16個數據PDU進行確認,位圖的第1個比特對應序號為FSN的數據PDU。
累積確認否定偏移鏈路控制PDU對FSN之前的所有數據PDU進行肯定確認的同時,對序號在3個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行肯定確認。如果第i(i=1~3)個相對偏移不為0時,該累積確認否定偏移鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認,而如果第i(i=1~3)個相對偏移為0時,該累積確認否定偏移鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認。累積確認否定偏移鏈路控制PDU總是對序號為FSN的數據PDU進行否定確認。
非累積確認否定偏移1鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,即FSN之前的數據PDU未全部正確接收,對序號在3個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行肯定確認。如果第i(i=1~3)個相對偏移不為0時,該累積確認否定偏移1鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認,而如果第i(i=1~3)個相對偏移為0時,該累積確認否定偏移1鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認。非累積確認否定偏移1鏈路控制PDU總是對序號為FSN的數據PDU進行肯定確認。
非累積確認否定偏移2鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,對序號在3個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行肯定確認。如果第i(i=1~3)個相對偏移不為0時,該累積確認否定偏移2鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認,而如果第i(i=1~3)個相對偏移為0時,該累積確認否定偏移2鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認。非累積確認否定偏移2鏈路控制PDU總是對序號為FSN的數據PDU進行否定確認。
累積確認肯定偏移鏈路控制PDU對FSN之前的所有數據PDU進行肯定確認的同時,對序號在3個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行否定確認。如果第i(i=1~3)個相對偏移不為0時,該累積確認肯定偏移鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認,而如果第i(i=1~3)個相對偏移為0時,該累積確認肯定偏移鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認。累積確認肯定偏移鏈路控制PDU總是對序號為FSN的數據PDU進行否定確認。
非累積確認肯定偏移1鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,對序號在3個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行否定確認。如果第i(i=1~3)個相對偏移不為0時,該累積確認肯定偏移1鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認,而如果第i(i=1~3)個相對偏移為0時,該累積確認肯定偏移1鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認。非累積確認肯定偏移1鏈路控制PDU總是對序號為FSN的數據PDU進行肯定確認。
非累積確認肯定偏移2鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,對序號在3個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行否定確認。如果第i(i=1~3)個相對偏移不為0時,該累積確認肯定偏移2鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認,而如果第i(i=1~3)個相對偏移為0時,該累積確認肯定偏移2鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認。非累積確認肯定偏移2鏈路控制PDU總是對序號為FSN的數據PDU進行否定確認。
多拒絕自動請求重傳機制的簡單結構如圖1所示,數據發(fā)送方的發(fā)送窗口大小固定,為序號范圍的一半,對于10位的數據PDU序號,發(fā)送窗口大小為512,發(fā)送窗口緩沖區(qū)中有512個存儲單元,每個存儲單元存放一個數據PDU和該數據PDU的發(fā)送狀態(tài),數據接收方的接收窗口的大小固定,和數據發(fā)送方的發(fā)送窗口大小相同,不會出現接收緩沖區(qū)不足的問題,每個數據窗口緩沖區(qū)單元存儲接收到的數據PDU和接收狀態(tài)。
數據發(fā)送方包括下面一些模塊分割模塊501、封裝模塊502、數據發(fā)送模塊504、發(fā)送超時處理模塊503和確認信息處理模塊505。
數據接收方包括下面一些模塊數據接收模塊508、確認信息發(fā)送控制模塊507、確認信息發(fā)送模塊506、移動接收窗口模塊509、解封模塊510和重組模塊511。數據發(fā)送方算法流程為1發(fā)送模塊504
數據發(fā)送流程是由MAC子層信號觸發(fā),MAC子層通知發(fā)送模塊504當前可以發(fā)送數據PDU及發(fā)送數據PDU的個數,發(fā)送模塊504從發(fā)送窗口的第1個數據PDU開始,向后檢查哪些數據PDU需要發(fā)送。如果該數據PDU的發(fā)送狀態(tài)是等待發(fā)送狀態(tài),則該數據PDU需要發(fā)送。然后從第1個數據PDU開始,依次將需要發(fā)送的數據PDU提交給MAC子層。每一個數據PDU被發(fā)送后,會有一個發(fā)送超時定時器啟動,同時該PDU的發(fā)送狀態(tài)設為正在發(fā)送狀態(tài)。發(fā)送超時定時器的超時時間應大于鏈路RTT和確認發(fā)送定時器定時時間的和,為了降低因鏈路控制PDU丟失引起的吞吐率下降,可增加發(fā)送超時定時器的超時時間,但時延會增加。
2、超時處理模塊503當發(fā)送窗口內某數據PDU的發(fā)送超時定時器超時,則超時處理模塊503被觸發(fā)執(zhí)行。超時處理模塊503將該數據PDU的發(fā)送狀態(tài)改為等待發(fā)送狀態(tài),等待數據發(fā)送模塊504對其進行重傳,同時將該發(fā)送超時定時器撤銷。
3、確認信息處理模塊505當確認信息處理模塊505和數據發(fā)送模塊504接收到一個鏈路控制PDU的時候1)確定這個鏈路控制PDU的FSN在發(fā)送窗口的位置。
a、如果這個FSN不在發(fā)送窗口內,則判斷FSN是否等于發(fā)送窗口中當前最大發(fā)送序號循環(huán)加1,如果相等則將變量s_position的值設為FSN,否則通過A/M位為0的鏈路控制PDU啟動數據邏輯鏈路復位過程。
b、如果這個FSN在發(fā)送窗口內,則將s_position的值設為FSN。
2)提取鏈路控制PDU中的ACK Type字段判斷確認信息的類型a、如果該字段是000,則進行累積確認位圖鏈路控制PDU處理。
i)對s_position之前的所有數據PDU進行肯定確認,將每個數據PDU對應的發(fā)送狀態(tài)改為已正確接收狀態(tài),同時撤銷該數據PDU對應的發(fā)送超時定時器。
ii)對s_position這個位置的數據PDU進行否定確認,通過否認有效性判斷方法判斷對該數據PDU的否認是否有效,如果這個否定確認有效,將其對應的發(fā)送狀態(tài)改為“等待發(fā)送狀態(tài)”,同時撤銷該PDU對應的發(fā)送超時定時器,如果無效則該數據PDU的發(fā)送狀態(tài)保持不變。
iii)對s_position之后的16個數據PDU按照位圖進行判斷,如果對應比特為1,就對發(fā)送窗口中對應的數據PDU進行肯定確認;如果對應比特為0,進行否定確認。修改已確認的數據PDU的發(fā)送狀態(tài),對于肯定確認,將發(fā)送狀態(tài)修改為已正確接收狀態(tài),同時撤銷對應的定時器;對于否定確認,如果否定確認有效且該數據PDU的發(fā)送狀態(tài)為正在發(fā)送狀態(tài),將發(fā)送狀態(tài)修改為等待發(fā)送狀態(tài),同時撤銷對應的定時器,否則該數據PDU的發(fā)送狀態(tài)保持不變。
b、該字段是001,進行非累積確認位圖鏈路控制PDU處理。
對s_position這個位置的數據PDU和s_position之后的數據PDU按照對應的位圖內容進行判斷,如果對應比特為1,就對發(fā)送窗口中對應的數據PDU進行肯定確認;如果對應比特為0,進行否定確認。修改已確認的數據PDU的發(fā)送狀態(tài),對于肯定確認,將發(fā)送狀態(tài)修改為已正確接收狀態(tài),同時撤銷對應的定時器;對于否定確認,如果否定確認有效且該數據PDU的發(fā)送狀態(tài)為正在發(fā)送狀態(tài),將發(fā)送狀態(tài)修改為等待發(fā)送狀態(tài),同時撤銷對應的定時器,否則該數據PDU的發(fā)送狀態(tài)保持不變。
C、類型字段是010,進行累積確認否定偏移鏈路控制PDU處理。
根據前面描述的累積確認否定偏移鏈路控制PDU包含的確認含義確定該鏈路控制PDU對哪些數據PDU進行肯定確認,對哪些數據PDU進行否定確認。對于進行肯定確認的數據PDU,將其發(fā)送狀態(tài)修改為已正確接收狀態(tài),同時撤銷對應的定時器;對于進行否定確認的數據PDU,如果否定確認有效且該數據PDU的發(fā)送狀態(tài)為正在發(fā)送狀態(tài),將發(fā)送狀態(tài)修改為等待發(fā)送狀態(tài),同時撤銷對應的定時器,否則該數據PDU的發(fā)送狀態(tài)保持不變。
d、如果該字段是011,進行非累積確認否定偏移1鏈路控制PDU處理。
根據前面描述的非累積確認否定偏移1鏈路控制PDU包含的確認含義確定該鏈路控制PDU對哪些數據PDU進行肯定確認,對哪些數據PDU進行否定確認。對于進行肯定確認的數據PDU,將其發(fā)送狀態(tài)修改為已正確接收狀態(tài),同時撤銷對應的定時器;對于進行否定確認的數據PDU,如果否定確認有效且該數據PDU的發(fā)送狀態(tài)為正在發(fā)送狀態(tài),將發(fā)送狀態(tài)修改為等待發(fā)送狀態(tài),同時撤銷對應的定時器,否則該數據PDU的發(fā)送狀態(tài)保持不變。
e、如果該字段是100,進行非累積確認否定偏移2鏈路控制PDU處理。
根據前面描述的非累積確認否定偏移2鏈路控制PDU包含的確認含義確定該鏈路控制PDU對哪些數據PDU進行肯定確認,對哪些數據PDU進行否定確認。對于進行肯定確認的數據PDU,將其發(fā)送狀態(tài)修改為已正確接收狀態(tài),同時撤銷對應的定時器;對于進行否定確認的數據PDU,如果否定確認有效且該數據PDU的發(fā)送狀態(tài)為正在發(fā)送狀態(tài),將發(fā)送狀態(tài)修改為等待發(fā)送狀態(tài),同時撤銷對應的定時器,否則該數據PDU的發(fā)送狀態(tài)保持不變。
f、如果該類型字段是101,進行累積確認肯定偏移鏈路控制PDU處理。
根據前面描述的累積確認肯定偏移鏈路控制PDU包含的確認含義確定該鏈路控制PDU對哪些數據PDU進行肯定確認,對哪些數據PDU進行否定確認。對于進行肯定確認的數據PDU,將其發(fā)送狀態(tài)修改為已正確接收狀態(tài),同時撤銷對應的定時器;對于進行否定確認的數據PDU,如果否定確認有效且該數據PDU的發(fā)送狀態(tài)為正在發(fā)送狀態(tài),將發(fā)送狀態(tài)修改為等待發(fā)送狀態(tài),同時撤銷對應的定時器,否則該數據PDU的發(fā)送狀態(tài)保持不變。
g、如果該字段是110,進行非累積確認肯定偏移1鏈路控制PDU處理。
根據前面描述的非累積確認肯定偏移1鏈路控制PDU包含的確認含義確定該鏈路控制PDU對哪些數據PDU進行肯定確認,對哪些數據PDU進行否定確認。對于進行肯定確認的數據PDU,將其發(fā)送狀態(tài)修改為已正確接收狀態(tài),同時撤銷對應的定時器;對于進行否定確認的數據PDU,如果否定確認有效且該數據PDU的發(fā)送狀態(tài)為正在發(fā)送狀態(tài),將發(fā)送狀態(tài)修改為等待發(fā)送狀態(tài),同時撤銷對應的定時器,否則該數據PDU的發(fā)送狀態(tài)保持不變。
h、如果該字段是111,進行非累積確認肯定偏移2鏈路控制PDU處理。
根據前面描述的非累積確認肯定偏移2鏈路控制PDU包含的確認含義確定該鏈路控制PDU對哪些數據PDU進行肯定確認,對哪些數據PDU進行否定確認。對于進行肯定確認的數據PDU,將其發(fā)送狀態(tài)修改為已正確接收狀態(tài),同時撤銷對應的定時器;對于進行否定確認的數據PDU,如果否定確認有效且該數據PDU的發(fā)送狀態(tài)為正在發(fā)送狀態(tài),將發(fā)送狀態(tài)修改為等待發(fā)送狀態(tài),同時撤銷對應的定時器,否則該數據PDU的發(fā)送狀態(tài)保持不變。
3)移動發(fā)送窗口從發(fā)送窗口的最前端開始依次檢查數據PDU的發(fā)送狀態(tài),如果對應的發(fā)送狀態(tài)為已正確接收狀態(tài),則表示已被正確接收,將此數據PDU從發(fā)送窗口緩沖區(qū)的存儲單元中刪除,該存儲單元變?yōu)榭臻e。這樣發(fā)送窗口一直移動到第1個發(fā)送狀態(tài)不為已正確接收狀態(tài)的數據PDU為止。
4)如果發(fā)送窗口進行了移動,通知封裝模塊502向發(fā)送窗口緩沖區(qū)提交新的數據PDU發(fā)送,新的數據PDU存入發(fā)送窗口緩沖區(qū)的空閑存儲單元后,對應的發(fā)送狀態(tài)初始化為等待發(fā)送狀態(tài)。
4、封裝模塊502封裝模塊502將分割模塊501分割得到的PU,按照數據PDU的格式封裝成數據PDU,在確認信息處理模塊505的觸發(fā)下將數據PDU存入發(fā)送窗口緩沖區(qū)的存儲單元中。
5、分割模塊501將上層協議提交的SDU分割成固定大小的PU,提交給封裝實體進行封裝處理。數據接收方算法流程描述為1、數據接收處理模塊508接收窗口中的每個單元都包含一個數據PDU,該數據PDU有兩種接收狀態(tài)已正確接收狀態(tài)和未正確接收狀態(tài)。已正確接收狀態(tài)表示對應的數據PDU已經被正確接收,未正確接收狀態(tài)表示對應的PDU還沒有被正確接收。
數據接收方要維護一個確認等待隊列,該隊列包括若干個記錄節(jié)點,隊列的每個記錄節(jié)點記錄一個已經正確接收或檢測到丟失但是還沒有來得及被確認的數據PDU的序號和該數據PDU到達或發(fā)現丟失的時間。該隊列是按照數據PDU序號正確接收或發(fā)現丟失的時間順序排列的,最先正確接收或檢測到丟失的數據PDU的記錄在隊列的最前面。
當數據接收處理模塊508正確收到一個數據發(fā)送方發(fā)來的數據PDU時,如果該數據PDU在接收窗口內,進行下面一些操作a、獲得這個數據PDU序號在接收窗口中相對于接收窗口第1個數據PDU的相對位置,即循環(huán)序號差,用變量r_position表示;b、對確認等待隊列進行下面的操作i)當前接收窗口相對于接收窗口第1個數據PDU的最大接收數據PDU的相對位置由變量max_rev_position表示。如果r_position大于max_rev_position加1,則檢測到相對位置在max_rev_position和r_position之間的數據PDU丟失,即這些數據PDU雖然沒有收到,但是它們已經被發(fā)送但是丟失,所以需要將這些檢測到丟失的數據PDU和接收到的數據PDU的記錄節(jié)點都插入到確認等待隊列;否則,只將該數據PDU的記錄節(jié)點插入到確認等待隊列。
ii)如果r_position大于等于max_rev_position加1,將r_position的值賦給max_rev_position。
iii)對本次需插入的每個數據PDU,按序號先后判斷確認等待隊列中是否已經存在序號和該數據PDU序號相同的記錄節(jié)點。如果存在,則該數據PDU的記錄節(jié)點不插入隊列,否則插入到隊列的尾部。
c、將正確接收的數據PDU放入接收窗口緩沖區(qū)的對應存儲單元,將對應的接收狀態(tài)設為已正確接收狀態(tài)。
d、判斷接收到的這個PDU的序號是否和接收窗口第1個數據PDU的序號相同,如果是,則產生一個觸發(fā)信號給移動接收窗口模塊509。
2、移動接收窗口模塊509移動接收窗口模塊509由數據接收處理模塊508觸發(fā)執(zhí)行,包括下面一些操作
從接收窗口的第1個數據PDU開始依次檢查,如果其已經被正確接收到,即對應接收狀態(tài)為已正確接收狀態(tài),則將此數據PDU提交給解封模塊510并從接收窗口緩沖區(qū)中刪除,同時要在接收窗口隊列的尾部填進一個新的空白單元,該空白單元的序號對應等待接收的最后一個數據PDU的序號,接收狀態(tài)設為未正確接收狀態(tài)。這樣接收窗口就向后移動了一個位置,接收窗口緩沖區(qū)的長度始終保持不變。
然后依次判斷下一個數據PDU,接收窗口一直移動到第1個沒有正確接收到的數據PDU的位置,作為接收窗口新的第1個數據PDU,并且根據本次移出接收窗口的數據PDU的個數修改變量max_rev_position的值。
3、確認信息發(fā)送控制模塊507確認信息發(fā)送控制模塊507在每個控制信道發(fā)送時隙,判斷該發(fā)送時隙是否應發(fā)送包含確認信息的鏈路控制PDU。
該模塊在每個控制信道發(fā)送時隙被周期性的觸發(fā)執(zhí)行,觸發(fā)后根據判斷下面三個條件是否有滿足條件的,只要有一個條件滿足就應該在該時隙發(fā)送包含確認信息的鏈路控制PDUa、如果確認發(fā)送超時定時器超時。具體實施中確認發(fā)送超時定時器的定時時間可以根據不同系統(tǒng)的實際鏈路時延和對平均時延的要求進行設置,最小可以等于一個控制信道發(fā)送時隙,也可以為多個控制信道發(fā)送時隙,確認發(fā)送超時定時器的定時時間越小,系統(tǒng)平均時延越小;b、利用確認等待隊列第1個記錄節(jié)點記錄的時間和當前時間計算確認等待隊列的最大等待確認時間,如果最大等待確認時間超過等待確認時間門限。具體實施中等待確認時間門限可以根據不同系統(tǒng)的實際鏈路時延和對平均時延的要求進行設置,應滿足小于放棄確認時間,該門限值越小系統(tǒng)的時延越小,但確認效率會下降;c、如果確認等待隊列的長度超過確認發(fā)送觸發(fā)長度。具體實施中確認發(fā)送觸發(fā)長度設為一個鏈路控制PDU從FSN開始一次最多可以確認的數據PDU個數的,即126。
如果滿足發(fā)送包含確認信息的鏈路控制PDU的條件則通知確認信息發(fā)送模塊506構造鏈路控制PDU進行確認,同時重新啟動確認發(fā)送定時器,否則該時隙不發(fā)送鏈路控制PDU進行確認。
4、確認信息發(fā)送模塊506該模塊由確認信息發(fā)送控制模塊507觸發(fā)執(zhí)行,該模塊收到確認信息發(fā)送控制模塊507的觸發(fā)信號后,檢查確認等待隊列的長度,如果其長度不為0,則要構造鏈路控制PDU并發(fā)送。
構造鏈路控制PDU的步驟包括
a、確定鏈路控制PDU中的FSN首先計算確認等待隊列的最大等待確認時間,如果最大等待確認時間大于放棄確認時間門限,則將確認等待隊列前面所有等待確認時間大于放棄確認時間門限的記錄節(jié)點刪除,即放棄對等待確認時間大于放棄確認時間門限的數據PDU進行確認,其中放棄確認時間門限等于發(fā)送超時定時器的超時時間減去從數據接收方開始發(fā)送鏈路控制PDU到數據發(fā)送方完全接收該鏈路控制PDU的處理時間。然后再獲取當前確認等待隊列第1個記錄節(jié)點記錄的數據PDU的序號,如果該序號不在接收窗口序號范圍之內或與接收窗口第1個數據PDU序號相同,FSN設為接收窗口第1個數據PDU的序號;否則,FSN設為確認等待隊列第1個記錄節(jié)點記錄的數據PDU的序號。
b、確定鏈路控制PDU的確認類型對于表7所示的鏈路控制PDU,N=16,k=3。
如果從序號為FSN+1的數據PDU開始的15個數據PDU中未正確接收的數據PDU的個數小于3時,則鏈路控制PDU應采用否定偏移進行確認,并根據下面條件決定具體采用哪一種否定偏移確認類型如果FSN等于接收窗口第1個數據PDU的序號,則該鏈路控制PDU應為累積確認否定偏移鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,且序號為FSN的數據PDU的接收狀態(tài)為已正確接收狀態(tài),則鏈路控制PDU為非累積確認否定偏移1鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,且序號為FSN的數據PDU的接收狀態(tài)為未正確接收狀態(tài),則鏈路控制PDU為非累積確認否定偏移2鏈路控制PDU。
如果從序號為FSN+1的數據PDU開始的15個數據PDU中未正確接收的數據PDU的個數大于等于3小于等于13時,則鏈路控制PDU應采用位圖進行確認,并根據下面條件決定具體采用哪一種位圖確認類型如果FSN等于接收窗口第1個數據PDU的序號,則該鏈路控制PDU應為累積確認位圖鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,則鏈路控制PDU為非累積確認位圖鏈路控制PDU。
如果從序號為FSN+1的數據PDU開始的15個數據PDU中未正確接收的數據PDU的個數大于13時,則鏈路控制PDU應采用肯定偏移進行確認,并根據下面條件決定具體采用哪一種肯定偏移確認類型如果FSN等于接收窗口第1個數據PDU的序號,則該鏈路控制PDU應為累積確認肯定偏移鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,且序號為FSN的數據PDU的接收狀態(tài)為已正確接收狀態(tài),則鏈路控制PDU為非累積確認肯定偏移1鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,且序號為FSN的數據PDU的接收狀態(tài)為未正確接收狀態(tài),則鏈路控制PDU為非累積確認肯定偏移2鏈路控制PDU。
c、根據FSN和鏈路控制PDU的確認類型確定位圖/相對偏移字段i)累積確認位圖鏈路控制PDU具體實施中N=16,位圖第1位對應著序號為FSN+1的數據PDU的接收狀態(tài)。從這個數據PDU依次開始填充位圖信息,如果此數據PDU已被正確接收,則位圖對應比特為1;如果此數據PDU未被正確接收,則位圖的對應比特為0。
ii)非累積確認位圖鏈路控制PDU具體實施中N=16,位圖第1位對應著序號為FSN的數據PDU的接收狀態(tài)。從這個數據PDU依次開始填充位圖信息,如果此數據PDU已被正確接收,則位圖對應位為1;如果此數據PDU未被正確接收,則位圖對應位為0。
iii)累積確認否定偏移鏈路控制PDU具體實施中N=16,k=3,L1=5、L2=5、L3=6。第1個相對偏移的值應為從序號FSN+1開始的第1個未正確接收的數據PDU的序號和FSN的“距離”,即兩個數據PDU之間的數據PDU個數加1,最大值為31。第2個相對偏移的值應為序號FSN+1開始的第2個未正確接收的數據PDU到第1個未正確接收的數據PDU的距離,最大值為31。第3個相對偏移的值應為從序號FSN+1開始的第3個未正確接收的數據PDU到第2個未正確接收的數據PDU的距離,最大值為63。如果第i-1(i=2~3時)個未正確接收的數據PDU或序號為FSN的數據PDU(i=1時)之后的 個數據PDU都已正確接收,則第i個相對偏移的值設為0,并且第i-1(i=2~3)個未正確接收的數據PDU或序號為FSN的數據PDU(i=1時)之后的第 個數據PDU作為求第i+1個相對偏移的值的起始點,即第i+1個相對偏移的值為下一個未正確接收的數據PDU和這個起始點的距離。
對于具體實施,如果當前接收窗口的第1個數據PDU的序號為50,確定的FSN也為50,并且從序號51到65的15個數據PDU中未正確接收的數據PDU個數為1,序號為57,從序號66的數據PDU開始到序號為100的數據PDU都已正確接收,序號為101的數據PDU未正確接收,從序號102的數據PDU開始到當前最大接收序號為200的數據PDU都已正確接收。則鏈路控制PDU的確認類型應為累積確認否定偏移,ACK TYPE設為010,FSN字段為50,第1個相對偏移的值為7,即57-50,由于從序號58到88的31個數據PDU都已正確接收,所以第2個相對偏移的值為0,并且計算第3個相對偏移的值以序號88為起始點,第3個相對偏移的值為13,即101-88,該鏈路控制PDU從FSN開始確認的數據PDU的個數為52,序號從50到101,其中對序號為50、57和101的數據PDU進行否定確認,對其它49個數據PDU進行肯定確認。
iv)非累積確認否定偏移1鏈路控制PDU獲取相對偏移字段各個相對偏移的值的方法與累積確認否定偏移鏈路控制PDU的相同。
v)非累積確認否定偏移2鏈路控制PDU獲取相對偏移字段各個相對偏移的值的方法與累積確認否定偏移鏈路控制PDU的相同。
vi)累積確認肯定偏移鏈路控制PDU具體實施中N=16,k=3,L1=5、L2=5、L3=6。第1個相對偏移的值應為從序號FSN+1開始的第1個已正確接收的數據PDU的序號和FSN的“距離”,即這兩個數據PDU之間的數據PDU個數加1,最大值為31。第2個相對偏移的值應為序號FSN+1開始的第2個已正確接收的數據PDU到第1個已正確接收的數據PDU的距離,最大值為31。第3個相對偏移的值應為從序號FSN+1開始的第3個已正確接收的數據PDU到第2個已正確接收的數據PDU的距離,最大值為63。如果第i-1(i=2~3時)個已正確接收的數據PDU或序號為FSN的數據PDU(i=1時)之后的 個數據PDU都未正確接收,則第i個相對偏移的值設為0,并且第i-1(i=2~3時)個已正確接收的數據PDU或序號為FSN的數據PDU(i=1時)之后的第 個數據PDU作為求第i+1個相對偏移的值的起始點,即第i+1個相對偏移的值為下一個已正確接收的數據PDU和這個起始點的距離。
對于具體實施,如果當前接收窗口的第1個數據PDU的序號為50,確定的FSN也為50,并且從序號51到65的15個數據PDU中,未正確接收的數據PDU個數為14,序號分別為51、52、53、54、55、56、58、59、60、61、62、63、64、65,序號57的數據PDU已正確接收,從序號66到100的數據PDU全部未正確接收,序號為101的數據PDU已正確接收,從序號102的數據PDU開始到當前最大接收序號為200的數據PDU都已正確接收。則鏈路控制PDU的確認類型應為累積確認肯定偏移,ACK TYPE設為101,FSN字段為50,第1個相對偏移的值為7,即57-50,由于從序號58到88的31個數據PDU全部未正確接收,所以第2個相對偏移的值為0,并且計算第3個相對偏移的值以序號88為起始點,第3個相對偏移的值為13,即101-88,該鏈路控制PDU從FSN開始確認的數據PDU的個數為52,序號從50到101,其中對序號為57和101的數據PDU進行肯定確認,對其它50個數據PDU進行否定確認。
vii)非累積確認肯定偏移1鏈路控制PDU獲取相對偏移字段各個相對偏移的值的方法與累積確認肯定偏移鏈路控制PDU的相同。
viii)非累積確認肯定偏移2鏈路控制PDU獲取相對偏移字段各個相對偏移的值的方法與累積確認肯定偏移鏈路控制PDU的相同。
d、如果系統(tǒng)利用ACK PDU Count字段進行否定有效性判斷,則將ACK PDUCount字段的值設為生成的鏈路控制PDU實際確認的數據PDU的個數,否則將該字段設為0。對于前面實例描述累積確認否定偏移鏈路控制PDU,該字段的值設為52;對于前面實例描述累積確認肯定偏移鏈路控制PDU,該字段的值也設為52e、生成的鏈路控制PDU,對該鏈路控制PDU確認的每個數據PDU,在確認等待隊列中查找記錄由該數據PDU序號的記錄節(jié)點,并將其從確認等待隊列中刪除。
f、將生成的鏈路控制PDU通過控制信道發(fā)送。
5.解封模塊510解封模塊510由移動接收窗口模塊509觸發(fā)執(zhí)行,該模塊從移動接收窗口模塊509提交的數據PDU中提取出封裝的PU提交給重組模塊511。
6.重組模塊511該模塊將解封模塊510提交的PU存入緩沖區(qū),當檢測到一個SDU的所有PU都已經正確接收時,將該SDU的PU進行重新組合,重新生成SDU提交給上層。
權利要求
1.一種數據鏈路層的多拒絕自動請求重傳機制,將不可靠的無線物理鏈路改造成可靠的數據邏輯鏈路,為網絡層提供可靠的數據傳輸,包括以下步驟數據發(fā)送方和數據接收方通過包含鏈路管理信息的鏈路控制PDU建立數據邏輯鏈路連接;數據發(fā)送方的數據鏈路層從上層獲取SDU,由分割模塊將SDU分割成固定大小的PU,再由封裝模塊封裝成數據PDU,放入發(fā)送窗口緩沖區(qū)的空閑存儲單元,等待發(fā)送;數據發(fā)送方的MAC子層通知數據發(fā)送模塊可以發(fā)送數據PDU以及發(fā)送數據PDU的個數,數據發(fā)送模塊首先根據發(fā)送窗口緩沖區(qū)中各數據PDU的發(fā)送狀態(tài)確定本次發(fā)送哪些數據PDU,然后發(fā)送數據PDU,并為發(fā)送的每個數據PDU啟動發(fā)送超時定時器;當數據發(fā)送方有發(fā)送超時定時器超時,超時處理模塊修改相應數據PDU的發(fā)送狀態(tài)為等待發(fā)送狀態(tài),等待數據發(fā)送模塊進行重傳;當數據發(fā)送方收到包含確認信息的鏈路控制PDU,確認信息處理模塊首先分析該鏈路控制PDU包含對哪些數據PDU的確認,并對所有的否定確認進行否定有效性判斷,再對每一個有效的確認(包括所有肯定確認)修改相應數據PDU的發(fā)送狀態(tài),并取消該數據PDU的發(fā)送超時定時器;當數據接收方收到數據PDU,數據接收處理模塊將接收的數據PDU和檢測到丟失的數據PDU的PDU序號和到達時間或檢測到丟失時間記錄到確認等待隊列中,將正確接收的數據PDU放到接收窗口緩沖區(qū)的存儲單元中,將其接收狀態(tài)設為已正確接收狀態(tài),如果滿足移動接收窗口的條件則通知移動接收窗口模塊移動接收窗口;當移動接收窗口模塊收到數據接收處理模塊的移動接收窗口的通知,將連續(xù)多個已正確接收的數據PDU移出接收窗口緩沖區(qū),提交給解封模塊,同時將移出的數據PDU原先占用的存儲單元設為空閑,接收狀態(tài)為未正確接收狀態(tài);解封模塊收到數據PDU后,提取出封裝的PU提交給重組模塊;如果一個SDU對應的所有PU提交給了重組模塊,重組模塊由這些PU重組出SDU提交各上層;數據接收方的確認信息發(fā)送控制模塊周期性的判斷是否滿足發(fā)送包含確認信息的鏈路控制PDU的條件,如果滿足條件則通知確認信息發(fā)送模塊發(fā)送包含確認信息的鏈路控制PDU;數據接收方的確認信息發(fā)送模塊收到確認信息發(fā)送控制模塊的發(fā)送確認信息通知后,利用確認等待隊列,確定發(fā)送包含確認信息的鏈路控制PDU的FSN字段和確認類型字段,再生成Bitmap/Relative Offsets字段,構造出完整的固定大小的鏈路控制PDU,從確認等待隊列中刪除該鏈路控制PDU確認的數據PDU的記錄節(jié)點,并發(fā)送該鏈路控制PDU。
2.根據權利要求1所述的多拒絕自動請求重傳機制,固定大小的鏈路控制PDU格式定義為(1)A/M確認/管理字段,1個比特,該字段為1時表示該鏈路控制PDU用于傳輸自動請求重傳的確認信息;該字段為0時表示該鏈路控制PDU用于鏈路管理,包括數據邏輯鏈路的建立、釋放和復位等鏈路管理過程;(2)FSN首序號字段,M個比特,和數據PDU序號字段長度相同,M取值為8-16,序號取值范圍為0到2M-1,當A/M字段為1時,該字段表示該鏈路控制PDU確認的第1個數據PDU的序號;(3)ACK TyDe確認類型字段,3個比特,當A/M字段為1時,該字段表示該鏈路控制PDU的類型,共有8種類型;(4)Bitmap/Relative Offsets位圖/相對偏移字段,N個比特,N取值范圍為12-64,當A/M字段為1時,該字段包含位圖確認信息或相對偏移確認信息,通過ACK Type字段進行區(qū)分,當該字段表示相對偏移確認信息時,包含k個相對偏移,k的取值范圍為3~16,各個相對偏移字段長度為L1、L2、L3…Lk(L1+L2+L3+…+Lk=N),每個相對偏移的長度Li(i=1~k)為4-6個比特;(5)ACK PDU Count確認PDU計數字段,當A/M字段為1時,該字段表示該鏈路控制PDU從FSN開始包括FSN實際確認的數據PDU個數,對于不支持根據時間進行否認有效性判斷的系統(tǒng),該字段用于幫助判斷確認信息中否定確認的有效性,對于通過時間進行否認有效性判斷的系統(tǒng),該字段的值為0,或者不定義該字段;(6)CRC循環(huán)冗余碼字段,用于對鏈路控制PDU進行差錯檢測,可以采用8、12、16、20、24、28或32位的CRC。
3.根據權利要求2所述的多拒絕自動請求重傳機制,定義鏈路控制PDU的確認類型,共有8種,包括兩種位圖確認類型和六種偏移確認類型。
4.根據權利要求2所述的多拒絕自動請求重傳機制,對于六種偏移確認類型的鏈路控制PDU,根據k個相對偏移和FSN計算k個實際偏移。當相對偏移不為0時,第1個實際偏移等于FSN與第1個相對偏移的循環(huán)和值,第2個實際偏移等于第1個實際偏移與第2個相對偏移的循環(huán)和值,第i(i=2~k)個實際偏移等于第i-1個實際偏移與第i個相對偏移的循環(huán)和值;如果第1個相對偏移的值等于0,第1個實際偏移等于FSN與 的循環(huán)和值;如果第i(i=2~k)個相對偏移的值等于0,第i個實際偏移等于第i-1個實際偏移與 的循環(huán)和值。
5.根據權利要求3或4所述的多拒絕自動請求重傳機制,其特征在于每種確認類型的鏈路控制PDU包含的確認信息定義為(1)、累積確認位圖鏈路控制PDU包含的確認信息,累積確認位圖鏈路控制PDU對FSN之前的所有數據PDU進行肯定確認的同時,用N個比特對從FSN開始包括FSN的連續(xù)N+1個數據PDU進行確認,累積確認位圖鏈路控制PDU總是對FSN的數據PDU進行否定確認,位圖中為1的比特表示該比特對應的數據PDU已正確接收,位圖中為0的比特表示該比特對應的數據PDU還未正確接收,位圖的第1個比特對應FSN后面的第1個數據PDU,即序號為FSN+1的數據PDU;(2)、非累積確認位圖鏈路控制PDU包含的確認信息,非累積確認位圖鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,即FSN之前的數據PDU未全部正確接收,非累積確認位圖鏈路控制PDU用N個比特對從FSN開始包括FSN連續(xù)N個數據PDU進行確認,位圖中為1的比特表示該比特對應的數據PDU已正確接收,位圖中為0的比特表示該比特對應的數據PDU還未正確接收,位圖的第1個比特對應序號為FSN的數據PDU;(3)、累積確認否定偏移鏈路控制PDU對FSN之前的所有數據PDU進行肯定確認的同時,對序號在k個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行肯定確認,如果第i(i=1~k)個相對偏移不為0時,該累積確認否定偏移鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認,而如果第i(i=1~k)個相對偏移為0時,該累積確認否定偏移鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認,累積確認否定偏移鏈路控制PDU總是對序號為FSN的數據PDU進行否定確認;(4)、非累積確認否定偏移1鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,即FSN之前的數據PDU未全部正確接收,對序號在k個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行肯定確認,如果第i(i=1~k)個相對偏移不為0時,該累積確認否定偏移1鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認,而如果第i(i=1~k)個相對偏移為0時,該累積確認否定偏移1鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認,非累積確認否定偏移1鏈路控制PDU總是對序號為FSN的數據PDU進行肯定確認;(5)、非累積確認否定偏移2鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,對序號在k個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行肯定確認,如果第i(i=1~k)個相對偏移不為0時,該累積確認否定偏移2鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認,而如果第i(i=1~k)個相對偏移為0時,該累積確認否定偏移2鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認,非累積確認否定偏移2鏈路控制PDU總是對序號為FSN的數據PDU進行否定確認;(6)、累積確認肯定偏移鏈路控制PDU對FSN之前的所有數據PDU進行肯定確認的同時,對序號在k個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行否定確認,如果第i(i=1~k)個相對偏移不為0時,該累積確認肯定偏移鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認,而如果第i(i=1~k)個相對偏移為0時,該累積確認肯定偏移鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認,累積確認肯定偏移鏈路控制PDU總是對序號為FSN的數據PDU進行否定確認;(7)、非累積確認肯定偏移1鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,對序號在k個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行否定確認,如果第i(i=1~k)個相對偏移不為0時,該累積確認肯定偏移1鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認,而如果第i(i=1~k)個相對偏移為0時,該累積確認肯定偏移1鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認,非累積確認肯定偏移1鏈路控制PDU總是對序號為FSN的數據PDU進行肯定確認;(8)、非累積確認肯定偏移2鏈路控制PDU不對FSN之前的所有數據PDU進行肯定確認,對序號在k個實際偏移之間或在FSN和第1個實際偏移之間的所有數據PDU進行否定確認。如果第i(i=1~k)個相對偏移不為0時,該累積確認肯定偏移2鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行肯定確認,而如果第i(i=1~k)個相對偏移為0時,該累積確認肯定偏移2鏈路控制PDU對序號等于第i個實際偏移的數據PDU進行否定確認,非累積確認肯定偏移2鏈路控制PDU總是對序號為FSN的數據PDU進行否定確認。
6.根據權利要求1所述的多拒絕自動請求重傳機制,其特征在于數據發(fā)送方數據PDU的三種發(fā)送狀態(tài)的定義為等待發(fā)送狀態(tài)、已正確接收狀態(tài)和正在發(fā)送狀態(tài)。
7.根據權利要求1所述的多拒絕自動請求重傳機制,其特征在于數據接收方對所有未接收到的數據PDU,包括數據發(fā)送方還未發(fā)送的數據PDU進行否定確認,數據發(fā)送方對鏈路控制PDU中包含的所有否認確認判斷其有效性。
8.根據權利要求1所述的多拒絕自動請求重傳機制,其特征在于數據發(fā)送方可以通過ACK PDU Count字段判斷否定確認有效性,或通過發(fā)送數據PDU和收到包含對該PDU否定確認的鏈路控制PDU的時間間隔判斷否定確認有效性,對于根據時間判斷,如果從發(fā)送此數據PDU到接收到包含對該數據PDU進行否定確認的鏈路控制PDU的時間間隔小于鏈路RTT,則該否定確認是無效的,否則該否定確認是有效的;對于根據鏈路控制PDU中ACK PDU Count字段進行判斷,從FSN開始的連續(xù)ACK PDU Count個確認是有效的,后面的確認都是無效的。
9.根據權利要求5或7所述的多拒絕自動請求重傳機制,其特征在于數據發(fā)送方根據收到的鏈路控制PDU包含的確認信息,對肯定確認將發(fā)送窗口緩沖區(qū)中數據PDU的發(fā)送狀態(tài)修改為已經正確接收,取消該數據PDU的發(fā)送超時定時器;對否定確認,如果否認有效性為有效,該數據PDU的發(fā)送狀態(tài)為正在發(fā)送狀態(tài),就將該數據PDU的發(fā)送狀態(tài)修改為等待發(fā)送狀態(tài),取消該數據PDU的發(fā)送超時定時器。
10.根據權利要求1所述的多拒絕自動請求重傳機制,其特征在于數據發(fā)送方發(fā)送定時器超時,不將發(fā)送超時的數據PDU放入重傳緩沖區(qū),而只是將該數據PDU的發(fā)送狀態(tài)修改為等待發(fā)送狀態(tài)。
11.根據權利要求1所述的多拒絕自動請求重傳機制,其特征在于數據發(fā)送方不使用重傳緩沖區(qū),通過發(fā)送窗口緩沖區(qū)中數據PDU的發(fā)送狀態(tài),從發(fā)送窗口的第1個數據PDU開始選擇發(fā)送狀態(tài)為等待發(fā)送狀態(tài)的數據PDU發(fā)送。
12.根據權利要求1所述的多拒絕自動請求重傳機制,其特征在于確認等待隊列的定義為數據接收方用于記錄當前還未確認的正確接收的數據PDU和檢測到丟失的數據PDU的隊列,該隊列按數據PDU的到達時間或檢測到丟失的時間的先后順序排列,隊列的每個節(jié)點記錄該PDU的序號和到達時間或檢測到丟失的時間。
13.根據權利要求12所述的多拒絕自動請求重傳機制,數據接收方在接收數據PDU并檢測丟失數據PDU后,如果接收的數據PDU和檢測到丟失的數據PDU未記錄在確認等待隊列中,將該數據PDU的序號和到達時間或檢測到丟失的時間記錄到確認等待隊列中。
14.根據權利要求12所述的多拒絕自動請求重傳機制,其特征在于數據接收方利用確認發(fā)送定時器、確認等待隊列的長度和確認等待隊列的最大等待確認時間自動地確定發(fā)送鏈路控制PDU的時機,當滿足下面任何一個條件時,數據接收方應發(fā)送包含確認信息的鏈路控制PDU確認發(fā)送超時定時器超時;最大等待確認時間超過等待確認時間門限;確認等待隊列的長度超過確認發(fā)送觸發(fā)長度。
15.根據權利要求12所述的多拒絕自動請求重傳機制,其特征在于確認等待隊列中等待確認時間超過放棄確認時間的數據PDU從確認等待隊列中刪除其記錄節(jié)點,放棄對該數據PDU進行確認。
16.根據權利要求12所述的多拒絕自動請求重傳機制,數據接收方利用確認等待隊列,確定本次發(fā)送的鏈路控制PDU的FSN,如果當前確認等待隊列第1個記錄節(jié)點記錄的數據PDU的序號不在接收窗口序號范圍之內或與接收窗口第1個數據PDU序號相同,FSN設為接收窗口第1個數據PDU的序號;否則,FSN設為確認等待隊列第1個記錄節(jié)點記錄的數據PDU的序號。
17.根據權利要求16所述的多拒絕自動請求重傳機制,其特征在于根據從序號為FSN+1的數據PDU開始的N-1個數據PDU的中未正確接收的數據PDU個數,確定本次發(fā)送的鏈路控制PDU確認類型,確定本次發(fā)送的鏈路控制PDU確認類型的具體過程為(1)、如果未正確接收的個數小于k,則鏈路控制PDU應采用否定偏移進行確認,并根據下面條件決定具體采用哪一種否定偏移確認類型如果FSN等于接收窗口第1個數據PDU的序號,則該鏈路控制PDU應為累積確認否定偏移鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,且序號為FSN的數據PDU的接收狀態(tài)為已正確接收狀態(tài),則鏈路控制PDU為非累積確認否定偏移1鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,且序號為FSN的數據PDU的接收狀態(tài)為未正確接收狀態(tài),則鏈路控制PDU為非累積確認否定偏移2鏈路控制PDU;(2)、如果未正確接收在k和N-k之間,包括k和N-k,則鏈路控制PDU應采用位圖進行確認,并根據下面條件決定具體采用哪一種位圖確認類型如果FSN等于接收窗口第1個數據PDU的序號,則該鏈路控制PDU為累積確認位圖鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,則該鏈路控制PDU為非累積確認位圖鏈路控制PDU;(3)、如果未正確接收大于N-k,則鏈路控制PDU應為采用肯定偏移類型進行確認,并根據下面條件決定具體采用哪一種肯定偏移確認類型如果FSN等于接收窗口第1個數據PDU的序號,則該鏈路控制PDU應為累積確認肯定偏移鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,且序號為FSN的數據PDU的接收狀態(tài)為已正確接收狀態(tài),則鏈路控制PDU為非累積確認肯定偏移1鏈路控制PDU;如果FSN不等于接收窗口第1個數據PDU的序號,且序號為FSN的數據PDU的接收狀態(tài)為未正確接收狀態(tài),則鏈路控制PDU為非累積確認肯定偏移2鏈路控制PDU。
18.根據權利要求16或17所述的多拒絕自動請求重傳機制,其特征在于根據FSN和鏈路控制PDU確認類型,構造鏈路控制PDU中位圖/相對偏移字段,每一種確認類型的鏈路控制PDU構造位圖/相對偏移字段的具體過程為(1)、累積確認位圖鏈路控制PDU位圖第1位對應著序號為FSN+1的數據PDU的接收狀態(tài),從序號為FSN+1的數據PDU到序號為FSN+N的數據PDU,根據數據PDU的接收狀態(tài)依次開始填充位圖信息,如果此數據PDU已被正確接收,則位圖對應比特為1;如果此數據PDU未被正確接收,則位圖的對應比特為0;(2)、非累積確認位圖鏈路控制PDU位圖第1位對應著序號為FSN的數據PDU的接收狀態(tài),從序號為FSN的數據PDU到序號為FSN+N-1的數據PDU,根據數據PDU的接收狀態(tài)依次開始填充位圖信息,如果此數據PDU已被正確接收,則位圖對應比特為1;如果此數據PDU未被正確接收,則位圖的對應比特為0;(3)、累積確認否定偏移鏈路控制PDU第1個相對偏移的值應為從序號FSN+1開始的第1個未正確接收的數據PDU的序號和FSN的“距離”,即兩個數據PDU之間的數據PDU個數加1,最大值為 ,第2個相對偏移的值應為序號FSN+1開始的第2個未正確接收的數據PDU到第1個未正確接收的數據PDU的距離,最大值為 ,第i(i=2~k)個相對偏移的值應為從序號FSN+1開始的第i個未正確接收的數據PDU到第i-1個未正確接收的數據PDU的距離,最大值為 ,如果第i-1(i=2~k)個未正確接收的數據PDU或序號為FSN的數據PDU(i=1時)之后的 個數據PDU都已正確接收,則第i個相對偏移的值設為0,并且第i-1(i=2~k)個未正確接收的數據PDU或序號為FSN的數據PDU(i=1時)之后的第 個數據PDU作為求第i+1個相對偏移的值的起始點,即第i+1個相對偏移的值為下一個未正確接收的數據PDU和這個起始點的距離,注意該起始點的數據PDU已正確接收;(4)、非累積確認否定偏移1鏈路控制PDU獲取相對偏移字段各個相對偏移的值的方法與累積確認否定偏移鏈路控制PDU的相同;(5)、非累積確認否定偏移2鏈路控制PDU獲取相對偏移字段各個相對偏移的值的方法與累積確認否定偏移鏈路控制PDU的相同;(6)、累積確認肯定偏移鏈路控制PDU第1個相對偏移的值應為從序號FSN+1開始的第1個已正確接收的數據PDU的序號和FSN的“距離”,即這兩個數據PDU之間的數據PDU個數加1,最大值為 第2個相對偏移的值應為序號FSN+1開始的第2個已正確接收的數據PDU到第1個已正確接收的數據PDU的距離,最大值為 ,第i(i=2~k)個相對偏移的值應為從序號FSN+1開始的第i個已正確接收的數據PDU到第i-1個已正確接收的數據PDU的距離,最大值為 ,如果第i-1(i=2~k)個已正確接收的數據PDU或序號為FSN的數據PDU(i=1時)之后的 個數據PDU都未正確接收,則第i個相對偏移的值設為0,并且第i-1(i=2~k)個已正確接收的數據PDU或序號為FSN的數據PDU(i=1時)之后的第 個數據PDU作為求第i+1個相對偏移的值的起始點,即第i+1個相對偏移的值為下一個已正確接收的數據PDU和這個起始點的距離,注意該起始點的數據PDU未正確接收;(7)、非累積確認肯定偏移1鏈路控制PDU獲取相對偏移字段各個相對偏移的值的方法與累積確認肯定偏移鏈路控制PDU的相同;(8)、非累積確認肯定偏移2鏈路控制PDU獲取相對偏移字段各個相對偏移的值的方法與累積確認肯定偏移鏈路控制PDU的相同。
19.根據權利要求17所述的多拒絕自動請求重傳機制,其特征在于數據接收方生成鏈路控制PDU后,將該鏈路控制PDU確認的數據PDU的記錄節(jié)點從確認等待隊列中刪除。
全文摘要
本發(fā)明涉及無線數據通信系統(tǒng)中的數據鏈路層差錯控制的自動請求重傳ARQ機制。本發(fā)明將不可靠的無線物理鏈路改造成可靠的數據邏輯鏈路,為網絡層提供可靠的數據傳輸范圍。相對現有的自動請求重傳機制,本發(fā)明的確認效率大大提高,并且吞吐率不會下降,這樣系統(tǒng)用于ARQ發(fā)送確認信息的數據帶寬大大下降,可以有更多的數據帶寬發(fā)送反向數據,可以很好的支持數據雙向傳輸;同時在確認帶寬不夠或信道質量急劇惡化時也可保證多拒絕ARQ機制穩(wěn)定工作,并當確認帶寬增加或信道質量得到改善時,可以恢復高吞吐率。本發(fā)明通過固定長度位圖和相對偏移,根據錯誤數據PDU的分布,自動選取確認效率最高的確認類型對接收窗口中當前最需確認的部分數據PDU進行確認。
文檔編號H04W28/14GK1379557SQ0211584
公開日2002年11月13日 申請日期2002年5月16日 優(yōu)先權日2002年5月16日
發(fā)明者吳偉民, 肖瑤, 楊帆, 郭磊, 周宗儀, 朱光喜 申請人:武漢漢網高技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1