
本章5G PDCP层课程全名是:网页链接。课程链接:
课程导引部分视频:
数据在PDCP之上都经历了些什么?
Figure 6.2.2.2-1: DL SDAP Data PDU format with SDAP header
为啥叫PDCP-Packet Data Convergence Protocol?
PDCP层到底要为数据在空中接口传输做哪些贡献?
是否考虑到:
· QoS
· 数据缓存
· 流控
· 数据顺序
· 数据到达确认
· 安全性
· 重建与恢复
· ……
Figure 4.2.2-1: PDCP layer, functional view
数据到达PDCP之后,由于没有了隐藏了QF概念了,每个PDCP实体就对应于一个DRB,不管这个DRB是来自与同一个或不同的PDU session。

但是SDAP中的entity对应于每个PDU session, 就是说,如果某个用户有多个PDU Session的话,就会有多个SDAP实体。 另外,每个PDU session一般也对应N3接口的一个GTP-U的隧道,用不同的TEID来标识。而同一个TEID可以对应多个QFI不同的QF。
DRB和QFI:SDAP的PDU中只有QFI,并没有DRB ID,如何体现SDAP的贴标的作用?
1. SDAP和PDCP之间没有开放接口,但却定义了标准的SAP和PDU结构,就是说PDCP的SDU即SDAP的PDU中仅仅携带QFI;
2. 实际上在RRC建立或重建或承载修改的过程中,就定义好了在PDCP层QFI和DRB的对应关系。逻辑上,PDCP的所有SDU都有一个隐形的DRB的标签,也就是说都携带了相应的DRB的信息;这个信息没有直接包含在PDCP SDU中,但是通过CUUP内部的通信实现。(规范中没有明确的定义)
3. PDCP层根据这个隐形的DRB标签,按照之前DRB建立时候的所有上下文信息,把来源于SDAP层的PDU在PDCP中进行相应处理。比如不同的DRB对应到不同的PDCP实体中。



Figure 6.2.2.2/3-1: PDCP Data PDU format with 12 /18 bits PDCP SN
· SN长短考虑的因素
· HFN是什么,COUNT是什么

数据in-order按序进入PDCP和按序递送到RLC。对于同一个PDCP实体内的没有优先级划分,而对于不同实体,同时到达PDCP层的数据也可能不用考虑优先级,因为不同的实体是单独处理各自的数据到达和发送的。
每一个PDCP SDU一进入PDCP流水线就会被贴上一个“秒表”——discardTimer。
每一个PDCP SDU的discardTimer的运行以及PDCP层处理和递送并不能影响下一个PDCP SDU进入这一流水线乃至PDCP PDU的形成和递送。
当 PDCP 层被告知丢失某个 PDU 时,其操作取决于数据类型和网络配置。例如,在实时数据的情况下,由于时间限制,重传可能没有用。而且PDCP 层本身不会触发重传。相反,如果discardTimer过期,它可能会丢弃数据,表明数据不再相关或不及时。
首先是明确每一个PDCP实体新建立的时候,就有一个具有初始值的TX_NEXT参数,初始值一般是0。
COUNT值实际上包含PDCP的SN和HFN:
ROHC是一种压缩各种IP数据包报头的算法。 在 IPv4 的情况下,未压缩的 IP 标头的大小为 40 字节,在 IPv6 的情况下,未压缩的 IP 标头的大小为 60 字节。
ROHC在5G中的优点:
· 带宽效率
· 改进的网络性能
· 增强对小数据包的支持
· 更低的延迟
· 能源效率
5G 中 ROHC 的缺点:
· 实施的复杂性
实施和维护 ROHC 会增加网络设备的复杂性。 它需要额外的处理来压缩和解压缩标头。
· 潜在错误
如果实施不当,标头压缩可能会导致错误。 不正确压缩的标头可能会导致数据包丢失或需要重传,从而影响性能。
· 资源利用率
压缩和解压过程会消耗CPU资源。 在处理能力有限的设备上,这可能会影响整体性能。
· 兼容性和互操作性问题
确保与所有类型的网络设备和协议的兼容性可能具有挑战性,可能会导致互操作性问题。
· 压缩和解压延迟
虽然由于数据包大小较小,可以减少整体延迟,但压缩和解压缩标头的过程本身会引入一些延迟。
· 由RRC层管理配置-CUCP
· 在CUUP中实现
· 针对相应的不同QoS的业务类型
· 在RRCReconfig消息中下发
在 5G 网络中,完整性保护是一项至关重要的安全功能,旨在确保传输数据的真实性和完整性。 这种保护在控制平面中尤其重要,其中关键信令数据在用户设备(UE - 用户设备)和网络之间交换。所以,5G中对控制面的完整性保护是强制的,而对于用户面则是可选的,一般不选。
完整性保护在 5G 中的作用:
· 验证数据真实性:
· 维护数据完整性:
· 防止重放攻击:
· 确保控制平面通信的安全:
· 定义
目前主要定义了3种Integrity Protection算法:NIA1,NIA2和NIA3,当然算上不进行完整性保护的类型NIA0,共4类。
https://www.bilibili.com/video/BV1wQ4y1i7Rf
(TS 33.501)
· 包含CK和IK
· 包含NAS IK和AS IK
· AS IK包含RRC IK和UP IK
· MAC-I的生成要素
· 分别在NAS和RRC消息中下发——两次SMC
· 在什么时机生效
在传输端时,UE 计算 MAC-I 字段的值;而在接收端,UE 通过基于上述指定的输入参数计算 X-MAC 来验证 PDCP 数据 PDU 的完整性。 如果计算出的X-MAC与接收到的MAC-I相对应,则完整性保护验证成功。见上图
5G 系统中的加密是确保UE与5G网络之间通信安全的一个重要方面。 它确保通过空中和网络传输的数据不会轻易被未经授权的实体拦截和理解。 在 5G 中,与前几代移动网络一样,加密应用于不同层,包括 NAS(非接入层)和 AS(接入层)。
与完整性保护属于同样的方法选择加密算法。
(TS 33.501)
· 包含CK和IK
· 包含NAS IK和AS IK
· AS IK包含RRC IK和UP IK
完整性保护之后进行。
根据 5G 的 3GPP TS 38.323 规范,其中 MAC-I和 PDCP数据 PDU的数据部分均经过加密,该过程通常会将这两部分作为一个整体进行加密,而不是单独加密。
在接收端,加密过程的逆过程
前面提到过,实际上我们可以理解TX_NEXT是DL PDCP实体中一个动态的参量,它的变化的数值反过来用来计算每个刚刚进入PDCP实体的buffer的SN值 (实际上是HFN+SN,即COUNT),而这个SN对于每个PDCP SDU来说是静态的。这也是TX_NEXT这个内部参数的作用之一。
总结起来,TX_NEXT没什么特别的功能,就是在PDCP实体中维护SN和COUNT。
PDCP PDU在到达对端之后,经过MAC层的HARQ和RLC层的AM模式的ARQ之后,有些PDU经过了HARQ或ARQ的重传,有些没有。 有些经过了最大的重传之后,仍然检测错误,那就只能在MAC层或在RLC层就放弃掉,这样PDCP实体就能够通过检测SN号的顺序和一定的规则,判断出该PDU为丢失;有些虽然经过重传之后,最终通过了,但这样就打乱了在发送端的in-sequence顺序发送之后到达对端的PDCP层时的时序。这就是乱序。
1. 在接收端的几个相关参数:
2. 先直接从PDCP PDU中的未加密的头部接触SN, 目的是:
为了能够在解密,完整性保护之前能够得到这个刚进入PDCP实体的PDU的COUNT数值。
3. 计算COUNT的方法:
· 知晓包括COUNT在内的所有参数
· 解密和验证失败的处理
当PDCP PDU从RLC层实体送达PDCP实体,并且计算出了其COUNT值,即RCVD_COUNT,正常情况下,没有重传,没有局部时延,则此时RCVD_COUNT肯定要比上一次更新的RX_NEXT要大1,那么,在这个PDCP PDU进入下一步处理之前,就会立即把这个RX_NEXT动态值加1,以便对下一个来自于RLC层的PDCP的PDU继续进行这样的动态数值维护。
但是对于正常数据递送的计算并不是RX_NEXT的真正目的,其真正的目的是要对于“非正常”的PDCP PDU进行COUNT的维护以及对其进行Reordering的支撑。
Reordering流程:
前面提到过,PDCP的SDU丢弃满足条件是要么discardTimer超时,要么收到来自于对端PDCP层的PDCP status report。而如果存在这种情况,PDCP status report的触发是有条件的,通常在PDCP实体重建或者PDCP数据恢复的时候才发送。
PDCP Status Report
如果PDCP控制PDU中没有用于PDCP状态报告的Bitmap,则该控制PDU仅通过FMC值报告第一个丢失的PDCP PDU; 如果用于PDCP状态报告的PDCP控制PDU中只有一个Bitmap,则该Bitmap表示的是FMC所表示的PDU的下一个PDU,以此类推。
Downlink Data Delivery Status,主要作用是在发送端对PDCP实体数据传输的流控,Flow Control
但DDDS不在PDCP规范38.323中,而是在38.425中进行定义。
上层数据来到PDCP需要进行Packet Data Convergence,这个聚合就包括流控
流控是通过于底层RLC层的交互进行的
DBS:Desired Buffer Size
· RLC层的buffer已经不足
· RLC层已经腾出了更多的buffer
· PDCP主动要求对RLC层buffer进行查询
针对于安全性,添加HFN和使用COUNT相对于仅仅使用PDCP SN能确保安全过程中更长时间的标识的唯一性。 对于安全操作,特别是加密和完整性保护,每个 PDU 都需要一个唯一的标识符。 这对于防止重放攻击至关重要,重放攻击中攻击者重新发送捕获的数据包以产生未经授权的效果。
比如SN Wrap-around绕回的问题:如果仅使用PDCP SN来保证安全,一旦SN绕回,相同的SN将被重用。 在高速网络中,这种环绕可能会相对较快地发生,导致重复使用相同的加密和完整性保护计数器,这是一种安全风险。
COUNT中包含的SN包含在PDCP的PDU当中,但是HFN并不包含在其中。HFN是在接收端间接地计算出来。