一种重排序窗口调整方法和装置与流程

文档序号:14187049阅读:267来源:国知局

本申请涉及通信技术领域,特别是涉及一种重排序窗口调整方法和一种重排序窗口调整装置。



背景技术:

在长期演进lte(longtermevolution)系统中,分组数据汇聚协议pdcp(packetdataconvergenceprotocol)层位于无线链路层控制协议rlc(radiolinkcontrol)层之上,用于对用户平面数据和控制平面数据提供头压缩、加密、完整性保护等操作。所有数据无线承载drb(dataradiobearer)及除信令无线承载srb0(signallingradiobearer)外其他srb在pdcp层都对应一个pdcp实体。

映射在确认模式am(acknowledgedmode)的pdcp实体处理数据包时,pdcp实体接收方存在重排序窗口提供重排序和重复检测功能。在外场的网络运营中,经常莫名出现终端ue(userequipment)的下行或者上行速率掉0的情况。从抓取的日志数据log分析,rlc层并无干扰,rlc层也可以收到对端接收成功的状态报告,但ue就是速率掉0,原因是上行基站enodeb侧pdcp实体或者下行ue侧pdcp实体收到的协议数据单元pdu(protocoldataunit)对应的序列号sn(sequencenumber)未在重排序窗内,导致pdcp层丢弃该pdu,从而未能将该pdu中携带的服务数据单元sdu(servicedataunit)递交给传输控制协议tcp(transmissioncontrolprotocol)层导致速率掉0且长时间无法恢复,严重影响用户感知和网络关键性能指标kpi(keyperformanceindication)指标,引起客户投诉。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种重排序窗口调整方法和相应的一种重排序窗口调整装置。

为了解决上述问题,本申请实施例公开了一种重排序窗口调整方法,包括:

接收终端发送的协议数据单元pdu;所述协议数据单元pdu具有序列号sn1;

计算所述序列号sn1与基站期待接收的目标序列号sn2的差值;

若所述差值大于预设第一阈值,则向所述终端发送计数值检查消息countcheck;

接收所述终端针对所述countcheck返回的计数值检查响应消息countcheckresponse;其中,所述countcheckresponse包括终端上行计数值count1;所述count1包括由所述终端维护的终端侧上行超帧号hfn1和终端侧上行序列号sn3;

依据所述终端侧上行超帧号hfn1和所述终端侧上行序列号sn3,调整上行重排序窗口的下边界和上边界。

优选的,所述依据所述终端侧上行超帧号hfn1和所述终端侧上行序列号sn3,调整上行重排序窗口的下边界和上边界的步骤包括:

获取本地上行计数值count2,所述count2包括本地维护的基站侧上行超帧号hfn2和基站侧上行序列号sn4;

比较所述终端侧上行超帧号hfn1和所述基站侧上行超帧号hfn2,以及,比较所述终端侧上行序列号sn3和所述基站侧上行序列号sn4;

若所述终端侧上行超帧号hfn1和所述基站侧上行超帧号hfn2相同,并且所述终端侧上行序列号sn3和所述基站侧上行序列号sn4的差值在预设差值范围内,则等待目标pdu,所述目标pdu包括序列号sn为所述终端侧上行序列号sn3的pdu,以及序列号在所述终端侧上行序列号sn3到所述基站侧上行序列号sn4之间的pdu;

在接收到所有目标pdu后,依据目标pdu的序列号顺序依次将上行重排序窗口的下边界调整为所述目标pdu的序列号sn;

将调整后的上行重排序窗口的下边界加上预设窗口长度,作为上行重排序窗口的上边界。

优选的,所述预设差值范围通过如下方式生成:

获取当前收包速率;

获取发送所述countcheck的时刻到接收所述countcheckresponse的时刻之间的时间间隔;

将所述时间间隔除以所述收包速率,得到收包数量;

将大于零并小于所述收包数量的范围,作为所述差值范围。

优选的,所述依据所述终端侧上行超帧号hfn1和所述终端侧上行序列号sn3,调整上行重排序窗口的下边界和上边界的步骤还包括:

若所述终端侧上行超帧号hfn1与所述基站侧上行超帧号hfn2不相同,则将上行重排序窗口的下边界调整为所述终端侧上行序列号sn3;

将调整后的上行重排序窗口的下边界加上所述预设窗口长度,作为上行重排序窗口的上边界。

优选的,所述依据所述终端侧上行超帧号hfn1和所述终端侧上行序列号sn3,调整上行重排序窗口的下边界和上边界的步骤还包括:

若所述终端侧上行序列号sn3和所述基站侧上行序列号sn4的差值不在所述预设差值范围内,则将上行重排序窗口的下边界调整为所述终端侧上行序列号sn3;

将调整后的上行重排序窗口的下边界加上所述预设窗口长度,作为上行重排序窗口的上边界。

优选的,还包括:

记录所述序列号sn1与所述目标序列号sn2的差值大于所述第一阈值的次数;

当所述次数大于预设阈值次数时,则释放所述终端,并向所述终端发送重接入消息。

同时,本申请实施例还公开了一种重排序窗口调整方法,包括:

获取当前下行速率;

在当前下行速率低于预设速度阈值时,停止发送协议数据单元pdu,并按照预设发送间隔向终端发送ping数据包;

若在预设时间段内未接收到终端针对所述ping数据包返回的ping响应消息,则向所述终端发送计数值检查countcheck;

接收所述终端针对所述countcheck返回的计数值检查响应消息countcheckresponse;所述countcheckresponse包括终端下行计数值count3;所述count3包括由所述终端维护的终端侧下行超帧号hfn3和终端侧下行序列号sn5;

依据所述终端侧下行超帧号hfn3和所述终端侧下行序列号sn5,调整下行重排序窗口的下边界和上边界。

优选的,所述依据所述终端侧下行超帧号hfn3和所述终端侧下行序列号sn5,调整下行重排序窗口的下边界和上边界的步骤包括:

获取本地下行计数值count4,所述count4包括本地维护的基站侧下行超帧号hfn4和基站侧下行序列号sn6;

比较所述终端侧下行超帧号hfn3和所述基站侧下行超帧号hfn4,以及比较所述终端侧下行序列号sn5和所述基站侧下行序列号sn6;

若所述终端侧下行超帧号hfn3与所述基站侧下行超帧号hfn4不相同,则将下行重排序窗口的下边界调整为所述终端侧下行序列号sn5;

将调整后的下行重排序窗口的下边界加上预设窗口长度,作为下行重排序窗口的上边界。

优选的,所述依据所述终端侧下行超帧号hfn3和所述终端侧下行序列号sn5,调整下行重排序窗口的下边界和上边界的步骤还包括:

若所述终端侧下行序列号sn5和所述基站侧下行序列号sn6不相同,则将下行重排序窗口的下边界调整为所述终端侧下行序列号sn5;

将调整后的下行重排序窗口的下边界加上预设窗口长度,作为下行重排序窗口的上边界。

同时,本申请实施例还公开了一种重排序窗口调整装置,包括:

数据接收模块,用于接收终端发送的协议数据单元pdu;所述协议数据单元pdu具有序列号sn1;

差值计算模块,用于计算所述序列号sn1与基站期待接收的目标序列号sn2的差值;

检查消息发送模块,用于若所述差值大于预设第一阈值,则向所述终端发送计数值检查消息countcheck;

响应消息接收模块,用于接收所述终端针对所述countcheck返回的计数值检查响应消息countcheckresponse;其中,所述countcheckresponse包括终端上行计数值count1;所述count1包括由所述终端维护的终端侧上行超帧号hfn1和终端侧上行序列号sn3;

窗口边界调整模块,用于依据所述终端侧上行超帧号hfn1和所述终端侧上行序列号sn3,调整上行重排序窗口的下边界和上边界。

优选的,所述窗口边界调整模块包括:

计数值获取子模块,用于获取本地上行计数值count2,所述count2包括本地维护的基站侧上行超帧号hfn2和基站侧上行序列号sn4;

比较子模块,用于比较所述终端侧上行超帧号hfn1和所述基站侧上行超帧号hfn2,以及,比较所述终端侧上行序列号sn3和所述基站侧上行序列号sn4;

等待子模块,用于若所述终端侧上行超帧号hfn1和所述基站侧上行超帧号hfn2相同,并且所述终端侧上行序列号sn3和所述基站侧上行序列号sn4的差值在预设差值范围内,则等待目标pdu,所述目标pdu包括序列号sn为所述终端侧上行序列号sn3的pdu,以及序列号在所述终端侧上行序列号sn3到所述基站侧上行序列号sn4之间的pdu;

第一下边界调整子模块,用于在接收到所有目标pdu后,依据目标pdu的序列号顺序依次将上行重排序窗口的下边界调整为所述目标pdu的序列号sn;

第一上边界调整子模块,用于将调整后的上行重排序窗口的下边界加上预设窗口长度,作为上行重排序窗口的上边界。

优选的,所述预设差值范围通过如下模块生成:

收包速率获取模块,用于获取当前收包速率;

时间间隔获取模块,用于获取发送所述countcheck的时刻到接收所述countcheckresponse的时刻之间的时间间隔;

收包数量生成模块,用于将所述时间间隔除以所述收包速率,得到收包数量;

差值范围确定模块,用于将大于零并小于所述收包数量的范围,作为所述差值范围。

优选的,所述窗口边界调整模块还包括:

第二下边界调整子模块,用于若所述终端侧上行超帧号hfn1与所述基站侧上行超帧号hfn2不相同,则将上行重排序窗口的下边界调整为所述终端侧上行序列号sn3;

第二上边界调整子模块,用于将调整后的上行重排序窗口的下边界加上所述预设窗口长度,作为上行重排序窗口的上边界。

优选的,所述窗口边界调整模块还包括:

第三下边界调整子模块,用于若所述终端侧上行序列号sn3和所述基站侧上行序列号sn4的差值不在所述预设差值范围内,则将上行重排序窗口的下边界调整为所述终端侧上行序列号sn3;

第三上边界调整子模块,用于将调整后的上行重排序窗口的下边界加上所述预设窗口长度,作为上行重排序窗口的上边界。

优选的,还包括:

次数记录模块,用于记录所述序列号sn1与所述目标序列号sn2的差值大于所述第一阈值的次数;

释放模块,用于当所述次数大于预设阈值次数时,则释放所述终端,并向所述终端发送重接入消息。

同时,本申请实施例还公开了一种重排序窗口调整装置,包括:

下行速率获取模块,用于获取当前下行速率;

特定数据包发送模块,用于在当前下行速率低于预设速度阈值时,停止发送协议数据单元pdu,并按照预设发送间隔向终端发送ping数据包;

检查消息发送模块,用于若在预设时间段内未接收到终端针对所述ping数据包返回的ping响应消息,则向所述终端发送计数值检查countcheck;

响应消息接收模块,用于接收所述终端针对所述countcheck返回的计数值检查响应消息countcheckresponse;所述countcheckresponse包括终端下行计数值count3;所述count3包括由所述终端维护的终端侧下行超帧号hfn3和终端侧下行序列号sn5;

窗口边界调整模块,用于依据所述终端侧下行超帧号hfn3和所述终端侧下行序列号sn5,调整下行重排序窗口的下边界和上边界。

优选的,所述窗口边界调整模块包括:

计数值获取子模块,用于获取本地下行计数值count4,所述count4包括本地维护的基站侧下行超帧号hfn4和基站侧下行序列号sn6;

比较子模块,用于比较所述终端侧下行超帧号hfn3和所述基站侧下行超帧号hfn4,以及比较所述终端侧下行序列号sn5和所述基站侧下行序列号sn6;

第一下边界调整子模块,用于若所述终端侧下行超帧号hfn3与所述基站侧下行超帧号hfn4不相同,则将下行重排序窗口的下边界调整为所述终端侧下行序列号sn5;

第一上边界调整子模块,用于将调整后的下行重排序窗口的下边界加上预设窗口长度,作为下行重排序窗口的上边界。

优选的,所述窗口边界调整模块还包括:

第二下边界调整子模块,用于若所述终端侧下行序列号sn5和所述基站侧下行序列号sn6不相同,则将下行重排序窗口的下边界调整为所述终端侧下行序列号sn5;

第二上边界调整子模块,用于将调整后的下行重排序窗口的下边界加上预设窗口长度,作为下行重排序窗口的上边界。

本申请实施例包括以下优点:

本申请实施例中,在上行传输过程中,当基站接收到终端上行发送的协议数据单元pdu的序列号sn与基站期待接收的目标序列号sn之间的差值大于一定阈值时,基站发起countcheck过程,从而接收终端发送的终端上行计数值count。基站根据终端上行计数值count中的终端侧上行超帧号hfn和终端侧上行序列号sn,调整基站侧上行重排序窗口的下边界和上边界,使得基站侧的上行重排序窗口和终端侧的上行重排序窗口保持一致,避免由于协议数据单元出窗导致丢弃pdu数据包引起的速率掉0且长时间不能恢复的问题。

另一方面,在下行传输过程中,当基站的下行速率低于预设速度阈值时,停止发送协议数据单元pdu,并按照一定发送间隔向终端发送ping数据包。若在一定时间段内,基站未能接收终端针对ping数据包返回的ping响应消息,基站发起countcheck过程,从而接收终端发送的终端下行计数值count。基站根据终端上行计数值count中的终端侧下行超帧号hfn和终端侧下行序列号sn,调整基站侧下行重排序窗口的下边界和上边界,使得基站侧的下行重排序窗口和终端侧的下行重排序窗口保持一致,避免由于协议数据单元出窗导致丢弃pdu数据包引起的速率掉0且长时间不能恢复的问题。

附图说明

图1是lte系统中用户平面协议栈的示意图;

图2是重排序窗口的示意图;

图3是本申请的一种重排序窗口调整方法实施例1的步骤流程图;

图4是计数值检查过程的示意图;

图5是本申请的一种重排序窗口调整方法实施例2的步骤流程图;

图6是本申请的一种重排序窗口调整装置实施例1的结构框图;

图7是本申请的一种重排序窗口调整装置实施例2的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图1所示为lte系统中用户平面协议栈的示意图。在lte系统中,ue和enodeb之间的uu接口协议栈分为物理层l1(layer1)、介质访问控制mac(mediumaccesscontrol)、无线链路控制rlc层和分组数据汇聚协议pdcp层。物理层通过传输信道为mac子层提供数据传输功能,mac子层通过逻辑信道向rlc子层提供数据传输功能,rlc子层为pdcp层提供数据传输功能,pdcp层为tcp等应用协议提供数据传输服务。

根据pdcp实体传输的无线承载rb(radiobearer)对应的rlc层传输模式不同,对于am模式的pdcp实体来说,数据发送和接收处理流程如下:

数据发送处理流程:

当pdcp层从高层(tcp层)接收到数据即pdcpsdu后的发送处理流程如下:

1、为sdu数据包关联一个pdcp序列号sn(sequencenumber)。

2、当ue的安全性激活时,对发送的sdu数据包进行加密处理。

3、经过上述pdcp层处理后,sdu变为pdu,将pdu数据包递交给底层传输给对端。

其中加密使用的count值(即使不加密,两端也在维护这个count值)由sdu数据包对应的超帧号hfn(hyperframenumber)和序列号sn两部分组成。count值为32bit,其中hfn为32减去sn的长度,其中sn的长度可配置,对am模式的rb,dcpsn长度一般为12bit。其中sn在pdcppdu中传递给对端,hfn在本端维护,传递2sn-1个pdu后,hfn加1。在解密数据包时,使用接收到sn和本地维护的hfn组成count作为解密的参数。

数据接收处理流程:

1、确定pdu数据包对应的count值,对pdu数据包进行解密。

2、如果pdu数据包的序列号sn位于重配序窗口外,将收到的数据包丢弃。如果pdu数据包的序列号sn位于重排序窗口内,进一步判断缓存中是否存在接收相同的pdu数据包。如果缓存中存在相同的pdu数据包,则丢弃新接收的pdu数据包。否则,将处理后的数据包放入缓存。

3、如果接收的数据包非pdcp重建(切换、重接入)时rlc乱序递交的数据包,将缓存中以下数据递交给高层。

a、所有count值小于新接收数据包对应的count值的数据包。

b、从新接收数据包开始往后count值连续的数据包。

参照图2,为重排序窗口的示意图。对于am模式的pdu数据包,pdcp层需要提供重排序和排重功能,因此,在接收数据包时,需要判断从底层(rlc层)收到数据包是否在重排序窗口内。重排序窗口的下边界为最近一次向高层(tcp层)递交的pdcpsdu对应的序列号sn,窗口长度等于序列号sn(12bit)空间的一半(即2048)。

由于接收方存在重排序窗口,因此,协议的对等层发送方pdcp需要设置发送窗控制发送包数目,控制发送包数量,防止发送的包超过重排序窗范围导致丢弃。

由于rlc层协议保证有序和可靠传输,在pdcp侧收到的数据也是按序的,但在现网传输中,经常发生误码、底层处理导致脏数据的情况,尤其在下载或者上传速率大时,导致pdcp层收到的pdu中sn不连续或者发生跳变。例如,当前pdcp层待收sn=1000的包,由于脏数据收到错误的pdcpsdu,其sn=2000。由协议规定,此时将sn=2000的包递交给pdcp的上层,将pdcp层的接收窗下沿更新到2001(窗范围变为2001至4048),后续继续收到大于等于sn为1001这些包,由于不在接收窗内(低于窗下沿序号2001),导致全部丢弃。pdcp承载的上层应用协议(例如tcp)丢包重传,但重传包在pdcp层的sn继续在窗外导致丢弃,tcp重传几次后,停止发送数据,导致速率掉0。

因此,本申请实施例的核心构思之一在于,当基站发现接收的pdu的序列号发生跳变时,核对基站侧和终端侧的count值的序列号sn,依据终端侧的序列号调整基站侧的重排序窗口的上边界和下边界。

首先,以上行数据传输过程中,基站侧调整重排序窗口的上边界和下边界的内容进行说明。参照图3,示出了本申请的一种重排序窗口调整方法实施例1的步骤流程图,具体可以包括如下步骤:

步骤101,接收终端发送的协议数据单元pdu;所述协议数据单元pdu具有序列号sn1;

在上行数据传输过程中,基站enodeb接收终端ue发送的pdu,从pdu中解析出对应的序列号sn1。

步骤102,计算所述序列号sn1与基站期待接收的目标序列号sn2的差值;

基站期待接收的目标序列号,为基站上一个接收的pdu的序列号加一。

基站在每接收到一个pdu后,以获取的pdu的序列号加一,作为期待接收的目标序列号。

例如,基站上一个接收的pdu的序列号为50,则期待接收的目标序列号则为51。

将基站当前接收的pdu的序列号,减去期待接收的目标序列号。例如,基站当前接收的pdu的序列号为70,期待接收的目标序列号为51,则序列号的差值为19。

步骤103,若所述差值大于预设第一阈值,则向所述终端发送计数值检查消息countcheck;

如果序列号的差值大于第一阈值,则基站发起countcheck检查过程。countcheck检查过程为:基站向终端发送计数值检查消息countcheck。然后接收终端针对countcheck返回的countcheckresponse。

例如,第一阈值为128,当序列号的差值大于128时,则触发countcheck检查过程。

根据ts3gppts36.331协议,countcheck过程用于核基站和终端两侧发送包数量,防止第三方导致的入侵。基站在发送一定数量的sdu后,要求终端上报接收的sdu数量,如果两者保持一致,认为网络是安全的,如果收发数据差别大于一定门限,认为可能存在第三方的入侵,来保证网络的安全。如图4所示为计数值检查过程的示意图。

其中countcheck消息中可以携带基站侧所有drb发送的count值的最有意义部分,即count值的高25bit,即包括hfn的20bit和sn的5bit,剩余7bit(32-25)为27个pdu。countcheckresponse消息中携带ue侧所有pdu发送的count值。

因此,本申请实施例中提出当基站当前接收的pdu的序列号,减去期待接收的目标序列号的序列号差值大于一定阈值时,基站侧的控制面rrc协议层开启countercheck消息,要求终端在srb承载上报终端侧pdu的count值。

步骤104,接收所述终端针对所述countcheck返回的计数值检查响应消息countcheckresponse;其中,所述countcheckresponse包括终端上行计数值count1;所述count1包括由所述终端维护的终端侧上行超帧号hfn1和终端侧上行序列号sn3;

终端侧上行超帧号hfn1由终端维护,终端侧上行序列号sn3为终端接收到countcheck时,最近发送的pdu的序列号。

步骤105,依据所述终端侧上行超帧号hfn1和所述终端侧上行序列号sn3,调整上行重排序窗口的下边界和上边界。

依据终端侧上行超帧号hfn1和终端侧上行序列号sn3,调整基站的上行重排序窗口的下边界和上边界。

在本申请实施例中,所述的方法还可以包括:

记录所述序列号sn1与所述目标序列号sn2的差值大于所述第一阈值的次数;

当所述次数大于预设阈值次数时,则释放所述终端,并向所述终端发送重接入消息。

例如,当终端记录到当前接收的pdu的序列号sn1大于基站期待接收的目标序列号sn2第一阈值的次数为10次时,则基站释放该终端,并向终端发送重接入消息,让终端重新接入基站。

本申请实施例中,在上行传输过程中,当基站接收到终端上行发送的协议数据单元pdu的序列号sn与基站期待接收的目标序列号sn之间的差值大于一定阈值时,基站发起countcheck过程,从而接收终端发送的终端上行计数值count。基站根据终端上行计数值count中的终端侧上行超帧号hfn和终端侧上行序列号sn,调整基站侧上行重排序窗口的下边界和上边界,使得基站侧的上行重排序窗口和终端侧的上行重排序窗口保持一致,避免由于协议数据单元出窗导致丢弃pdu数据包引起的速率掉0且长时间不能恢复的问题。

以下,对如何依据终端侧上行超帧号hfn1和终端侧上行序列号sn3,调整上行重排序窗口的下边界和上边界进一步进行说明。在本申请实施例中,所述步骤105可以具体包括如下子步骤:

子步骤s11,获取本地上行计数值count2,所述count2包括本地维护的基站侧上行超帧号hfn2和基站侧上行序列号sn4;

基站侧上行超帧号hfn2由基站维护,基站侧上行序列号sn4为基站最近接收的pdu的序列号。

例如,基站最近接收的pdu的序列号为200,则基站侧上行序列号sn4为200。

子步骤s12,比较所述终端侧上行超帧号hfn1和所述基站侧上行超帧号hfn2,以及,比较所述终端侧上行序列号sn3和所述基站侧上行序列号sn4;

子步骤s13,若所述终端侧上行超帧号hfn1和所述基站侧上行超帧号hfn2相同,并且所述终端侧上行序列号sn3和所述基站侧上行序列号sn4的差值在预设差值范围内,则等待目标pdu,所述目标pdu包括序列号sn为所述终端侧上行序列号sn3的pdu,以及序列号在所述终端侧上行序列号sn3到所述基站侧上行序列号sn4之间的pdu;

如果终端侧上行超帧号hfn1和基站侧上行超帧号hfn2相同,终端侧上行序列号sn3和基站侧上行序列号sn4不同,但序列号差值在预设差值范围内。则基站等待接收序列号为终端侧上行序列号sn3的pdu以及,序列号在终端侧上行序列号sn3到基站侧上行序列号sn4之间的所有pdu。

例如,终端侧上行序列号sn3为300,基站侧上行序列号sn4为304,预设差值范围为1-20。即终端侧上行序列号sn3与基站侧上行序列号sn4的序列号差值在差值范围内。此时,基站等待上行序列号为300、301、302、303这4个pdu。

具体的,基站侧的pdcp层在等待接收到所有的目标pdu后,才按照pdu的序列号顺序,依次将pdu递交给tcp等应用层。在将pdu递交给tcp后,pdcp层才将上行重排窗口的下边界调整为,上一个递交的pdu的序列好。

例如,基站在等待的到上行序列号为300、301、302、303这4个pdu后,才依次将这序列号为300、301、302、303、304的pdu递交到tcp等应用层。即先递交序列号为300的pdu、然后递交序列号为301的pdu,然后递交序列号为302的pdu,然后递交序列号为303的pdu,最后才递交序列号为304的pdu。

子步骤s14,在接收到所有目标pdu后,依据目标pdu的序列号顺序依次将上行重排序窗口的下边界调整为所述目标pdu的序列号sn。

例如,当基站将序列号为300的pdu递交到tcp等应用层后,将上行重排序窗口的下边界调整为300。当基站将序列号为301的pdu递交到tcp等应用层后,将上行重排序窗口的下边界调整为301。

子步骤s15,将调整后的上行重排序窗口的下边界加上预设窗口长度,作为上行重排序窗口的上边界。

预设窗口长度等于序列号空间的一半,即当序列号为12bit时,窗口长度为2048。

上行重排序窗口的上边界等于调整后的上行重排序窗口的下边界加上窗口长度。例如,当上行重排序窗口的下边界为300时,上行重排序窗口的上边界为2348。

在本申请实施例中,针对终端侧上行序列号sn3与基站侧上行序列号sn4的差值的预设差值范围可以通过如下方式生成:

(1)、获取当前收包速率;

(2)、获取发送所述countcheck的时刻到接收所述countcheckresponse的时刻之间的时间间隔;

(3)、将所述时间间隔除以所述收包速率,得到收包数量;

(4)、将大于零并小于所述收包数量的范围,作为所述差值范围。

例如,基站当前的收包速率为1/ms。发送所述countcheck的时刻到接收所述countcheckresponse的时刻之间的时间间隔为20ms,那么收包数量即为20,也即差值范围为(0,20)。

以上内容对当终端侧上行超帧号hfn1和基站侧上行超帧号hfn2相同,终端侧上行序列号sn3和基站侧上行序列号sn4不同,但序列号差值在预设差值范围内时,如何调整上行重排序窗口的下边界和上边界进行了说明。以下,继续讲述当终端侧上行超帧号hfn1和基站侧上行超帧号hfn2不相同时,以及当端侧上行序列号sn3和基站侧上行序列号sn4不同,并不在预设差值范围时,如何调整上行重排序窗口的下边界和上边界。

在本申请实施例中,所述步骤105可以具体包括如下子步骤:

子步骤s16,若所述终端侧上行超帧号hfn1与所述基站侧上行超帧号hfn2不相同,则将上行重排序窗口的下边界调整为所述终端侧上行序列号sn3;

子步骤s17,将调整后的上行重排序窗口的下边界加上所述预设窗口长度,作为上行重排序窗口的上边界。

当终端侧上行超帧号hfn1和基站侧上行超帧号hfn2不相同时,基站直接将上行重排序窗口的下边界调整为终端侧上行序列号。

例如,终端侧上行超帧号hfn1为1,基站侧上行超帧号hfn2为2。由于超帧号不同,基站直接将上行重排序窗口的下边界调整为终端侧上行序列号,然后将调整后的上行重排序窗口的下边界加上窗口长度,作为上行重排序窗口的上边界。

在本申请实施例中,所述步骤105可以具体还可以包括如下子步骤:

子步骤s18,若所述终端侧上行序列号sn3和所述基站侧上行序列号sn4的差值不在所述预设差值范围内,则将上行重排序窗口的下边界调整为所述终端侧上行序列号sn3;

子步骤s19,将调整后的上行重排序窗口的下边界加上所述预设窗口长度,作为上行重排序窗口的上边界。

例如,若差值范围为20,终端侧上行序列号sn3为200,基站侧上行序列号sn4为230。则终端侧上行序列号sn3和基站侧上行序列号sn4的差值不在差值范围内。此时,基站直接将上行重排序窗口的下边界调整为终端侧上行序列号,然后将调整后的上行重排序窗口的下边界加上窗口长度,作为上行重排序窗口的上边界。

以下行数据传输过程中,基站侧调整重排序窗口的上边界和下边界的内容进行说明。参照图5,示出了本申请的一种重排序窗口调整方法实施例2的步骤流程图,具体可以包括如下步骤:

步骤201,获取当前下行速率;

在下行数据传输过程中,基站enodeb向终端ue发送的pdu。

步骤202,在当前下行速率低于预设速度阈值时,停止发送协议数据单元pdu,并按照预设发送间隔向终端发送ping数据包;

ping数据包中包括pingrequest请求消息,如果终端成功收到pingrequest请求,则向基站返回pingreply响应消息。

步骤203,若在预设时间段内未接收到终端针对所述ping数据包返回的ping响应消息,则向所述终端发送计数值检查countcheck;

如果基站在一定时间之内未能收到终端返回的ping响应消息,则基站发起countcheck检查过程。countcheck检查过程为:基站向终端发送计数值检查消息countcheck。然后接收终端针对countcheck返回的countcheckresponse。

步骤204,接收所述终端针对所述countcheck返回的计数值检查响应消息countcheckresponse;所述countcheckresponse包括终端下行计数值count3;所述count3包括由所述终端维护的终端侧下行超帧号hfn3和终端侧下行序列号sn5;

终端侧下行超帧号hfn3由终端维护,终端侧下行序列号sn5为终端接收到countcheck时,最近接收的pdu的序列号。

步骤205,依据所述终端侧下行超帧号hfn3和所述终端侧下行序列号sn5,调整下行重排序窗口的下边界和上边界。

依据终端侧下行超帧号hfn1和终端侧下行序列号sn3,调整基站的下行重排序窗口的下边界和上边界。

在下行传输过程中,当基站的下行速率低于预设速度阈值时,停止发送协议数据单元pdu,并按照一定发送间隔向终端发送ping数据包。若在一定时间段内,基站未能接收终端针对ping数据包返回的ping响应消息,基站发起countcheck过程,从而接收终端发送的终端下行计数值count。基站根据终端上行计数值count中的终端侧下行超帧号hfn和终端侧下行序列号sn,调整基站侧下行重排序窗口的下边界和上边界,使得基站侧的下行重排序窗口和终端侧的下行重排序窗口保持一致,避免由于协议数据单元出窗导致丢弃pdu数据包引起的速率掉0且长时间不能恢复的问题。

以下,对如何依据终端侧下行超帧号hfn3和终端侧下行序列号sn5,调整下行重排序窗口的下边界和上边界进一步进行说明。在本申请实施例中,所述步骤205具体可以包括如下子步骤:

子步骤s21,获取本地下行计数值count4,所述count4包括本地维护的基站侧下行超帧号hfn4和基站侧下行序列号sn6;

基站侧下行超帧号hfn4由基站维护,基站侧下行序列号sn6为基站最近发送的pdu的序列号。

例如,基站最近发送的pdu的序列号为500,则基站侧下行序列号sn6为500。

子步骤s22,比较所述终端侧下行超帧号hfn3和所述基站侧下行超帧号hfn4,以及比较所述终端侧下行序列号sn5和所述基站侧下行序列号sn6;

子步骤s23,若所述终端侧下行超帧号hfn3与所述基站侧下行超帧号hfn4不相同,则将下行重排序窗口的下边界调整为所述终端侧下行序列号sn5;

子步骤s24,将调整后的下行重排序窗口的下边界加上预设窗口长度,作为下行重排序窗口的上边界。

当终端侧下行超帧号hfn3与基站侧下行超帧号hfn4不相同时,基站直接将下行重排序窗口的下边界调整为终端侧下行序列号。

例如,终端侧下行超帧号hfn3为3,基站侧下行超帧号hfn4为2。由于超帧号不同,基站直接将下行重排序窗口的下边界调整为终端侧下行序列号,然后将调整后的下行重排序窗口的下边界加上窗口长度,作为上行重排序窗口的上边界。

在本申请实施例中,所述步骤205具体还可以包括如下子步骤:

子步骤s25,若所述终端侧下行序列号sn5和所述基站侧下行序列号sn6不相同,则将下行重排序窗口的下边界调整为所述终端侧下行序列号sn5;

子步骤s26,将调整后的下行重排序窗口的下边界加上预设窗口长度,作为下行重排序窗口的上边界。

例如,如果终端侧下行序列号sn5为40,基站侧下行序列号sn6为43,则基站将下行重排序窗口的下边界调整为40。将下边界加上窗口长度(例如2048),得到下行重排序窗口的上边界。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图6,示出了本申请的一种重排序窗口调整装置实施例1的结构框图,具体可以包括如下模块:

数据接收模块301,用于接收终端发送的协议数据单元pdu;所述协议数据单元pdu具有序列号sn1;

差值计算模块302,用于计算所述序列号sn1与基站期待接收的目标序列号sn2的差值;

检查消息发送模块303,用于若所述差值大于预设第一阈值,则向所述终端发送计数值检查消息countcheck;

响应消息接收模块304,用于接收所述终端针对所述countcheck返回的计数值检查响应消息countcheckresponse;其中,所述countcheckresponse包括终端上行计数值count1;所述count1包括由所述终端维护的终端侧上行超帧号hfn1和终端侧上行序列号sn3;

窗口边界调整模块305,用于依据所述终端侧上行超帧号hfn1和所述终端侧上行序列号sn3,调整上行重排序窗口的下边界和上边界。

在本申请实施例中,所述窗口边界调整模块305可以包括:

计数值获取子模块,用于获取本地上行计数值count2,所述count2包括本地维护的基站侧上行超帧号hfn2和基站侧上行序列号sn4;

比较子模块,用于比较所述终端侧上行超帧号hfn1和所述基站侧上行超帧号hfn2,以及,比较所述终端侧上行序列号sn3和所述基站侧上行序列号sn4;

等待子模块,用于若所述终端侧上行超帧号hfn1和所述基站侧上行超帧号hfn2相同,并且所述终端侧上行序列号sn3和所述基站侧上行序列号sn4的差值在预设差值范围内,则等待目标pdu,所述目标pdu包括序列号sn为所述终端侧上行序列号sn3的pdu,以及序列号在所述终端侧上行序列号sn3到所述基站侧上行序列号sn4之间的pdu;

第一下边界调整子模块,用于在接收到所有目标pdu后,依据目标pdu的序列号顺序依次将上行重排序窗口的下边界调整为所述目标pdu的序列号sn;

第一上边界调整子模块,用于将调整后的上行重排序窗口的下边界加上预设窗口长度,作为上行重排序窗口的上边界。

在本申请实施例中,所述预设差值范围通过如下模块生成:

收包速率获取模块,用于获取当前收包速率;

时间间隔获取模块,用于获取发送所述countcheck的时刻到接收所述countcheckresponse的时刻之间的时间间隔;

收包数量生成模块,用于将所述时间间隔除以所述收包速率,得到收包数量;

差值范围确定模块,用于将大于零并小于所述收包数量的范围,作为所述差值范围。

在本申请实施例中,所述窗口边界调整模块305还可以包括:

第二下边界调整子模块,用于若所述终端侧上行超帧号hfn1与所述基站侧上行超帧号hfn2不相同,则将上行重排序窗口的下边界调整为所述终端侧上行序列号sn3;

第二上边界调整子模块,用于将调整后的上行重排序窗口的下边界加上所述预设窗口长度,作为上行重排序窗口的上边界。

在本申请实施例中,所述窗口边界调整模块305还可以包括:

第三下边界调整子模块,用于若所述终端侧上行序列号sn3和所述基站侧上行序列号sn4的差值不在所述预设差值范围内,则将上行重排序窗口的下边界调整为所述终端侧上行序列号sn3;

第三上边界调整子模块,用于将调整后的上行重排序窗口的下边界加上所述预设窗口长度,作为上行重排序窗口的上边界。

在本申请实施例中,所述装置还可以包括:

次数记录模块,用于记录所述序列号sn1与所述目标序列号sn2的差值大于所述第一阈值的次数;

释放模块,用于当所述次数大于预设阈值次数时,则释放所述终端,并向所述终端发送重接入消息。

参照图7,示出了本申请的一种重排序窗口调整装置实施例2的结构框图,具体可以包括如下模块:

下行速率获取模块401,用于获取当前下行速率;

特定数据包发送模块402,用于在当前下行速率低于预设速度阈值时,停止发送协议数据单元pdu,并按照预设发送间隔向终端发送ping数据包;

检查消息发送模块403,用于若在预设时间段内未接收到终端针对所述ping数据包返回的ping响应消息,则向所述终端发送计数值检查countcheck;

响应消息接收模块404,用于接收所述终端针对所述countcheck返回的计数值检查响应消息countcheckresponse;所述countcheckresponse包括终端下行计数值count3;所述count3包括由所述终端维护的终端侧下行超帧号hfn3和终端侧下行序列号sn5;

窗口边界调整模块405,用于依据所述终端侧下行超帧号hfn3和所述终端侧下行序列号sn5,调整下行重排序窗口的下边界和上边界。

在本申请实施例中,所述窗口边界调整模块405可以包括:

计数值获取子模块,用于获取本地下行计数值count4,所述count4包括本地维护的基站侧下行超帧号hfn4和基站侧下行序列号sn6;

比较子模块,用于比较所述终端侧下行超帧号hfn3和所述基站侧下行超帧号hfn4,以及比较所述终端侧下行序列号sn5和所述基站侧下行序列号sn6;

第一下边界调整子模块,用于若所述终端侧下行超帧号hfn3与所述基站侧下行超帧号hfn4不相同,则将下行重排序窗口的下边界调整为所述终端侧下行序列号sn5;

第一上边界调整子模块,用于将调整后的下行重排序窗口的下边界加上预设窗口长度,作为下行重排序窗口的上边界。

在本申请实施例中,所述窗口边界调整模块405还可以包括:

第二下边界调整子模块,用于若所述终端侧下行序列号sn5和所述基站侧下行序列号sn6不相同,则将下行重排序窗口的下边界调整为所述终端侧下行序列号sn5;

第二上边界调整子模块,用于将调整后的下行重排序窗口的下边界加上预设窗口长度,作为下行重排序窗口的上边界。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种重排序窗口调整方法和一种重排序窗口调整装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1