PDCP协议学习总结要点

更新时间:2023-04-06 22:49:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

PDCP 协议学习总结 1、PDCP 架构

Radio Bearers

UE/E-UTRAN

PDCP

RLC

2、PDCP 实体:

UE/E-UTRAN

E-UTRAN/UE

Transmitting Receiving

一个UE可以定义多个PDCP实体,可以对携带用户面数据的每个PDCP实体进行配置,来使用头压缩。每个PDCP实体携带一个无线承载的数据。根据无线承载所携带的数据,PDCP实体对应于控制平面或者用户平面

3、PCDP层服务

向上层提供的服务:(PDCP提供服务给UE的RRC层和用户面高层)

(1)数据传输

(2)头压缩

(3)加密

(4)完整性保护

从下层得到的服务:(RLC层向PDCP层提供服务)

(1)确认的数据传输业务,包括PDCP PDU成功传输的指示

(2)非确认的数据传输业务

(3)有序传送,除了在切换时的情况

(4)重复丢弃,除了在切换时的情况

4、PDCP层功能

(1)发送和接收实体利用ROHC协议对IP数据流进行相应的头压缩和解压缩

(2)用户面数据或者控制面数据的传输

(3)维护RLC AM模式下的映射的无线承载的PDCP SN

(4)下层重建时,上层PDU的有序传送

(5)下层重建时,RLC AM模式下的映射的无线承载的下层SDU重复消除

(6)用户面数据和控制面数据的加密和解密

(7)控制面数据的完整性保护与完整性验证

(8)基于计时器的丢弃

(9)重复丢弃

5、PDCP过程(具体过程见page 3)

(1)PDCP数据传输过程

上行数据传输过程:每一个PDCP SDU对应一个Discard Timer,一旦由高层接收到一个PDCP SDU,即启动该SDU对应的Discard Timer。同时,进行发送相关的状

态变量更新及加密、完整性保护等,具体过程如图2所示。

下行数据传输过程:在不需重建的情况下,PDCP实体在接收到RLC AM实体提交的PDCP PDU 时,不需执行重排序过程,因为RLC AM在向PDCP实体提交PDCP PDU

时,已保证顺序递交。若UE先从源eNodeB收到一些PDCP SDU,重建

开始后从目的eNodeB接收PDCP SDU(其中部分是源eNodeB转给目的

eNodeB的,并且有一些是源eNodeB已发给UE但尚未得到确认的),因

此,UE的PDCP实体收到的PDCP SDU可能是乱序并且有重复的,因此

对于RLC AM模式,在重建情况下,PDCP接收实体需对接收的PDCP SDU

进行重排序和重复检测。

(2)重建过程

上行数据传输过程:映射到RLC AM的DRB过程

映射到RLC UM的DRB过程

SRB过程

下行数据传输过程:映射到RLC AM的DRB过程

映射到RLC UM的DRB过程

SRB过程

(3)PDCP状态报告

传输:

接收:

(4)PDCP丢弃:PDCP SDU的Discard_Timer超时或PDCP SDU的成功传输有PDCp状态报告确认,UE丢弃PDCP SDU及相应的PDCP PDU

(5)头压缩与解压缩:

(6)加密和解密:加密不用于PDCP控制PDU

控制面:PDCP PDU中数据部分及MAC-I

用户面:PDCP PDU的数据部分

(对消息和加密流做异或(XOR)运算来实现的,这里加密流是由基于接入层(AS)导出密钥、无线承载ID、传输方向(上行或下行)以及COUNT值的加密算法所生成的。)

(7)完整性保护及确认:该功能仅用于SRB

(8)未知的、意外的以及错误的协议数据的处理

6、PDCP协议数据单元及格式

PDCP数据PDU传送:一个PDU SDU SN、包含一个基于非压缩的PDCP SDU用户面数据、包含一个基于压缩的PDCP SDU用户面数据、控制平面数据、只有SRB的MAC-I域

PDCP控制PDU传送:PDCP状态报告、头压缩信息

7、参数

(1)PDCP SN:

(2)DATA:未压缩PDCP SDU(用户面或控制面数据)/压缩PDCP SDU(用户面数据)(3)MAC-I:消息认证码、未经过完整性保护的控制面数据MAC-I用0填充

(4)COUNT:HFN+PDCP SN

(5)R:保留位

(6)D/C:控制PDU或数据PDU

(7)PDU type:status/ROHC/received

(8)FMS:第一个丢失的PDCP SDU的PDCP SN值

(9)Bitmap:PDCP SDU是否被接收并正确的进行选择性解压

8、变量

PDCP实体发送端

(1)Next_PDCP_TX_SN:给定PDCP实体的下一个PDCP SDU的PDCP SN,实体重建时置0 (2)TX_HFN:sehngcheng COUNT值的HFN值(COUNT值用于一个给定的PDCP实体的PDCP PDU),实体重建时置0

PDCP实体接收端

(1)Next_PDCP_RX_SN:下一个期望的PDCP SN,有一个给定PDCP实体的接收方给出,实体重建时置0

(2)RX_HFN:生成COUNT值的HFN值,实体重建时置0

(3)Last_Submitted_PDCP_RX_SN:传输到上层的最后一个PDCP SDU的SN,实体重建4095

9、常量

(1)Reordering_Window:2048,PDCP SN的一半,用于无线承载应设在RLC AM上的情况(2)Maximum_PDCP_SN:

10、定时器

(1)Discard_Timer丢弃定时器

(2)Flush_Timer清空定时器

5.1 数据传输过程

5.1.1 上行

从上层接收到PDCP SDU后

UE启动与此PDCP相关量的discardTimer

对于从上层接收到的PDCP SDU

UE应关联相应于Next_PDCP_TX_SN的PDCP SN到PDCP SDU

UE应执行PDCP SDU头压缩

UE应执行完整性保密

UE应使用基于TX_HFN的COUNT以及关联于PDCP SDU的PDCP SN值进行加密

UE将Next_PDCP_TX_SN加1

若果Next_PDCP_TX_SN﹥Maximum_PDCP_SN

UE应将Next_PDCP_TX_SN置0

UE应将TX_HFN加1

UE应将最后产生的PDCP Data PDU传送给低层

5.1.2 下行

一、DRB过程

1、映射到RLC AM的DRB过程

对于映射到 RLC AM的DRB,在接收到低层的PDCP Data PDU时

(1)如果接收到的PDCP SN-Last_Submitted_PDCP_RX_SN>reordering_Window 或0≤Last_Submitted_PDCP_RX_SN-接收到的PDCP SN<Reordering_Window

Last_

PDCP_SN Array

RX_HFN-1

图5.1 Received PDCP SN-Last_Submitted_PDCP_RX_SN>reordering_Window

1)如果接收到的PDCP SN>Next_PDCP_RX_SN

Last_Submitted_PDCP_RX_SN

_PDCP_SN

图5.2 0≤Last_Submitted_PDCP_RX_SN-received PDCP SN<Reordering_Window

且received PDCP SN>Next_PDCP_RX_SN

UE应使用基于RX_HFN-1的COUNT与接收到的PDCP SN值,解密此PDCP 2)否则

_RX_SN

Last_Submitted_PDCP

_PDCP_SN Array

RX_HFN

图5.3 0≤Last_Submitted_PDCP_RX_SN-received PDCP SN<Reordering_Window

且Next_PDCP_RX_SN >received PDCP SN

UE应使用基于RX_HFN的COUNT与接收到的PDCP SN值,解密此PDCP PDU 3)UE应执行头压缩

4)UE应丢弃此PDCP SDU

(2)否则,如果Next_PDCP_RX_SN-接收到的PDCP SN>Reordering_Window

Last_Submitted_

PDCP_RX_SN

_PDCP_SN Array

RX_HFN

图5.4 Next_PDCP_RX_SN -received PDCP SN>Reordering_Window

1)UE应将Next_HFN加1

2)UE应使用基于RX_HFN的COUNT与接收到的PDCP SN解密此PDCP PDU

3)UE应将Next_PDCP_RX_SN置为刚接收到的PDCP SN+1

(4)否则,如果接收到的PDCP SN-Next_PDCP_RX_SN≥Reordering_Window

Last_Submitted_PDCP_RX_SN

_PDCP_SN

图5.5 received PDCP SN-Next_PDCP_RX_SN>Reordering_Window

1)UE应使用基于RX_HFN-1的COUNT与接收到的PDCP SN解密此PDCP PDU (5)否则,如果接收到的PDCP SN≥Next_PDCP_RX_SN

Last_Submitted_PDCP_RX_SN

PDCP_ Array

Received PDCP SN

RX_HFN

图5.6 Received PDU SN≥Next_PDCP_RX_SN(1)

Last_Submitted_PDCP_RX_SN

_PDCP_SN Array

RX_HFN

图5.7 Received PDU SN≥Next_PDCP_RX_SN(2)

Last_Submitted_PDCP_RX_SN

RX_HFN _PDCP_SN

Next_PDCP_

图5.8 Received PDU SN≥Next_PDCP_RX_SN(3)

1)UE应使用基于RX_HFN的COUNT与接收到的PDCP SN解密此PDCP PDU

2)UE应将Next_PDCP_RX_SN置为接收到的PDCP SN+1

3)如果Next_PDCP_RX_SN>Maximum_PDCP_SN

UE应将Next_PDCP_RX_SN置0

UE应将RX_HFN加1

(6)否则,如果接收到的PDCP SN<Next_PDCP_RX_SN

Last_

Received PDCP SN

RX_HFN

PDCP_SN

图5.9 Received PDU SN<Next_PDCP_RX_SN(1)

Last_Submitted_PDCP_RX_SN

RX_HFN _PDCP_SN

_RX_

图5.10 Received PDU SN<Next_PDCP_RX_SN(2)

Last_Submitted_PDCP_RX_SN

_PDCP_SN

图5.11 Received PDU SN<Next_PDCP_RX_SN(3)

1)UE应使用基于RX_HFN的COUNT值域接收到的PDCP SN值解密此PDCP PDU (7)如果上面没有丢弃此PDCP PDU

1)UE应执行PDCP PDU的解密与头压缩

2)如果一个具有相同PDCP SN值的PDCP PDU被存储

UE应丢弃此PDU

3)否则

UE应存储此PDCP SDU

4)如果由于下层重建导致PDCP没有接收到此PDCP PDU

UE应把相关的COUNT值按照升序传递给上层:

a.所有存储的,相关COUNT值小于接收PDCP SDU的COUNT值的PDCP SDU

b.所有存储的,从接收到的PDCP SDU的COUNT值开始,连续COUNT值对

应的PDCPSDU

UE应将Last_Submitted_PDCP_RX_SN置为最后递交给高层的PDCP SDU的

PDCP SN值

5)否则,如果接收到的PDCP SN=Last_Submitted_PDCP_RX_SN﹢1,6)或者接收到的PDCP SN=Last_Submitted_PDCP_RX_SN-Maximum_PDCP_SN

UE应把相关COUNT值按照升序传递给上层

a.所有存储的,从接收到的PDCP SDU的COUNT值开始,连续COUNT值对

应的PDCP SDU

UE应将Last_Submitted_PDCP_RX_SN置为最后递交给高层的PDCP SDU的PDCP SN值

2、映射到RLC UM的DRB过程

对于映射到RLC UM的DRN,在接收到低层的PDCP Data PDU以后

(1)如果接收到的PDCP SN<Next_PDCP_RX_SN

1)UE应将RX_HFN加1

(2)UE应使用基于RX_HFN的COUNT值与接收到的PDCP SN值来解密此PDCP Data PDU (3)如果Next_PDCP_RX_SN>Maximum_PDCP_SN

1)UE应将Next_PDCP_RX_SN置0

2)UE应将RX_HFN﹢1

(4)执行已解密的PDCP Data PDU的头压缩

(5)UE应将最后产生的PDCP SDU递交给上层

二、SRB过程

对于SRB,在接收到低层的PDCP Data PDU后

(1)如果接收的PDCP SN<Next_PDCP_RX_SN

1)UE应使用基于RX_HFN﹢1的COUNT与接收到的PDCP SN值来解密此PDU以及确认其完整性

(2)否则

1)UE应使用基于RX_HFN的COUNT与接收到的PDCP SN值来解密此PDU以及确认其完整性

(3)如果完整性确认使用并成功通过,或

(4)如果完整性确认不适用

1)如果接收的PDCP SN<Next_PDCP_RX_SN

UE应将RX_HFN加1

2)UE应将Next_PDCP_RX_SN置为接收到的PDCP SN﹢1

3)如果Next_PDCP_RX_SN>Maximum_PDCP_SN

UE应将Next_PDCP_RX_SN置0

UE应将RX_HFN加1

4)UE应将最后产生的PDCP SDU递交给上层

(5)否则,如果完整性确认适用,但失败

1)UE应丢弃接收到的PDCP Data PDU

2)UE应将完整性确认失败报告递交给上层

5.2 重建过程

5.2.1 上行

1、映射到RLC AM的DRB过程

当上层请求一次PDCP重建时

(1)UE应重置上行链路的头压缩协议

(2)重建过程期间,UE应使用加密算法及上层提供的密钥加密

(3)从第一个对应的PDCP PDU成功传递但没有被下层确认的PDCP SDU开始,在如PDCP 重建之前,执行所有由与此PDCP SDU对应的COUNT开始的,按照COUNT升序排列的PDCP SN值对应的PDCP SDU的重传或传输

(4)UE应执行DCP SDU的头压缩

(5)UE应使用与此PDCP SDU关联的COUNT值来加密此PDCP SDU

(6)UE应将最后产生的PDCP Data PDU传递给下层

2、映射到RLC UM的DRB过程

当上层请求一次PDCP重建时

(1)UE应重置上行链路的头压缩协议

(2)UE应置Next_PDCP_TX_SN以及TX_HFN为0

(3)重建过程期间,UE应使用加密算法及上层提供的密钥加密

(4)对于每一个已经对应于一个PDCP SN,但相应的PDU没有事先传递给低层的PDCP SDU 1)UE认为此PDCP SDU是从上层接收而来

2)在PDCP重建之前,在不重启discardTimer的情况下,UE应按照与PDCP SDU 关联的COUNT值的升序传输PDCP SDU

3、SRB过程

当上层请求一次PDCP重建时

(1)UE应置Next_PDCP_TX_SN及TX_HFN为0

(2)UE应丢弃所有存储的PDCP SDU和PDCP PDU

(3)重建过程期间,UE应使用加密和完整性保护算法,以及使用上层提供的密钥进行加密

5.2.2 下行

1、映射到RLC AM的DRB过程

当上层请求一次PDCP重建时

(1)UE应处理由于下层重建而从下层接收到的PDCP Data PDU

(2)UE应重置下行链路的头压缩协议

(3)重建过程期间,UE应使用加密算法和上层提供的密钥进行加密

2、映射到RLC UM的DRB过程

当上层请求一次PDCP重建时

(1)UE应处理由于下层重建而从下层接收到的PDCP Data PDU

(2)UE 应重置下行链路的头压缩协议

(3)UE应将Next_PDCP_RX_SN及RX_HFN置0

(4)重建过程奇迹,UE应使用加密算法和上层提供的密钥进行加密

3、SRB过程

当上层请求一次PDCP重建时

(1)UE应丢弃由于下层重建而从下层接收来的PDCP Data PDU

(2)UE应将Next_PDCP_RX_SN及RX_HFN置0

(3)UE应丢弃所有存储的PDCP SDU和PDCP PDU

(4)重建过程期间,UE 应使用加密和完整性保护算法,以及使用上层提供的密钥进行加密

5.3 PDCP状态报告

5.3.1 传输

对于映射到RLC AM的RB当上层请求一次PDCP重建时

如果此RB被上层配置用于在上行链路发送一个PDCP状态报告,在处理完因下层重建而从下层接收来的PDCP Data PCU以后,UE应按下述指示进行状态报告:

(1)UE应将FMS置为第一个丢失的PDCP SDU的PDCP SN值

(2)如果至少有一个失序PDCP SDU被存储,则UE分配一个Bitmap field,长度等于从第一个丢失的PDCP SDU开始知道最后一个失序的PDCP SDU结束的PDCP SN的个数,四舍五入到下一个8的倍数

(3)UE将所有低层指示还未接受到的PDCP SDU以及任意解压缩失败的PDCP SDU在Bitmap field中对应的区域置0

(4)对于其他的PDCP SDU,对应区域置1

5.3.2 接收

当在下行链路接收到一个PDCP状态报告时,对已映射到RLC AM的RB

对于每个PDCP SDU,如果在Bitmap中对应的bit位为1,或者相关联的COUNT值小于FMS 字段确定的PDCP SDU的COUNT值,则相应PDCP SDU的成功传输将被确认,且UE应按照PDCP 丢弃过程的规定来处理此PDCP。

5.4 PDCP丢弃

当用于PDCP SDU的discardTimer终止,或PDCP SDU的成功传输被PDCP状态报告确认,UE

应就其此PDCP SDU及其对应的PDCP PDU。如果对应的PDCP PDU已经成功传递给下层,则丢弃需要指示给下层。

5.5 头压缩与解压缩

5.5.1 协议与简表

头压缩协议基于可靠性头压缩(ROHC)框架,存在多种头压缩算法,成为简表,定义用于ROHC框架。每个简表为特定的网络层、传输层或上层集合所专用。

5.5.2 头压缩配置

与DRB关联的PDCP实体可被上层配置来使用头压缩

5.5.3 协议参数

压缩与解压缩端之间定义了必须有上层配置的强制配置参数,定义ROHC信道(单行信道,上行或下行),属于同一个PDCP实体的信道使用相同的配置。

M、N/A、LARGE_CIDs、PROFILES(M)、FEEDBACK_FOR(N/A)、MRRU(N/A)

5.5.4 头压缩

生成两种类型的输出数据包:

(1)压缩包,各自关联于一个PDCP SDU(与相关PDCP SDU相同的PDCP SN和COUNT关联)(2)独立数据包,为关联于PDCP SDU,即零散的ROHC反馈包(不与PDCP SDU关联,不与PDCP SN关联,不加密)

5.5.5 头解压缩

如果上层为关联与用户平面数据的PDCP实体配置了头解压缩,则PDCP PDU将在执行解密程序后由头解压协议进行解压缩

5.6 加密和解密

1、对于控制平面,加密的数据单元是PDCP PDU以及MAC-I的部分数据

2、对于用户平面,加密的数据单元是PDCP PDU的部分数据

3、加密不适用与PDCP控制PDU

4、加密算法和密钥由上层配置

5、加密功能由上层激活,激活后,应用于所有上层指示的上下行PDCP PDU

6、加密功能请求的输入:COUNT、DIRECTION

7、PDCP请求的,由上层提供的参数:BEARER、KEY(控制面/用户面)

(1)BEARER:承载的标识,用于RB身份的标识

(2)DIRECTION:标识传输的方向,0用于上行、1用于下行

(3)KEY:控制平面和用户平面的加密密钥分别为K RRCenc与K UPenc

5.7 完整性保护及确认

1、完整性保护+完整性确认

2、用于与SRB关联的PDCP

3、受完整性保护的数据单元为:PDU头和加密前的PDU部分数据

4、完整性保护算法和密钥由上层提供

5、完整性保护功能由上层激活,激活后,应用于从上层指定的PDU之后的上下行PDCP PDU

6、完整性保护算法的输入:COUNT、DIRECTION

7、PDCP请求的,由上层提供的数:BEARER、KEY

8、传输时,UE计算MAC-I字段的值

接收时,UE通过基于以上指定的输入参数计算X-MAX来确认PDCP PDU的完整性。如果计算得到的X-MAC与接收的MAC-I值相对应,则完整性保护确认成功

5.8 未知的、意外的以及错误的协议数据的处理

PDCP收到一个包括保留至或非法值的PDCP PDU时,PDCP实体应丢弃收到的PDU

补充PDCP实现LTE 接入层安全性过程

PDCP层通过接受高层的安全配置信令,进入相应的状态后才能对数据和信令进行加密及完整性保护,在正常的RRC连接建立完成并且通过层三的鉴权完成后,启动接入层的安全模式命令。网络端首先获得由非介入层的AKA(Authentication and Key Agreement)过程产生密钥KASME,然后RRC由该参数计算得到K eNB,再由K eNB计算得到控制平面的完整性保护密钥K RRCint,以及用户平面和控制平面需要的密钥K UPenc、K RRCenc,在组装成安全模式命令(SecurityModiCommand),发送给终端,配置中端的安全性参数。当网络端发出SecurityModeCommand消息后开始对下行数据进行加密,终端的PDCP层接收到SecurityModeCommand消息后,先将其发送到RRC进行解码操作,得出网络端配给终端的完整性保护算法,再将完整性保护算法和相应的密钥发给PDCP层,PDCP就可以对SecurityModeCommand消息进行完整性校验。如果没有通过完整性校验,则向网络端发送安全模式失败(SecurityModeFailure);如果通过,则取出里面包含的加密算法,并向网络发送安全模式完成(SecurityModeComplete)消息,对其进行完整性保护但是不加密,自此后开始对上行数据加密,下行数据解密。网络端收到该消息后开始对上行数据解密,安全性建好后,开始对信令进行完整性保护。

接入层的安全性是通过加密算法和完整性保护算法来实现的。

接收时,UE通过基于以上指定的输入参数计算X-MAX来确认PDCP PDU的完整性。如果计算得到的X-MAC与接收的MAC-I值相对应,则完整性保护确认成功

本文来源:https://www.bwwdw.com/article/z1vl.html

Top