摘要:针对LTE系统的高数据速率和海量信息容量的特点,对分组数据汇聚协议(PDCP)在功能上进行了改进。对压缩算法进行了简化,支持完整性保护和加密(UMTS的加密在RLC的非TM模式和MAC的TM模式下实现)功能,分析了新的上下行数据传输方式以及在切换时的PDU重排序,最后设计了在OPNET中PDCP的具体实现方式。
关键词:LTE;分组数据汇聚协议;OPNET;UMTS
0 引言
3GPP希望通过升级诸如HSDPA和HSUPA这样的无线接口技术,来确保未来10年或者更长的时间内,保持竞争能力。因此LTE长期演进主要是以降低时延、提高用户数据速率、改善系统容量以及覆盖,并且降低运营商的成本为目标。为了实现这些目标,LTE系统设计涵盖了无线接口和无线网络架构两个方面。
本文研究的分组数据汇聚协议(Packet Data Convergence Protocol,PDCP)层属于无线接口协议栈的第二层,处理控制平面上的无线资源管理(RRC)消息以及用户平面上的因特网协议(IP)包。在用户平面上,PDCP子层得到来自上层的IP数据分组后,可以对IP数据分组进行头压缩和加密,然后递交到RLC子层。PDCP子层还向上层提供按序提交和重复分组检测功能。在控制平面,PDCP子层为上层RRC提供信令传输服务,并实现RRC信令的加密和一致性保护,以及在反方向上实现RRC信令的解密和一致性检查。
1 PDCP子层功能
PDCP子层的主要功能如图1所示。
PDCP协议包括以下具体支持的功能:
(1)用户平面数据的报头压缩和解压缩。
(2)安全性功能:
①用户和控制平面协议的加密和解密;
②控制平面数据的完整性保护和验证。
(3)数据的传输功能:
①下层重建时,对向上层发送的PDU顺序发送和重排序;
②对映射到AM模式的RB的下层SDU进行重排序。
(4)数据包的丢弃。
1.1 报头压缩
在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,也不加密。
1.2 安全性功能
LTE的安全性是在PDCP层负责的,通过加密(控制平面RRC数据和用户平面数据)及完整性保护(仅控制平面数据)实现。
1.2.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状态报告)既不使用加密,也不适用完整性保护。
1.2.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相同,则完整性保护验证成功。
1.3 数据的传输
控制平面的PDCP PDU和用户平面的PDCP数据PDU都拥有一个序列号SN字段,PDCP子层的发送和接收实体就是通过设置和检查SN字段来实现PDCPPDU的按序发送和接收。PDCP子层在发送侧和接收侧分别维护一个重排序窗口的大小是SN范围的50%。当SN为0~4 095时,即“最大PDCP SN”的值为4 095时,重排序窗口的大小为2 048。
在非切换状态下,RLC子层位为PDCP子层提供按序提交和重复包丢弃服务。而在切换状态下,由于UE与两个eNodeB同时通信,因此其RLC子层无法保证按序提交和重复包丢弃,从而需要由PDCP子层来完成这些功能。
下面以UE侧的操作为例说明PDCP子层的发送和接收流程。
1.3.1 上行发送
每一个PDCP SDU对应一个Discard Timer,一旦由高层接收到一个PDCP SDU,即启动该SDU对应的Discard Timer。同时,进行发送相关的状态变量更新及加密、完整性保护等,具体过程如图2所示。
1.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序列号,具体流程如图3所示。
1.4 数据包丢弃
LTE的PDCP层的丢弃功能基于定时器,发射机从高层接收到每一个PDCP SDU时该定时器启动,当定时器溢出时UE仍未发起PDCP SDU传输,那么丢弃该PDCP SDU。如果定时器被设置到一个合适的值来满足无线承载所要求的QoS,这一丢弃机制可以防止发射机的过渡延时和排队现象。具体的处理过程如下:
1.4.1 上行发送
当高层要求PDCP重建时,映射到RLC AM模式的DRB处理过程:
(1)重置上行头压缩协议。
(2)在重建过程中,应用高层提供的加密算法以及密钥。
(3)由第一个还没有确认成功发送的PDCP SDU开始执行重传,或者按COUNT升序,优先于重传过程发送所有已关联了PDCP序列号的PDCP SDU。
①按照第一节报头压缩中提及的压缩算法,执行PDCP SDU报头压缩过程。
②按照安全性功能介绍的加密过程,执行PDCPSDU加密过程。
③将经过上述处理的PDCP数据PDU递交给下层。
1.4.2 下行接收
当高层要求PDCP重建时,映射到RLC AM模式的DRB处理过程:
(1)处理所有由于下层重建而由下层接收的PDCP数据PDU。
(2)重置下行头压缩协议。
(3)在重建过程中,应用高层提供的加密以及完整性保护算法。
2 PDCP在OPNET中的实现
2.1 PDCP传输的实现
在OPNET中PDCP传输的实现是通过直接改变数据包的大小来仿真网络流量,PDCP在OPNET中压缩侧的实现流程图如图4所示。
PDCP的传输过程是在收到来自上层的数据流时调用,进入strm==FROM_HIGHER分支之后执行lte_gmm_client_packet_process(pkptr)函数,在这个函数中GMM层完成对上层数据包的处理,并生成向RLC转发的数据包rlc_pkptr以及接口控制信息ICI包pdu_iciptr,并将ICI包绑定在传给RLC的数据包上。当获取ICI中断,如果有ICI的中断,那说明当前状态为收到上层发来的IP数据包,如果没有ICI中断,那么需要转发的是命令消息。但是不管是数据包还是命令包,都进入lte_suppor_pdcp_header_comp_size_compute函数得到压缩后的大小,公式为:
这里的comp_ratio就是从GMM属性中获取的PDCP压缩率,保存在pdcp_comp_info变量之中。
2.2 仿真结果
为了验证头压缩在LTE中空口的应用,设计了一个简单的网络模型,主要由用户终端UE、eNodeB、核心网CN和外部网络FTP组成。分别对UE设定在采用PDCP和没有采用PDCP的两种情况下,仿真eNo-deB的上下行吞吐量性能。在这个场景中,设置了30个移动终端UE执行FTP业务,并且假设已经建立了PS信令连接,并且在仿真期间一直保持。
这种FTP背景类业务对吞吐量要求很高,图5表示从eNodeB采集到的上行吞吐量性能,采用了PDCP压缩技术的曲线(虚线),相对于没有使用PDCP的曲线(实线)的吞吐量缓慢的提升,这是由于FTP这种业务特性决定的。当用户激活背景类业务时,网络首先对该类用户进行接入控制,判断网络是否有剩余容量接入该用户,如果有容量则允许该用户接入,但是并不给该业务预留带宽。当系统拥塞时,允许对该类型用户进行丢弃操作。背景类业务对时延和时延抖动要求较低,采用尽力而为的方式进行转发。图6显示的是下行链路的吞吐量情况,采用PDCP技术后吞吐量得到了明显的提升。
3 结论
LTE作为3GPP中GSM和UMTS家族的技术演进,被看作完成了业务扩展这一趋势,即从简单的语音业务向建立多业务空中接口的转变,并且所有的业务都是基于分组交换模式,这就对系统容量的需求非常大。诸如在实时业务VoIP中,空中接口资源有限,应用PDCP层中优化的头压缩技术,能够有效地降低包头的开销,提高空口的传输效率,而且PDCP层还支持加密功能,让传输更具有可靠性。由此可见,LTE中的PDCP层的设计,在功能上体现了LTE系统的高数据速率、低时延和分组优化的设计目标。