TM(Transparent Mode) data
transfer
对于TM(Transparent
mode)数据传输,不论是传输侧还是接收侧的流程都与LTE中RLC的TM数据传输相同。RLC完全透传,在RLC层不存在重传、重复检测、分段和重组。该配置用于给多个用户发送信息的控制面广播信道,比如BCCH,PCCH等。
UM(Unacknowledge Mode) data
transfer
UM模式支持分段但是不支持重传。这种模式用于不需要无错递交的场景,比如语音通话。
在传输侧,
- 对于LTE而言,当RLC提交一个UMD PDU给MAC层时,传输侧的UM RLC entity应当:设置UMD
PDU的SN为VT(US)(该变量指向下一个将要生成的UMD PDU的SN),同时VT(US) = VT(US) + 1;
- 而对于NR而言,当RLC提交一个UMD PDU给MAC时,传输侧的UM RLC entity 应当:
1. 如果该UMD PDU包含一个RLC
SDU分段,设置该UMD PDU的SN = TX_Next;
2. 如果该UMD PDU包含一个映射到一个RLC
SDU最后一个字节的一个分段,则TX_Next = TX_Next + 1;
其中TX_Next变量指向分配给下一个将要生成的包含RLC
SDU segment的UMD PDU的SN。该值初始为0,对于一个包含分段RLC SDU的UMD PDU,在该分段RLC SDU传输完毕之前,SN不变,在传输完该RLC SDU的最后一个segment之后,SN递增加1。
N.B. 需要强调指出的是,在UM模式中,只有分段的UMD SDU才包含序列号。
之所以出现这样的差异就是我们在博文‘RLC相关流程-part1’里面提到的:对于NR 的RLC,一个RLC SDU就是一个RLC PDU,可以提前组包;而对于LTE的RLC,一个RLC
PDU长度取决于MAC调度后确定的TB长度,从而导致一个RLC PDU由多个RLC SDU拼接或者分段组成。那么对于NR的RLC而言,一旦出现RLC
PDU分段(只存在于组成MAC
PDU的最后一个RLC
PDU)也就是意味着一个RLC
SDU被分段了,因此必须等到全部分段收到,才能将SN加1。而对于LTE的RLC而言,一个RLC
PDU不等于一个RLC SDU,因此一个PDU的SN就不用考虑是不是该PDU最后一部分是由一个RLC SDU的分段组成的,只要PDU提交后,RLC的PDU的SN号就应该加1。
在接收侧,我们先来和LTE做一个对比:
1. 对于reassembly window的描述:

可以看到,NR和LTE对于reassembly
window的描述基本相同,唯一不同的是在各自的描述过程中使用了不同的状态变量,下面我们来看看这两个状态变量的含义:
RX_Next_Highest:该变量表示的是一个SN,该SN为已接收到的UMD
PDU中最大SN之后的即将接收到的UMD PDU的SN。该变量用作UM reassembly
window的上边界。初始设置为0。
VR(UH):该变量表示的是一个SN,该SN为接收到的UMD PDU中最大SN之后的即将接收到的UMD PDU的SN。该变量用作UM reassembly
window的上边界。初始设置为0。
由此可见,对于reassembly
window相关的定义和流程,NR和LTE是相同的。
当从MAC接收到一个UMD PDU时,

最后就是接收方在定时器的处理上有所不同。我们前面说过,在NR中的RLC并没有重排序功能,重排序功能
被放到了PDCP层实现。因此在RLC层,引入了一个新的定时器:t-Reassembly。我们来看看该定时器的相
关定义和流程:

N.B.需要注意的是,之前我们提到过,对于UMD
PDU,只有包含RLC
SDU segment的PDU才有SN,而包
含一个完整的RLC
SDU的UMD
PDU是没有SN的,因此我们在UM接收端提到的变量RX_Next_Reassembly
和UM_WindowSize都是针对包含有连续多个属于同一个RLC
SDU的RLC
SDU segments的多个RLC
PDU
场景中才会出现。对于一个完整的RLC
SDU对应一个RLC
PDU的场景,不需要这些参数。
2. 与LTE中的reordering定时器的流程相比较,

乍一看NR中的t-Reassembly定时器和LTE中的t-reordering定时器流程相同。但是大家要记住, 在LTE中,PDCP层的SN除了在handover的时候保证data
forwarding的有序之外,数据传输的有序性都是靠RLC
SDU的SN来保证的;而NR中,我们说过了,和LTE恰恰相反,是通过PDCP SN来保证数据的有序性。因此这两个定时器的功用是不同的,NR中的t-Reassembly定时器仅仅是用于发现包含有RLC
SDU segments的RLC PDUs的是否存在丢包,仅此而已。
AM(Acknowledge Mode) data
transfer
AM模式是DL-SCH和UL-SCH的主要工作模式,支持分段、重复删除和错误数据的重传。
我们先来看看在传输侧LTE AM RLC和NR
AM RLC分别是怎样处理的。
在传输侧,对于LTE而言,
在传输侧,对于NR而言,
从以上内容可以知道,NR AM RLC和LTE AM RLC在传输侧对于数据PDU的处理方式是相同的。
下面我们再看看在接收侧NR AM RLC和LTE AM RLC分别是怎样处理的。
在接收侧,对于LTE而言,
在接收侧,对于NR而言,
从以上对比可以看出,接收侧NR RLC和LTE
RLC对于数据SDU的处理大致相同,但是依然存在以下两个差异:
- AMD PDU放置到接收缓冲区后的操作;
- NR AM RLC中的t-Reassemble定时器超时和LTE AM
RLC中的t-Reordering定时器超时的处理。
这两个差异其实都是由于
我们先前说过的在NR中一个RLC SDU就是一个RLC PDU(放入MAC
PDU的最后一个RLC PDU除外,由于长度限制,极大可能要对该RLC PDU对应的RLC SDU进行分段)以及NR
RLC不保证数据的有序传输而导致的,而第一个差异是最主要的,对于第二个差异,除了定时器名称不同外,从流程上看两个定时器的流程是基本相同的。下面我们来做详细介绍。
如果大家对比LTE中对t-reordering定时器超时/运行中/没有运行时的流程,就可以发现,他们与NR中的流程基本相同,这里我就不再叙述,有兴趣的同学自己翻看36.322协议。
总结一下,对于NR接收侧的AM RLC实体和LTE接收侧的AM RLC实体,最大的不同就是:NR中,AM
RLC接收侧实体在接收到一个完整的AMD PDU后,如果能重新组装成一个完整的RLC SDU就直接送到PDCP层,而不需要等到所有RLC SDU都收到后再按序发送到PDCP,t-Reassemble定时器的作用只是为了确保所有RLC PDU的正确接收,不再具有全部收到后再按序发送的目的。
加载中,请稍候......