13.1.2 无线链路控制层
13.1.2 无线链路控制层
13.1.2.1 概述
无线链路控制(RLC)层[11]介于 MAC 层与分组数据汇聚协议(PDCP)层之间,是 MAC 层与更高层协议之间通信的桥梁。RLC 实现了与数据处理相关的诸多功能,包括数据分组的分段与重组、通过 ARQ 过程进行错误修复和重复检测等。RLC 层的功能由 RLC 实体实现, RRC 层负责对 RLC 层进行配置。
gNB 侧和 UE 侧各有一个 RLC 对等端实体。RLC 实体从高层接收 RLC 业务数据单元(SDU),将 SDU 组成协议数据单元(PDU)后通过底层(MAC 层和物理层)发送 RLC PDU 至其对等端 RLC 实体。对等端 RLC 实体从底层接收到 RLC PDU 并将 RLC SDU 发送至高层。RLC SDU 是 RLC 从高层接收到的数据分组,而 RLC PDU 为根据 RLC 的组包规则将 RLC SDU 进行一定组装处理之后形成的。RLC 和底层之间传递的数据为 PDU,RLC 和高层之间传递的数据为 SDU。
RLC 实体可以配置为以下 3 种数据传输模式中的一种:透明模式(Transparent Mode,TM)、无确认模式(Unacknowledged Mode,UM)和确认模式(Acknowledged Mode,AM)。TM 和 UM 下发送端和接收端是两个独立的实体。TM RLC 实体仅支持单方向数据传输,即为发送 TM 实体或接收 TM 实体;UM RLC 实体也支持单方向数据传输,即为发送 UM 实体或接收 UM 实体。AM 下,由于发送端和接收端需要进行信息交互,因此发送端和接收端位于同一个 RLC 实体中。AM RLC 实体支持双方向数据传输,即一个 AM 实体包含一个发送端和一个接收端,发送端接收高层 SDU 并通过底层发送 PDU 至其对等端 AM 实体,接收端通过底层从其对等端 AM 实体接收 PDU 并将 SDU 发往高层。
RLC 层总体模型如图 13-14 所示。
加载中...
图 13-14 RLC 层总体模型
RLC 层支持的功能如下:
① 传输高层数据;
② 通过 ARQ 进行错误修复(仅针对 AM 数据传输);
③ 对 RLC SDU 进行分段和重组(仅针对 UM 和 AM 数据传输);
④ 对 RLC SDU 分段进行重分段(仅针对 AM 数据传输);
⑤ 重复检测(仅针对 AM 数据传输);
⑥ RLC 业务数据单元丢弃(仅针对 UM 和 AM 数据传输);
⑦ RLC 重建;
⑧ 协议错误检测(仅针对 AM 数据传输)。
RLC 层向 PDCP 层提供 TM、UM 和 AM 3 种模式的数据传输,其中 AM 数据传输还包括向高层指示高层 SDU 的成功传输这项功能。
RLC 层期望 MAC 层提供两项服务:数据传输和传输机会通知,其中传输机会通知服务还包括在此次传输机会中总共能够传输的 RLC PDU 的大小。所有类型的 RLC 实体均支持各种大小的 RLC SDU,大小需满足整字节(即为 8bit 的整数倍)。
RLC 层无须等待 MAC 层发送传输机会才将 RLC SDU 组织成 RLC PDU,但只有在 MAC 层向 RLC 通知传输机会时 RLC PDU 才会发送至 MAC 层。
13.1.2.2 透明模式
TM RLC 实体用于支持 BCCH、上行/下行 CCCH 和 PCCH 的数据传输。TM RLC 对等端实体间传输和接收的数据类型仅有一种,即 TM PDU。一个 TM PDU 包含一个完整的 RLC SDU,且没有任何 RLC 包头部结构,即 TMD PDU 与 RLC SDU 相同。两个 TM 对等端实体模型如图 13-15 所示。
加载中...
图 13-15 两个 TM 对等端实体模型
图 13-15 的发送和接收过程如下:发送 TM RLC 实体将 RLC SDU 形成 TMD PDU,不对 RLC SDU 分段,不增加任何 RLC 包头,将 RLC SDU 不经任何修改直接发往 MAC 层;接收 TM RLC 实体从 MAC 层接收到的 TMD PDU,将 TM PDU(也就是 RLC SDU)不经任何修改直接发往高层。
13.1.2.3 无确认模式
1.概述
UM RLC 实体用于支持上行/下行 DTCH 的数据传输。UM RLC 对等端实体间传输和接收的数据类型仅有一种,即 UMD PDU,一个 UMD PDU 包含一个完整的 RLC SDU 或者一个 RLC SDU 分段。两个 UM 对等端实体模型如图 13-16 所示。
加载中...
图 13-16 两个 UM 对等端实体模型
2.数据发送过程
发送 UM RLC 实体在数据发送过程中,为每个 RLC SDU 生成 UMD PDU,在 UMD PDU 中包含相应的 RLC 包头。当接收到底层的传输机会指示,发送 UM RLC 实体将根据需要对 RLC SDU 进行分段以适应 MAC 层指示的 RLC PDU 总大小的要求,此时相应的 UMD PDU 头部根据需要进行更新。
当发送 UM RLC 实体向底层发送 UMD PDU 时,如果 UMD PDU 包含的是一个完整的 RLC SDU,则该 UMD PDU 包头不需要添加任何的 RLC 序列号(SN),这是因为接收 RLC UM 实体无须对完整的 RLC SDU 进行重排序,该重排序功能被迁移到 PDCP 层执行。如果 UMD PDU 包含一个 RLC SDU 的分段,则需要在 UMD PDU 头中包含 SN 信息,因为接收 RLC UM 实体需要根据该 SN 信息对分段 RLC SDU 进行排序和重组。
将发送 UM RLC 实体维护变量 TX_Next 作为分配给下一个新生成的包含分段的 UMD PDU 序列号的数值。该变量初始值为零,当包含一个 RLC SDU 最后分段的 UMD PDU 发送至底层时,该变量数值加 1。
3.数据接收过程
接收 UM RLC 实体接收到 UMD PDU 时,需要检测是否存在 MAC 层造成的 RLC SDU 分段的丢失,从接收到的 UMD PDU 中重组出 RLC SDU,并递交给 PDCP 层。如果属于某个 RLC SDU 的 UMD PDU 已经在 MAC 层丢失,其属于相同 RLC SDU 的其他 UMD PDU 再也无法重组该 RLC SDU,因此删除这些 UMD PDU。
接收 UM RLC 实体在接收到一个包头未包含 SN 信息的 UMD PDU 时,说明这是一个完整的 RLC SDU,则去掉 RLC 包头,直接将 RLC SDU 递交给 PDCP 层。UMD PDU 包头中包含 SN 信息时,说明这是一个 RLC SDU 分段,接收 UM RLC 实体需要对分段的情况进行重组操作。
接收 UM RLC 实体基于 UMD PDU 的 SN 来进行重组窗口的维护和更新。UMD PDU 的 SN 长度为 6bit 或 12bit,具体取值由 RRC 层配置。
接收 UM RLC 实体维护下列状态变量和常数。
① RX_Next_Reassembly:这个状态变量记录等待重组的最早 SN,初始值为 0。
② RX_Timer_Trigger:触发重组定时器记录的 UMD PDU 序列号为 SN 值加 1。