一种进行数据处理的方法和设备
技术领域
本发明涉及无线通信技术领域,特别涉及一种进行数据处理的方法和设备。
背景技术
UE(终端,也称为用户设备)和eNB(演进基站)之间的数据传输,通常经过PDCP(Packet Data Convergence Protocol,分组数据聚合协议)、RLC(Radio Link Control,无线链路控制)、MAC(Medium Access Control,媒体接入控制)和PHY(物理层)的传输,每一层完成不同的数据处理。PDCP主要是进行安全操作和头压缩解压缩处理,例如加密和完整性保护,ROHC(RObust Header Compression,鲁棒性头压缩)压缩和解压缩等;RLC主要完成数据的分段级联和按序递交及ARQ(Automatic Repeat reQuest,自动重传请求)数据传输保障;MAC主要完成调度和不同逻辑信道的级联处理及HARQ(Hybrid Automatic RepeatreQuest,混合自动重传请求)操作;物理层完成传输块成包和空口发送。
RLC层支持三种模式:透明模式(TM)、非确认模式(UM)、确认模式(AM)。当前RLC AM和UM在进行发送数据时,都是将RLC SDU(Service Data Unit,服务数据单元)逐个组织形成RLC PDU的,即RLC SDU和RLC PDU(Protocol Data Unit,协议数据单元)一对一映射。当MAC传输机会到达时,RLC根据传输资源的大小,组织若干个RLC PDU和必要的RLC PDU分段,发送至MAC,进行组包并发送。
RLC的状态报告反馈中,必选的会携带ACK_SN(ACK:ACKnowledge,正确应答指令;SN:Sequence Number,序列号)信息,以指示当前可以确认接收状态的最高的PDU的SN号。当存在丢包的情况下,也会在同一个状态报告中携带NACK_SN(NACK:Negative ACKnowledge,错误应答指令)以及可能的分段信息,以指示哪些PDU或PDU分段丢失了,需要重传。RLC通过状态报告反馈和重传机制来达到对较高数据传输成功率的保障,达到业务QoS(Quality ofService,业务质量)要求。
移动通信系统未来发展中,为了更好的满足用户需求,极大提升网络容量和吞吐量,在5G将引入新的空口传输方式,更多的网络节点,复杂的网络拓扑。在5G网络中,存在一些高频的站点,这些站点虽然能够提供较高的传输速率但一般稳定性较差,因此在5G网络中,为了保证一些重要数据的传输可靠性,可以针对这些数据启动高层的重复传输机制,以提高传输可靠性和满足时延要求。
现有的PDCP机制,当应用于重复模式时,可能会存在当两条链路速率不匹配的情况下,一条链路传输速率快,另一条链路传输速率慢,当传输速率快的链路已经成功传输并且更新了接收端的窗口时,传输速率慢的链路仍旧会有一些旧的数据包在发送,这些旧的数据包将会对发送端的窗口造成混淆,从而进行错误的接收操作,进一步干扰了PDCP层HFN(HyperFrame Number,超帧号)的计算,造成HFN失步,从而造成安全操作失败,更严重的会导致错误的上报给高层,进行相应拆链等处理。
综上所述,目前重复模式如果有多条链路速率不匹配,有可能造成HFN失步,从而造成安全操作失败。
发明内容
本发明提供一种进行数据处理的方法和设备,用以解决现有技术中存在的重复模式如果有多条链路速率不匹配,有可能造成HFN失步,从而造成安全操作失败的问题。
本发明实施例提供一种进行数据处理的方法,该方法包括:
发送设备的PDCP层确定发送窗口的位置,其中所述发送窗口的长度不大于SN空间的一半;
所述发送设备根据所述发送窗口发送PDU。
本发明实施例提供一种进行数据处理的方法,该方法包括:
接收设备的PDCP层确定接收窗口的位置,其中所述接收窗口的长度不大于SN空间的一半;
所述接收设备根据所述接收窗口接收PDU。
本发明实施例提供一种进行数据处理的发送设备,该发送设备包括:
位于PDCP层的发送位置确定模块,用于确定发送窗口的位置,其中所述发送窗口的长度不大于SN空间的一半;
发送模块,用于根据所述发送窗口发送PDU。
本发明实施例提供一种进行数据处理的接收设备,该接收设备包括:
位于PDCP层的接收位置确定模块,用于确定接收窗口的位置,其中所述接收窗口的长度不大于SN空间的一半;
接收模块,用于根据所述接收窗口接收PDU。
本发明实施例将发送窗口和接收窗口设置为长度不大于SN空间的一半,使得接收端能够有效的判断数据的HFN值,避免了HFN的混淆以及对状态维护和安全操作造成的错误影响,保证了数据传输的连续性和效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例进行数据处理的系统结构示意图;
图2为本发明实施例第一种发送设备的结构示意图;
图3为本发明实施例第一种接收设备的结构示意图;
图4为本发明实施例第二种发送设备的结构示意图;
图5为本发明实施例第二种接收设备的结构示意图;
图6为本发明实施例发送设备侧进行数据处理的方法流程示意图;
图7为本发明实施例接收设备侧进行数据处理的方法流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所述,本发明实施例进行数据处理的系统包括:
发送设备10,用于通过PDCP层确定发送窗口的位置,其中所述发送窗口的长度不大于SN空间的一半;根据所述发送窗口发送PDU。
接收设备20,用于通过PDCP层确定接收窗口的位置,其中所述接收窗口的长度不大于SN空间的一半;根据所述接收窗口接收PDU。
当窗口大于SN空间的一半时,接收端和发送端对数据是否发生了Wrap around(翻转)的判断将可能产生不一致的结果,从而对HFN判断造成错误。本发明实施例将发送窗口和接收窗口设置为长度不大于SN空间的一半,使得接收端能够有效的判断数据的HFN值,从而避免了HFN的混淆以及对状态维护和安全操作造成的错误影响,保证了数据传输的连续性和效率。
本发明实施例发送设备发送位于所述发送窗口内的SN对应的PDU,以及停止发送位于所述发送窗口外的SN对应的PDU;
相应的,接收设备接收处理位于接收窗口内的SN对应的PDU,以及丢弃位于接收窗口外的SN对应的PDU。
发送设备在停止发送位于所述发送窗口外的SN对应的PDU之后,如果发送窗口位置发生变化,之前位于发送窗口外的SN,现在位于发送窗口内,则发送设备会继续发送。
本发明实施例可以设置一个重复模式(duplication mode),在需要重复传输时可以启动重复模式,这样可以使发送设备的PDCP层采用本发明实施例的方案维护发送窗口。
相应的,接收设备的PDCP层在重复模式启动后,也同样采用本发明实施例的方案维护接收窗口。
也可以不设置重复模式,即不管是否重复传输,发送设备的PDCP层都可以采用本发明实施例的方案维护发送窗口;
相应的,不管是否重复传输,接收设备的PDCP层同样采用本发明实施例的方案维护接收窗口。
本发明实施例的发送窗口的长度不大于SN空间的一半,接收窗口的长度不大于SN空间的一半。
也就是说,本发明实施例的PDCP发送窗口机制,保证AM下,在所有重复传输的链路的空口等待确认的PDU的SN范围,不超过SN最大空间的一半,保证UM下在所有重复传输的链路的空口发送的PDU的SN范围,不超过SN最大空间的一半。以确保接收端可以无误的对数据包进行判断,避免HFN计算错误。
下面针对AM模式和UM模式分别进行说明。
一、AM模式。
所述发送设备的PDCP层根据连续收到确认的PDU的SN,确定所述发送窗口的下边界,并根据所述发送窗口的下边界和所述发送窗口的长度确定发送窗口的位置。
AM模式采用下边界驱动的发送窗口模式,其中下边界定义为在重复传输的链路上均已经连续收到确认的PDU的SN的最高值。
发送窗口不大于等于当前的SN空间的一半。SN长度的不同,SN空间的大小也不同,例如12bit SN,SN空间大小为212=4096,则窗口大小为2048。窗口的上边界定义为窗口下边界加上窗口大小。
其中,发送设备的PDCP层根据连续收到确认的PDU的SN,确定所述发送窗口的下边界时,如果有一条链路,所述发送设备的PDCP层通过RLC AM的状态报告,将所述链路连续收到确认的PDU的最大SN作为所述发送窗口的下边界。
比如通过RLC AM的状态报告确定SN20之前都已经确认接收设备收到,则将SN为20作为发送窗口的下边界。
若有多条链路,所述发送设备的PDCP层通过RLC AM的状态报告,确定多条链路中每条链路连续收到确认的PDU的最大SN;从确定的每条链路最大SN中选取最小的SN,并将选取的最小的SN作为所述发送窗口的下边界
比如有链路A和链路B两条链路,通过RLC AM的状态报告确定链路A SN20之前都已经确认接收设备收到,链路B SN15之前都已经确认接收设备收到,则将SN15作为发送窗口的下边界。
针对AM模式,若连续收到确认的PDU的SN发生变化,所述发送设备的PDCP层对所述发送窗口的下边界进行更新。
比如有一条链路,之前是将SN20作为发送窗口的下边界,后续通过RLC AM的状态报告确定SN25之前都已经确认接收设备收到,则将SN为25作为发送窗口的下边界;
相应的,发送窗口的位置也会进行更新。
比如有链路A和链路B两条链路,之前是将SN15作为发送窗口的下边界,后续通过RLC AM的状态报告确定链路B SN30之前都已经确认接收设备收到,之前确定的链路A的SN20未更新,则将SN20作为发送窗口的下边界。
相应的,发送窗口的位置也会进行更新。
对于接收侧,接收设备的PDCP层根据连续接收的PDU的SN的最高值或当前所有接收缺口中最早出现的接收缺口对应的SN,确定所述发送窗口的下边界;
所述接收设备的PDCP层根据所述接收窗口的下边界和所述接收窗口的长度确定接收窗口的位置。
比如根据连续接收的PDU的SN的最高值确定所述发送窗口的下边界,若SN20之前都成功接收,则将SN20+1作为发送窗口的下边界。
比如根据接收缺口对应的SN确定所述发送窗口的下边界,若SN20之前除了SN10~SN15之外都成功接收,则将SN10作为发送窗口的下边界;还比如若SN20之前除了SN8、SN10~SN15之外都成功接收,SN8是最早的接口缺口,则将SN8作为发送窗口的下边界。这里需要说明的是,由于SN会有翻转的情况,即达到SN最大值后会重新继续分配,所以最早出现的接收缺口并不一定是最小的SN,比如SN4095,SN0,SN2是接收缺口,而后面两个数值虽然较小,但其实是由4096发生翻转之后的较新的数据,因此SN4095作为发送窗口的下边界。
在实施中,如果出现接收缺口,可以针对该缺口启动重排序定时器超,当重排序定时器超时之前缺口处的数据均正确接收,则停止重排序定时器,并将顺序接收的连续数据递交给高层,同时更新窗口下边界。当定时器超时,仍旧没有填满接收缺口,则放弃等待,更新窗口下边界到下一个待接收的数据处,等待的数据也按升序递交高层。
例如最先出现了接收缺口SN8,启动了重排序定时器,后续又出现了接收缺口SN10,SN15,则当重排序定时器超时之后,如果SN8仍旧没有填满,则放弃等待,直接将窗口下边界移动到SN10。
比如已经正确接收到SN20,SN20之前有一个接收缺口为SN10~SN15,如果重排序定时器超时之前收到SN10~SN15的数据,则停止重排序定时器,并将SN10~SN15的数据递交给高层,同时更新窗口下边界。
如果重排序定时器超时之前收到SN10~SN13的数据,SN14和SN15未收到,则更新窗口下边界到下一个待接收的数据处,即SN21。
二、UM模式。
对于UM模式又可以分为两种。
1、通过接收成功的SN确定。
所述发送设备的PDCP层根据连续收到确认的PDU的SN,确定所述发送窗口的下边界,并根据所述发送窗口的下边界和所述发送窗口的长度确定发送窗口的位置。
UM模式采用下边界驱动的发送窗口模式,其中下边界定义为在重复传输的链路上均已经连续收到确认的PDU的SN的最高值。
发送窗口不大于等于当前的SN空间的一半。例如12bit SN,SN空间大小为212=4096,则窗口大小为2048。窗口的上边界定义为窗口下边界加上窗口大小。
其中,发送设备的PDCP层根据连续收到确认的PDU的SN,确定所述发送窗口的下边界时,若有一条链路,所述发送设备的PDCP层通过HARQ的反馈,将所述链路连续收到HARQ确认的PDU的最大SN作为所述发送窗口的下边界。
比如通过RLC UM的状态报告确定SN20之前都已经确认接收设备收到,则将SN为20作为发送窗口的下边界。
若有多条链路,所述发送设备的PDCP层通过HARQ的反馈,确定多条链路中每条链路连续收到HARQ确认的PDU的最大SN;从确定的每条链路最大SN中选取最小的SN,并将选取的最小的SN作为所述发送窗口的下边界。
比如有链路A和链路B两条链路,通过RLC UM的状态报告确定链路A SN20之前都已经确认接收设备收到,链路B SN15之前都已经确认接收设备收到,则将SN15作为发送窗口的下边界。
针对UM模式,若所述发送窗口的下边界是根据连续收到确认的PDU的SN确定的,且连续收到确认的PDU的SN发生变化,所述发送设备的PDCP层对所述发送窗口的下边界进行更新。
比如有一条链路,之前是将SN20作为发送窗口的下边界,后续通过RLC UM的状态报告确定SN25之前都已经确认接收设备收到,则将SN为25作为发送窗口的下边界;
相应的,发送窗口的位置也会进行更新。
比如有链路A和链路B两条链路,之前是将SN15作为发送窗口的下边界,后续通过RLC UM的状态报告确定链路B SN30之前都已经确认接收设备收到,之前确定的链路A的SN20未更新,则将SN20作为发送窗口的下边界。
相应的,发送窗口的位置也会进行更新。
对于接收侧,接收设备的PDCP层根据连续接收的PDU的SN的最高值或当前所有接收缺口中最早出现的接收缺口对应的SN,确定所述发送窗口的下边界;
所述接收设备的PDCP层根据所述接收窗口的下边界和所述接收窗口的长度确定接收窗口的位置。
比如根据连续接收的PDU的SN的最高值确定所述发送窗口的下边界,若SN20之前都成功接收,则将SN20+1作为发送窗口的下边界。
比如根据接收缺口对应的SN确定所述发送窗口的下边界,若SN20之前除了SN10~SN15之外都成功接收,则将SN10作为发送窗口的下边界;还比如若SN20之前除了SN8、SN10~SN15之外都成功接收,SN8是最早的接口缺口,则将SN8作为发送窗口的下边界。这里需要说明的是,由于SN会有翻转的情况,即达到SN最大值后会重新继续分配,所以最早出现的接收缺口并不一定是最小的SN,比如SN8、SN10~SN15是接口缺口,若SN8是翻转后的,则最早的接口缺口为SN10~SN15,将SN10作为发送窗口的下边界。
在实施中,如果出现接收缺口,可以针对该缺口启动重排序定时器超,当重排序定时器超时之前缺口处的数据均正确接收,则停止重排序定时器,并将顺序接收的连续数据递交给高层,同时更新窗口下边界。当定时器超时,仍旧没有填满接收缺口,则放弃等待,更新窗口下边界到下一个待接收的数据处,等待的数据也按升序递交高层。
2、通过发送的SN确定。
所述发送设备的PDCP层根据连续发送的PDU的SN,确定所述发送窗口的下边界,并根据所述发送窗口的下边界和所述发送窗口的长度确定发送窗口的位置
UM模式采用下边界驱动的发送窗口模式,其中下边界定义为在重复传输的链路上均已经连续传输的PDU的SN的最高值。
发送窗口不大于等于当前的SN空间的一半。例如12bit SN,SN空间大小为212=4096,则窗口大小为2048。窗口的上边界定义为窗口下边界加上窗口大小。
其中,发送设备的PDCP层根据连续发送的PDU的SN,确定所述发送窗口的下边界时,如果有一条链路,所述发送设备的PDCP层通过RLC UM的发送状态,将所述链路连续发送的PDU的最大SN作为所述发送窗口的下边界。
比如通过RLC UM的发送状态确定SN20之前都已经发送,则将SN为20作为发送窗口的下边界。
若有多条链路,所述发送设备的PDCP层通过RLC UM的发送状态,确定多条链路中每条链路连续收到连续发送的PDU的最大SN;从确定的每条链路最大SN中选取最小的SN,并将选取的最小的SN作为所述发送窗口的下边界;
比如有链路A和链路B两条链路,通过RLC UM的状态报告确定链路A SN20之前都已经发送,链路B SN15之前都已经发送,则将SN15作为发送窗口的下边界。
针对UM模式,若所述发送窗口的下边界是根据连续发送的PDU的SN确定的,且连续发送的PDU的SN发生变化,所述发送设备的PDCP层对所述发送窗口的下边界进行更新
比如有一条链路,之前是将SN20作为发送窗口的下边界,后续通过RLC UM的状态报告确定SN25之前都已经发送,则将SN为25作为发送窗口的下边界;
相应的,发送窗口的位置也会进行更新。
比如有链路A和链路B两条链路,之前是将SN15作为发送窗口的下边界,后续通过RLC UM的状态报告确定链路B SN30之前都已经发送,之前确定的链路A的SN20未更新,则将SN20作为发送窗口的下边界。
相应的,发送窗口的位置也会进行更新。
对于接收设备,接收设备的PDCP层根据连续接收的PDU的SN的最高值或当前所有接收缺口中最早出现的接收缺口对应的SN,确定所述发送窗口的下边界;
所述接收设备的PDCP层根据所述接收窗口的下边界和所述接收窗口的长度确定接收窗口的位置。
比如根据连续接收的PDU的SN的最高值确定所述发送窗口的下边界,若SN20之前都成功接收,则将SN20+1作为发送窗口的下边界。
比如根据接收缺口对应的SN确定所述发送窗口的下边界,若SN20之前除了SN10~SN15之外都成功接收,则将SN10作为发送窗口的下边界;还比如若SN20之前除了SN8、SN10~SN15之外都成功接收,SN8是最早的接口缺口,则将SN8+1作为发送窗口的下边界。这里需要说明的是,由于SN会有翻转的情况,即达到SN最大值后会重新继续分配,所以最早出现的接收缺口并不一定是最小的SN,比如SN8、SN10~SN15是接口缺口,若SN8是翻转后的,则最早的接口缺口为SN10~SN15,将SN10+1作为发送窗口的下边界。
在实施中,如果出现接收缺口,可以针对该缺口启动重排序定时器超,当重排序定时器超时之前缺口处的数据均正确接收,则停止重排序定时器,并将顺序接收的连续数据递交给高层,同时更新窗口下边界。当定时器超时,仍旧没有填满接收缺口,则放弃等待,更新窗口下边界到下一个待接收的数据处,等待的数据也按升序递交高层。
可选的,本发明实施例还提供了几种优化方案。
方案一、若有多条链路,则所述发送设备的PDCP层通知RLC层放弃发送第一特定PDU;
其中,所述第一特定PDU为在至少一条链路上发送并收到确认(即发送成功),在至少一条链路上未分配SN的PDU。
比如有链路A和链路B,如果链路A上对于一个PDU已经发送成功,而该PDU在链路B上未分配SN,则该PDU为第一特定PDU,PDCP层可以通知RLC层放弃发送该PDU。
方案二、若有多条链路,则所述发送设备的PDCP层通知RLC层放弃发送第二特定PDU;
其中,所述第二特定PDU为在至少一条链路上发送并收到确认(即发送成功),在至少一条链路上未进行发送的PDU。
比如有链路A和链路B,如果链路A上对于一个PDU已经发送成功,而该PDU在链路B上未发送,则该PDU为第二特定PDU,PDCP层可以通知RLC层放弃发送该PDU。
在实施中,本发明实施例的PDCP层和RLC层可以位于同一个实体中,也可以位于两个不同的物理实体,例如网络侧采取CU-DU(CU:Central Unit,中心单元;DU:DistributedUnit,分布式单元)的架构,PDCP模块位于CU实体,而RLC模块位于DU实体,或者双连接split(分离)承载的架构里,PDCP模块位于MeNB(主演进基站),而RLC模块位于SeNB(辅演进基站),此时RLC和PDCP之间的交互需要在接口进行传输,一种可行的传输方式,是RLC不断的向PDCP实体发送“连续发送成功的PDCP SN的最高值”,以上报自己的确认状态。而PDCP实体根据来自两条链路的数值,更新发送窗口下边界。
可选的,本发明实施例的接收设备可以将位于接收窗口外的SN确定为位于接收窗口下边界之下。这样可以更准确计算HFN。
比如COUNT值一共32位,例如低12位为SN,高20位为HFN。
窗口下边界HFN是确定的,根据接收包位于下边界之下的原则,来确定HFN,进而获得安全输入参数COUNT。
例如下边界SN=0,HFN=h,窗口为(0,2048),如果接收到一个新包4095,那么这是一个窗口之外的包,位于下边界之下,则其HFN=h-1,COUNT值相应合并HFN和SN,再进行安全操作。
可选的,如果接收设备需要丢弃位于接收窗口外的SN对应的PDU,则丢弃位于接收窗口外的SN对应的PDU之前,还可以对待丢弃的数据包进行安全检测,如果检测失败,则向RRC(Radio Resource Control,无线资源控制)层上报该错误。
安全检测可以是进行完整性保护验证,验证的结果可能是成功,也可能是失败。如果失败则有可能是遭到了伪基站的恶意攻击,向RRC层上报可以使RRC向核心网汇报,以及拆除链路等。
下面列举几个例子,对本发明的方案进行说明。
实施例1:AM的发送窗口。
当重复模式启动时,发送设备的PDCP进行发送窗口维护。
其中,需要维护如下变量:
Next_SN:下一个新发送的PDU对应的SN;
Window_Low:发送窗口的下边界;
Window_High:发送窗口的上边界,等于发送窗口下边界加上SN空间的一半。
Next_SN的初值为0,当PDCP实体新建立时,Next_SN从初值开始,每发送一个PDCPPDU,就使用当前的Next_SN作为其SN,然后变量Next_SN值加1,作为下一个PDU的SN。
例如第一个发送的PDCP PDU其携带的SN=0,Next_SN=1,第二个发送的PDCP PDU其携带的SN=1,Next_SN=2……以此类推。
发送窗口的下边界,通过RLC AM的状态报告进行更新。
例如有两条链路参与重复传输,则记录每条链路通过RLC确认得到的连续SN的最高值,并将两条链路中较低的SN值赋给Window_Low变量。
举例说明,当其中一条链路的RLC上报SN=9之前的所有数据均接收到了RLC对端的ACK确认,而第二条链路的RLC上报SN=7之前的数据均接收到了RLC对端的ACK确认,则此时Window_Low=7。过一会儿第二条链路的RLC又更新了SN=13之前的数据均接收到了RLC对端的ACK确认,则此时Window_Low=9(取第一条的9和第二条的13之间的较小的值)。
发送窗口的上边界等于发送窗口下边界加上窗口大小,而窗口大小等于SN最大空间的一半。也就是说,发送窗口下边界更新后,发送窗口的上边界也会相应更新。
发送设备在发送新PDU时,需要按照发送窗口进行发送,即当Next_SN>=发送窗口上边界时,不继续发包,此时发包的动作需要停下来,直到发送窗口上边界更新之后,Next_SN不再超出发送窗口的上边界,才继续发包。
这样做的目的,是为了保证在接收设备,接收乱序的范围被限制在SN空间的一半,可以使接收端对数据的HFN进行正确的计算,进行正确的接收处理。
当然,发送窗口下边界也可以根据PDCP层自身的状态报告进行更新,当发送设备的PDCP接收到来自对端的状态报告,告知哪些数据已经正确接收,则可以将Window_Low更新为连续正确接收PDU序列的最高SN,并且此时发送设备的PDCP可以告知发送设备的RLC,尤其是速率比较慢的RLC,这样可以最大限度避免已经被对端确认的PDU需要继续发送,从而也避免了空口数据范围超出区间。
可选的,PDCP和RLC发送端之间进行交互时,当PDCP接收到来自较快链路确认的SN与来自较慢链路确认的SN相差比较大(比如大于阈值),PDCP可以向较慢链路通知,若较慢链路对应的相差的这部分数据中有些还未分配SN,则可以直接放弃未分配SN数据的传输。
实施例2:UM的发送窗口。
当重复模式启动时,PDCP进行发送窗口维护。
其中发送端需要维护如下变量:
Next_SN:下一个新发送的PDU对应的SN;
Window_Low:发送窗口的下边界;
Window_High:发送窗口的上边界,等于发送窗口下边界加上SN空间的一半。
Next_SN的初值为0,当PDCP实体新建立时,Next_SN从初值开始,每发送一个PDCPPDU,就使用当前的Next_SN作为其SN,然后变量Next_SN值加1,作为下一个PDU的SN。
例如第一个发送的PDCP PDU其携带的SN=0,Next_SN=1,第二个发送的PDCP PDU其携带的SN=1,Next_SN=2……以此类推。
发送窗口的下边界,通过RLC UM的状态报告进行更新。
例如有两条链路参与重复传输,则记录每条链路通过RLC确认得到的连续SN的最高值,并将两条链路中较低的SN值赋给Window_Low变量。
举例说明,当其中一条链路的RLC上报SN=9之前的所有数据均接收到了RLC对端的ACK确认,而第二条链路的RLC上报SN=7之前的数据均接收到了RLC对端的ACK确认,则此时Window_Low=7。过一会儿第二条链路的RLC又更新了SN=13之前的数据均接收到了RLC对端的ACK确认,则此时Window_Low=9(取第一条的9和第二条的13之间的较小的值)。
可选的,当RLC和PDCP位于两个不同的物理实体,例如网络侧采取CU-DU的架构,PDCP模块位于CU实体,而RLC模块位于DU实体,或者双连接split承载的架构里,PDCP模块位于MeNB,而RLC模块位于SeNB,此时RLC和PDCP之间的交互需要在接口进行传输,一种可行的传输方式,是RLC不断的向PDCP实体发送“连续发送成功的PDCP SN的最高值”,以上报自己的确认状态。而PDCP实体根据来自两条链路的数值,更新发送窗口下边界。
发送窗口的上边界等于发送窗口下边界加上窗口大小,而窗口大小等于SN最大空间的一半。也就是说,发送窗口下边界更新后,发送窗口的上边界也会相应更新。
发送设备在发送新PDU时,需要按照发送窗口进行发送,即当Next_SN>=发送窗口上边界时,不继续发包,此时发包的动作需要停下来,直到发送窗口上边界更新之后,Next_SN不再超出发送窗口的上边界,才继续发包。
这样做的目的是为了保证接收设备接收乱序的范围被限制在SN空间的一半,可以使接收端对数据的HFN进行正确的计算,进行正确的接收处理。
当然,发送窗口下边界也可以根据HARQ的反馈进行更新,例如当PDCP确认从一条路径已经发送了很多数据,这些数据根据HARQ的反馈确定反馈的是ACK,那么PDCP可以直接告知另外一条较慢的链路,当前发送窗口已经更新到哪个SN,使得较慢链路可以放弃该SN之前数据的传输,从而也避免了发送端发送窗口之外数据再次在空口发送,混淆接收端。此时发送窗口的下边界等于较快链路连续发送的最高SN和较慢链路放弃以后的下一个待发数据的二者之间较小的值。
实施例3:对应的接收设备的操作。
接收设备采取对应的接收窗口进行接收操作,接收窗口为下边界驱动,窗口大小为SN最大空间的一半。
接收窗口下边界为连续递交高层数据的最高SN的下一个。
当配置了按序递交时,递交给高层的数据需要进行排序,对于连续按序接收的数据,可以直接递交高层,并更新接收窗口下边界。而如果出现接收缺口,需要针对缺口启动重排序定时器超,当重排序定时器超时之前缺口处的数据均正确接收,则停止重排序定时器,并将顺序接收的连续数据递交给高层,同时更新窗口下边界。当定时器超时,仍旧没有填满接收缺口,则放弃等待,更新窗口下边界到下一个待接收的数据处,等待的数据也按升序递交高层。
接收窗口的上边界等于下边界加上窗口大小。当接收到一个新数据,首先判断是否位于接收窗口之内,如果位于接收窗口之内,则按照接收窗口之内的大小顺序,进行HFN的判断。如果位于窗口之外,则默认是位于下边界以下的部分,按照这个原则,进行HFN判断。
以12bit SN长度举例说明,当接收窗口下边界为4000时,其上边界为(4000+2048)模4096=1952,注意其中跨越了4096这个SN最大值,仍旧认为是升序排列。如果接收窗口下边界SN=4000的HFN值为n,若接收到一个数据,其SN位于4000-4095这段区间,则该数据包位于窗口之内,且HFN=n,如果接收到一个数据包,其SN位于0-1952这段区间,则该数据包也位于窗口之内,且HFN=n+1(相当于发生了SN翻转,HFN进位)。
对于SN位于1952-4000之间的区间,接收数据包位于窗口之外,则认为该段区间位于下边界以下,则该区间所有数据包的HFN=n。
需要说明的是,本发明实施例中的所有描述,均默认大小关系是需要考虑SN的wrap around(翻转)情况,即当跨越SN最大值时,虽然由于SN翻转变成小值,但其实仍旧大于未翻转部分。例如,当下边界为4000时,其上边界为(4000+2048)模4096=1952,其窗口跨越了4096这个SN极大值,但位于4000-4095的部分虽然绝对SN很大,但他们仍旧小于0-1952这个区间,0-1952的区间可以看成4096-6048区间。
本发明实施例由于发送设备保证了发送数据的区间控制在SN空间的一半,而接收端也采取接收窗口SN空间一半的设置,因此在收发端之间,不会存在HFN计算错误的问题,保证了HFN的同步。进而由于COUNT(计数)值是由HFN和SN各自组成的高位和低位,因此COUNT值提取正确,安全操作是正确的,状态变量更新也是正确的,从而收发端操作正确。
如图2所述,本发明实施例第一种发送设备包括:
位于PDCP层的发送位置确定模块200,用于确定发送窗口的位置,其中所述发送窗口的长度不大于SN空间的一半;
发送模块201,用于根据所述发送窗口发送PDU。
可选的,所述发送位置确定模块200具体用于:
针对AM模式,根据连续收到确认的PDU的SN,确定所述发送窗口的下边界,并根据所述发送窗口的下边界和所述发送窗口的长度确定发送窗口的位置;或
针对UM模式,根据连续收到确认的PDU的SN或连续发送的PDU的SN,确定所述发送窗口的下边界,并根据所述发送窗口的下边界和所述发送窗口的长度确定发送窗口的位置。
可选的,针对AM模式,所述发送位置确定模块200根据连续收到确认的PDU的SN,确定所述发送窗口的下边界时具体用于:
针对AM模式,根据连续收到确认的PDU的SN,确定所述发送窗口的下边界时若有一条链路,通过RLC AM的状态报告,将所述链路连续收到确认的PDU的最大SN作为所述发送窗口的下边界;或
针对AM模式,若有多条链路,通过RLC AM的状态报告,确定多条链路中每条链路连续收到确认的PDU的最大SN;从确定的每条链路最大SN中选取最小的SN,并将选取的最小的SN作为所述发送窗口的下边界。
可选的,针对UM模式,所述发送位置确定模块200根据连续发送的PDU的SN,确定所述发送窗口的下边界时具体用于:
若有一条链路,通过RLC UM的发送状态,将所述链路连续发送的PDU的最大SN作为所述发送窗口的下边界;或
若有多条链路,通过RLC UM的发送状态,确定多条链路中每条链路连续收到连续发送的PDU的最大SN;从确定的每条链路最大SN中选取最小的SN,并将选取的最小的SN作为所述发送窗口的下边界;
针对UM模式,所述发送位置确定模块200根据连续收到确认的PDU的SN,确定所述发送窗口的下边界时具体用于:
若有一条链路,通过HARQ的反馈,将所述链路连续收到HARQ确认的PDU的最大SN作为所述发送窗口的下边界;或
若有多条链路,通过HARQ的反馈,确定多条链路中每条链路连续收到HARQ确认的PDU的最大SN;从确定的每条链路最大SN中选取最小的SN,并将选取的最小的SN作为所述发送窗口的下边界。
可选的,所述发送位置确定模块200还用于:
针对AM模式,若连续收到确认的PDU的SN发生变化,对所述发送窗口的下边界进行更新;或
针对UM模式,若所述发送窗口的下边界是根据连续收到确认的PDU的SN确定的,且连续收到确认的PDU的SN发生变化,对所述发送窗口的下边界进行更新;或
针对UM模式,若所述发送窗口的下边界是根据连续发送的PDU的SN确定的,且连续发送的PDU的SN发生变化,对所述发送窗口的下边界进行更新。
可选的,所述发送位置确定模块200还用于:
若有多条链路,则通知RLC层放弃发送第一特定PDU;
其中,所述第一特定PDU为在至少一条链路上收到确认,在至少一条链路上未分配SN的PDU。
可选的,所述发送位置确定模块200还用于:
若有多条链路,则通知RLC层放弃发送第二特定PDU;
其中,所述第二特定PDU为在至少一条链路上发送并收到确认,在至少一条链路上未进行发送的PDU。
可选的,所述发送模块201具体用于:
发送位于所述发送窗口内的SN对应的PDU,以及停止发送位于所述发送窗口外的SN对应的PDU。
如图3所述,本发明实施例第一种接收设备包括:
位于PDCP层的接收位置确定模块300,用于确定接收窗口的位置,其中所述接收窗口的长度不大于SN空间的一半;
接收模块301,用于根据所述接收窗口接收PDU。
可选的,所述接收位置确定模块300具体用于:
根据连续接收的PDU的SN的最高值或当前所有接收缺口中最早出现的接收缺口对应的SN,确定所述发送窗口的下边界;
根据所述接收窗口的下边界和所述接收窗口的长度确定接收窗口的位置。
可选的,所述接收模块301具体用于:
接收处理位于接收窗口内的SN对应的PDU,以及丢弃位于接收窗口外的SN对应的PDU。
可选的,所述接收模块301还用于:
将位于接收窗口外的SN确定为位于接收窗口下边界之下。
可选的,所述接收模块301还用于:
丢弃位于接收窗口外的SN对应的PDU之前,对待丢弃的数据包进行安全检测,如果检测失败,则向RRC层上报该错误。
如图4所述,本发明实施例第二种发送设备包括:
处理器401,用于通过收发机410发送和接收数据,并读取存储器404中的程序,执行下列过程:
通过PDCP层确定发送窗口的位置,其中所述发送窗口的长度不大于SN空间的一半;根据所述发送窗口发送PDU。
收发机402,用于接收和发送数据。
可选的,所述处理器401具体用于:
针对AM模式,通过PDCP层根据连续收到确认的PDU的SN,确定所述发送窗口的下边界,并根据所述发送窗口的下边界和所述发送窗口的长度确定发送窗口的位置;或
针对UM模式,通过PDCP层根据连续收到确认的PDU的SN或连续发送的PDU的SN,确定所述发送窗口的下边界,并根据所述发送窗口的下边界和所述发送窗口的长度确定发送窗口的位置。
可选的,针对AM模式,所述处理器401通过PDCP层根据连续收到确认的PDU的SN,确定所述发送窗口的下边界时具体用于:
针对AM模式,通过PDCP层根据连续收到确认的PDU的SN,确定所述发送窗口的下边界时若有一条链路,通过RLC AM的状态报告,将所述链路连续收到确认的PDU的最大SN作为所述发送窗口的下边界;或
针对AM模式,若有多条链路,通过PDCP层利用RLC AM的状态报告,确定多条链路中每条链路连续收到确认的PDU的最大SN;从确定的每条链路最大SN中选取最小的SN,并将选取的最小的SN作为所述发送窗口的下边界。
可选的,针对UM模式,所述处理器401通过PDCP层根据连续发送的PDU的SN,确定所述发送窗口的下边界时具体用于:
若有一条链路,通过PDCP层利用RLC UM的发送状态,将所述链路连续发送的PDU的最大SN作为所述发送窗口的下边界;或
若有多条链路,通过PDCP层利用RLC UM的发送状态,确定多条链路中每条链路连续收到连续发送的PDU的最大SN;从确定的每条链路最大SN中选取最小的SN,并将选取的最小的SN作为所述发送窗口的下边界;
针对UM模式,所述处理器401具体用于:
若有一条链路,通过PDCP层利用HARQ的反馈,将所述链路连续收到HARQ确认的PDU的最大SN作为所述发送窗口的下边界;或
若有多条链路,通过PDCP层利用HARQ的反馈,确定多条链路中每条链路连续收到HARQ确认的PDU的最大SN;从确定的每条链路最大SN中选取最小的SN,并将选取的最小的SN作为所述发送窗口的下边界。
可选的,所述处理器401还用于:
针对AM模式,若连续收到确认的PDU的SN发生变化,通过PDCP层对所述发送窗口的下边界进行更新;或
针对UM模式,若所述发送窗口的下边界是根据连续收到确认的PDU的SN确定的,且连续收到确认的PDU的SN发生变化,通过PDCP层对所述发送窗口的下边界进行更新;或
针对UM模式,若所述发送窗口的下边界是根据连续发送的PDU的SN确定的,且连续发送的PDU的SN发生变化,通过PDCP层对所述发送窗口的下边界进行更新。
可选的,所述处理器401还用于:
若有多条链路,则通过PDCP层通知RLC层放弃发送第一特定PDU;
其中,所述第一特定PDU为在至少一条链路上收到确认,在至少一条链路上未分配SN的PDU。
可选的,所述处理器401还用于:
若有多条链路,则通过PDCP层通知RLC层放弃发送第二特定PDU;
其中,所述第二特定PDU为在至少一条链路上发送并收到确认,在至少一条链路上未进行发送的PDU。
可选的,所述处理器401具体用于:
发送位于所述发送窗口内的SN对应的PDU,以及停止发送位于所述发送窗口外的SN对应的PDU。
在图4中,总线架构(用总线400来代表),总线400可以包括任意数量的互联的总线和桥,总线400将包括由处理器401代表的一个或多个处理器和存储器404代表的存储器的各种电路链接在一起。总线400还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口403在总线400和收发机402之间提供接口。收发机402可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线405在无线介质上进行传输,进一步,天线405还接收数据并将数据传送给处理器401。
处理器401负责管理总线400和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器404可以被用于存储处理器401在执行操作时所使用的数据。
可选的,处理器401可以是CPU(中央处埋器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
如图5所述,本发明实施例第二种接收设备包括:
处理器501,用于通过收发机510发送和接收数据,并读取存储器504中的程序,执行下列过程:
通过PDCP层确定接收窗口的位置,其中所述接收窗口的长度不大于SN空间的一半;根据所述接收窗口接收PDU。
收发机502,用于接收和发送数据。
可选的,所述处理器501具体用于:
通过PDCP层根据连续接收的PDU的SN的最高值或当前所有接收缺口中最早出现的接收缺口对应的SN,确定所述发送窗口的下边界;
通过PDCP层根据所述接收窗口的下边界和所述接收窗口的长度确定接收窗口的位置。
可选的,所述处理器501具体用于:
接收处理位于接收窗口内的SN对应的PDU,以及丢弃位于接收窗口外的SN对应的PDU。
可选的,所述处理器501还用于:
将位于接收窗口外的SN确定为位于接收窗口下边界之下。
可选的,所述处理器501还用于:
丢弃位于接收窗口外的SN对应的PDU之前,对待丢弃的数据包进行安全检测,如果检测失败,则向RRC层上报该错误。
在图5中,总线架构(用总线500来代表),总线500可以包括任意数量的互联的总线和桥,总线500将包括由处理器501代表的一个或多个处理器和存储器504代表的存储器的各种电路链接在一起。总线500还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口503在总线500和收发机502之间提供接口。收发机502可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器501处理的数据通过天线505在无线介质上进行传输,进一步,天线505还接收数据并将数据传送给处理器501。
处理器501负责管理总线500和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器504可以被用于存储处理器501在执行操作时所使用的数据。
可选的,处理器501可以是CPU、ASIC、FPGA或CPLD。
基于同一发明构思,本发明实施例中还提供了一种发送设备侧进行数据处理的方法,由于该方法对应的设备是本发明实施例信道进行数据处理的系统中的发送设备,并且该方法解决问题的原理与该设备相似,因此该方法的实施可以参见系统的实施,重复之处不再赘述。
如图6所述,本发明实施例发送设备侧进行数据处理的方法包括:
步骤600、发送设备的PDCP层确定发送窗口的位置,其中所述发送窗口的长度不大于SN空间的一半;
步骤601、所述发送设备根据所述发送窗口发送PDU。
可选的,所述发送设备的PDCP层确定发送窗口的位置,包括:
针对AM模式,所述发送设备的PDCP层根据连续收到确认的PDU的SN,确定所述发送窗口的下边界,并根据所述发送窗口的下边界和所述发送窗口的长度确定发送窗口的位置;或
针对UM模式,所述发送设备的PDCP层根据连续收到确认的PDU的SN或连续发送的PDU的SN,确定所述发送窗口的下边界,并根据所述发送窗口的下边界和所述发送窗口的长度确定发送窗口的位置。
可选的,针对AM模式,所述发送设备的PDCP层根据连续收到确认的PDU的SN,确定所述发送窗口的下边界,包括:
若有一条链路,所述发送设备的PDCP层通过RLC AM的状态报告,将所述链路连续收到确认的PDU的最大SN作为所述发送窗口的下边界;或
若有多条链路,所述发送设备的PDCP层通过RLC AM的状态报告,确定多条链路中每条链路连续收到确认的PDU的最大SN;从确定的每条链路最大SN中选取最小的SN,并将选取的最小的SN作为所述发送窗口的下边界。
可选的,针对UM模式,所述发送设备的PDCP层根据连续发送的PDU的SN,确定所述发送窗口的下边界,包括:
若有一条链路,所述发送设备的PDCP层通过RLC UM的发送状态,将所述链路连续发送的PDU的最大SN作为所述发送窗口的下边界;或
若有多条链路,所述发送设备的PDCP层通过RLC UM的发送状态,确定多条链路中每条链路连续收到连续发送的PDU的最大SN;从确定的每条链路最大SN中选取最小的SN,并将选取的最小的SN作为所述发送窗口的下边界;
针对UM模式,所述发送设备的PDCP层根据连续收到确认的PDU的SN,确定所述发送窗口的下边界,包括:
若有一条链路,所述发送设备的PDCP层通过HARQ的反馈,将所述链路连续收到HARQ确认的PDU的最大SN作为所述发送窗口的下边界;或
若有多条链路,所述发送设备的PDCP层通过HARQ的反馈,确定多条链路中每条链路连续收到HARQ确认的PDU的最大SN;从确定的每条链路最大SN中选取最小的SN,并将选取的最小的SN作为所述发送窗口的下边界。
可选的,该方法还包括:
针对AM模式,若连续收到确认的PDU的SN发生变化,所述发送设备的PDCP层对所述发送窗口的下边界进行更新;或
针对UM模式,若所述发送窗口的下边界是根据连续收到确认的PDU的SN确定的,且连续收到确认的PDU的SN发生变化,所述发送设备的PDCP层对所述发送窗口的下边界进行更新;或
针对UM模式,若所述发送窗口的下边界是根据连续发送的PDU的SN确定的,且连续发送的PDU的SN发生变化,所述发送设备的PDCP层对所述发送窗口的下边界进行更新。
可选的,该方法还包括:
若有多条链路,则所述发送设备的PDCP层通知RLC层放弃发送第一特定PDU;
其中,所述第一特定PDU为在至少一条链路上收到确认,在至少一条链路上未分配SN的PDU。
可选的,该方法还包括:
若有多条链路,则所述发送设备的PDCP层通知RLC层放弃发送第二特定PDU;
其中,所述第二特定PDU为在至少一条链路上发送并收到确认,在至少一条链路上未进行发送的PDU。
可选的,所述发送设备根据所述发送窗口发送PDU,包括:
所述发送设备发送位于所述发送窗口内的SN对应的PDU,以及停止发送位于所述发送窗口外的SN对应的PDU。
基于同一发明构思,本发明实施例中还提供了一种接收设备侧进行数据处理的方法,由于该方法对应的设备是本发明实施例信道进行数据处理的系统中的接收设备,并且该方法解决问题的原理与该设备相似,因此该方法的实施可以参见系统的实施,重复之处不再赘述。
如图7所述,本发明实施例接收设备侧进行数据处理的方法包括:
步骤700、接收设备的PDCP层确定接收窗口的位置,其中所述接收窗口的长度不大于SN空间的一半;
步骤701、所述接收设备根据所述接收窗口接收PDU。
可选的,所述接收设备的PDCP层确定接收窗口的位置,包括:
所述接收设备的PDCP层根据连续接收的PDU的SN的最高值或或当前所有接收缺口中最早出现的接收缺口对应的SN,确定所述发送窗口的下边界;
所述接收设备的PDCP层根据所述接收窗口的下边界和所述接收窗口的长度确定接收窗口的位置。
可选的,所述接收设备根据所述接收窗口接收PDU,包括:
所述接收设备接收处理位于接收窗口内的SN对应的PDU,以及丢弃位于接收窗口外的SN对应的PDU。
可选的,所述接收设备将位于接收窗口外的SN确定为位于接收窗口下边界之下。
可选的,所述接收设备丢弃位于接收窗口外的SN对应的PDU之前,还包括:
所述接收设备对待丢弃的数据包进行安全检测,如果检测失败,则向RRC层上报该错误。
本发明实施例还提供一种存储介质,该存储介质可以是非易失性的,即断电后内容不丢失。该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现本发明实施例上面任何一种进行数据处理的方案。
该存储介质可以通过外部接口或内部接口与处理器连接。比如存储器是U盘、移动硬盘等,则可以通过外部接口连接;比如存储器是处理器所在的设备中的存储模块,则可以通过内部接口连接。
本发明实施例还提供一种计算机程序产品,该软件程序在被一个或多个处理器读取并执行时可实现本发明实施例上面任何一种进行数据处理的方案。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。