背景技术
在LTE(Long Term Evolution,长期演进)空口层二协议中,描述了PDCP(Packet Data Convergence Protocol,分组数据集中协议)子层和RLC(Radio Link Control,无线链路控制)子层之间的数据包交互操作,并在RLC协议中的RLC实体框图中列出了发送侧存在的发送缓冲区和重传缓冲区。
在LTE PDCP子层协议TS36.323中,对于PDCP PDU的传输和重传,有如下规定:
对于从高层收到的PDCP SDU(Service Data Units,服务数据单元),PDCP子层在关联SN(Sequence Number,序列号),执行头压缩(如果已配置),进行完整性保护(如果已配置)和加密(如果已配置),更新状态变量之后,将生成的对应PDCP PDU(Protocol Data Unit,协议数据单元)递交给RLC子层。
UE(User Equipment,用户装备)侧在切换、RRC(Radio Resource Control,无线资源控制)连接重建,以及RRC连接重建之后的第一次RRC连接重配等过程中将执行PDCP重建立,在重建立时,区分如下三种情况,执行对应的操作:
(1)映射到RLC AM模式的DRB(Data Radio Bearer,数据无线承载)
如果配置了头压缩,则复位上行链路的头压缩协议;
开始使用重建立过程中由高层配置的加密算法及密钥;
从第一个未收到RLC子层成功传输确认的PDCP SDU开始,按COUNT值升序重传或传输所有在重建立之前关联了PDCP SN的PDCP SDU。如果配置了头压缩,则对每个待重传或传输的PDCP SDU执行头压缩;对每个待重传或传输的PDCP SDU执行加密。将处理得到的对应PDCP PDU递交给RLC子层进行传输。
(2)映射到RLC UM模式的DRB
如果配置了头压缩,则复位上行链路的头压缩协议;
将Next_PDCP_TX_SN和TX_HFN都设置为0,即清除之前的COUNT值状态;
开始使用重建立过程中由高层配置的加密算法及密钥;
对于每个已经关联了PDCP SN但是还未递交给RLC子层传输的PDCP SDU,按COUNT值升序执行传输操作:如果配置了头压缩,则对每个PDCP SDU执行头压缩;对每个PDCP SDU执行加密;将处理得到的对应PDCP PDU递交给RLC子层进行传输。
(3)SRB(Signaling Radio Bearer,信令无线承载)
将Next_PDCP_TX_SN和TX_HFN都设置为0,即清除之前的COUNT值状态;
丢弃缓冲区中所有有待传输的PDCP SDU和PDCP PDU;
开始使用重建立过程中由高层配置的加密和完整性保护算法及相应的密钥。
在LTE空口总体协议TS36.300中,对于数据包前转,以及目标eNB的PDCP PDU传输,有如下规定:
在切换过程中,源eNB(evolved Node B,演进型基站)可以向目标eNB前转下行方向的PDCP SDU,前转的PDCP SDU范围与UE侧在重建立过程中重传或传输的PDCP SDU范围一致;在下行方向,目标eNB先传输完前转的PDCP SDU,再传输来自Serving GW(服务网关)的PDCP SDU。
在LTE RLC子层协议TS36.322中,对于发送侧PDCP PDU(RLC SDU)的操作,有如下规定:
发送TM实体、发送UM实体和AM实体发送侧存在发送缓冲区,用于存储来自PDCP子层的RLC SDU;当收到PDCP子层丢弃某个RLC SDU的指示时,仅当此RLC SDU还没有开始传输时,AM RLC实体的发送侧或者发送UM RLC实体丢弃此RLC SDU。
由此可见,目前虽然规定了PDCP子层和RLC子层之间PDCP PDU(RLC SDU)的递交相关操作,并确定在RLC子层存在发送缓冲区,但没有对PDCP子层和RLC子层之间的数据传输的具体实现方式进行规定。
发明内容
本发明实施例提供了一种应用于PDCP实体和RLC实体间的数据传输方法及装置,用以实现PDCP子层到RLC子层的数据传输。
本发明实施例提供的应用于PDCP实体和RLC实体间的数据传输方法,包括:
PDCP实体接收到来自于高层的PDCP SDU后,通过协议处理得到对应的PDCP PDU;
PDCP实体将所述PDCP PDU传输给RLC实体。
本发明实施例提供的应用于PDCP实体和RLC实体间的数据传输装置,包括:PDCP实体和RLC实体;
PDCP实体,用于接收到来自于高层的PDCP SDU后,通过协议处理得到对应的PDCP PDU,并将所述PDCP PDU传输给RLC实体;
RLC实体,用于接收PDCP实体传输的PDCP PDU,并通过协议处理得到对应的RLC PDU。
本发明另一实施例提供的应用于PDCP实体和RLC实体间的数据传输方法中,PDCP子层设置有发送缓冲区,该方法包括:
PDCP实体接收到来自于高层的PDCP SDU后,将所述PDCP SDU存放在PDCP子层发送缓冲区中;
当所述PDCP实体接收到RLC实体发送的RLC SDU请求后,根据所述RLC SDU请求,将PDCP子层发送缓冲区中的PDCP SDU所对应的PDCP PDU传输给RLC实体。
本发明的另一实施例提供的应用于PDCP实体和RLC实体间的数据传输装置,包括:PDCP子层发送缓冲区单元、PDCP实体和RLC实体,其中:
PDCP子层发送缓冲区单元,用于存储尚未向RLC实体传输的对应PDCP PDU的PDCP SDU;
PDCP实体,用于接收到来自于高层的PDCP SDU后,将所述PDCP SDU存放在PDCP子层发送缓冲区单元中;以及,当接收到RLC实体发送的RLC SDU请求后,根据所述RLC SDU请求,将PDCP子层发送缓冲区单元中的PDCP SDU所对应的PDCP PDU传输给RLC实体;
RLC实体,用于向PDCP实体发送RLC SDU请求;以及,接收PDCP实体传输的PDCP PDU。
与现有技术相比,本发明具有如下有益技术效果:
通过PDCP实体在接收到高层PDCP SDU后,将该PDCP SDU对应的PDCP PDU传输给RLC实体,从而实现了PDCP子层到RLC子层之间的数据包传输操作。
具体实施方式
现有技术规定了PDCP子层和RLC子层之间PDCP PDU(RLC SDU)的递交相关操作,并确定在RLC子层存在发送缓冲区,但没有规定PDCP PDU(RLC SDU)具体在什么时刻从PDCP子层递交到RLC子层,以及PDCP子层和RLC子层在发送侧如何规划发送缓冲区,即PDCP子层是否存在发送缓冲区,以及PDCP子层和RLC子层缓存数据的范围。本发明实施例为了解决上述问题,提供了应用于PDCP子层和RLC子层间的数据传输机制。
下面对本发明实施例进行详细描述。
本发明的以下实施例中,将属于PDCP子层且执行PDCP子层相关处理的功能模块称为PDCP实体,将属于RLC子层且执行RLC子层相关处理的功能模块称为RLC实体。
以PDCP子层向RLC子层递交PDCP PDU的时刻进行区分,本发明实施例提供了如下两种实现方案:
方案(一):PDCP实体在收到来自高层(RRC层或IP层)的PDCP SDU后,直接执行协议上规定的处理,将得到的对应PDCP PDU递交给RLC子层;
方案(二):PDCP实体在收到来自高层(RRC层或IP层)的PDCP SDU后,将PDCP SDU存放在其所维护的PDCP子层发送缓冲区中,当收到来自RLC子层的RLC SDU请求后,再对确定范围内的PDCP SDU执行协议上规定的处理,将得到的对应PDCP PDU递交给RLC实体。
当PDCP实体采用上述方案(一)向RLC实体传输数据时,RLC实体在收到来自MAC(Media Access Control,媒体接入控制)子层的传输机会通知后,直接基于其所维护的RLC子层发送缓冲区中的RLC SDU组装RLC PDU,并下发给MAC子层。其完整处理流程可如图1所示,包括以下步骤:
步骤101,PDCP实体接收来自高层(RRC层或IP层)的PDCP SDU。
步骤102,PDCP实体根据协议处理接收到的PDCP SDU,得到对应的PDCP PDU。
步骤103,PDCP实体将协议处理后得到的PDCP PDU递交给RLC实体。
步骤104,RLC实体将收到的RLC SDU(即PDCP PDU)存放到RLC子层的发送缓冲区中。
至此,完成了PDCP实体将PDCP PDU传输给RLC子层缓冲区的过程。当MAC实体进行数据调度(如eNB侧的MAC实体)或进行逻辑信道优先级处理(如UE侧的MAC实体)时,该流程还可包括以下步骤:
步骤105~106,MAC实体根据调度结果或处理结果,向RLC实体发送传输机会的通知。
步骤107~108,RLC实体基于RLC子层发送缓冲区中的RLC SDU组装RLC PDU,并将组装后的RLC PDU递交到MAC实体。
进一步地,PDCP子层还可维护有发送缓冲区,当采用RLC AM模式时,PDCP实体还要将递交给RLC子层的PDCP PDU对应的原始PDCP SDU拷贝一份存到PDCP子层的发送缓冲区备份。RLC实体还要将递交给MAC子层的初始传输RLC PDU拷贝到RLC子层的重传缓冲区备份,当接收到数据接收方确认正确接收的ACK后将重传缓冲区中备份的相应RLC PDU或RLC PDU部分进行删除,否则保留在该重传缓冲区。RLC实体接收到ACK后向PDCP实体发送确认信息,PDCP实体在收到RLC实体发送的确认信息后删除PDCP子层发送缓冲区中备份的相应PDCP SDU。
这种数据传递方式在组装和发送RLC PDU时,不需要考虑向PDCP子层请求RLC SDU,因此处理流程简单,处理时延小。
针对上述方案(一)中采用RLC AM模式的情况,以及针对采用方案(二)的情况,本发明实施例提出了一种LTE空口层二的发送缓冲区部署方案,如图2所示。PDCP子层和RLC子层分别维护有发送缓冲区。PDCP子层维护的发送缓冲区用于存放尚未向RLC子层递交对应PDCP PDU的PDCP SDU,在RLC AM模式下,还可用于存放已经向RLC子层递交对应PDCP PDU,但RLC子层还未确认其正确传输的PDCP SDU。RLC子层维护的发送缓冲区用于存放PDCP子层递交的PDCP PDU(即RLC SDU)或PDCP PDU片段,这些RLC SDU或RLC SDU片段还没有开始递交给MAC子层进行HARQ(Hybrid Automatic Repeat Request,,混合自动重传请求)传输。进一步的,在RLC AM模式下,RLC子层还维护有重传缓冲区,用于存放已经发送但未被对端确认正确传输的RLC PDU或RLC PDU片段。
基于上述发送缓冲区部署方案,PDCP子层可以实现UE侧重建立过程,eNB侧数据前转过程,以及根据需要向RLC子层递交PDCP PDU的过程;RLC子层可以实现基于MAC子层的请求组装和下发RLC PDU的过程。
当PDCP实体采用上述方案(二)向RLC实体传输数据时,RLC实体在收到来自MAC实体的传输机会通知后,在封装RLC PDU时,根据待下发的数据量,确定发送缓冲区中的RLC SDU是否满足当前下发数据量要求。如果满足要求,则RLC实体直接基于发送缓冲区中的RLC SDU组装RLC PDU,并下发给MAC实体。如果不满足要求,则RLC实体向PDCP子层请求一定数据量的RLC SDU。在收到PDCP实体下发的PDCP PDU(RLC SDU)后,RLC实体将这些RLC SDU放入发送缓冲区,并基于发送缓冲区中的RLC SDU组装RLC PDU,然后下发给MAC实体。
其中,RLC实体确定向PDCP实体所请求的RLC SDU数据量时,有两种方式:
方式(一):RLC实体每次向PDCP实体请求预定数据量的RLC SDU;
方式(二):RLC实体每次向PDCP实体请求所需数据量的RLC SDU。
当采用方式(一)确定RLC SDU的数据量时,RLC实体每次向PDCP实体请求预定数据量的RLC SDU,其完整处理流程如图3所示,PDCP实体收到来自高层(RRC层或IP层)的PDCP SDU后,将PDCP SDU存放在PDCP子层的发送缓冲区中。当MAC实体进行数据调度(如eNB侧的MAC实体)或进行逻辑信道优先级处理(如UE侧的MAC实体)时,该流程还可包括以下步骤:
步骤301~302,MAC实体根据调度结果或处理结果,向RLC发送传输机会通知。
步骤303,RLC实体根据发送缓冲区中待下发的RLC SDU对应的RLC PDU的数据量,确定发送缓冲区的RLC SDU是否满足当前下发数据量要求。如果满足,则RLC实体基于发送缓冲区中的RLC SDU组装RLC PDU,向MAC子层递交RLC PDU,然后结束本次数据传输处理流程;如果不满足,转步骤304。
具体实施时,RLC实体可根据发送缓冲区中待下发的RLC SDU对应的RLC PDU的数据量,以及传输机会通知所请求的数据量,判断前者是否大于或等于后者,若是,则认为发送缓冲区中的RLC SDU满足当前下发数据量要求,否则不满足要求。
步骤304,RLC实体向PDCP子层请求预定数据量的RLC SDU。其中,预定数据量的确定方法有如下几种:
(1)预定数据量为硬件支持的缓冲区大小;
(2)预定数据量为RLC子层统计的MAC子层单次请求数据量的最大值;
(3)预定数据量为RLC子层统计的MAC子层单次请求数据量的平均值;
步骤305~306,PDCP实体根据发送缓冲区中PDCP SDU对应的PDCP PDU数据量以及RLC实体所请求的预定数据量,确定出下发给RLC实体的PDCP PDU数据量并下发该数据量的PDCP PDU。
具体实施时,如果PDCP子层的发送缓冲区中存储的所有PDCP SDU对应的PDCP PDU的数据量小于此预定数据量,则下发所有PDCP SDU对应的PDCP PDU;如果PDCP子层的发送缓冲区中存储的PDCP SDU对应的PDCP PDU的数据量不小于此预定数据量,则PDCP实体在确保下发的PDCP PDU的数据量不超出此预定数据量的情况下,尽量使下发的数据量接近此预定数据量。
步骤307~309,RLC实体将收到的PDCP PDU(RLC SDU)放入发送缓冲区,并基于RLC子层发送缓冲区中的RLC SDU组装RLC PDU,将组装后的RLC PDU递交到MAC实体。
如果RLC实体在将接收到的PDCP PDU(RLC SDU)放入发送缓冲区后发现该发送缓冲区中的RLC SDU仍不满足MAC实体所请求传输的数据量,则RLC实体可再次向PDCP实体请求预定数据量的RLC SDU,此后的处理流程可如上所述,在此不再赘述。
进一步地,当采用RLC AM模式时,PDCP实体还要将递交给RLC子层的PDCP PDU对应的原始PDCP SDU拷贝一份存到PDCP子层的发送缓冲区备份。RLC实体还要将递交给MAC子层的RLC PDU拷贝到RLC子层的重传缓冲区备份,当接收到数据接收方确认正确接收的ACK后将重传缓冲区中备份的相应RLC PDU或RLC PDU部分进行删除,否则保留在该重传缓冲区中。RLC实体接收到ACK后向PDCP实体发送确认信息,PDCP实体在收到RLC实体发送的确认信息后删除PDCP子层发送缓冲区中备份的相应PDCP SDU。
这种数据传递方式RLC子层在组装和下发RLC PDU过程中基本能处理完请求的RLC SDU,可能在发送缓冲区中剩余个别RLC SDU或RLC SDU片段,对发送缓冲区的需求较小。当PDCP子层发生重建立时,PDCP子层发送缓冲区中的PDCP SDU可以继续传输(UE侧)或者进行前转(eNB侧),发生数据包丢失的概率较小。
当采用方式(二)确定RLC SDU的数据量时,RLC实体每次向PDCP实体请求所需数据量的RLC SDU,其完整处理流程如图4所示,PDCP实体收到来自高层(RRC层或IP层)的PDCP SDU后,将PDCP SDU存放在PDCP子层的发送缓冲区中。当MAC实体进行数据调度(如eNB侧的MAC实体)或进行逻辑信道优先级处理(如UE侧的MAC实体)时,该流程还可包括以下步骤:
步骤401~402,MAC实体根据调度结果或处理结果,向RLC发送传输机会通知。
步骤403,RLC实体根据发送缓冲区中待下发的RLC SDU对应的RLC PDU的数据量,确定发送缓冲区的RLC SDU是否满足当前下发数据量要求。如果满足,则RLC实体基于发送缓冲区中的RLC SDU组装RLC PDU,向MAC子层递交RLC PDU,然后结束本次数据传输处理流程;如果不满足,转步骤404。
步骤404,RLC实体向PDCP实体请求所需数据量的RLC SDU。
具体实施时,RLC实体可将MAC实体所请求的数据量与发送缓冲区中当前所有RLC SDU对应的RLC PDU的数据量之间的差值,作为向PDCP实体请求的RLC SDU数据量。
步骤405~406,PDCP实体根据发送缓冲区中PDCP SDU对应的PDCP PDU数据量以及RLC实体所请求的所需数据量,确定出下发给RLC实体的PDCP PDU数据量并下发该数据量的PDCP PDU。
具体实施时,如果PDCP子层的发送缓冲区中存储的所有PDCP SDU对应的PDCP PDU的数据量小于此预定数据量,则下发所有PDCP SDU对应的PDCP PDU;如果PDCP子层的发送缓冲区中存储的PDCP SDU对应的PDCP PDU的数据量不小于此预定数据量,则PDCP实体在确保下发的PDCP PDU的数据量不小于此预定数据量的情况下,尽量使下发的数据量接近此预定数据量。
步骤407~409,RLC实体将收到的PDCP PDU(RLC SDU)放入发送缓冲区,并基于RLC子层发送缓冲区中的RLC SDU组装RLC PDU,将组装后的RLC PDU递交到MAC实体。
进一步地,当采用RLC AM模式时,PDCP实体还要将递交给RLC子层的PDCP PDU对应的原始PDCP SDU拷贝一份存到PDCP子层的发送缓冲区备份。RLC实体还要将递交给MAC子层的RLC PDU拷贝到RLC子层的重传缓冲区备份,当接收到数据接收方确认正确接收的ACK后将重传缓冲区中备份的相应RLC PDU或RLC PDU部分进行删除,否则保留在该重传缓冲区中。RLC实体接收到ACK后向PDCP实体发送确认信息,PDCP实体在收到RLC实体发送的确认信息后删除PDCP子层发送缓冲区中备份的相应PDCP SDU。
这种数据传递方式的优点与采用方式(一)确定RLC SDU的数据量的数据传递方式相同。
通过以上流程可以看出,本发明实施例填补了现有技术中LTE空口PDCP子层与RLC子层之间传输数据的机制的空白,保证了在时延和缓存开销可控的前提下,实现PDCP子层和RLC子层之间的完整交互流程。
基于相同的技术构思,本发明实施例还提供了一种应用于PDCP实体和RLC实体间的数据传输装置。
参见图5,为本发明实施例提供的应用于PDCP实体和RLC实体间的数据传输装置示意图,该装置可应用于上述方案(一),可应用于网络侧设备中,也可应用于用户侧设备中,如图所示,该装置可包括:PDCP实体(或称PDCP处理模块,以下同)501、RLC实体(或称RLC处理模块,以下同)502,还可包括位于RLC子层的发送缓冲区单元和重传缓冲区单元,其中:
PDCP实体501,用于接收到来自于高层的PDCP SDU后,通过协议处理得到对应的PDCP PDU,并将所述PDCP PDU传输给RLC实体502;
RLC实体502,用于接收PDCP实体传输的PDCP PDU,并通过协议处理得到对应的RLC PDU。
当采用RLC AM模式时,上述装置还可包括PDCP子层发送缓冲区单元503,位于PDCP子层,用于缓存未被RLC实体确认正确传输的PDCP SDU。
进一步地,RLC实体502可在接收到MAC实体的传输机会通知后,根据RLC子层发送缓冲区单元中的RLC SDU组装RLC PDU,并将组装的RLC PDU发送给MAC实体。
参见图6,为本发明实施例提供的应用于PDCP实体和RLC实体间的数据传输装置示意图,该装置可应用于上述方案(二),可应用于网络侧设备中,也可应用于用户侧设备中,如图所示,该装置可包括:PDCP子层发送缓冲区单元601、PDCP实体602、RLC实体603,还可包括位于RLC子层的发送缓冲区单元和重传缓冲区单元,其中:
PDCP子层发送缓冲区单元601,用于存储尚未向RLC子层传输对应PDCP PDU的PDCP SDU;
PDCP实体602,用于接收到来自于高层的PDCP SDU后,将所述PDCP SDU存放在PDCP子层发送缓冲区单元601中;以及,当接收到RLC实体602发送的RLC SDU请求后,根据所述RLC SDU请求,将PDCP子层发送缓冲区单元中的PDCP SDU所对应的PDCP PDU传输给RLC实体603;
RLC实体603,用于向PDCP实体601发送RLC SDU请求;以及,接收PDCP实体601传输的PDCP PDU,进一步的,将接收到的PDCP PDU存储于RLC子层发送缓冲区单元中。
在所述RLC SDU请求用来请求预定数据量的RLC SDU的情况下,PDCP实体602可根据所述RLC SDU请求所请求的预定数据量的RLC SDU和PDCP子层发送缓冲区单元601中的PDCP SDU所对应的PDCP PDU数据量,确定传输给RLC实体603的PDCP PDU数据量,并将相应数据量的PDCP PDU传输给RLC实体603。
具体地,所述预定数据量的大小为:硬件支持的缓冲区大小;或者,RLC子层统计的MAC实体单次请求数据量的最大值;或者,RLC子层统计的MAC实体单次请求数据量的平均值。
在所述RLC SDU请求用来请求当前传输机会所需数据量的RLC SDU的情况下,PDCP实体602可根据所述RLC SDU请求所请求的当前传输机会所需数据量的RLC SDU和PDCP子层发送缓冲区单元中的PDCP SDU对应的PDCP PDU数据量,确定传输给RLC实体603的PDCP PDU数据量,并将相应数据量的PDCP PDU传输给RLC实体603。
具体地,RLC实体603可在接收到MAC实体发送的的传输机会通知后,发送所述RLC SDU请求。
PDCP子层发送缓冲区单元601还可用于:当采用RLC AM模式时,缓存未被RLC实体确认正确传输的PDCP SDU。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。