5G RLCAM模式的数据传输详解

Posted 从善若水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5G RLCAM模式的数据传输详解相关的知识,希望对你有一定的参考价值。

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接

本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。


博客内容主要围绕:
       5G/6G协议讲解
       算力网络讲解(云计算,边缘计算,端计算)
       高级C语言讲解
       Rust语言讲解



AM模式的数据传输详解

       在5G NR中,RLC有TMUMAM三种不同的业务模式,每种模式都可以发送和接收数据,根据其需求提供不同的逻辑信道。本篇博文介绍了AM模式数据传输。

RLC AM模式的特点:

  • 在发送和接收端都实现了缓存;
  • TX侧会进行分段。而RX侧会进行分段重组;
  • 对于每个RLC PDU都要求有反馈机制(ACK或者NACK);
  • SRB1/SRB2/SRB3和DRBs都采用RLC AM模式;
  • AM模式的SN长度可以是12bit或者18bit;
  • RLC AM模式一个完整的或者分段的SDU与一个SN相关联;

如何通过RLC进行数据传输?

       RLC实体通过PDCP层接收/发送PDCP PDUs(也就是RLC SDUs),并通过MAC和PHY层向对端RLC实体发送/接收RLC PDUs。

  • PDU是一个层的输出;
  • SDU是一个层的输入;

PDU的传输顺序是什么?

RLC AM模式下按照下面的顺序进行PDU传输:

  • 控制PDU(RLC 状态PDU);
  • 重传PDU;
  • 分段的PDU;
  • 完整的PDU;

RLC传输(完整或分段的PDU)

下图描述了完整和分段的PDU的传输。

RLC PDU(s)的传输数量与MAC TB的大小有关。如果MAC TB大小不足以传输完整的RLC PDU,则RLC将会对RLC PDU进行分段。MAC的TB大小取决于基站对终端的上行授权字节数,这与当前的空口环境有关。

  • SI:SI字段表示RLC PDU中是否包含完整的RLC SDU,或者RLC SDU的第一段、中间段、最后一段;
  • SO:分段偏移量(不用于第一个分段);

RLC AM模式数据重传

在AM模式下,每个RLC PDU以序列号升序发送,并存储在重传缓冲区中。由于RLC AM支持ARQ以保证可靠交付,因此UE会发送RLC STATUS PDU报文,通知发送侧UE当前接收到的RLC PDU。如下图所示:

  • SN=2 的RLC PDU丢失;
  • 所以在UE发送的RLC STATUS PDU中ACK SN=4,NACK SN=2;
  • 发送侧收到RLC STATUS PDU后,从DU中重发SN=2的RLC PDU。


RLC的最大重传次数

如果STATUS PDU被丢弃,则在轮询重传定时器(Poll Retransmission timer)到期后,重传SN=2的RLC PDU——该RLC PDU是DU最近一次传输的RLC PDU。如果轮询重传定时器过期次数超过maxRetxThreshhold阈值,则触发RLF (Radio Link Failure),释放终端。


RLC Window Stall

当TxNext和TxNextAck之间的差等于SN窗口大小(最大SN大小的一半)时,RLC窗口发送停滞。如下图所示,窗口停滞发生了,如果重传缓冲区中没有RLC PDU,则重新传输SN最高的PDU (SN=131172)。

  • TxNext:该状态变量保存了要为下一个新生成的AMD PDU分配的SN值;
  • TxNextAck:该状态变量保存了按序下一个期望收到ACK的RLC SDU的SN值,作为发送窗口的下界

当出现窗口停滞时,CU向PDCP发送请求,要求停止发送数据。根据规范,当发送的PDUs(WINDOW_SIZE =13072)没有收到ACK时,就会发生停滞状态,这意味着DU必须维护131072个缓冲区

这里有一个问题:

  • 由于系统限制,DU可能不支持这种巨大的缓冲区;
  • 可能的情况是,虚假的UE消耗了所有的缓冲区,而没有为其它UE留下缓冲区。


    因此,可以根据此公式修改窗口停滞条件的阈值:
  • Window Stall Threshhold = (MAX_DATA_RATE/AVG_PDU_SIZE)*RLC_RTT
  • RLC_RTT = Status Prohibit Timer + MAX_HARQ_RETX
  • 其中:
    • MAX_DATA_RATE: Maximum Data Rate Supported by UE
    • RLC_RTT: RLC Round Trip Time
    • MAX_HARQ_RETX: Maximum Harq Retransmission
    • AVG_PDU_SIZE: Average RLC PDU Size

RLC AM模式下PDU的接收和重组

  • AM PDU是从MAC层接收的;
  • 如果RLC PDU SN在接收窗口内,则RLC继续后续处理;如果不在,则直接丢弃该数据包;
  • RLC层还会检查AM PDU是否携带已经接收到的RLC SDU分段字节(检查是否重复)。当接收到的AM PDU包含新数据时,它继续进行处理;
  • RLC将AM PDU放在接收缓冲区中;

定时发送状态报告,向终端共享上行数据包的接收状态。下面两幅图描述了在定时器t-reassembly (t1,t2,t3)期间内对RLC数据包的处理,以及RLC UL状态变量的更新。假设在每个t-reassembly中,会接收50个RLC PDU,在每个t-reassembly期间,都会发送STATUS PDU。由于没有从UE接收到TB (MAC传输块),所以RLC SN丢失了。

如上图所示,具有RLC SN(5~8)的MAC TB在t1时间丢失,在t2时间由于HARQ重传而收到。从图中可以看出,在t2时间内发送的状态PDU中没有AckSn=5。

  • 注意:t1时间内的数据包丢失将在t3时间内使用STATUS PDU通知UE(使用NackSn)。


上图中,包含RLC SN(5~8)和RLC SN(40~49)的MAC TBs在t1持续时间内丢失。在t2中,Status PDU在接收到带有RLC SN(5~8)的Harq Retx (Harq retransmit TB)之前发送,因此Status PDU不报告收到RLC SN(5~8),只发送Status PDU(AckSn-5)。t2到期后,假设RLC SN(40~49)的MAC TB丢失,将丢失的数据包信息在Status PDU(AckSn-50,NackSn-40,range-10)中发送给UE。

t1丢失的RLC包在t3的STATUS Report中上报给UE。在STATUS PDU (AckSn 50,NackSn-40,range10)中。SN(40 - 49)中的PDU被认为丢失或丢弃。

  • 注意:Reassembly timer是DU-RLC等待UE对丢失的RLC包进行HARQ重传的时间

接收和重组RLC计时器

  • tReassembly:tReassembly >= DL数据包到达UE的时间 + HARQ 的时间;
  • tpollretransmit:tpollretransmit >= tstatusProhibit + 2 PUSCH transmission ( BSR + RLC Status PDU);
  • tstatusProhibit:HARQ RTT <= tstatusProhibit <= tReassembly


以上是关于5G RLCAM模式的数据传输详解的主要内容,如果未能解决你的问题,请参考以下文章

[4G&5G专题-101]:部署 - LTE FDD与LTE TDD技术差异比较详解

5G系列SDAP (Service Data Adaptation Protocol)协议详解

5G网络学习——5G网络部署及架构详解(未完待续)

5G NAS5G SUPI 和 SUCI 标识符详解

5G NAS5G SUPI 和 SUCI 标识符详解

5G NAS5G SUPI 和 SUCI 标识符详解