CN1379557A - 多拒绝自动请求重传arq机制 - Google Patents
多拒绝自动请求重传arq机制 Download PDFInfo
- Publication number
- CN1379557A CN1379557A CN02115845A CN02115845A CN1379557A CN 1379557 A CN1379557 A CN 1379557A CN 02115845 A CN02115845 A CN 02115845A CN 02115845 A CN02115845 A CN 02115845A CN 1379557 A CN1379557 A CN 1379557A
- Authority
- CN
- China
- Prior art keywords
- pdu
- data
- data pdu
- fsn
- controlling links
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及无线数据通信系统中的数据链路层差错控制的自动请求重传ARQ机制。本发明将不可靠的无线物理链路改造成可靠的数据逻辑链路,为网络层提供可靠的数据传输范围。相对现有的自动请求重传机制,本发明的确认效率大大提高,并且吞吐率不会下降,这样系统用于ARQ发送确认信息的数据带宽大大下降,可以有更多的数据带宽发送反向数据,可以很好的支持数据双向传输;同时在确认带宽不够或信道质量急剧恶化时也可保证多拒绝ARQ机制稳定工作,并当确认带宽增加或信道质量得到改善时,可以恢复高吞吐率。本发明通过固定长度位图和相对偏移,根据错误数据PDU的分布,自动选取确认效率最高的确认类型对接收窗口中当前最需确认的部分数据PDU进行确认。
Description
技术领域
本发明涉及无线数据通信系统中的数据链路层差错控制的自动请求重传ARQ机制。
背景技术
高级数据链路控制HDLC自动请求重传机制和选择重传SR自动请求重传机制用于低误码率有线数据通信系统中,可以获得很好数据传输效率,而在无线数据通信系统中,由于无线信道质量很差,需要大量的链路控制带宽用于传输错误帧的确认信息,确认效率很低。因此在无线数据通信系统中,需要高确认效率的自动请求重传机制。
第三代移动通信标准3GPP采用多拒绝MR自动请求重传机制[3GPP TS25.322 V4.2.0:3rd Generation Partnership Project;TechnicalSpecification Group Radio Access Network;RLC protocolspecification;(Release 4)],该机制数据接收方发送的链路控制PDU(即Status PDU)一次可以同时对多个数据PDU(协议数据单元)的接收状态进行确认,确认效率比HDLC自动请求重传机制和SR自动请求重传机制有了很大提高。但是3GPP采用的多拒绝自动请求重传机制,存在下面一些问题:每次确认都对接收窗口中的所有数据PDU的接收状态进行确认,相邻发送的两个链路控制PDU包含对很多相同数据PDU的确认,确认信息冗余度很大,造成数据带宽极大浪费;数据接收方不能对还未发送的PDU进行确认,这就要求链路控制PDU的大小为变长,所以其链路控制PDU最大长度与数据PDU大小相同,链路控制PDU不能填满最大长度时,存在很多无用的填充信息,造成很大的数据带宽浪费;不能根据数据接收方接收窗口内当前数据PDU错误的分布情况,用链路控制PDU的有限比特对尽可能多的数据PDU同时进行确认。HIPERLAN(High Performance LAN)标准采用部分位图选择重传自动请求重传(Selective Repeat ARQ with PartialBitmap机制)[ETSI TS 101 761-1 V1.3.1:Broadband Radio AccessNetworks(BRAN);HIPERLAN Type2;Data Link Control(DLC)Layer;Part1:Basic Data Transport Functions],该机制数据接收方的链路控制PDU(即C-PDU)也可一次同时对多个数据PDU的接收状态进行确认,但只对接收窗口内的包含有错误数据PDU的一部分数据PDU的接收状态用位图进行确认,减小了相邻链路控制PDU之间的确认信息冗余。但该机制存在下面一些问题:只用位图同时对多个数据PDU进行确认,一个链路控制PDU最多同时对24个数据PDU进行确认,在数据PDU出错突发性很强时确认效率很低,而如果此时用相对偏移确认效率会高得多;虽然该机制只对接收窗口中的部分数据PDU的接收状态用位图进行确认,但是标准中未定义每次如何确定对接收窗口内的哪些数据PDU进行确认的方法;虽然链路控制PDU采用固定长度,但未提出如何用固定长度的位图对发送方还未发送的PDU进行确认以及如何避免由此可能引起的链路控制PDU包含的确认信息语义歧义的方法;没有被位图确认的正确接收的数据PDU,通过累积确认,即对首序号前的所有数据PDU进行肯定确认来进行肯定确认,如果在无线链路RTT(数据发送方发送数据PDU到收到链路控制PDU的往返时间)内数据接收方未能移动接收窗口,则本次发送的包含累积确认的链路控制PDU和上次发送的包含累积确认的链路控制PDU之间包含很多冗余的确认信息,而且由于数据发送方未进行超时重传,数据PDU只有收到否定确认后才进行重传,链路的平均时延和吞吐率对包含累积确认的链路控制PDU的丢失很敏感。
发明内容
本发明的目的为了克服现有技术中存在的无线链路高误码引起的低信道利用率和高时延的缺点,而提供一种高确认效率和高吞吐率的自动请求重传机制。
本发明的技术方案为:
一种数据链路层的多拒绝自动请求重传机制,将不可靠的无线物理链路改造成可靠的数据逻辑链路,为网络层提供可靠的数据传输范围,包括以下步骤:
数据发送方和数据接收方通过包含链路管理信息的链路控制PDU建立数据逻辑链路连接;
数据发送方的数据链路层从上层获取SDU(服务数据单元),由分割模块将SDU分割成固定大小的PU(负载单元),再由封装模块封装成数据PDU,放入发送窗口缓冲区的空闲存储单元,等待发送;
数据发送方的MAC子层通知数据发送模块可以发送数据PDU以及发送数据PDU的个数,数据发送模块首先根据发送窗口缓冲区中各数据PDU的发送状态确定本次发送哪些数据PDU,然后发送这些数据PDU,并为发送的每个数据PDU启动发送超时定时器,修改该数据PDU的发送状态为正在发送状态;
当数据发送方有发送超时定时器超时,超时处理模块修改相应数据PDU的发送状态为等待发送状态,等待数据发送模块进行重传;
当数据发送方收到包含确认信息的链路控制PDU,确认信息处理模块首先分析该链路控制PDU包含对哪些数据PDU的确认,并对所有的否定确认进行否定有效性判断,再对每一个有效的确认,包括所有肯定确认和所有有效的否定确认,修改相应数据PDU的发送状态,并取消该数据PDU的发送超时定时器;
当数据接收方收到数据PDU,数据接收处理模块将接收的数据PDU和检测到丢失的数据PDU的PDU序号和到达时间记录到确认等待队列中,将正确接收的数据PDU放到接收窗口缓冲区的存储单元中,将其接收状态设为已正确接收状态,如果满足移动接收窗口的条件则通知移动接收窗口模块移动接收窗口;
当移动接收窗口模块收到数据接收处理模块的移动接收窗口的通知,将连续多个已正确接收的数据PDU移出接收窗口缓冲区,提交给解封模块,同时将移出的数据PDU原先占用的存储单元设为空闲,接收状态设为未正确接收状态;
解封模块收到数据PDU后,提取出封装的PU提交给重组模块;
如果一个SDU对应的所有PU提交给了重组模块,重组模块由这些PU重组出SDU提交各上层;
数据接收方的确认信息发送控制模块周期性的判断是否满足发送包含确认信息的链路控制PDU的条件,如果满足条件则通知确认信息发送模块发送包含确认信息的链路控制PDU;
数据接收方的确认信息发送模块收到确认信息发送控制模块的发送确认信息通知后,利用确认等待队列,确定发送包含确认信息的链路控制PDU的FSN字段和确认类型字段,再生成Bitmap/Relative Offsets字段,构造出完整的固定大小的链路控制PDU,从确认等待队列中删除该链路控制PDU确认的数据PDU的记录节点,并发送该链路控制PDU。
数据PDU的格式定义如表1所示,包括下面一些字段:
首标志 | 数据PDU类型 | 序号 | 数据 | 填充(可选) |
表1 数据PDU格式定义
首标志字段,长度为1个比特,用于标识该数据PDU的数据部分是否封装将SDU分割所得的第1个PU,为1时该PDU的数据部分为封装SDU分割所得的第1个PU,为0时该PDU的数据部分封装的PU不是SDU分割所得的第1个PU。
数据PDU类型字段,长度为5个比特,用于区分该数据PDU中封装的SDU的类型。
序号字段,表示该数据PDU的序号,不同的无线数据通信系统可以根据系统最大速率选择不同的序号字段长度,该字段长度为M个比特,M范围为8-16比特,系统的最大速率越高,该字段长度越大,而在同一系统中该字段的长度是固定的,序号在0到2M-1之间循环编号。
数据字段,长度由系统的MAC帧长度决定,包含将SDU分割所得的PU,如果PU长度还不到数据部分的最大长度,则要在PU后加入填充部分,以使整个数据PDU的长度为固定长度。
多拒绝自动请求重传机制的链路控制PDU的格式定义如表2所示,包括下面一些字段:
A/M | FSN | ACK Type | Bitmap/RelativeOffsets | ACK PDU Count | CRC |
表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所示,包括两种位图确认类型和六种偏移确认类型;
ACK Type | 链路控制PDU确认类型 |
000 | 累积确认位图 |
001 | 非累积确认位图 |
010 | 累积确认否定偏移 |
011 | 非累积确认否定偏移1 |
100 | 非累积确认否定偏移2 |
101 | 累积确认肯定偏移 |
110 | 非累积确认肯定偏移1 |
111 | 非累积确认肯定偏移2 |
表3 链路控制PDU确认类型
Bitmap/Relative Offsets:位图/相对偏移字段,当A/M字段为1时,该字段包含位图确认信息或相对偏移确认信息,通过ACK Type字段的值进行区分。在不同的无线数据通信系统可以根据系统最大速率选择不同该字段长度,该字段的长度N个比特,N的范围为12-64比特,系统的最大速率越高,该字段长度越大,而在同一系统中该字段长度为固定;
ACK PDU Count:确认PDU计数字段,当A/M字段为1时,该字段表示该链路控制PDU从序号为FSN的数据PDU开始实际确认的数据PDU个数,对于不支持按时间进行否认有效性判断的系统,该字段用于帮助判断确认信息中否定确认的有效性。对于通过时间进行否认有效性判断的系统,可将该字段的值设为0,或在设计链路控制PDU格式时不定义该字段,在不同的无线数据通信系统可以根据系统最大速率选择不同该字段长度,该字段的长度范围为7-15比特,系统的最大速率越高,该字段长度越大,而在同一系统中该字段长度为固定的;
CRC:循环冗余码字段,用于对链路控制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所示。
Bit1 | Bit2 | Bit3 | Bit4 | …… | Bit N |
表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所示。
RelativeOffset1 | RelativeOffset2 | RelativeOffset3 | RelativeOffset4 | …… | RelativeOffset k |
表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的序号循环差值,即第1个相对偏移的值=(第1个实际偏移+2M-FSN)MOD2M,第1个实际偏移等于FSN与第1个相对偏移的循环和值,即第1个实际偏移的值=(第1个相对偏移+FSN)MOD 2M。第2个相对偏移的值表示第2个实际偏移与第1个实际偏移的序号循环差值,第2个实际偏移等于第1个实际偏移与第2个相对偏移的循环和值。第i(i=2~k)个相对偏移的值表示第i个实际偏移和第i-1个实际偏移的序号循环差值,第i个实际偏移等于第i-1个实际偏移与第i个相对偏移的循环和值。如果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的序号循环差值为该相对偏移可以表示的最大值
,即第1个实际偏移等于FSN与的循环和值。第i(i=2~k)个相对偏移的值等于0则第i个实际偏移与第i-1个实际偏移的序号循环差值为第i个相对偏移可以表示的最大值
,即第i个实际偏移等于第i-1个实际偏移与
的循环和值。
如果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都被否定确认。
每种确认类型的链路控制PDU包含的确认信息定义为分别为:
累积确认位图链路控制PDU对FSN之前的所有数据PDU进行肯定确认的同时,用N个比特的位图对从FSN开始包括FSN的连续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连续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进行否定确认。
数据发送方数据PDU的三种发送状态的定义为:等待发送状态、已正确接收状态和正在发送状态。其中,等待发送状态:表示该数据PDU虽然已经进入发送窗口的缓冲区,但是还未被发送过,或者已经被发送过但由于被否定确认而需重传;已正确接收状态:表示该数据PDU已经被发送,而且已经被链路控制PDU确认为正确接收;正在发送状态:表示该数据PDU已经被发送,但是还没有收到接收方的肯定确认或否定确认信息。
数据接收方对所有未正确接收到的数据PDU,包括数据发送方还未发送的数据PDU进行否定确认,数据发送方对链路控制PDU中包含的所有否认确认判断其有效性。
数据发送方可以通过ACK PDU Count字段判断否定确认有效性,或通过发送数据PDU和收到包含对该PDU否定确认的链路控制PDU的时间间隔是否大于链路RTT判断否定确认有效性。对于根据时间判断,如果从发送此数据PDU到接收到包含对该数据PDU进行否定确认的链路控制PDU的时间间隔小于链路RTT,则该否定确认是无效的,否则该否定确认是有效的。对于根据链路控制PDU中ACK PDU Count字段进行判断,从FSN开始的连续ACK PDU Count个确认是有效的,后面的确认都是无效的。
数据发送方根据收到的链路控制PDU包含的确认信息,对肯定确认将发送窗口缓冲区中数据PDU的发送状态修改为已经正确接收状态,取消该数据PDU的发送超时定时器;对否定确认,如果否认有效性为有效且该数据PDU的发送状态为正在发送状态,将该数据PDU的发送状态修改为等待发送状态,取消该数据PDU的发送超时定时器;
数据发送方发送定时器超时,不将发送超时的数据PDU放入重传缓冲区,而只是将该数据PDU的发送状态修改为等待发送状态。
数据发送方不使用重传缓冲区,通过发送窗口缓冲区中数据PDU的发送状态,从发送窗口的第1个数据PDU开始选择发送状态为等待发送状态的数据PDU发送。
确认等待队列的定义为:数据接收方用于记录当前还未确认的正确接收的数据PDU和检测到丢失的数据PDU的队列,该队列按数据PDU的到达时间或检测到丢失的时间的先后顺序排列,队列的每个节点记录该PDU的序号和到达时间或检测到丢失的时间。
数据接收方在接收数据PDU并检测丢失数据PDU后,如果接收的数据PDU和检测到丢失数据PDU未记录在确认等待队列中,将该数据PDU的序号和到达时间或检测到丢失的时间记录到确认等待队列中。
数据接收方利用确认发送定时器、确认等待队列的长度和确认等待队列的最大等待确认时间自动地确定发送链路控制PDU的时机。确认等待队列的最大等待确认时间定义为确认等待队列最前端的记录节点记录的时间和当前时间的时间间隔,即队列第1个记录节点的等待确认时间。当满足下面任何一个条件时,数据接收方应发送包含确认信息的链路控制PDU。发送包含确认信息的链路控制PDU的条件为:确认发送超时定时器超时;最大等待确认时间超过等待确认时间门限;确认等待队列的长度超过确认发送触发长度。
确认等待队列中等待确认时间超过放弃确认时间的数据PDU从确认等待队列中删除其对应的记录节点,放弃对该数据PDU进行确认。记录节点的等待确认时间定义为当前时间与该记录节点记录的时间的时间间隔。
数据接收方利用确认等待队列,确定本次发送的链路控制PDU的FSN。获取当前确认等待队列第1个记录节点记录的数据PDU的序号,如果该序号不在接收窗口序号范围之内或与接收窗口第1个数据PDU序号相同,FSN设为接收窗口第1个数据PDU的序号;否则,FSN设为确认等待队列第1个记录节点记录的数据PDU的序号。
根据从序号为FSN+1的数据PDU开始的N-1个数据PDU的中未正确接收的数据PDU个数,确定本次发送的链路控制PDU确认类型。确定链路控制PDU确认类型的具体过程为:
如果未正确接收的个数小于k,则链路控制PDU应采用否定偏移进行确认,并根据下面条件决定具体采用哪一种否定偏移确认类型:如果FSN等于接收窗口第1个数据PDU的序号,则该链路控制PDU应为累积确认否定偏移链路控制PDU;如果FSN不等于接收窗口第1个数据PDU的序号,且序号为FSN的数据PDU的接收状态为已正确接收状态,则链路控制PDU为非累积确认否定偏移1链路控制PDU;如果FSN不等于接收窗口第1个数据PDU的序号,且序号为FSN的数据PDU的接收状态为未正确接收状态,则链路控制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的接收状态为已正确接收状态,则链路控制PDU为非累积确认肯定偏移1链路控制PDU;如果FSN不等于接收窗口第1个数据PDU的序号,且序号为FSN的数据PDU的接收状态为未正确接收状态,则链路控制PDU为非累积确认肯定偏移2链路控制PDU。
根据FSN和链路控制PDU确认类型,构造链路控制PDU中位图/相对偏移字段。对于每一种确认类型,构造链路控制PDU中位图/相对偏移字段的具体过程为:
累积确认位图链路控制PDU:位图总长度为N个比特,位图第1位对应着序号为FSN+1的数据PDU的接收状态。从序号为FSN+1的数据PDU到序号为FSN+N的数据PDU,根据数据PDU的接收状态依次开始填充位图信息,如果此数据PDU已被正确接收,即接收状态为已正确接收状态,则位图对应比特为1;如果此数据PDU未被正确接收,即接收状态为未正确接收状态,则位图的对应比特为0。
非累积确认位图链路控制PDU:位图总长度为N个比特,位图第1位对应着序号为FSN的数据PDU的接收状态。从序号为FSN的数据PDU到序号为FSN+N-1的数据PDU,根据数据PDU的接收状态依次开始填充位图信息,如果此数据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的记录节点从确认等待队列中删除。
与3GPP多拒绝的ARQ机制和HIPERLAN的部分位图选择重传ARQ机制相比较,本发明的多拒绝的自动请求重传ARQ机制的确认效率大大提高,并且吞吐率不会下降,这样系统用于ARQ发送确认信息的数据带宽大大下降,可以有更多的数据带宽发送反向数据,可以很好的支持数据双向传输;同时在确认带宽不够或信道质量急剧恶化时也可保证多拒绝ARQ机制稳定工作,并当确认带宽增加或信道质量得到改善时,可以很快地恢复到高吞吐率。
附图说明
图1为多拒绝自动请求重传结构图。
分割模块501、封装模块502、数据发送模块504、发送超时处理模块503、确认信息处理模块505、数据接收模块508、确认信息发送控制模块507、确认信息发送模块506、移动接收窗口模块509、解封模块510和重组模块511。
具体实施方式
具体实施中采用的数据PDU的格式定义,如表6所示。其中,首标志字段长度为1个比特,数据PDU类型字段长度为4个比特,数据PDU类型字段长度为5个比特,保留字段为1个比特,用于将来数据PDU类型的扩充,序号字段长度M为10个比特,序号是从0到1023的循环编号,数据部分字段长度为86个字节,所以每个固定长度的数据PDU长度为88个字节。
首标志1bit | 数据PDU类型5bit | 保留1bit | 序号10bit | 数据 | 填充(可选) |
表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个字节。
8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | |
Octet1 | A/M | FSN | ||||||
Octet2 | FSN | ACKType | Unused | |||||
Octet3 | Bitmap/RelativeOffsets | |||||||
Octet4 | ||||||||
Octet5 | ACK PDU Count | |||||||
Octet6 | CRC | |||||||
Octet7 |
表7 具体实施采用的链路控制PDU格式定义
对于表7定义的链路控制PDU的Bitmap/Relative Offsets,当该字段为Bitmap时,该字段的格式如表8所示。
Bit1 | Bit2 | Bit3 | Bit4 | …… | Bit16 |
表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。
RelativeOffset1 | RelativeOffset2 | RelativeOffset3 |
表9 实体实施采用的Relative Ofsets的格式定义
对于表7定义的链路控制PDU,每种确认类型的链路控制PDU的包含的确认信息为:
累积确认位图链路控制PDU对FSN之前的所有数据PDU进行肯定确认的同时,用16个比特的位图对从FSN开始包括FSN的连续17个数据PDU进行确认。累积确认位图链路控制PDU总是对FSN的的数据PDU进行否定确认,位图的第1个比特对应FSN后面的第1个数据PDU,即序号为FSN+1的数据PDU。
非累积确认位图链路控制PDU不对FSN之前的所有数据PDU进行肯定确认,非累积确认位图链路控制PDU用16个比特的位图对从FSN开始包括FSN连续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所示,数据发送方的发送窗口大小固定,为序号范围的一半,对于10位的数据PDU序号,发送窗口大小为512,发送窗口缓冲区中有512个存储单元,每个存储单元存放一个数据PDU和该数据PDU的发送状态,数据接收方的接收窗口的大小固定,和数据发送方的发送窗口大小相同,不会出现接收缓冲区不足的问题,每个数据窗口缓冲区单元存储接收到的数据PDU和接收状态。
数据发送方包括下面一些模块:分割模块501、封装模块502、数据发送模块504、发送超时处理模块503和确认信息处理模块505。
数据接收方包括下面一些模块:数据接收模块508、确认信息发送控制模块507、确认信息发送模块506、移动接收窗口模块509、解封模块510和重组模块511。数据发送方算法流程为:
1发送模块504:
数据发送流程是由MAC子层信号触发,MAC子层通知发送模块504当前可以发送数据PDU及发送数据PDU的个数,发送模块504从发送窗口的第1个数据PDU开始,向后检查哪些数据PDU需要发送。如果该数据PDU的发送状态是等待发送状态,则该数据PDU需要发送。然后从第1个数据PDU开始,依次将需要发送的数据PDU提交给MAC子层。每一个数据PDU被发送后,会有一个发送超时定时器启动,同时该PDU的发送状态设为正在发送状态。发送超时定时器的超时时间应大于链路RTT和确认发送定时器定时时间的和,为了降低因链路控制PDU丢失引起的吞吐率下降,可增加发送超时定时器的超时时间,但时延会增加。
2、超时处理模块503:
当发送窗口内某数据PDU的发送超时定时器超时,则超时处理模块503被触发执行。超时处理模块503将该数据PDU的发送状态改为等待发送状态,等待数据发送模块504对其进行重传,同时将该发送超时定时器撤销。
3、确认信息处理模块505:
当确认信息处理模块505和数据发送模块504接收到一个链路控制PDU的时候:
1)确定这个链路控制PDU的FSN在发送窗口的位置。
a、如果这个FSN不在发送窗口内,则判断FSN是否等于发送窗口中当前最大发送序号循环加1,如果相等则将变量s_position的值设为FSN,否则通过A/M位为0的链路控制PDU启动数据逻辑链路复位过程。
b、如果这个FSN在发送窗口内,则将s_position的值设为FSN。
2)提取链路控制PDU中的ACK Type字段判断确认信息的类型:
a、如果该字段是000,则进行累积确认位图链路控制PDU处理。
i)对s_position之前的所有数据PDU进行肯定确认,将每个数据PDU对应的发送状态改为已正确接收状态,同时撤销该数据PDU对应的发送超时定时器。
ii)对s_position这个位置的数据PDU进行否定确认,通过否认有效性判断方法判断对该数据PDU的否认是否有效,如果这个否定确认有效,将其对应的发送状态改为“等待发送状态”,同时撤销该PDU对应的发送超时定时器,如果无效则该数据PDU的发送状态保持不变。
iii)对s_position之后的16个数据PDU按照位图进行判断,如果对应比特为1,就对发送窗口中对应的数据PDU进行肯定确认;如果对应比特为0,进行否定确认。修改已确认的数据PDU的发送状态,对于肯定确认,将发送状态修改为已正确接收状态,同时撤销对应的定时器;对于否定确认,如果否定确认有效且该数据PDU的发送状态为正在发送状态,将发送状态修改为等待发送状态,同时撤销对应的定时器,否则该数据PDU的发送状态保持不变。
b、该字段是001,进行非累积确认位图链路控制PDU处理。
对s_position这个位置的数据PDU和s_position之后的数据PDU按照对应的位图内容进行判断,如果对应比特为1,就对发送窗口中对应的数据PDU进行肯定确认;如果对应比特为0,进行否定确认。修改已确认的数据PDU的发送状态,对于肯定确认,将发送状态修改为已正确接收状态,同时撤销对应的定时器;对于否定确认,如果否定确认有效且该数据PDU的发送状态为正在发送状态,将发送状态修改为等待发送状态,同时撤销对应的定时器,否则该数据PDU的发送状态保持不变。
C、类型字段是010,进行累积确认否定偏移链路控制PDU处理。
根据前面描述的累积确认否定偏移链路控制PDU包含的确认含义确定该链路控制PDU对哪些数据PDU进行肯定确认,对哪些数据PDU进行否定确认。对于进行肯定确认的数据PDU,将其发送状态修改为已正确接收状态,同时撤销对应的定时器;对于进行否定确认的数据PDU,如果否定确认有效且该数据PDU的发送状态为正在发送状态,将发送状态修改为等待发送状态,同时撤销对应的定时器,否则该数据PDU的发送状态保持不变。
d、如果该字段是011,进行非累积确认否定偏移1链路控制PDU处理。
根据前面描述的非累积确认否定偏移1链路控制PDU包含的确认含义确定该链路控制PDU对哪些数据PDU进行肯定确认,对哪些数据PDU进行否定确认。对于进行肯定确认的数据PDU,将其发送状态修改为已正确接收状态,同时撤销对应的定时器;对于进行否定确认的数据PDU,如果否定确认有效且该数据PDU的发送状态为正在发送状态,将发送状态修改为等待发送状态,同时撤销对应的定时器,否则该数据PDU的发送状态保持不变。
e、如果该字段是100,进行非累积确认否定偏移2链路控制PDU处理。
根据前面描述的非累积确认否定偏移2链路控制PDU包含的确认含义确定该链路控制PDU对哪些数据PDU进行肯定确认,对哪些数据PDU进行否定确认。对于进行肯定确认的数据PDU,将其发送状态修改为已正确接收状态,同时撤销对应的定时器;对于进行否定确认的数据PDU,如果否定确认有效且该数据PDU的发送状态为正在发送状态,将发送状态修改为等待发送状态,同时撤销对应的定时器,否则该数据PDU的发送状态保持不变。
f、如果该类型字段是101,进行累积确认肯定偏移链路控制PDU处理。
根据前面描述的累积确认肯定偏移链路控制PDU包含的确认含义确定该链路控制PDU对哪些数据PDU进行肯定确认,对哪些数据PDU进行否定确认。对于进行肯定确认的数据PDU,将其发送状态修改为已正确接收状态,同时撤销对应的定时器;对于进行否定确认的数据PDU,如果否定确认有效且该数据PDU的发送状态为正在发送状态,将发送状态修改为等待发送状态,同时撤销对应的定时器,否则该数据PDU的发送状态保持不变。
g、如果该字段是110,进行非累积确认肯定偏移1链路控制PDU处理。
根据前面描述的非累积确认肯定偏移1链路控制PDU包含的确认含义确定该链路控制PDU对哪些数据PDU进行肯定确认,对哪些数据PDU进行否定确认。对于进行肯定确认的数据PDU,将其发送状态修改为已正确接收状态,同时撤销对应的定时器;对于进行否定确认的数据PDU,如果否定确认有效且该数据PDU的发送状态为正在发送状态,将发送状态修改为等待发送状态,同时撤销对应的定时器,否则该数据PDU的发送状态保持不变。
h、如果该字段是111,进行非累积确认肯定偏移2链路控制PDU处理。
根据前面描述的非累积确认肯定偏移2链路控制PDU包含的确认含义确定该链路控制PDU对哪些数据PDU进行肯定确认,对哪些数据PDU进行否定确认。对于进行肯定确认的数据PDU,将其发送状态修改为已正确接收状态,同时撤销对应的定时器;对于进行否定确认的数据PDU,如果否定确认有效且该数据PDU的发送状态为正在发送状态,将发送状态修改为等待发送状态,同时撤销对应的定时器,否则该数据PDU的发送状态保持不变。
3)移动发送窗口
从发送窗口的最前端开始依次检查数据PDU的发送状态,如果对应的发送状态为已正确接收状态,则表示已被正确接收,将此数据PDU从发送窗口缓冲区的存储单元中删除,该存储单元变为空闲。这样发送窗口一直移动到第1个发送状态不为已正确接收状态的数据PDU为止。
4)如果发送窗口进行了移动,通知封装模块502向发送窗口缓冲区提交新的数据PDU发送,新的数据PDU存入发送窗口缓冲区的空闲存储单元后,对应的发送状态初始化为等待发送状态。
4、封装模块502
封装模块502将分割模块501分割得到的PU,按照数据PDU的格式封装成数据PDU,在确认信息处理模块505的触发下将数据PDU存入发送窗口缓冲区的存储单元中。
5、分割模块501
将上层协议提交的SDU分割成固定大小的PU,提交给封装实体进行封装处理。数据接收方算法流程描述为:
1、数据接收处理模块508:
接收窗口中的每个单元都包含一个数据PDU,该数据PDU有两种接收状态:已正确接收状态和未正确接收状态。已正确接收状态表示对应的数据PDU已经被正确接收,未正确接收状态表示对应的PDU还没有被正确接收。
数据接收方要维护一个确认等待队列,该队列包括若干个记录节点,队列的每个记录节点记录一个已经正确接收或检测到丢失但是还没有来得及被确认的数据PDU的序号和该数据PDU到达或发现丢失的时间。该队列是按照数据PDU序号正确接收或发现丢失的时间顺序排列的,最先正确接收或检测到丢失的数据PDU的记录在队列的最前面。
当数据接收处理模块508正确收到一个数据发送方发来的数据PDU时,如果该数据PDU在接收窗口内,进行下面一些操作:
a、获得这个数据PDU序号在接收窗口中相对于接收窗口第1个数据PDU的相对位置,即循环序号差,用变量r_position表示;
b、对确认等待队列进行下面的操作:
i)当前接收窗口相对于接收窗口第1个数据PDU的最大接收数据PDU的相对位置由变量max_rev_position表示。如果r_position大于max_rev_position加1,则检测到相对位置在max_rev_position和r_position之间的数据PDU丢失,即这些数据PDU虽然没有收到,但是它们已经被发送但是丢失,所以需要将这些检测到丢失的数据PDU和接收到的数据PDU的记录节点都插入到确认等待队列;否则,只将该数据PDU的记录节点插入到确认等待队列。
ii)如果r_position大于等于max_rev_position加1,将r_position的值赋给max_rev_position。
iii)对本次需插入的每个数据PDU,按序号先后判断确认等待队列中是否已经存在序号和该数据PDU序号相同的记录节点。如果存在,则该数据PDU的记录节点不插入队列,否则插入到队列的尾部。
c、将正确接收的数据PDU放入接收窗口缓冲区的对应存储单元,将对应的接收状态设为已正确接收状态。
d、判断接收到的这个PDU的序号是否和接收窗口第1个数据PDU的序号相同,如果是,则产生一个触发信号给移动接收窗口模块509。
2、移动接收窗口模块509
移动接收窗口模块509由数据接收处理模块508触发执行,包括下面一些操作:
从接收窗口的第1个数据PDU开始依次检查,如果其已经被正确接收到,即对应接收状态为已正确接收状态,则将此数据PDU提交给解封模块510并从接收窗口缓冲区中删除,同时要在接收窗口队列的尾部填进一个新的空白单元,该空白单元的序号对应等待接收的最后一个数据PDU的序号,接收状态设为未正确接收状态。这样接收窗口就向后移动了一个位置,接收窗口缓冲区的长度始终保持不变。
然后依次判断下一个数据PDU,接收窗口一直移动到第1个没有正确接收到的数据PDU的位置,作为接收窗口新的第1个数据PDU,并且根据本次移出接收窗口的数据PDU的个数修改变量max_rev_position的值。
3、确认信息发送控制模块507
确认信息发送控制模块507在每个控制信道发送时隙,判断该发送时隙是否应发送包含确认信息的链路控制PDU。
该模块在每个控制信道发送时隙被周期性的触发执行,触发后根据判断下面三个条件是否有满足条件的,只要有一个条件满足就应该在该时隙发送包含确认信息的链路控制PDU:
a、如果确认发送超时定时器超时。具体实施中确认发送超时定时器的定时时间可以根据不同系统的实际链路时延和对平均时延的要求进行设置,最小可以等于一个控制信道发送时隙,也可以为多个控制信道发送时隙,确认发送超时定时器的定时时间越小,系统平均时延越小;
b、利用确认等待队列第1个记录节点记录的时间和当前时间计算确认等待队列的最大等待确认时间,如果最大等待确认时间超过等待确认时间门限。具体实施中等待确认时间门限可以根据不同系统的实际链路时延和对平均时延的要求进行设置,应满足小于放弃确认时间,该门限值越小系统的时延越小,但确认效率会下降;
c、如果确认等待队列的长度超过确认发送触发长度。具体实施中确认发送触发长度设为一个链路控制PDU从FSN开始一次最多可以确认的数据PDU个数的,即126。
如果满足发送包含确认信息的链路控制PDU的条件则通知确认信息发送模块506构造链路控制PDU进行确认,同时重新启动确认发送定时器,否则该时隙不发送链路控制PDU进行确认。
4、确认信息发送模块506
该模块由确认信息发送控制模块507触发执行,该模块收到确认信息发送控制模块507的触发信号后,检查确认等待队列的长度,如果其长度不为0,则要构造链路控制PDU并发送。
构造链路控制PDU的步骤包括:
a、确定链路控制PDU中的FSN
首先计算确认等待队列的最大等待确认时间,如果最大等待确认时间大于放弃确认时间门限,则将确认等待队列前面所有等待确认时间大于放弃确认时间门限的记录节点删除,即放弃对等待确认时间大于放弃确认时间门限的数据PDU进行确认,其中放弃确认时间门限等于发送超时定时器的超时时间减去从数据接收方开始发送链路控制PDU到数据发送方完全接收该链路控制PDU的处理时间。然后再获取当前确认等待队列第1个记录节点记录的数据PDU的序号,如果该序号不在接收窗口序号范围之内或与接收窗口第1个数据PDU序号相同,FSN设为接收窗口第1个数据PDU的序号;否则,FSN设为确认等待队列第1个记录节点记录的数据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的接收状态为已正确接收状态,则链路控制PDU为非累积确认否定偏移1链路控制PDU;如果FSN不等于接收窗口第1个数据PDU的序号,且序号为FSN的数据PDU的接收状态为未正确接收状态,则链路控制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的接收状态为已正确接收状态,则链路控制PDU为非累积确认肯定偏移1链路控制PDU;如果FSN不等于接收窗口第1个数据PDU的序号,且序号为FSN的数据PDU的接收状态为未正确接收状态,则链路控制PDU为非累积确认肯定偏移2链路控制PDU。
c、根据FSN和链路控制PDU的确认类型确定位图/相对偏移字段
i)累积确认位图链路控制PDU:
具体实施中N=16,位图第1位对应着序号为FSN+1的数据PDU的接收状态。从这个数据PDU依次开始填充位图信息,如果此数据PDU已被正确接收,则位图对应比特为1;如果此数据PDU未被正确接收,则位图的对应比特为0。
ii)非累积确认位图链路控制PDU:
具体实施中N=16,位图第1位对应着序号为FSN的数据PDU的接收状态。从这个数据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、如果系统利用ACK PDU Count字段进行否定有效性判断,则将ACK PDUCount字段的值设为生成的链路控制PDU实际确认的数据PDU的个数,否则将该字段设为0。对于前面实例描述累积确认否定偏移链路控制PDU,该字段的值设为52;对于前面实例描述累积确认肯定偏移链路控制PDU,该字段的值也设为52
e、生成的链路控制PDU,对该链路控制PDU确认的每个数据PDU,在确认等待队列中查找记录由该数据PDU序号的记录节点,并将其从确认等待队列中删除。
f、将生成的链路控制PDU通过控制信道发送。
5.解封模块510
解封模块510由移动接收窗口模块509触发执行,该模块从移动接收窗口模块509提交的数据PDU中提取出封装的PU提交给重组模块511。
6.重组模块511
该模块将解封模块510提交的PU存入缓冲区,当检测到一个SDU的所有PU都已经正确接收时,将该SDU的PU进行重新组合,重新生成SDU提交给上层。
Claims (19)
1、一种数据链路层的多拒绝自动请求重传机制,将不可靠的无线物理链路改造成可靠的数据逻辑链路,为网络层提供可靠的数据传输,包括以下步骤:
数据发送方和数据接收方通过包含链路管理信息的链路控制PDU建立数据逻辑链路连接;
数据发送方的数据链路层从上层获取SDU,由分割模块将SDU分割成固定大小的PU,再由封装模块封装成数据PDU,放入发送窗口缓冲区的空闲存储单元,等待发送;
数据发送方的MAC子层通知数据发送模块可以发送数据PDU以及发送数据PDU的个数,数据发送模块首先根据发送窗口缓冲区中各数据PDU的发送状态确定本次发送哪些数据PDU,然后发送数据PDU,并为发送的每个数据PDU启动发送超时定时器;
当数据发送方有发送超时定时器超时,超时处理模块修改相应数据PDU的发送状态为等待发送状态,等待数据发送模块进行重传;
当数据发送方收到包含确认信息的链路控制PDU,确认信息处理模块首先分析该链路控制PDU包含对哪些数据PDU的确认,并对所有的否定确认进行否定有效性判断,再对每一个有效的确认(包括所有肯定确认)修改相应数据PDU的发送状态,并取消该数据PDU的发送超时定时器;
当数据接收方收到数据PDU,数据接收处理模块将接收的数据PDU和检测到丢失的数据PDU的PDU序号和到达时间或检测到丢失时间记录到确认等待队列中,将正确接收的数据PDU放到接收窗口缓冲区的存储单元中,将其接收状态设为已正确接收状态,如果满足移动接收窗口的条件则通知移动接收窗口模块移动接收窗口;
当移动接收窗口模块收到数据接收处理模块的移动接收窗口的通知,将连续多个已正确接收的数据PDU移出接收窗口缓冲区,提交给解封模块,同时将移出的数据PDU原先占用的存储单元设为空闲,接收状态为未正确接收状态;
解封模块收到数据PDU后,提取出封装的PU提交给重组模块;
如果一个SDU对应的所有PU提交给了重组模块,重组模块由这些PU重组出SDU提交各上层;
数据接收方的确认信息发送控制模块周期性的判断是否满足发送包含确认信息的链路控制PDU的条件,如果满足条件则通知确认信息发送模块发送包含确认信息的链路控制PDU;
数据接收方的确认信息发送模块收到确认信息发送控制模块的发送确认信息通知后,利用确认等待队列,确定发送包含确认信息的链路控制PDU的FSN字段和确认类型字段,再生成Bitmap/Relative Offsets字段,构造出完整的固定大小的链路控制PDU,从确认等待队列中删除该链路控制PDU确认的数据PDU的记录节点,并发送该链路控制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字段进行区分,当该字段表示相对偏移确认信息时,包含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个数,对于不支持根据时间进行否认有效性判断的系统,该字段用于帮助判断确认信息中否定确认的有效性,对于通过时间进行否认有效性判断的系统,该字段的值为0,或者不定义该字段;(6)CRC:循环冗余码字段,用于对链路控制PDU进行差错检测,可以采用8、12、16、20、24、28或32位的CRC。
3、根据权利要求2所述的多拒绝自动请求重传机制,定义链路控制PDU的确认类型,共有8种,包括两种位图确认类型和六种偏移确认类型。
5、根据权利要求3或4所述的多拒绝自动请求重传机制,其特征在于每种确认类型的链路控制PDU包含的确认信息定义为:(1)、累积确认位图链路控制PDU包含的确认信息,累积确认位图链路控制PDU对FSN之前的所有数据PDU进行肯定确认的同时,用N个比特对从FSN开始包括FSN的连续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连续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所述的多拒绝自动请求重传机制,其特征在于数据发送方数据PDU的三种发送状态的定义为:等待发送状态、已正确接收状态和正在发送状态。
7、根据权利要求1所述的多拒绝自动请求重传机制,其特征在于数据接收方对所有未接收到的数据PDU,包括数据发送方还未发送的数据PDU进行否定确认,数据发送方对链路控制PDU中包含的所有否认确认判断其有效性。
8、根据权利要求1所述的多拒绝自动请求重传机制,其特征在于数据发送方可以通过ACK PDU Count字段判断否定确认有效性,或通过发送数据PDU和收到包含对该PDU否定确认的链路控制PDU的时间间隔判断否定确认有效性,对于根据时间判断,如果从发送此数据PDU到接收到包含对该数据PDU进行否定确认的链路控制PDU的时间间隔小于链路RTT,则该否定确认是无效的,否则该否定确认是有效的;对于根据链路控制PDU中ACK PDU Count字段进行判断,从FSN开始的连续ACK PDU Count个确认是有效的,后面的确认都是无效的。
9、根据权利要求5或7所述的多拒绝自动请求重传机制,其特征在于数据发送方根据收到的链路控制PDU包含的确认信息,对肯定确认将发送窗口缓冲区中数据PDU的发送状态修改为已经正确接收,取消该数据PDU的发送超时定时器;对否定确认,如果否认有效性为有效,该数据PDU的发送状态为正在发送状态,就将该数据PDU的发送状态修改为等待发送状态,取消该数据PDU的发送超时定时器。
10、根据权利要求1所述的多拒绝自动请求重传机制,其特征在于数据发送方发送定时器超时,不将发送超时的数据PDU放入重传缓冲区,而只是将该数据PDU的发送状态修改为等待发送状态。
11、根据权利要求1所述的多拒绝自动请求重传机制,其特征在于数据发送方不使用重传缓冲区,通过发送窗口缓冲区中数据PDU的发送状态,从发送窗口的第1个数据PDU开始选择发送状态为等待发送状态的数据PDU发送。
12、根据权利要求1所述的多拒绝自动请求重传机制,其特征在于确认等待队列的定义为:数据接收方用于记录当前还未确认的正确接收的数据PDU和检测到丢失的数据PDU的队列,该队列按数据PDU的到达时间或检测到丢失的时间的先后顺序排列,队列的每个节点记录该PDU的序号和到达时间或检测到丢失的时间。
13、根据权利要求12所述的多拒绝自动请求重传机制,数据接收方在接收数据PDU并检测丢失数据PDU后,如果接收的数据PDU和检测到丢失的数据PDU未记录在确认等待队列中,将该数据PDU的序号和到达时间或检测到丢失的时间记录到确认等待队列中。
14、根据权利要求12所述的多拒绝自动请求重传机制,其特征在于数据接收方利用确认发送定时器、确认等待队列的长度和确认等待队列的最大等待确认时间自动地确定发送链路控制PDU的时机,当满足下面任何一个条件时,数据接收方应发送包含确认信息的链路控制PDU:确认发送超时定时器超时;最大等待确认时间超过等待确认时间门限;确认等待队列的长度超过确认发送触发长度。
15、根据权利要求12所述的多拒绝自动请求重传机制,其特征在于确认等待队列中等待确认时间超过放弃确认时间的数据PDU从确认等待队列中删除其记录节点,放弃对该数据PDU进行确认。
16、根据权利要求12所述的多拒绝自动请求重传机制,数据接收方利用确认等待队列,确定本次发送的链路控制PDU的FSN,如果当前确认等待队列第1个记录节点记录的数据PDU的序号不在接收窗口序号范围之内或与接收窗口第1个数据PDU序号相同,FSN设为接收窗口第1个数据PDU的序号;否则,FSN设为确认等待队列第1个记录节点记录的数据PDU的序号。
17、根据权利要求16所述的多拒绝自动请求重传机制,其特征在于根据从序号为FSN+1的数据PDU开始的N-1个数据PDU的中未正确接收的数据PDU个数,确定本次发送的链路控制PDU确认类型,确定本次发送的链路控制PDU确认类型的具体过程为:(1)、如果未正确接收的个数小于k,则链路控制PDU应采用否定偏移进行确认,并根据下面条件决定具体采用哪一种否定偏移确认类型:如果FSN等于接收窗口第1个数据PDU的序号,则该链路控制PDU应为累积确认否定偏移链路控制PDU;如果FSN不等于接收窗口第1个数据PDU的序号,且序号为FSN的数据PDU的接收状态为已正确接收状态,则链路控制PDU为非累积确认否定偏移1链路控制PDU;如果FSN不等于接收窗口第1个数据PDU的序号,且序号为FSN的数据PDU的接收状态为未正确接收状态,则链路控制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的接收状态为已正确接收状态,则链路控制PDU为非累积确认肯定偏移1链路控制PDU;如果FSN不等于接收窗口第1个数据PDU的序号,且序号为FSN的数据PDU的接收状态为未正确接收状态,则链路控制PDU为非累积确认肯定偏移2链路控制PDU。
18、根据权利要求16或17所述的多拒绝自动请求重传机制,其特征在于根据FSN和链路控制PDU确认类型,构造链路控制PDU中位图/相对偏移字段,每一种确认类型的链路控制PDU构造位图/相对偏移字段的具体过程为:(1)、累积确认位图链路控制PDU:位图第1位对应着序号为FSN+1的数据PDU的接收状态,从序号为FSN+1的数据PDU到序号为FSN+N的数据PDU,根据数据PDU的接收状态依次开始填充位图信息,如果此数据PDU已被正确接收,则位图对应比特为1;如果此数据PDU未被正确接收,则位图的对应比特为0;(2)、非累积确认位图链路控制PDU:位图第1位对应着序号为FSN的数据PDU的接收状态,从序号为FSN的数据PDU到序号为FSN+N-1的数据PDU,根据数据PDU的接收状态依次开始填充位图信息,如果此数据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的记录节点从确认等待队列中删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021158452A CN1165129C (zh) | 2002-05-16 | 2002-05-16 | 多拒绝自动请求重传arq方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021158452A CN1165129C (zh) | 2002-05-16 | 2002-05-16 | 多拒绝自动请求重传arq方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1379557A true CN1379557A (zh) | 2002-11-13 |
CN1165129C CN1165129C (zh) | 2004-09-01 |
Family
ID=4743902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021158452A Expired - Fee Related CN1165129C (zh) | 2002-05-16 | 2002-05-16 | 多拒绝自动请求重传arq方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1165129C (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007098676A1 (fr) * | 2006-03-03 | 2007-09-07 | Huawei Technologies Co., Ltd. | Procédé de réassemblage de données dans un système de communication sans fil et appareil associé |
WO2007124634A1 (fr) * | 2006-04-27 | 2007-11-08 | Zte Corporation | Procédé de retransmission de données dans le protocole de commande de liaison radio |
CN100358277C (zh) * | 2004-03-12 | 2007-12-26 | 华为技术有限公司 | 一种防止状态变量异常更新的方法 |
CN100380858C (zh) * | 2004-01-08 | 2008-04-09 | 三菱电机株式会社 | 利用反馈资源分配方案的误差控制方法和设备 |
CN100433701C (zh) * | 2004-11-11 | 2008-11-12 | 华为技术有限公司 | 多媒体广播/组播业务信息的传输方法 |
CN1771686B (zh) * | 2003-04-07 | 2010-06-16 | 艾利森电话股份有限公司 | Rlc窗口大小的重新配置 |
CN1939008B (zh) * | 2004-03-31 | 2010-06-16 | Lg电子株式会社 | 用于数据链路层的数据接收方法以及传送方法 |
CN1968074B (zh) * | 2005-11-03 | 2010-06-23 | 居易科技股份有限公司 | 网络封包串流仿真方法 |
CN101179363B (zh) * | 2006-11-06 | 2010-09-29 | 华为技术有限公司 | 一种数据状态信息反馈的方法和接收方设备 |
CN101202608B (zh) * | 2006-12-14 | 2010-10-13 | 联芯科技有限公司 | 一种确认方式数据的传输方法及系统 |
CN1996821B (zh) * | 2006-01-05 | 2010-12-08 | 上海原动力通信科技有限公司 | 一种基于数据重传机制的数据传输方法 |
CN101217791B (zh) * | 2008-01-15 | 2011-03-02 | 中兴通讯股份有限公司 | 基于arq使能连接的上行带宽分配请求方法 |
CN101232493B (zh) * | 2007-01-26 | 2011-04-20 | 中兴通讯股份有限公司 | 无线链路控制层确认模式下pdu尺寸确定方法和装置 |
CN101188555B (zh) * | 2007-12-14 | 2011-07-13 | 中兴通讯股份有限公司 | 一种提高非可靠通讯环境下单向通讯可靠性的方法 |
CN101043301B (zh) * | 2006-03-22 | 2011-08-10 | 华为技术有限公司 | 一种无线通信系统中的数据重排重组方法及其基站 |
CN101018195B (zh) * | 2007-02-06 | 2011-11-30 | 中国科学院软件研究所 | Manet信息分发订购平台中短猝报文的传送方法 |
CN102341784A (zh) * | 2009-03-17 | 2012-02-01 | 熵敏通讯股份有限公司 | MoCA中发生错误时快速MAP恢复的方法 |
CN1735089B (zh) * | 2004-08-11 | 2012-02-29 | 株式会社东芝 | 通信设备和通信方法 |
CN101179362B (zh) * | 2006-11-07 | 2012-07-11 | 中兴通讯股份有限公司 | 适宜移动流媒体应用的自动重传请求机制 |
CN1983911B (zh) * | 2005-12-12 | 2012-10-24 | 国际商业机器公司 | 网络通信设备中传输数据的方法和网络通信系统 |
CN103078722A (zh) * | 2007-08-14 | 2013-05-01 | 华为技术有限公司 | 一种请求数据重传的方法及装置 |
CN102160317B (zh) * | 2008-09-19 | 2014-03-05 | 高通股份有限公司 | 用于发射和接收确认包的系统和方法 |
CN103152147B (zh) * | 2007-10-03 | 2016-09-14 | 富士通株式会社 | 无线通信装置、无线通信控制装置 |
CN111901075A (zh) * | 2020-07-16 | 2020-11-06 | 华中科技大学 | 多网络融合传输方法、传输系统及计算机可读存储介质 |
-
2002
- 2002-05-16 CN CNB021158452A patent/CN1165129C/zh not_active Expired - Fee Related
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1771686B (zh) * | 2003-04-07 | 2010-06-16 | 艾利森电话股份有限公司 | Rlc窗口大小的重新配置 |
CN100380858C (zh) * | 2004-01-08 | 2008-04-09 | 三菱电机株式会社 | 利用反馈资源分配方案的误差控制方法和设备 |
CN100358277C (zh) * | 2004-03-12 | 2007-12-26 | 华为技术有限公司 | 一种防止状态变量异常更新的方法 |
CN1939008B (zh) * | 2004-03-31 | 2010-06-16 | Lg电子株式会社 | 用于数据链路层的数据接收方法以及传送方法 |
CN1735089B (zh) * | 2004-08-11 | 2012-02-29 | 株式会社东芝 | 通信设备和通信方法 |
CN100433701C (zh) * | 2004-11-11 | 2008-11-12 | 华为技术有限公司 | 多媒体广播/组播业务信息的传输方法 |
CN1968074B (zh) * | 2005-11-03 | 2010-06-23 | 居易科技股份有限公司 | 网络封包串流仿真方法 |
CN1983911B (zh) * | 2005-12-12 | 2012-10-24 | 国际商业机器公司 | 网络通信设备中传输数据的方法和网络通信系统 |
CN1996821B (zh) * | 2006-01-05 | 2010-12-08 | 上海原动力通信科技有限公司 | 一种基于数据重传机制的数据传输方法 |
WO2007098676A1 (fr) * | 2006-03-03 | 2007-09-07 | Huawei Technologies Co., Ltd. | Procédé de réassemblage de données dans un système de communication sans fil et appareil associé |
CN101043301B (zh) * | 2006-03-22 | 2011-08-10 | 华为技术有限公司 | 一种无线通信系统中的数据重排重组方法及其基站 |
WO2007124634A1 (fr) * | 2006-04-27 | 2007-11-08 | Zte Corporation | Procédé de retransmission de données dans le protocole de commande de liaison radio |
CN101179363B (zh) * | 2006-11-06 | 2010-09-29 | 华为技术有限公司 | 一种数据状态信息反馈的方法和接收方设备 |
CN101179362B (zh) * | 2006-11-07 | 2012-07-11 | 中兴通讯股份有限公司 | 适宜移动流媒体应用的自动重传请求机制 |
CN101202608B (zh) * | 2006-12-14 | 2010-10-13 | 联芯科技有限公司 | 一种确认方式数据的传输方法及系统 |
CN101232493B (zh) * | 2007-01-26 | 2011-04-20 | 中兴通讯股份有限公司 | 无线链路控制层确认模式下pdu尺寸确定方法和装置 |
CN101018195B (zh) * | 2007-02-06 | 2011-11-30 | 中国科学院软件研究所 | Manet信息分发订购平台中短猝报文的传送方法 |
CN103078722A (zh) * | 2007-08-14 | 2013-05-01 | 华为技术有限公司 | 一种请求数据重传的方法及装置 |
CN103152147B (zh) * | 2007-10-03 | 2016-09-14 | 富士通株式会社 | 无线通信装置、无线通信控制装置 |
CN101188555B (zh) * | 2007-12-14 | 2011-07-13 | 中兴通讯股份有限公司 | 一种提高非可靠通讯环境下单向通讯可靠性的方法 |
CN101217791B (zh) * | 2008-01-15 | 2011-03-02 | 中兴通讯股份有限公司 | 基于arq使能连接的上行带宽分配请求方法 |
CN102160317B (zh) * | 2008-09-19 | 2014-03-05 | 高通股份有限公司 | 用于发射和接收确认包的系统和方法 |
US8755388B2 (en) | 2008-09-19 | 2014-06-17 | Qualcomm Incorporated | System and method for acknowledgement packet transmitting and receiving |
CN102341784A (zh) * | 2009-03-17 | 2012-02-01 | 熵敏通讯股份有限公司 | MoCA中发生错误时快速MAP恢复的方法 |
CN102341784B (zh) * | 2009-03-17 | 2014-09-24 | 熵敏通讯股份有限公司 | MoCA中发生错误时快速MAP恢复的方法 |
CN111901075A (zh) * | 2020-07-16 | 2020-11-06 | 华中科技大学 | 多网络融合传输方法、传输系统及计算机可读存储介质 |
CN111901075B (zh) * | 2020-07-16 | 2021-11-23 | 华中科技大学 | 多网络融合传输方法、传输系统及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN1165129C (zh) | 2004-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1165129C (zh) | 多拒绝自动请求重传arq方法 | |
CN1165122C (zh) | 移动通信系统中依据无线链接协议重发数据的设备和方法 | |
CN1173500C (zh) | 高速下行数据包接入系统对不同服务质量业务的支持方法 | |
CN1835617A (zh) | 移动台、移动通信系统和移动通信方法 | |
CN1224189C (zh) | 移动通信系统中根据无线链路协议发送和接收数据的设备和方法 | |
CN101048982A (zh) | 用于专用信道的上行链路发送的了解服务质量的调度 | |
CN1836401A (zh) | 用于组播数据传输的反馈信令 | |
CN1311655C (zh) | 改善可靠性和吞吐量的无线通信系统及重发超时确定方法 | |
CN1620768A (zh) | 对高速下行链路分组接入系统使用定时器避免拖延时间的系统和方法 | |
CN1404250A (zh) | 码分多址通信系统中重新设置介质接入控制层实体的方法 | |
CN101053194A (zh) | 用于数据传送的混合自动重复请求协议优化 | |
CN1864362A (zh) | 在软切换期间分组重传的时间监视 | |
CN1829346A (zh) | 无线电基站和移动站 | |
CN1951053A (zh) | 无线通信网中改进的递增冗余操作 | |
CN1941671A (zh) | 传输控制方法、移动台、无线基站和无线网络控制站 | |
CN1926795A (zh) | 混合自动重复请求重新传输时序控制方法 | |
CN101047484A (zh) | 一种传输层重传方法和系统 | |
CN1879363A (zh) | 移动通信系统中的协议语境传送 | |
CN101043301A (zh) | 一种无线通信系统中的数据重排重组方法及其基站 | |
CN1711713A (zh) | 数据传输系统 | |
CN1791249A (zh) | 无线基站和移动台 | |
CN1791271A (zh) | 无线通信系统、无线基站和移动台 | |
CN101079820A (zh) | 在移动通信系统中传输帧的方法及发送多个帧的方法 | |
CN1768498A (zh) | 在自动重复请求协议中避免停机状态和顺序号不确定性 | |
CN1692568A (zh) | 在无线接入网络中移动接收窗口的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20040901 |