深度解析 3GPP TS 38.523-3:5.2.2 PDCP (SA组网下的数据安全与聚合引擎)

本文技术原理深度参考了3GPP TS 38.523-3 V18.2.0 (2025-03) Release 18规范中,关于“5.2.2 PDCP (Packet Data Convergence Protocol)”的核心章节,旨在为读者深入剖析在5G SA(独立组网)模式下,如何对UE的PDCP协议层进行全面的功能与性能验证。

前言:“Pioneer-5G”的核心引擎试炼

在上一篇文章中,测试工程师李工成功验证了“Pioneer-5G”手机的SDAP层,确认了这位“QoS流分拣员”能够精准地将不同业务流映射到正确的无线承载上。现在,数据包已经完成了它的第一次“身份识别”,接下来将被送往L2协议栈中功能最强大、也最复杂的“核心引擎”——PDCP层。

PDCP层对于用户体验至关重要,它身兼数职:

  • 安全官:负责数据的加密和完整性保护,是通信安全的最后一道空口防线。
  • 效率官:通过头压缩(ROHC, EHC)技术,为数据包“瘦身”,提升空口频谱效率。
  • 交通调度枢纽:在双连接(DC)和载波聚合(CA)场景下,执行数据重排序、分离(Split)和复制(Duplication)等高级操作,是实现5G高速率和高可靠性的关键执行者。

李工明白,PDCP层的任何一个瑕疵都可能导致严重后果:加密失败可能泄露用户隐私;重排序错误可能导致视频花屏、网页错乱;数据复制失效则可能使关键任务型通信(如自动驾驶)中断。因此,对PDCP层的测试,必须深入到协议的每一个细节。

与SDAP测试类似,PDCP的测试模型同样依赖于“测试环回模式”,但这一次,环回点将下移至PDCP层之上,为我们打开了一个直接审视PDCP协议行为的窗口。本篇文章,我们将跟随李工,深入5.2.2.2章节,看测试规范如何通过一系列精巧的测试模型,对“Pioneer-5G”的PDCP引擎进行从单载波到多连接、从分离承载到数据复制的极限“压力测试”。

1. 基础试炼场:单载波PDCP测试模型 (5.2.2.2.1)

这是所有PDCP功能测试的基础,它在一个最简化的单载波SA环境中,隔离并验证PDCP的核心能力。

1.1 测试核心:位于PDCP层之上的环回

The UE is configured in Test Loop Mode, to loop back the user domain data above PDCP layer. On UE side Ciphering is enabled as null algorithm and header compression is not configured.

规范开篇即明确了测试的核心设定。与SDAP测试环回点在SDAP层之上不同,PDCP测试的环回点被精准地设置在了PDCP层之上

  • 精准隔离:数据流从SS发出,经过UE的PHYMACRLCPDCP层处理后(例如,解密、完整性校验),在到达SDAP层之前,就被立即“U型”环回,再次进入上行PDCP层进行处理(加密、完整性保护)并发送回SS。
  • 测试焦点:这种设计将SDAP层完全排除在测试路径之外,使得测试的焦点能够纯粹地集中在PDCP协议实体的行为上。

1.2 SS侧的“傀儡”PDCP

为了实现对测试的完全控制,SS侧的PDCP层再次被配置为“特殊模式”。

The PDCP is configured in a special mode, where SS does not add any PDCP headers in DL and/or not remove any PDCP headers in UL directions respectively at DRB port on the NR PTC. The TTCN maintains sequence numbers and state variables for the PDCP layer.

这意味着SS的PDCP层本身不进行任何逻辑处理,它仅仅是TTCN-3测试脚本的“提线木偶”。TTCN脚本负责生成包含精确序列号(SN)和MAC-I(完整性校验码)的完整PDCP PDU,SS仅负责将其透传。这使得李工能够模拟任何他想要的场景,比如发送乱序的PDCP PDU来考验“Pioneer-5G”的重排序能力。规范中的“Figure 5.2.2.2.1-1: Test model for NR/5GC PDCP testing”清晰地展示了这一模型。

1.3 场景故事:一次PDCP的“体检”

李工开始对“Pioneer-5G”进行基础的PDCP功能体检。

  1. TTCN脚本:生成一个PDCP数据PDU,SN=10,并根据预共享的密钥计算出正确的MAC-I。
  2. SS发送:将这个PDU通过空口发送给手机。
  3. UE处理与环回:“Pioneer-5G”的PDCP层接收到PDU,使用“空算法”进行解密,并用同样的密钥计算MAC-I。它发现计算出的MAC-I与PDU中携带的一致,完整性校验通过。于是,它将数据载荷环回至上行PDCP层。上行PDCP层为该数据分配一个新的上行SN,计算MAC-I,封装成PDU并发送。
  4. SS接收与判决:SS收到环回的PDU,将其透传给TTCN。TTCN脚本检查其SN和MAC-I是否符合预期,并确认数据载荷是否与原始数据一致。测试通过。

2. 多路径协同:双连接下的分离承载测试 (5.2.2.2.2 & 5.2.2.2.3)

这是SA模式下提升带宽的核心技术之一。与EN-DC中的Split DRB类似,NR-DC(NR-NR双连接)和NE-DC(NR-E-UTRA双连接,5G作主锚点)也支持将同一个DRB的数据流在PDCP层分流,通过两个基站(两个gNB,或一个gNB一个eNB)同时传输。

2.1 架构:主PDCP与代理PDCP

The SS configures in the First Cell, Layer 1, MAC and RLC in the normal operation. The NR PDCP is configured in a special mode… The SS configures in the Second Cell, Layer 1, MAC and RLC in the normal operation. The NR PDCP is configured as Proxy.

测试系统(SS)为了模拟分离承载,采用了“主-从”架构,如“Figure 5.2.2.2.2-1: Test model for NR/5GC NR-DC PDCP testing (split DRB)”所示:

  • 主小区(MCG PCell):其PDCP实体处于“特殊模式”,由TTCN完全控制,是整个分离承载的逻辑中心。
  • 辅小区(SCG PSCell):其PDCP实体被配置为“代理(Proxy)”模式。它不处理任何PDCP逻辑,仅负责在主PDCP实体和辅小区的RLC层之间透明地转发数据包。

2.2 场景故事:跨越双gNB的8K视频流

李工要验证“Pioneer-5G”在NR-DC分离承载下的性能。

  1. 场景配置:SS模拟一个主gNB和一个辅gNB,并通过RRC信令为“Pioneer-5G”配置了一个分离承载,用于传输模拟的8K视频流。
  2. TTCN分流:TTCN脚本生成SN为1到100的PDCP PDU。它通过ASP指令,将奇数SN的PDU发往主gNB的协议栈,将偶数SN的PDU发往辅gNB的协议栈(通过Proxy PDCP中转)。
  3. UE的挑战:“Pioneer-5G”的PDCP层现在面临着从两条独立的物理路径接收乱序数据包的挑战。它必须利用其重排序缓冲区,缓存先到的数据包,等待空缺的PDU到达,最终按1-100的正确顺序重组出完整的数据流,并将其环回。
  4. 验证:环回的数据同样被UE的PDCP层在上行进行分流。SS的两条链路都会收到数据,最终汇聚到TTCN进行统一的序列检查。只要最终序列正确,就证明“Pioneer-5G”的PDCP引擎成功驾驭了双连接分离承载。 对于NE-DC(5.2.2.2.3),测试原理完全相同,只是辅小区从gNB换成了eNB。

3. 带宽叠加:NR载波聚合下的PDCP测试 (5.2.2.2.4)

载波聚合(CA)是另一种提升带宽的技术,但其实现机制与分离承载在L2层面有本质区别。

The SS configures DRB j, DRB j+1 and DRB j+2 on the PCell, every DRB is connected to an RLC entity. The RLC entity configured on DRB j is linked to the MAC entity on the PCell, the RLC entity configured on DRB j+1 is linked to the MAC entity on the SCell 1…

  • 架构解读:“Figure 5.2.2.2.4-1: Test model for NR CA PDCP testing”展示,对于CA,PDCP层是“感知不到”多个载波的。SS侧只配置一个PDCP实体,但会配置多个DRB(或RLC实体),并通过底层配置,将这些RLC实体分别链接到不同载波(PCell, SCell1, SCell2)的MAC实体上。数据的分发是在MAC层基于调度完成的。
  • 测试目的:这种模型下,PDCP本身不执行分流操作。测试的目的转变为验证UE是否能同时处理多个独立的、承载在高层、但最终落在不同载波上的DRB,考验的是整个协议栈的并发处理能力。

4. 极致可靠:NR-DC与CA结合下的数据复制测试 (5.2.2.2.5)

这是最复杂的场景,结合了双连接和载波聚合,用于测试PDCP的**数据复制(Duplication)**功能,旨在提供极致的可靠性。

  • 架构解读:“Figure 5.2.2.2.5-1”展示了这个“终极”模型。它结合了NR-DC和NR CA:UE同时连接主gNB(PCell)和辅gNB(PSCell),并且辅gNB自身还配置了CA(一个PSCell和一个SCell)。PDCP复制功能开启后,同一个PDCP PDU会被复制并通过主gNB辅gNB两条路径同时发送。
  • 场景故事:关键任务不容有失 李工正在模拟一个工业物联网场景,“Pioneer-5G”需要接收毫秒级的关键控制指令。
    1. 开启复制:SS通过RRC信令为承载控制指令的DRB开启了PDCP复制功能。
    2. 双路发送:TTCN发送一个SN=50的控制指令PDU。SS的主PDCP实体将其复制两份:一份发往主gNB的RLC,另一份通过Proxy PDCP发往辅gNB的RLC。辅gNB的MAC层还可能将这份数据调度到其PSCell或SCell上发送。
    3. UE的智慧:“Pioneer-5G”可能会从多条路径(PCell, PSCell, SCell)中的一条或多条上收到SN=50的PDU。其PDCP层的任务是:
      • 只要收到第一个SN=50的PDU,就立即处理并递交(环回)。
      • 后续再收到任何SN=50的重复PDU,一律丢弃
    4. 验证:李工在仪表上观察,无论他如何干扰其中一条或多条路径,只要有一条路径通畅,“Pioneer-5G”都能迅速收到数据并环回,并且只环回一次。这证明了其PDCP复制和去重功能的完美实现,达到了关键任务通信所需的高可靠性。

5. 特色功能专项测试 (5.2.2.2.6 & 5.2.2.2.7)

最后,规范还为PDCP的两个特定压缩功能定义了测试模型。

5.2.2.2.6 以太网头压缩 (EHC - Ethernet header compression)

  • 测试目的:验证UE对以太网帧头(如MAC地址、VLAN标签等)的压缩能力,这对于5G作为无线以太网替代方案(W-ETN)等场景至关重要。
  • 模型:基于单载波PDCP模型,但TTCN脚本现在集成了EHC压缩器和解压缩器。TTCN发送一个完整的以太网帧,SS侧的“虚拟”EHC压缩器进行压缩后发送。UE接收、解压、环回完整以太网帧。SS接收后,由TTCN的“虚拟”解压缩器验证其正确性。

5.2.2.2.7 上行数据压缩 (UDC - UL data compression)

  • 测试目的:验证UE在上行方向对数据进行压缩的能力。这是一种通用压缩算法(基于DEFLATE),在数据被PDCP加密前执行,可以有效节省上行资源。
  • 模型:测试方法很简单。SS先发送一串随机的、不可压缩的数据,UE环回后,SS检查数据大小没有变化。然后,SS再发送一串重复的、高度可压缩的数据(例如,一长串’A’),UE开启UDC功能后环回,SS检查收到的数据大小是否显著减小。

总结:从安全到效率,SA数据引擎的全方位考验

通过对5.2.2.2章节的全面测试,李工对“Pioneer-5G”的PDCP层——这个SA数据传输的“核心引擎”——进行了从里到外的深度“体检”。规范通过灵活变换测试模型,系统性地覆盖了PDCP在SA模式下的所有核心功能:

  • 基础能力:安全、重排序。
  • 带宽扩展能力:分离承载(Split DRB)。
  • 高可靠能力:数据复制(Duplication)。
  • 效率提升能力:头压缩(EHC)和数据压缩(UDC)。

“Pioneer-5G”在这些严苛的测试中表现出色,证明了其PDCP引擎的强大与稳定。在完成了PDCP的测试后,李工的测试之旅将继续下沉,进入L2协议栈中负责可靠传输的“中坚力量”——RLC层。敬请期待下一篇,我们将继续解读5.2.2.3 RLC测试模型。


FAQ

Q1:在PDCP测试中,环回点位于PDCP层之上,这意味着什么?它与SDAP测试有何不同?

A1:环回点位于PDCP层之上,意味着测试的数据流进入UE的PDCP层进行处理(如下行解密、重排序),处理完毕后不经过SDAP层,直接被“掉头”送回上行PDCP层再次处理(如上行加密、添加SN)后发出。这隔离了SDAP层,使得测试的焦点纯粹是PDCP本身的功能。它与SDAP测试(环回点在SDAP之上)的核心不同在于测试的边界:SDAP测试包含了SDAP层,而PDCP测试则将其排除在外。

Q2:从L2协议栈的角度看,NR-DC下的分离承载(Split Bearer)和NR CA(载波聚合)最根本的区别是什么?

A2:最根本的区别在于哪一层负责数据分流

  • 分离承载 (Split Bearer):分流发生在PDCP层。一个PDCP实体管理着两个或多个下层的RLC实体(分别对应不同基站的链路),并主动将数据包分发给这些RLC实体。PDCP层“知道”并且“管理”着多条路径。
  • 载波聚合 (CA):分流发生在MAC层。高层(PDCP/RLC)通常感知不到多个载波的存在,它们可能只与一个或多个逻辑信道交互。是MAC层根据调度器的指令(HARQ进程),决定将某个逻辑信道的数据放在哪个载波(Component Carrier)上进行传输。

Q3:测试系统(SS)中的“Proxy PDCP”是做什么用的?

A3:“Proxy PDCP”是在测试分离承载(Split Bearer)时,SS内部使用的一种简化实现。在一个分离承载中,只有一个逻辑上的PDCP实体。为了模拟这一点,SS只在一个PTC(如主小区的PTC)中实现一个功能完整的PDCP实体(尽管其逻辑由TTCN控制),而在另一个PTC(辅小区的PTC)中只配置一个“Proxy PDCP”。这个Proxy不执行任何PDCP功能(如加解密、排序),它唯一的任务就是充当一个数据包的“中转站”,将数据在完整的PDCP实体和辅小区的RLC层之间进行透明转发。

Q4:PDCP数据复制(Duplication)功能的主要应用场景是什么?测试它的关键点是什么?

A4:PDCP数据复制主要应用于对可靠性要求极高的场景,如URLLC(超可靠低时延通信)业务,例如自动驾驶、远程医疗、工业控制等。在这些场景中,一个数据包的丢失都可能导致严重后果。测试的关键点在于验证UE的接收和去重能力:

  1. 可靠接收:当多条路径中的一条或多条发生丢包时,UE仍能从通畅的路径上成功接收到数据。
  2. 精确去重:当多条路径都正常,UE会收到同一个数据包的多个副本时,它必须能够识别出这是重复包,只向上层递交第一份成功接收的数据,并丢弃所有后续的副本。

Q5:以太网头压缩(EHC)和上行数据压缩(UDC)都是压缩技术,它们有什么不同?

A5:它们是两种不同层面和用途的压缩技术:

  • EHC 是一种头部压缩技术,专门针对以太网帧头。它通过在收发两端维护上下文,只传输帧头中变化的部分,从而大幅减少冗长的以太网头部开销。它面向特定类型的流量(以太网流量)。
  • UDC 是一种载荷压缩技术,它使用的是通用的数据压缩算法(基于DEFLATE,类似ZIP压缩),对PDCP PDU的数据部分进行压缩。它不关心数据是什么类型,只要数据本身有冗余(如文本文件、未压缩的图像等),就能起到压缩效果。它在PDCP层对上行数据进行压缩。