好的,在上一篇中我们深入了解了MAC子层这位“首席调度员”的工作。现在,我们将继续沿着协议栈向上追溯,探访MAC层的两位直接“上级”——RLC子层和PDCP子层。它们是数据在进入繁忙的MAC调度中心之前,进行精细“预处理”的关键部门。

深度解析 3GPP TS 38.300:6.3 RLC 与 6.4 PDCP 子层

本文技术原理深度参考了3GPP TS 38.300 V18.5.0 (2025-03) Release 18规范中,关于“6.3 RLC Sublayer”和“6.4 PDCP Sublayer”的核心章节,旨在为读者清晰地阐明RLC层的三种传输模式及其分段/重组功能,以及PDCP层的核心使命——头压缩、安全与有序交付。

前言:“数据精加工”车间的两位大师

想象一下,我们主角小明的视频数据包,在被MAC层这位“首席调度员”塞进“集装箱”(传输块)之前,还需要经过一个“数据精加工”车间。这个车间里有两位技艺高超的大师:

  • RLC大师 (裁缝):他擅长“裁剪与缝合”。无论上游送来多大尺寸的“布料”(PDCP PDU),他都能精确地将其裁剪成适合下游“集装箱”尺寸的小块(RLC PDU),并在目的地完美地缝合还原。他还提供“补发服务”(ARQ),确保每一块布料都万无一失。

  • PDCP大师 (打包与安保专家):他负责在“布料”进入车间前的第一道工序。他擅长“真空压缩”(头压缩),能把蓬松的包裹压到最小;他还负责“加密上锁”(安全),并为每个包裹打上独一无二的“序列号”(SN),确保它们在经历旅途的颠簸后,依然能按正确的顺序被签收。

这两位大师的紧密配合,构成了5G L2层中承上启下的关键环节。今天,我们就将走进这个“精加工”车间,一探究竟。

1. “裁缝大师”:RLC子层 (6.3 RLC Sublayer)

RLC(Radio Link Control,无线链路控制)子层位于PDCP和MAC之间,它的核心使命是根据MAC层通告的传输机会,对上层数据进行分段和级联,并提供差错纠正服务。

1.1 量体裁衣:三种传输模式 (6.3.1)

为了适应不同业务的迥异需求,RLC大师提供了三种不同的“裁剪”服务模式。

The RLC sublayer supports three transmission modes:

  • Transparent Mode (TM);
  • Unacknowledged Mode (UM);
  • Acknowledged Mode (AM).

场景代入: 小明手机上同时运行着多种业务,它们被分配给不同的RLC实体:

  • 广播系统信息 (BCCH):这类信息格式固定,长度很小,无需任何加工。RLC为其提供**透明模式(TM)**服务。“布料”来了,直接透传给MAC,不裁剪,不编号,不提供任何额外服务。简单高效。

  • VoNR语音通话 (DTCH):语音业务对时延极其敏感,但能容忍偶尔的丢包(人耳不易察觉)。RLC为其提供**非确认模式(UM)**服务。

    6.3.2 Services and Functions:

    • Sequence numbering … (UM and AM);
    • Segmentation … and re-assembly of SDU (AM and UM);
    • RLC SDU discard (AM and UM);

    PDCP大师送来的语音数据包(RLC SDU),RLC(UM模式)会为其进行分段编号。但在发送后,它不会要求接收方确认。如果某个分片在空中丢失(例如,多次HARQ重传失败),发送方会直接丢弃它,继续发送新的数据,以避免因等待重传而导致整个通话的卡顿。这是一种“宁可丢,不可等”的策略。

  • 文件下载 (DTCH):下载文件要求100%的可靠性,任何一个比特都不能错。RLC为其提供**确认模式(AM)**服务。

    • Error Correction through ARQ (AM only);
    • Duplicate Detection (AM only);

    RLC(AM模式)不仅会对数据包进行分段编号,更重要的是,它启动了**ARQ(自动重传请求)**机制。

1.2 可靠性的最后一道防线:ARQ机制 (6.3.3)

ARQ是RLC AM模式的灵魂,是保证数据传输可靠性的“最后一道防线”。

The ARQ within the RLC sublayer has the following characteristics:

  • ARQ retransmits RLC SDUs or RLC SDU segments based on RLC status reports;
  • Polling for RLC status report is used when needed by RLC;
  • RLC receiver can also trigger RLC status report after detecting a missing RLC SDU or RLC SDU segment.

ARQ的工作流程:

  1. 发送与缓存:发送端RLC实体发送出一系列带序列号的RLC PDU后,会将它们暂存在“重传缓冲区”中。

  2. 接收与状态反馈:接收端RLC实体会检查收到的PDU序列号是否连续。

    • 主动触发 (Receiver-triggered):当它发现序列号出现“空洞”(例如,收到了5号包和7号包,但没收到6号包),它会主动生成一份状态报告(Status Report),告诉发送端“我缺少了6号包”。

    • 轮询触发 (Polling-triggered):发送端也可以在发送某个PDU时,设置一个“轮询(Polling)”位,强制要求接收端立即上报一份当前的状态报告。这可以用来确认数据是否都已成功送达,或者清理发送缓冲区。

  3. 重传:发送端收到状态报告后,从重传缓冲区中找到对方缺失的数据包,并安排重传。

与MAC层的HARQ相比,RLC ARQ的周期更长,处理的是HARQ“搞不定”的顽固丢包,为上层应用提供了近乎100%的可靠交付。

2. “打包与安保专家”:PDCP子层 (6.4 PDCP Sublayer)

PDCP(Packet Data Convergence Protocol,分组数据汇聚协议)位于RLC子层之上,是IP数据包进入无线协议栈的第一站。它的核心使命是:压缩、安全、有序

The main services and functions of the PDCP sublayer include:

2.1 极限压缩:ROHC 与 UDC (6.4.1)

  • Header compression and decompression using the ROHC protocol;
  • Compression and decompression of uplink PDCP SDUs: DEFLATE based UDC only;

PDCP大师的第一个绝活是“极限压缩”。

  • ROHC (Robust Header Compression):对于VoNR、视频流这类具有固定模式的IP/UDP/RTP数据包,其头部信息在连续的数据包之间只有很少的变化。ROHC协议可以利用这种上下文相关性,只传输变化的字段,从而将几十个字节的头部压缩到1-4个字节,压缩效率极高。

  • UDC (Uplink Data Compression):这是R16引入的新功能,针对上行链路。除了压缩头部,UDC还可以使用DEFLATE(类似于ZIP压缩)等通用算法,对数据包的载荷(Payload)本身进行压缩。这对于一些文本类、格式化的物联网数据,能带来显著的带宽节省。

2.2 金钟罩铁布衫:安全功能

  • Ciphering and deciphering;
  • Integrity protection and integrity verification;

PDCP是无线接口安全的大门。它使用从核心网协商得到的密钥,为每一个无线承载(DRB和SRB)提供两道安全保障:

  • 加密(Ciphering):对数据包(包括用户数据和RRC信令)的载荷进行加密,防止在空中被窃听。

  • 完整性保护(Integrity Protection):计算数据包的“消息认证码(MAC-I)”,防止数据在传输过程中被篡改。对于RRC信令,完整性保护是强制开启的。对于用户数据,则可以根据业务需求进行配置。

2.3 乱序重排与去重:保证交付质量

  • Reordering and in-order delivery;
  • Out-of-order delivery;
  • Duplicate discarding.

由于双连接(DC)、载波聚合(CA)或者RLC AM模式的重传,数据包到达接收端PDCP时,可能会出现乱序重复。PDCP大师的另一个重要职责就是“整理队伍”。

  • 排序交付 (In-order delivery):对于TCP这类需要严格有序的业务,接收端PDCP会启动一个“排序定时器”。它会缓存收到的乱序数据包,等待缺失的数据包到来,然后再按正确的PDCP序列号(SN)顺序,将它们递交给上层。

  • 乱序交付 (Out-of-order delivery):对于某些实时性要求更高的应用,可以配置PDCP进行乱序交付,即收到一个包就立即递交,不再等待排序,以牺牲部分有序性来换取更低的时延。

  • 去重 (Duplicate discarding):PDCP会检查收到的数据包的序列号,如果发现某个序列号已经被成功处理过,就会直接丢弃这个重复的包。

2.4 其他关键功能

  • SDU丢弃 (Timer based SDU discard):可以为每个PDCP PDU配置一个“生命周期”定时器。如果一个数据包在缓冲区中等待发送的时间过长(例如,由于无线链路质量差而迟迟无法发送),超出了这个定时器,PDCP就会将其丢弃。这对于防止过期数据占用宝贵的空口资源非常重要。

  • 路由与复制 (For split bearers, routing; Duplication):在双连接(DC)场景下,发送端PDCP负责将数据包路由复制到两个不同的RLC实体(分别通往MN和SN),实现数据分流或可靠性增强。

总结:协同工作的精加工流水线

通过对6.3和6.4节的深度剖析,我们清晰地看到了RLC和PDCP这两位大师是如何在一个精加工流水线上协同工作的:

  1. PDCP (入口):一个原始的IP数据包首先进入PDCP车间。它被压缩加密打上序列号,变成一个安全的、紧凑的PDCP PDU。在双连接模式下,它还可能在这里被复制成两份。

  2. RLC (中间):PDCP PDU被送到RLC车间。根据业务模式,它被分段成一个或多个适合物理层传输的RLC PDU。如果是AM模式,RLC还启动了ARQ重传机制,为这次传输的可靠性上了“双保险”。

  3. MAC (出口):RLC PDU最终到达MAC调度中心,等待被调度,并享受HARQ快速重传的最后一道保障,最终奔向物理层。

RLC和PDCP的协同,为上层多样的业务需求和下层复杂的无线环境之间,构建了一个高效、可靠、安全的适配桥梁。它们是5G高性能、全业务支持能力背后,不可或缺的幕后英雄。

FAQ

Q1:RLC AM模式的ARQ和MAC层的HARQ有什么本质不同?为什么需要两层可靠性机制?

A1:本质不同在于工作层级、速度和处理对象HARQ在L1/L2边界,处理的是物理层传输的传输块(TB),它的反馈和重传循环非常快(毫秒级),主要应对信道的瞬时抖动。但它的重传次数有限,可能会放弃。RLC ARQ在L2更高层,处理的是RLC PDU,它的反馈(Status Report)和重传周期更长(几十到上百毫秒),它负责处理HARQ“搞不定”的顽固丢包,是最终的可靠性保障。两层机制协同工作,实现了低时延(由HARQ保证)和高可靠(由RLC ARQ兜底)的完美结合。

Q2:一个TCP连接本身就是可靠的,为什么在无线链路上还需要RLC AM模式?

A2:这是一个经典问题。如果在无线链路上使用对TCP透明的RLC UM模式,那么无线空口的任何丢包,都需要由远在互联网另一端的服务器通过TCP重传来恢复。TCP的重传检测周期非常长(通常是RTT的倍数,可能数百毫-秒甚至秒级),这会引发TCP的拥塞控制机制,导致发送窗口急剧缩小,吞吐率断崖式下跌。而RLC AM模式在无线链路这一小段上,通过快速的本地ARQ,迅速地恢复丢包。对于上层的TCP协议来说,它感觉不到无线链路上的抖动,始终认为这是一条“风平浪静”的信道,从而可以一直保持较高的发送速率。RLC AM起到了**链路层“平滑器”**的作用。

Q3:PDCP的头压缩(ROHC)主要适用于哪些业务?

A3:ROHC主要适用于那些数据包头部格式固定、且连续包之间头部信息变化很小的业务流。最典型的就是VoIP/VoNR视频流业务。它们的IP包通常都遵循 IP/UDP/RTP 的格式,在一次通话或视频会话中,源/目的IP、端口号等大部分字段是固定不变的,只有序列号、时间戳等少数几个字段在变化。ROHC协议通过建立上下文,可以只传输这些变化的字段,从而达到90%以上的压缩率。对于普通的网页浏览(TCP),由于连接和包格式变化频繁,ROHC的效果就不那么理想。

Q4:PDCP的“有序交付(In-order delivery)”功能会不会增加时延?

A4:是的,会增加一定的抖动(Jitter)和时延。当接收端PDCP为了等待一个缺失的包(例如SN=5),而把已经收到的后续包(SN=6, 7, 8)都缓存起来时,就引入了额外的排队时延。这个时延的大小取决于排序定时器(t-Reordering)的配置。因此,这是一个有序性 vs. 时延的权衡。对于文件下载这类需要严格有序的业务,这个时延是值得的。而对于实时视频、交互式游戏等对时延更敏感的业务,可以配置PDCP进行乱序交付(outOfOrderDelivery),或者配置一个非常短的排序定时器,以牺牲部分有序性来换取更低的交付时延。

Q5:在双连接(Dual Connectivity)中,PDCP是如何实现数据分流和复制的?

A5:在双连接下,一个无线承载(DRB)会被配置两个RLC实体,一个通往主节点(MN),一个通往辅节点(SN)。发送端PDCP层在收到一个IP包并为其打上PDCP序列号(SN)后,会根据RRC的配置进行决策:

  • 分流(Split Bearer):PDCP会根据一定的分流算法(如基于SN的奇偶分流,或基于上报的路径质量),决定将这个PDCP PDU送往MN的RLC实体还是SN的RLC实体。

  • 复制(Duplication):如果配置了复制,PDCP会将同一个PDCP PDU同时发送给MN的RLC实体和SN的RLC实体。接收端UE的PDCP层会收到两个一模一样的PDU,它会处理第一个到达的PDU,并丢弃第二个,从而实现了可靠性的翻倍。