更新时间:2024-06-19 10:53
PDCP(Packet Data Convergence Protocol)分组数据汇聚协议
PDCP(Packet Data Convergence Protocol)分组数据汇聚协议
PDCP 是对分组数据汇聚协议的一个简称。 它是UMTS中的一个无线传输协议栈, 它负责将IP头压缩和解压、传输用户数据并维护为无损的无线网络服务子系统(SRNS)设置的无线承载的序列号。
压缩技术可以根据二者之一 RFC 2507 或 RFC 3095. RFC 1144年 罐头为一些背景知识也使用,并且,虽然技术在RFC没有用于现代 TCP/IP 实施,它仍然显示什么压缩或解压技术看似。
如果 PDCP 配置为 没有压缩 它将送IP小包,不用压缩,它根据它的配置将压缩小包由上层并且附有a PDCP 倒栽跳水和送小包。 它使用更低的层数提供的服务称Radio键路控制(RLC)。
PDCP 倒栽跳水包括二个领域: PID和PDU类型。
PDU类型 领域表明PDU是否是数据PDU或顺序编号PDU。
PID 领域价值表明倒栽跳水 压缩协议 键入使用的和小包类型或CID。
分组数据汇聚协议(Packet Data Convergence Protocol,PDCP)层属于无线接口协议栈的第二层,处理控制平面上的无线资源管理(RRC)消息以及用户平面上的因特网协议(IP)包。在用户平面上,PDCP子层得到来自上层的IP数据分组后,可以对IP数据分组进行头压缩和加密,然后递交到RLC子层。PDCP子层还向上层提供按序提交和重复分组检测功能。在控制平面,PDCP子层为上层RRC提供信令传输服务,并实现RRC信令的加密和一致性保护,以及在反方向上实现RRC信令的解密和一致性检查。
无线接口可分为三个协议层:物理层(L1)、数据链路层(L2)和网络层(L3)。
1、L1主要用于为高层业务提供传输的无线物理通道。
2、L2包括MAC(Medium Access Control)、RLC(Radio Link Control)、BMC(Broadcast/Multicast Control)和PDCP(Packet Data Convergence Protocol)四个子层。
3、L3包括接入层中的RRC子层和非接入层的MM(Mobility Management,移动性管理)和CC(Call Control,呼叫控制)。无线接口协议如图2所示。
PDCP属于无线接口协议栈的第二层,处理控制平面上的无线资源管理(RRC)消息以及用户平面上的因特网协议(IP)包,在用户平面上,PDCP子层得到来自上层的IP数据分组后,可以对IP数据分组进行头压缩和加密,然后递交到RLC子层。PDCP子层还向上层提供按序提交和重复分组检测功能,反方向的,PDCP也具有解头压缩和解加密的功能。在控制平面,PDCP子层为上层RRC提供信令传输服务,并实现RRC信令的加密和一致性保护,以及在反方向上实现RRC信令的解密和一致性检查。
每个PS域的无线接入承载(RAB)都和1个RB相关联,每个RB又和1个PDCP实体相关联。根据RLC模式的不同,每个PDCP实体可和1个或2个RLC相关联,1个PDCP可和2个非确认模式/透明模式的RLC实体(1个上行和1个下行)或1个确认模式(AM)RLC实体相关联。PDCP可使用1种减多种压缩算法(RFC 2507和RFC3095,当前只使用RFC2507),也可不使用压缩算法。
在实现PDCP功能时,可将PDCP分为2个子模块:PDCP控制部分,主要完成对PDCP控制服务接入点的处理,通过PDCP和RRC接口发送原语,并产生、配置和删除PDCP实体,RRC给PDCP配置所有首部压缩所需参数,并把PDCP和RAB、RB关联起来;二是PDCP用户部分,主要完成从RB接收数据,在上行链路上,压缩IP分组数据包首部,然后发送到相应的实体;在下行链路上,PDCP从RLC接收首部压缩数据,进行解压缩后传送到上层。
PDCP实现的功能有:一是在发送方或接收方的PDCP实体中IP数据流的头压缩和解压缩。头压缩是针对特定的网络层、传输层或上层协议组合。当一个PDP上下文被激活时需知道网络层协议,PDCP可以通过PID值标识头压缩协议的不同类型。PDCP配置由UTRAN设置;用户数据的传输,这个功能被用于在PDCP服务的用户之间的数据汇聚。PDCP实例被配置成功后可进行数据传输,在上行链路数据传输过程中PDCP收到RABM发送的数据,根据配置信息将数据组装成PDU以原语形式发送给RLC。在下行链路数据传输过程中PDCP收到RLC送来的数据后将数据组装成PDCP SDU发送到RABM实体;如果PDCP应用于SRNS重定位,则PDCP需要保存对于RB的SDU序列号。只有当RLC配置为确认模式(AM)且顺序传输时才支持无丢失SRNS重定位。虽然RLC提供可靠的数据传输服务,但是当SRNS重定位时并不能保证传输的可靠性,所以PDCP在SRNS重定位时需要保存PDCP序列号以避免数据丢失。
PDCP协议包括以下具体支持的功能:
(1)用户平面数据的包头压缩和解压缩。
(2)安全性功能:
①用户和控制平面协议的加密和解密;
②控制平面数据的完整性保护和验证。
(3)数据的传输功能:
①下层重建时,对向上层发送的PDU顺序发送和重排序;
②对映射到AM模式的RB的下层SDU进行重排序。
(4)数据包的丢弃。
在LTE系统中,规定PDCP子层支持由IETF(互联网工程任务组)定义的健壮性报头压缩协议(ROHC)来进行报头压缩。在LTE中,因其不支持通过电路交换域(CS)传输的语音业务,为了在分组交换域(PS)提供语音业务且接近常规电路交换域的效率,必须对IP/UDP/RTP报头进行压缩,这些报头通常用于VoIP业务。
典型的,对于一个含有32 B有效载荷的VoIP分组传输来说,IPv6报头增加60 B,IPv4报头增加40 B,即188%和125%的开销。
为了解决这个问题,在LTE系统中,设定在激活周期内PDCP子层采用ROHC报头压缩技术,在压缩实体初始化之后,这一开销可被压缩成4~6个字节,即12.5%~18.8%的相对开销,从而提高了信道的效率和分组数据的有效性。
IETF在“RFC 4995”中规定了一个框架,ROHC框架中有多种头压缩算法,称为Profile,每一个Profile与特定的网络层、传输层和更上层的协议相关,如TCP/IP和RTP/UDP/IP等。具体的报头压缩协议及属性如表1所示。
报头压缩协议可以产生两种类型的输出包:
(1)压缩分组包,每一个压缩包都是由相应的PDCP SDU经过报头压缩产生的;
(2)与PDCP SDU不相关的独立包,即ROHC的反馈包。
压缩包总是与相应的PDCP SDU采用相同的PDCP SN和COUNT值;ROHC反馈包不是由PDCPSDU产生的,没有与之相关的PDCP SN,也不加密。
LTE的安全性是在PDCP层负责的,通过加密(控制平面RRC数据和用户平面数据)及完整性保护(仅控制平面数据)实现。
1、加密/解密
在LTE系统中,加密功能位于PDCP实体中,加密对象包括:
(1)控制平面,被加密的数据单元是PDCP PDU的数据部分(未压缩的用户面或控制面的PDCP SDU或压缩的用户平面PDCP SDU)和MAC—I域(完整性消息鉴权码)。
(2)用户平面,被加密的数据单元是PDCP PDU的数据部分。
PDCP实体所使用的加密算法和密钥(KEY)由高层协议配置。一旦激活安全功能,加密功能即被高层激活,该功能应用于高层指示的所有PDCP PDU。PDCP用于加密的参数包括以下2个:COUNT;DIRECTION(传输的方向)。
RRC协议提供给PDCP加密功能所需要的参数包括以下2个:BEARER;KEY(控制平面使用KRRCenc,用户平面使用KUPenc)。
加密是通过对消息和加密流做异或(XOR)运算来实现的,这里加密流是由基于接入层(AS)导出密钥、无线承载ID、传输方向(上行或下行)以及COUNT值的加密算法所生成的。加密仅适用于PDCP数据PDU。控制PDU(如ROHC反馈或PDCP状态报告)既不使用加密,也不适用完整性保护。
2、完整性保护
完整性保护功能包括完整性保护和完整性验证两个过程,完整性保护功能仅应用于SRB。用于PDCP实体的完整性保护功能的算法和KEY由上层配置。一旦激活安全功能,完整性保护功能即被高层激活,该功能应用于高层指示的所有PDCP PDU。PDCP用于完整性保护的参数包括以下2个:COUNT;DIREC-TION(传输的方向)。
RRC协议提供给PDCP完整性保护功能的参数包括以下2个:BEARER;KEY(控制平面使用KRRCint)。
UE基于上述输入的参数计算X-MAC,进行PDCP PDU的完整性验证。如果计算出的X-MAC与MAC-I相同,则完整性保护验证成功。
控制平面的PDCP PDU和用户平面的PDCP数据PDU都拥有一个序列号SN字段,PDCP子层的发送和接收实体就是通过设置和检查SN字段来实现PDCPPDU的按序发送和接收。PDCP子层在发送侧和接收侧分别维护一个重排序窗口的大小是SN范围的50%。当SN为0~4095时,即“最大PDCP SN”的值为4 095时,重排序窗口的大小为2048。
在非切换状态下,RLC子层位为PDCP子层提供按序提交和重复包丢弃服务。而在切换状态下,由于UE与两个eNodeB同时通信,因此其RLC子层无法保证按序提交和重复包丢弃,从而需要由PDCP子层来完成这些功能。
下面以UE侧的操作为例说明PDCP子层的发送和接收流程。
1、上行发送
每一个PDCP SDU对应一个Discard Timer,一旦由高层接收到一个PDCP SDU,即启动该SDU对应的Discard Timer。同时,进行发送相关的状态变量更新及加密、完整性保护等,具体过程如图3所示。
2、下行接收
在不需重建的普通工作模式下,PDCP实体在接收到RLC AM实体提交的PDCP PDU时,不需执行重排序过程,因为RLC AM在向PDCP实体提交PDCPPDU时,已保证顺序递交。以切换引起的PDCP重建为例,UE先从源eNodeB收到一些PDCP SDU,重建开始后从目的eNodeB接收PDCP SDU(其中部分是源eNodeB转给目的eNodeB的,并且有一些是源eNodeB已发给UE但尚未得到确认的),因此,UE的PDCP实体收到的PDCP SDU可能是乱序并且有重复的,因此对于RLC AM模式,在重建情况下,PDCP接收实体需对接收的PDCP SDU进行重排序和重复检测。
综合上述各种情况,对映射到RLC AM模式的DRB接收处理过程如下:定义接收的PDCP序列号为SN,接收端上一次提交给高层的PDCP SDU序列号为Last_Submitted_PDCP_RX_SN,Reordering_Window为序列号空间50%长度的重排序窗,RX_HFN为接收端当前HFN,Next_PDCP_RX_SN为接收端期待的下一个接收的PDCP序列号,具体流程如图4所示。
LTE的PDCP层的丢弃功能基于定时器,发射机从高层接收到每一个PDCP SDU时该定时器启动,当定时器溢出时UE仍未发起PDCP SDU传输,那么丢弃该PDCP SDU。如果定时器被设置到一个合适的值来满足无线承载所要求的QoS,这一丢弃机制可以防止发射机的过渡延时和排队现象。具体的处理过程如下:
1、上行发送
当高层要求PDCP重建时,映射到RLC AM模式的DRB处理过程:
(1)重置上行头压缩协议。
(3)由第一个还没有确认成功发送的PDCP SDU开始执行重传,或者按COUNT升序,优先于重传过程发送所有已关联了PDCP序列号的PDCP SDU。
①按照第一节报头压缩中提及的压缩算法,执行PDCP SDU报头压缩过程。
②按照安全性功能介绍的加密过程,执行PDCPSDU加密过程。
③将经过上述处理的PDCP数据PDU递交给下层。
2、下行接收
当高层要求PDCP重建时,映射到RLC AM模式的DRB处理过程:
(1)处理所有由于下层重建而由下层接收的PDCP数据PDU。
(2)重置下行头压缩协议。
(3)在重建过程中,应用高层提供的加密以及完整性保护算法。