logicalChannelConfig explicitValue : { ul-SpecificParameters { priority 3,
prioritisedBitRate infinity, bucketSizeDuration ms50, logicalChannelGroup 0 } } } }
以上信令是网络侧告诉UE如何在AM模式下进行RLC层的发送和重传。因此ul-AM-RLC是网络侧告诉UE应该如何发送和重传;dl-AM-RLC是网络侧告诉UE,网络侧如何发送(即提示UE如何接收)。在下文中,“发送端”可以认为是UE,“接收端”可以认为是网络侧。
9.1数据传输流程
9.1.1发送端工作机制
下面剖析发送端的AM RLC Entity的发送过程。该过程有两个优先级:控制PDU高于数据PDU;重传PDU高于新传PDU。
TS36.322中定义了3个变量和1个定量去定义发送窗口,分别是VT(A)、VT(MS)、VT(S)、AM_Window_Size。
VT(A)是发送窗口的下限,SN=VT(A)的PDU是下一个等待Positive Acknowledgment的PDU。也就是说,当发送窗口最下限的PDU(SN=VT(A))收到Positive Acknowledgment后,VT(A)将设置为发送窗口内(VT(A) <= SN <= VT(S))最小的、没有收到Positive Acknowledgement的SN。
VT(MS)是发送窗口的上限,VT(MS)= VT(A)+AM_Window_Size。AM_Window_Size协议中定义是512,是RLC PDU序号总数(0-1023)的一半。
VT(S)记录了下一个等待发送的PDU。每发送一个新的AM PDU去底层,VT(S)都会增加1。也就是说,VT(S)总是等于最后1个发送出去的AM PDU的SN,加上1。若VT(S)一直增大且VT(MS)不变(即前面发送的很多PDU都收不到Positive Acknowledgement),则当VT(S)=VT(MS)时窗口出现堵塞,只有VT(MS)再出现变化时才会再发送新的PDU。
如下图所示,发送窗口的位置由VT(A)和VT(MS)维持。SN为0、1、2的PDU发送了出去,因此VT(S)=3。但只有0收到了ACK,因此发送窗口的下限门限VT(A)=1,发送窗口的上限门限VT(MS)=VT(A)+AM_Window_Size=1+512=513。
46
注意,发送端只会发送或重传SN在发送窗口中的PDU,即VT(A)<=SN 9.1.2接收端工作机制 再来看一下Receiving Side。TS36.322中定义了5个变量和1个定量去定义接收窗口,分别是VR(R)、VR(MR)、VR(H)、VR(MS)、VR(X)。 VR(R)、VR(MR):接收窗口靠VR(R)、VR(MR)去维系,VR(R) <= SN < VR(MR)。如上图所示,SN为0、1、3的PDU成功接收到。因此接收窗口门限的下限VR(R)=2,接收窗口上限VR(MR)=VR(R)+512=514。 VR(MS):等于所有有可能收到ACK的SN中的第一个。 VR(H)定义:接收到的PDU中最高SN的下一个SN。比如说SN为0、1、3的PDU接收到,则VR(H)=4。 VR(X):指示触发t-Reordering的RLC data PDU的下一个PDU的SN。 当接收端从底层接收到RLC data PDU后,有两种选择——要么丢弃、要么放在缓存区域。丢弃的准则是:SN=x的PDU落在了接收窗口之外、或PDU中所有的byte segments之前被接收过。其余情况,都放在接收缓存区域,此时要注意如果SN=x的PDU中,部分的byte segments被成功接收到, 47 则丢弃掉这重复的byte segments。 当SN=x的RLC PDU放在接收缓存区域时,分两步:1、接收端会进行不同的变量更新、重新组装SDUs并发送至上层、开始或停止t-Reordering。2、当t-Reordering超时后,将会更新不同的变量,如果需要的话将重新开始t-Reordering。 先看第一步:当SN=x的RLC PDU放在接收缓存区域时,接收端会进行不同的变量更新、重新组装SDUs并发送至上层、开始或停止t-Reordering。AM RLC entity接收端将会针对不同情况开展以下工作: 1、如果x >= VR(H),则将VR(H) 设置为x + 1,因为VR(H)指示的是接收到的PDU中最高SN中的下一个。 2、如果SN = VR(MS)的PDU的所有byte segments都被成功接收到,则将VR(MS)设置为大于现有VR(MS)的所有SN中,第1个没有将全部byte segments都接收齐全的PDU的SN。因为VR(MS)是所有有可能收到ACK的SN中的第一个。 3、如果x=VR(R), 1)如果SN=VR(R)的AMD PDU的所有byte segments都收到,则将VR(R)设置为大于现有VR(R)的所有SN中,第1个没有将全部byte segments都接收齐全的PDU的SN。再将VR(MR)更新为VR(R) + AM_Window_Size。 2)重新组装RLC SDUs,这些SDUs来自接收窗口外PDUs的任何byte segments和SN=VR(R)的PDU中按顺序的byte segments。去除RLC头部,并将重新组装的SDUs按顺序发送至上层,如果之前没有发送过。 4、如果t-Reordering在运行, 如果VR(X)=VR(R),或VR(X)掉在接收窗口之外以及VR(X)不等于VR(MR),停止t-Reordering,并重置t-Reordering。 这一步是什么意思呢?VR(X) = VR(R),即触发t-Reordering的RLC data PDU的SN=VR(R) – 1,不在接收窗口内;VR(X)掉在接收窗口之外且VR(X)不等于VR(MR),可以保证SN=VR(X) – 1的SN,即触发t-Reordering的SN,肯定不在接收窗口之内,因为当VR(X) = VR(MR)时,虽然VR(X)在掉在接收窗口之外,但是VR(X) – 1还是落在了接收窗口之内。 总结起来,就是只要触发t-Reordering的SN落在接收窗口之外,则停止运行t-Reordering,并且重置t-Reordering。 5、如果t-Reordering不在运行(包含上述停止t-Reordering的情形), 如果VR (H) > VR(R),则触发t-Reordering开始计时,并且将VR(X)设置等于VR(H)。比如说, 48 如下图所示,当接收端接收到了3之后,VR(H)变成了4。但是没有接收到SN = 2的PDU,因此VR(R) = 2,所以出现了断点,即VR(H) > VR(R),触发了t-reordering的开启,同时将VR(X)设置为VR(H)。 如果在t-reordering时间内,收到了SN=2的PDU,则VR(R)变成了4,与VR(X)相等。此时,停止t-recording。 再看第二步:当t-Reordering超时后,接收端将VR(MS)设置为SN >= VR(X)中第1个没有将全部byte segments接收齐全的PDU SN。在这里,就设置VR(MS)=4。 如果VR(H)>VR(MS),触发t-Reordering,并设置VR(X) = VR(H)。可能4、6成功接收,但是5没有成功接收,此时VR(H)=7,大于VR(MS)。并同时触发Status Report。虽说两者是同时发生,但是VR(MS)更新后才触发Status Report。 对于UE来说,在上行方向,它是发送端,因此ul-AM-RLC中的参数指示了UE“应该如何发送”。对于UE来说,在下行方向,它是接收端,因此在dl-AM-RLC中的参数告诉UE网络侧是如何发送的,即间接指示了UE“应该如何接收”,t-Reordering是dl-AM-RLC中的参数,如果t-Reordering设置得越长,则接收端等待重传的机会越大,传输准确定越高,但是效率越低。 当t-Reordering的数值小于MAC 产生的时延时,系统性能的各项指标随t-Reordering的变化而剧烈变化;当t-Reordering的数值大于MAC 产生的时延时,系统性能的各项指标基本趋于稳定,不受t-Reordering变化的影响。 t-Reordering取值范围:ENUMERATED {ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, ms40, ms45, ms50, ms55, ms60, ms65, ms70, ms75, ms80, ms85, ms90, ms95, ms100, ms110, ms120, ms130, ms140, ms150, ms160, ms170, ms180, ms190, ms200, spare1}。 49 9.2 ARQ流程 9.2.1重传机制 下面进入AM模式下的RLC自动重传机制(ARQ),ARQ只在AM模式下才有。 AM实体发送端在收到状态报告后,对其中NACK对应的PDU和PDU segment进行重传。重传的具体实现过程如下图所示: 以上过程中可见maxRetxThreshold的作用。该参数的取值范围:ENUMERATED {t1, t2, t3, t4, t6, t8, t16, t32}。该参数指示了UE的RLC层收到NACK的回复后,重传的次数。如果取值越大,当接收端收到NACK的Status PDU后,重传的几率越大;重传几率越大,则传输准确性越高,但是效率会越低。 50

