概述
PDCP层主要功能如下:
· 数据传输(用户平面或控制平面);
· PDCP-SNs的维护;
· 使用ROHC协议的头压缩和解压;
· 加密和解密;
· 完整性保护和完整性验证;
· 基于定时器的SDU丢弃;
· 切割承载,路由;
· 副本;
· 重新排序和有序传递;
· 无序传递;
· 副本丢弃。
两个常用缩写:PDU(Protocol Data Unit) SDU (Service Data Unit)
左面部分的流程(发送):
1. 进入PDCP的数据首先存储在传输缓冲区中,然后经过“Sequence Number”过程。这意味着PDCP将“Sequence Number”添加到每个传入的数据块中。一旦它添加了“Sequence Number”,它就必须管理这个号码。在接收端,我们可以找出很多问题,比如“数据是否按顺序交付?有没有重复的数据?如何将多个数据块组合成原始的大数据块?”
2. 然后进行头压缩。但它说“这只适用于 U-plane数据”。这意味着信令消息不经过此头压缩。对 U-plane数据(例如,IP分组数据)也可以禁用头压缩。
3. 从这里我们看到两条路径,一条通过“Integrity/Ciphering”,另一条直接进入最后一步。完整性保护仅适用于C-Plane数据(C-Plane据是指RRC/NAS消息,即DCCH数据,而不是DTCH数据)。同样,可以通过应用信令消息来禁用“完整性保护”步骤。
4. 然后进入加密过程。加密同时应用C-Plane和U-Plane数据。加密过程也可以通过应用信令消息来禁用,但我们需要等到RRC/NAS规范出来才能了解详细信息。
5. 接下来,添加一个PDCP头。
6. 如果建立了分割承载,PDCP将分组路由到预期承载。
右面部分流程(接收):
与LTE对比
PDCP SDU和PDU支持最大的Size是9000Bytes
从高层接收到PDCP SDU,PDCP实体将PDCP SDU的discardTimer,PDCP SDU的TX-NEXT相关的COUNT值
处理流程
PDCP实体建立
当高层为了无线承载请求PDCP实体建立,UE将执行的动作:
l 为无线承载建立一个PDCP实体
l 给PDCP实体变量设置一个初始值
PDCP实体重建
当高层请求一个PDCP实体重建,正发射的PDCP实体将执行:
l 对UM DRBs和AM DRBs,为上行重置头压缩流程并启动IR状态。
l 对UM DRBs和SRBs,将TX_NEXT设置一个初始值;
l 对SRBs, 丢弃所有的 PDCP SDUs和PDCP PDUs
l 在PDCP实体重建过程中向高层请求加密算法和Key值;
l 在PDCP实体重建过程中向高层请求完整性保护;
l 对UM DRBs, 对每一个已关联PDCP SN 的PDCP SDU,但其对应的PDU先前没有被提交到底层;
l 对挂起的AM DRBs, 对于已经与PDCP SN相关联的每个PDCP SDU,从第一PDCP SDU开始,其对应的PDCP数据PDU的成功传送尚未被较低层确认。
l 对于未挂起的AM DRBs,从第一个PDCP SDU开始,其对应的PDCP数据PDU的成功传送尚未被下层确认,在如下所述的PDCP实体重新建立之前,按照与PDCP SDU相关联的计数值的升序,重新传输或传输已经与PDCP SNs相关联的所有PDCP SDU。
当高层请求一个PDCP实体重建,正接收的PDCP实体将执行:
l 处理由于下层重建立而从下层接收的PDCP数据PDU;
l 对于SRB,丢弃所有存储的PDCP sdu和PDCP PDU;
l 对于SRB和UM DRB,如果t-Reordering正在运行:
· 停止并重置t-Reordering;
· 对于UM DRB,在执行头解压缩之后,将所有存储的PDCP SDU按相关计数值的升序传送到上层;
l 对于AM DRB,如果没有配置DRB ContinueROHC,则对所有存储的PDCP SDU执行头解压缩;
l 对于UM DRB和AM DRB,如果中未配置DRB ContinueROHC,则重置下行的报头压缩协议;
l 对于UM DRB和SRB,将RX_NEXT和RX_delive设置为初始值;
l 在PDCP实体重建过程中应用上层提供的加密算法和密钥;
l 在PDCP实体重建过程中,应用上层提供的完整性保护算法和密钥。
接收操作
接收操作层面定义了一些新的概念,如下:
- HFN(State Variable): the HFN part (i.e. the number of most significant bits equal to HFN length) of the State Variable;
- SN(State Variable): the SN part (i.e. the number of least significant bits equal to PDCP SN length) of the State Variable;
- RCVD_SN: the PDCP SN of the received PDCP Data PDU, included in the PDU header;
- RCVD_HFN: the HFN of the received PDCP Data PDU, calculated by the receiving PDCP entity;
- RCVD_COUNT: the COUNT of the received PDCP Data PDU = [RCVD_HFN, RCVD_SN].
在从低层接收PDCP data PDU时,接收PDCP实体应确定接收的PDCP data PDU的count值,即RCVD_COUNT,如下所示
if RCVD_SN < SN(RX_DELIV) – Window_Size:
RCVD_HFN = HFN(RX_DELIV) + 1.
else if RCVD_SN >= SN(RX_DELIV) + Window_Size:
RCVD_HFN = HFN(RX_DELIV) – 1.
else:
RCVD_HFN = HFN(RX_DELIV);
RCVD_COUNT = [RCVD_HFN, RCVD_SN]
接收到PDCP Data PDU = RCVD_COUNT的COUNT值之后,接收的PDCP实体将:
用COUNT = RCVD_COUNT执行PDCP数据PDU的解密和完整性验证,
如果完整性验证失败;
指示高层完整性验证失败
discard the PDCP Data PDU
如果RCVD_COUNT < RX_DELIV 或者
如果COUNT = RCVD_COUNT的PDCP Data PDU接收之前
discard the PDCP Data PDU
如果收到COUNT value = RCVD_COUNT的PDCP Data PDU, 正接收 PDCP entity 将:
在接收Buffer中存储PDCP SDU结果;
如果RCVD_COUNT >= RX_NEXT:
RX_NEXT = RCVD_COUNT + 1.
如果配置了outOfOrderDelivery:
发送PDCP SDU结果给高层
如果 RCVD_COUNT = RX_DELIV:
如果在执行头解压缩之前没有解压缩,则在执行头解压缩之后按关联计数值的升序传递到上层;
所有存储的连续相关COUNT 值得PDCP SDU,其计数值从COUNT=RX_delive开始
更新RX_DELIV 到COUNT第一个PDCP SDU值(未发送给高层) COUNT value > RX_DELIV;
if t-Reordering 仍在运行, 并且RX_DELIV >= RX_REORD:
stop and reset t-Reordering.
if t-Reordering不在运行(includes the case when t-Reordering is stopped due to actions above), 并且 RX_DELIV < RX_NEXT:
update RX_REORD to RX_NEXT;
start t-Reordering.
头压缩
报头压缩协议基于RFC 5795中定义的健壮报头压缩(ROHC)框架。有多种头压缩算法,称为profiles,为ROHC框架定义。每个配置文件都特定于特定的网络层、传输层或上层协议组合,例如TCP/IP和RTP/UDP/IP。
ROHC通道的详细定义是在RFC 5795中定义的ROHC框架的一部分。这包括如何在ROHC信道上复用不同的流(头是否压缩),以及如何在初始化该流的压缩算法期间将特定IP流与特定上下文状态相关联。
不包括ROHC框架功能和支持的头压缩配置文件功能的实现。
描述了对以下配置文件的支持:
如果配置了头压缩,头压缩协议将生成两种类型的输出数据包:
压缩包,每个与一个PDCP SDU相关联;
与PDCP SDU无关的独立数据包,即散布的ROHC反馈。
压缩包与相关PDCP SDU具有相同的PDCP SN和计数值。如果PDCP SDU中包含SDAP报头和SDAP控制PDU,则报头压缩不适用于SDAP报头和SDAP控制PDU。
散布的ROHC反馈与PDCP SDU无关。它们与PDCP SN没有关联,也没有加密。
注意:如果已为压缩流建立ROHC上下文的最大CID数,并且新的IP流与任何已建立的ROHC上下文不匹配,则压缩器应将新的IP流与为现有压缩流分配的ROHC CID之一相关联,或将属于IP流的PDCP sdu作为未压缩包发送。
最后
以上就是敏感世界为你收集整理的pdcp层的作用_NR PDCP层介绍的全部内容,希望文章能够帮你解决pdcp层的作用_NR PDCP层介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复