发明内容
本申请所要解决的技术问题是提供一种上行数据的传输方法,以克服现有LTE系统中上行链路数据传输机制对TCP下载对应的确认包增加的时延,提高TCP下载性能。
本申请还提供了一种上行数据的传输装置,用以保证上述方法在实际中的应用及实现。
为了解决上述问题,本申请公开了一种LTE系统中上行数据的传输方法,所述上行数据依次经过PDCP子层、RLC子层和MAC子层处理,所述方法包括:
接收待传输的业务数据;
判断所述业务数据是否符合预设条件,若是,则将所述业务数据发送到PDCP子层,若否,则将所述业务数据添加到缓存队列;
向基站发送上行数据传输请求;
MAC子层按照基站依据传输请求返回的当次资源分配量,对经过PDCP子层和RLC子层处理的业务数据进行调度;
按照MAC子层的调度结果进行上行数据传输,并依据预估的下次资源分配量触发所述缓存队列中的业务数据出队进入PDCP子层。
优选的,所述判断业务数据是否符合预设条件的步骤包括:
若所述业务数据的包长小于等于第一预设阀值,则所述业务数据符合预设条件;
或,若所述业务数据的包长大于第一预设阀值,且此时PDCP子层或RLC子层中不存在未处理的数据,则所述业务数据符合预设条件。
优选的,所述缓存队列中的业务数据按照入队时间先后进行排列,若所述缓存队列已满,则将队尾的业务数据丢弃,并将新添加的业务数据入队。
优选的,所述依据预估的下次资源分配量触发所述缓存队列中的业务数据出队进入PDCP子层的步骤包括:
MAC子层在每次调度之后,由历史资源分配量计算基站下次资源分配量;
判断待调度的业务数据量是否小于下次资源分配量,若是,则所述出队数据量为下次资源分配量与待调度的业务数据量之差,若否,则所述出队数据量为0;
将总长小于所述出队数据量的N个业务数据包出队,发送到PDCP子层,N为整数。
优选的,所述下次资源分配量为第二预设阀值和统计值中的最大值,所述统计值为所述历史资源分配量中,近n次资源分配量的平均值与调整系数之积,n为正整数。
优选的,所述传输请求用于通知基站有资源需求或向基站发送资源需求量。
优选的,所述传输请求包括第一传输请求和第二传输请求,所述第一传输请求用于通知基站有资源需求,所述第二传输请求用于向基站发送资源需求量,所述第二传输请求在接收到基站依据第一传输请求返回的当次资源分配量后发送。
优选的,所述资源需求量由MAC层对缓存队列的数据量、PDCP和RLC子层的数据容量进行统计生成。
优选的,所述方法还包括:
按照缓存队列的业务数据变化,更新缓存队列数据量。
优选的,通过解析基站依据上行数据的传输请求返回的上行授权生成所述当次资源分配量。
本申请还提供了一种上行数据的传输装置,包括PDCP模块、RLC模块,所述装置还包括:
业务数据接收模块,用于接收待传输的业务数据;
预处理模块,用于对待传输的业务数据进行预处理,所述预处理模块包括判断子模块和缓存出队子模块;
判断子模块,用于判断所述业务数据是否符合预设条件,若是,则将所述业务数据发送到PDCP模块,若否,则将所述业务数据添加到缓存队列;
缓存出队子模块,用于依据预估的下次资源分配量触发所述缓存队列中的业务数据出队进入PDCP模块;
传输请求发送模块,用于向基站发送上行数据传输请求;
MAC模块,用于按照基站依据传输请求返回的当次资源分配量,对经过PDCP模块和RLC模块处理的业务数据进行调度;
数据传输模块,用于按照MAC模块的调度结果进行上行数据传输。
优选的,所述判断子模块包括:
第一判断子单元,用于若所述业务数据的包长小于等于第一预设阀值,则所述业务数据符合第一预设条件;
或,第二判断子单元,用于若所述业务数据的包长大于第一预设阀值,且此时PDCP子层或RLC子层中不存在未处理的数据,则所述业务数据符合预设条件。
优选的,所述缓存队列中的业务数据按照入队时间先后进行排列,所述预处理模块还包括:
数据丢弃子模块,用于若所述缓存队列已满,则将队尾的业务数据丢弃,并将新添加的业务数据入队。
优选的,所述MAC模块包括:
资源分配量预估子模块,用于在每次调度之后,由历史资源分配量计算基站下次资源分配量,并通知预处理模块。
优选的,所述缓存出队子模块包括:
出队数据量计算单元,用于判断待调度的业务数据量是否小于下次资源分配量,若是,则所述出队数据量为下次资源分配量与待调度的业务数据量之差,若否,则所述出队数据量为0;
数据出队单元,用于将数据包总长小于所述出队数据量的N个数据包出队,发送到PDCP子层,N为整数。
优选的,所述下次资源分配量为第二预设阀值和统计值中的最大值,所述统计值为所述历史资源分配量中,近n次资源分配量的平均值与调整系数之积,n为正整数。
优选的,所述传输请求用于通知基站有资源需求或向基站发送资源需求量。
优选的,所述传输请求包括第一传输请求和第二传输请求,所述第一传输请求用于通知基站有资源需求,所述第二传输请求用于向基站发送资源需求量,所述第二传输请求在接收到基站依据第一传输请求返回的当次资源分配量后发送。
优选的,所述MAC模块还包括:
资源需求量统计子模块,用于由缓存队列的数据量、PDCP和RLC子层的数据容量统计资源需求量。
优选的,所述预处理模块还包括:
队列信息更新子模块,用于按照缓存队列的业务数据变化,更新缓存队列数据量。
优选的,所述当次资源分配量通过解析基站依据上行数据的传输请求返回的上行授权生成,并发送到MAC模块。
与现有技术相比,本申请具有以下优点:
依据本申请,在上行数据的传输过程中,若业务数据是TCP传输协议控制下终端下载数据后上传的确认包,则直接发送到PDCP子层和RLC子层进行优先处理,若业务数据不是确认包而是普通业务数据,且PDCP子层和RLC子层存在未处理的数据,则添加到缓存队列中,在每次调度后触发出队,从而确保确认包可以优先被传输到基站,因此可以加快确认包上传的速度,克服了现有LTE系统中上行链路数据传输机制对TCP下载对应的确认包增加的时延,提高TCP下载性能。
并且,由于TCP业务对应的确认包的长度较小,并不会抢占太多上行资源,所以普通业务数据仍然能获取足够的上行资源进行数据传输。因此,本申请中在保证确认包能够优先被调度的同时,又能避免普通业务数据被缓存后带来的额外时延,不影响普通业务数据的上传速度。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参考图1,示出了本申请的一种上行数据的传输方法实施例1的流程图,所述上行数据依次经过PDCP子层、RLC子层和MAC子层处理,所述方法具体可以包括以下步骤:
步骤101、接收待传输的业务数据。
本申请主要应用于长期演进(LTE)系统,根据LTE系统相关技术标准(TS36.321,TS36.322,TS36.323),上行数据面处理涉及到PDCP(Packet Data Convergence Protocol,分组数据汇聚)、RLC(Radio LinkControl,无线链路控制)、MAC(Medium Access Control,介质访问控制)三层协议。
在用户平面上,PDCP子层接收到上层业务数据后对业务数据进行头压缩和加密,然后递交到RLC子层;RLC子层对接收到的业务数据进行分段,并控制业务数据的重传;MAC子层通过动态调度的方式将业务数据进行上传。
本申请可以在终端上执行,其中,待传输的业务数据可以来源于终端本身的业务数据,例如,手机的应用模块(AP芯片)发送待传输业务数据到通信模块(CP芯片),由通信模块进行上行传输;也可以外界传输到终端,需要通过终端传输到基站的业务数据。
步骤102、判断所述业务数据是否符合预设条件,若是,则执行步骤103,若否,则执行步骤104。
在本申请的一种优选实施例中,所述步骤102可以包括:
子步骤S11、若所述业务数据的包长小于等于第一预设阀值,则所述业务数据符合预设条件;
或,子步骤S12、若所述业务数据的包长大于第一预设阀值,且此时PDCP子层或RLC子层中不存在未处理的数据,则所述业务数据符合预设条件。
上传到基站的业务数据可以分为两种,TCP传输控制协议下上行的确认包以及其他非确认包的普通业务数据。为优先传输确认包,可以先对业务数据进行区分,若是确认包,则直接进入PDCP子层进行处理,不进入缓存队列;若是普通业务数据,则可能进入缓存队列,也可能进入PDCP子层,需进一步判断PDCP子层或RLC子层中是否存在未处理的数据,若存在,则将普通业务数据加入到缓存队列中暂缓处理,若不存在,则可以进入PDCP子层中进行处理。
具体的,通过判断业务数据的包长,可以区分普通业务数据和确认包。包长小于等于某个预设值的可以判定为确认包,包长大于预设值的可以为普通业务数据。在具体的实现中,预设值可以为40-200字节中任意一个数值,由于正常TCP业务对应的ACK包长度为40个字节,带SACK选项的确认包最多也不会超过80字节,因此,优选的,可以将80个字节作为预设值,包长小于等于80个字节判定为TCP业务对应的确认包。
步骤103、将所述业务数据发送到PDCP子层。
发送到PDCP子层的数据经处理后,可以发送到RLC子层进行处理,然后等待MAC子层的调度。
步骤104、将所述业务数据添加到缓存队列。
所述缓存队列中的业务数据按照入队时间先后进行排列,是一个先进先出的队列,业务数据从队尾入队,从队首出队,若所述缓存队列已满,则将队尾的业务数据出队并丢弃,并将新添加的业务数据入队。
步骤105、向基站发送上行数据传输请求。
所述传输请求可以用于通知基站有资源需求或向基站发送资源需求量,所述资源需求量由MAC层对缓存队列的数据量、PDCP和RLC子层的数据容量进行统计生成。
当用户需要向基站发送数据时,可以向基站发送上行数据传输请求,上行数据传输请求可以用于通知基站有资源需求,即SR(SchedulingRequest),对于SR,基站会给用户调度一个比较小的上行授权(UL GrantIplink Grant);所述传输请求也可以用于直接向基站上报具体的资源需求量,即BSR(Buffer Status Report),基站会根据上行信道测量结果和BSR的大小给用户分配一个合适的上行授权用于传输数据。
步骤106、MAC子层按照基站依据传输请求返回的当次资源分配量,对经过PDCP子层和RLC子层处理的业务数据进行调度。
在具体的实现中,用户终端通过解析基站依据上行数据的传输请求返回的上行授权生成所述当次资源分配量,并发送到MAC子层。MAC子层依据当次资源分配量对各种业务数据进行资源分配。
资源分配量是指在基站分配给终端的时频资源上可以发送的MACPDU的长度。对于目前存在业务数据的逻辑信道,MAC子层需要依据这些逻辑信道优先级,在保证各逻辑信道优先比特率的前提下,按照优先级从高到低的顺序进行资源分配,优先级相同的逻辑信道上的数据获得均等的调度机会,同一逻辑信道上的业务数据按照先后顺序被调度。被分配到资源的逻辑信道上的业务数据将被组成MAC PDU,利用基站之前分配的时频资源发送到基站。
步骤107、按照MAC子层的调度结果进行上行数据传输,并依据预估的下次资源分配量触发所述缓存队列中的业务数据出队进入PDCP子层。
依据MAC子层的调度结果可以将业务数据传输到基站,在传输数据的同时,可以触发缓存队列中的业务数据出队进入PDCP子层进行处理。
本申请中,缓存队列出队的数据量依据MAC子层预估的下次资源分配量来计算,在本申请的一种优选实施例中,所述步骤106可以包括:
子步骤S21、MAC子层在每次调度之后,由历史资源分配量计算基站下次资源分配量;
子步骤S22、判断待调度的业务数据量是否小于下次资源分配量,若是,则所述出队数据量为下次资源分配量与待调度的业务数据量之差,若否,则所述出队数据量为0;
子步骤S23、将总长小于所述出队数据量的N个业务数据包出队,发送到PDCP子层,N为整数。
MAC子层可以记录并保留一定个数的历史资源分配量,当记录满时,可以用最新的记录替换最旧的记录,历史记录初始为0。
所述下次资源分配量可以对历史资源分配量进行统计得出,优选的,所述下次资源分配量可以为第二预设阀值和统计值中的最大值,所述统计值为所述历史资源分配量中近n次资源分配量的平均值与调整系数之积,n为正整数。具体的,可以通过如下过程计算下次资源分配量。
首先,计算近n次资源分配量的平均值R
avg,
0≤i<n,其中,R(i)表示离评估时最近i次的资源分配量,单位为字节,R(0)表示当次分配资源量,n为历史总记录的个数。
然后,计算统计值β*Ravg,其中β为资源分配量平均值的调整系数,在具体的实现中,为使业务数据的上传速度尽快提升,可以设置β的值大于1,低于1会导致出队列的数据越来越小,业务数据将会囤积在缓存队列中无法出队。优选的,β值可以设为1.2。
下次资源分配量可以表示为Rasses=Max{Rmin_asses,β*Ravg},β>1,Rmin_asses为下次资源分配量的最低门限值,是预设值,为保证普通业务包有机会被发走,可以预设值应大于一个普通业务数据包的长度,优选的,Rmin_asses设为1500。
计算出基站下次资源分配量后,可以判断待调度的业务数据量是否小于下次资源分配量,待调度的业务数据也就是经过PDCP子层和RLC子层的处理,等待MAC子层调度的数据。
若大于,则说明MAC子层下次调度的业务数据有限,只能是部分或全部的待调度业务数据,不包括缓存队列中的业务数据,因此,可以出队的缓存队列中的数据量为0。若小于,则说明待调度的数据小于下次MAC子层可以调度的数据量,MAC子层还可以调度一些缓存队列中的业务数据,具体出对的数据量为下次资源分配量与待调度的业务数据量之差。用公式可以表示为:
其中,Dout为出队的业务数据量,Dwait为待调度的业务数据量。
得出出队的业务数据量后,按照当前缓存队列队首开始出队数据,保证出队的数据包总长度不大于评估出的出队业务数据量Dout。具体的,出对的数据包的个数Nout可以表示为:
其中lpkt(j)表示缓存队列中离队首距离为j的数据包的长度,lpkt(0)表示缓存队列第一个数据包长度。
参考图2,示出了本申请的一种上行数据的传输方法实施例2的流程图,具体可以包括以下步骤:
步骤201、接收待传输的业务数据。
步骤202、判断所述业务数据是否符合预设条件,若是,则执行步骤203,若否,则执行步骤204。
步骤203、将所述业务数据发送到PDCP子层。
步骤204、将所述业务数据添加到缓存队列。
步骤205、向基站发送上行数据传输请求,所述传输请求包括第一传输请求和第二传输请求,所述第一传输请求用于通知基站有资源需求,所述第二传输请求用于向基站发送资源需求量,所述第二传输请求在接收到基站依据第一传输请求返回的当次资源分配量后发送。
目前,LTE系统中上行链路主要采用动态资源分配机制,上行资源调度过程中需要向基站发送两次传输请求,具体的请求过程如下步骤:
步骤1:当终端(UE)有发送数据的需求时,通过发送SR(SchedulingRequest)向基站(ENB)请求上行资源。此时UE只通知ENB有资源需求,步骤3中再通知具体的资源需求量。
步骤2:ENB收到SR后,给UE调度一个较小的上行授权(UL grant),供UE上报具体的资源需求量使用。
步骤3:UE使用ENB分配的上行授权,根据业务情况,通过发送BSR(Buffer Status Report)上报具体的资源需求量。
步骤4:ENB根据上行信道质量测量结果和UE上报的BSR,按照某种资源调度策略,进行上行资源分配。
步骤5:UE接收资源分配结果的通知后,按照调度策略对各种业务数据进行资源分配。
由上面的步骤可以看出,第二传输请求BSR在接收到基站依据第一传输请求SR返回的当次资源分配量后发送。在接收到基站依据SR分配的上行授权后,解析上行授权,得到一次资源分配量,依据这次较小的资源分配量,MAC子层可以对待调度的业务数据进行调度,同时,生成BSR并发送到基站,在接收到基站依据BSR分配的上行授权后,解析上行授权,得到另一个资源分配量,依据本次资源分配量,MAC子层也会对待调度的业务数据进行调度。
其中,所述资源需求量可以由MAC层对缓存队列的数据量、PDCP和RLC子层的数据容量进行统计生成。
步骤206、MAC子层按照基站依据传输请求返回的当次资源分配量,对经过PDCP子层和RLC子层处理的业务数据进行调度;
步骤207、按照MAC子层的调度结果进行上行数据传输,并依据预估的下次资源分配量触发所述缓存队列中的业务数据出队进入PDCP子层。
步骤208、按照所述缓存队列的业务数据变化,更新所述缓存队列数据量。
缓存队列的业务数据出队后,业务数据量发生了变化,对缓存队列的业务数据量进行更新可以便于MAC子层统计资源需求量。
综上所述,依据本申请,在上行数据的传输过程中,若业务数据是TCP传输协议控制下终端下载数据后上传的确认包,则直接发送到PDCP子层和RLC子层进行优先处理,若业务数据不是确认包而是普通业务数据,且PDCP子层和RLC子层存在未处理的数据,则添加到缓存队列中,在每次调度后触发出队,从而确保确认包可以优先被传输到基站,因此可以加快确认包上传的速度,克服了现有LTE系统中上行链路数据传输机制对TCP下载对应的确认包增加的时延,提高TCP下载性能。
并且,由于TCP业务对应的确认包的长度较小,并不会抢占太多上行资源,所以普通业务数据仍然能获取足够的上行资源进行数据传输。因此,本申请中在保证确认包能够优先被调度的同时,又能避免普通业务数据被缓存后带来的额外时延,不影响普通业务数据的上传速度。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
参考图3,示出了本申请的一种上行数据的传输装置实施例1的结构框图,所述装置包括PDCP模块304、RLC模块305,所述装置具体还可以包括以下模块:
业务数据接收模块301,用于接收待传输的业务数据;
预处理模块302,用于对待传输的业务数据进行预处理,所述预处理模块包括判断子模块和缓存出队子模块;
判断子模块3021,用于判断所述业务数据是否符合预设条件,若是,则将所述业务数据发送到PDCP模块,若否,则将所述业务数据添加到缓存队列;
缓存出队子模块3022,用于依据预估的下次资源分配量触发所述缓存队列中的业务数据出队进入PDCP模块;
传输请求发送模块303,用于向基站发送上行数据传输请求;
MAC模块306,包括调度子模块3061,用于按照基站依据传输请求返回的当次资源分配量,对经过PDCP模块和RLC模块处理的业务数据进行调度;
在本申请的一种优选实施例中,所述传输请求可以用于通知基站有资源需求或向基站发送资源需求量,当所述传输请求用于向基站发送资源需求量时,所述MAC模块306还可以包括资源需求量统计子模块。
资源需求量统计子模块3062,用于由缓存队列的数据量、PDCP和RLC子层的数据容量统计资源需求量。
数据传输模块307,用于按照MAC模块的调度结果进行上行数据传输。
在本申请的一种优选实施例中,所述判断子模块3021可以包括:
第一判断子单元,用于若所述业务数据的包长小于等于第一预设阀值,则所述业务数据符合预设条件;
或,第二判断子单元,用于若所述业务数据的包长大于第一预设阀值,且此时PDCP子层或RLC子层中不存在未处理的数据,则所述业务数据符合预设条件。
在本申请的一种优选实施例中,所述缓存队列中的业务数据按照入队时间先后进行排列。
在本申请的一种优选实施例中,所述缓存出队子模块3022可以包括:
出队数据量计算单元,用于判断待调度的业务数据量是否小于下次资源分配量,若是,则所述出队数据量为下次资源分配量与待调度的业务数据量之差,若否,则所述出队数据量为0;
数据出队单元,用于将数据包总长小于所述出队数据量的N个数据包出队,发送到PDCP子层,N为整数。
优选的,所述下次资源分配量可以为第二预设阀值和统计值中的最大值,所述统计值可以为所述历史资源分配量中,近n次资源分配量的平均值与调整系数之积,n为正整数。
在具体的实现中,所述当次资源分配量可以通过解析基站依据上行数据的传输请求返回的上行授权生成,并发送到MAC模块。
参考图4,示出了本申请的一种上行数据的传输装置实施例2的结构框图,所述装置包括PDCP模块404、RLC模块405,所述装置具体还可以包括以下模块:
业务数据接收模块401,用于接收待传输的业务数据。
在本实施例中,预处理模块还可以在缓存队列已满的时候,将队尾的业务数据丢弃,还可以进一步依据缓存队列的业务数据变化更新缓存队列数据量,如图4所示,所述预处理模块还可以进一步包括数据丢弃子模块和/或队列信息更新子模块。
预处理模块402,用于对待传输的业务数据进行预处理,所述预处理模块包括判断子模块、缓存出队子模块、数据丢弃子模块和队列信息更新子模块;
判断子模块4021,用于判断所述业务数据是否符合预设条件,若是,则将所述业务数据发送到PDCP模块,若否,则将所述业务数据添加到缓存队列;
缓存出队子模块4022,用于依据预估的下次资源分配量触发所述缓存队列中的业务数据出队进入PDCP模块;
数据丢弃子模块4023,用于若所述缓存队列已满,则将队尾的业务数据丢弃,并将新添加的业务数据入队;
队列信息更新子模块4024,用于按照缓存队列的业务数据变化,更新缓存队列数据量。
传输请求发送模块403,用于向基站发送上行数据传输请求,所述传输请求包括第一传输请求和第二传输请求,所述第一传输请求用于通知基站有资源需求,所述第二传输请求用于向基站发送资源需求量,所述第二传输请求在接收到基站依据第一传输请求返回的当次资源分配量后发送。
MAC模块406,包括调度子模块和资源需求量统计子模块;
调度子模块4061,用于按照基站依据传输请求返回的当次资源分配量,对经过PDCP模块和RLC模块处理的业务数据进行调度;
资源需求量统计子模块4062,用于由缓存队列的数据量、PDCP和RLC子层的数据容量统计资源需求量。
数据传输模块407,用于按照MAC模块的调度结果进行上行数据传输。
由于所述装置实施例基本相应于前述图1和图2所示的方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此就不赘述了。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种上行数据的传输方法,以及,一种上行数据的传输装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。