一种数据传输方法及终端转让专利

申请号 : CN201910619471.3

文献号 : CN110290559B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 洪岳吴梦想孙彦良王国争

申请人 : 维沃移动通信有限公司

摘要 :

本发明提供一种数据传输方法及终端,该方法包括:确定所述终端的上行参数;若所述上行参数满足预设条件,则丢弃所述上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件。本发明提供的上述方法,通过丢弃上行缓存中的目标对象的部分上行数据,可减少终端发送上行缓存中累积的上行数据的数据量,以减少终端发送上行缓存中累积的数据的时间,从而降低目标对象的数据传输时延。

权利要求 :

1.一种数据传输方法,应用于终端,其特征在于,包括:确定所述终端的上行参数;

若所述上行参数满足预设条件,则丢弃上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件;

所述目标对象包括所述终端的第一应用,所述上行参数包括所述上行缓存中所述第一应用的上行数据的数据量和所述第一应用的时延;

所述若所述上行参数满足预设条件,则丢弃所述上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件,包括:若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述时延大于时间阈值,则丢弃所述上行缓存中所述第一应用的部分上行数据,以使得所述上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值,和/或,使得所述时延不大于所述时间阈值;

或者,

若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述时延大于时间阈值,触发上行最大重传,以清空所述上行缓存。

2.根据权利要求1所述的方法,其特征在于,在所述确定所述终端的上行参数之前,还包括:为所述第一应用的上行数据设置标识;

根据所述标识确定上行缓存中所述第一应用的上行数据。

3.根据权利要求1所述的方法,其特征在于,在所述确定所述终端的上行参数之前,还包括:若所述第一应用的上行数据包括预设的服务质量等级标识QCI,则根据所述QCI确定用于进行上行传输的逻辑信道;

将所述逻辑信道中的数据确定为所述第一应用的上行数据。

4.一种终端,其特征在于,包括:

第一确定模块,用于确定所述终端的上行参数;

处理模块,用于若所述上行参数满足预设条件,则丢弃上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件;

所述目标对象包括所述终端的第一应用,所述上行参数包括所述上行缓存中所述第一应用的上行数据的数据量和所述第一应用的时延;

所述处理模块,用于:

若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述时延大于时间阈值,则丢弃所述上行缓存中所述第一应用的部分上行数据,以使得所述上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值,和/或,使得所述时延不大于所述时间阈值;

或者,

若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述时延大于时间阈值,触发上行最大重传,以清空所述上行缓存。

5.根据权利要求4所述的终端,其特征在于,还包括:设置模块,用于为所述第一应用的上行数据设置标识;

第二确定模块,用于根据所述标识确定上行缓存中所述第一应用的上行数据。

6.根据权利要求4所述的终端,其特征在于,还包括:第三确定模块,用于若所述第一应用的上行数据包括预设的服务质量等级标识QCI,则根据所述QCI确定用于进行上行传输的逻辑信道;

第四确定模块,用于将所述逻辑信道中的数据确定为所述第一应用的上行数据。

7.一种终端,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至3中任一项所述的数据传输方法的步骤。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述的数据传输方法的步骤。

说明书 :

一种数据传输方法及终端

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种数据传输方法及终端。

背景技术

[0002] 在网络处于较弱环境时(例如参考信号接收功率在-110dbm以下时),由于上行授权低,数据链路层上行缓存(buffer)数据累积。当网络恢复到较好情况时,需要清空之前累积的缓存才能发送新来的数据。例如:累积的缓存达到300000字节,网络波动变好时上行授权(UL grants)为300字节/毫秒,需要1s左右才能清空缓存,然后再进行后续传输。这样,导致数据传输时延长。

发明内容

[0003] 本发明实施例提供一种数据传输方法及终端,以解决在网络信号强度不稳定的情况下,数据传输时延长的问题。
[0004] 为解决上述技术问题,本发明是这样实现的:
[0005] 第一方面,本发明实施例提供了一种数据传输方法,应用于终端,包括:
[0006] 确定所述终端的上行参数;
[0007] 若所述上行参数满足预设条件,则丢弃所述上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件。
[0008] 第二方面,本发明实施例还提供一种终端,包括:
[0009] 第一确定模块,用于确定所述终端的上行参数;
[0010] 处理模块,用于若所述上行参数满足预设条件,则丢弃所述上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件。
[0011] 第三方面,本发明实施例还提供一种终端,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述数据传输方法的步骤。
[0012] 第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据传输方法的步骤。
[0013] 在本发明实施例中,确定所述终端的上行参数;若所述上行参数满足预设条件,则丢弃所述上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件。这样,通过丢弃上行缓存中的目标对象的部分上行数据,可减少终端发送上行缓存中累积的上行数据的数据量,以减少终端发送上行缓存中累积的数据的时间,从而降低目标对象的数据传输时延。

附图说明

[0014] 图1是本发明实施例提供的数据传输方法的流程图之一;
[0015] 图2是本发明实施例提供的数据传输方法的流程图之二;
[0016] 图3是本发明实施例提供的数据传输方法的流程图之三;
[0017] 图4是本发明实施例提供的数据传输方法的流程图之四;
[0018] 图5是本发明实施例提供的数据传输方法的流程图之五;
[0019] 图6是本发明实施例提供的终端的结构图之一;
[0020] 图7是本发明实施例提供的终端的结构图之二。

具体实施方式

[0021] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022] 参见图1,图1是本发明实施例提供的数据传输方法的流程图之一,如图1所示,本实施例提供一种数据传输方法,应用于终端,包括以下步骤:
[0023] 步骤101、确定所述终端的上行参数。
[0024] 上行参数可以为终端上行缓存中的总数据量,上行缓存中目标对象的上行数据的数据量,或者目标对象的时延中的一个或多个。目标对象可理解为终端的应用,例如,游戏应用、视频应用、直播应用等对时延要求高的应用。
[0025] 步骤102、若所述上行参数满足预设条件,则丢弃所述上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件。
[0026] 若上行参数包括上行缓存中目标对象的上行数据的数据量,则预设条件可包括上行缓存中目标对象的上行数据的数据量大于第一数据量阈值;若上行参数包括终端上行缓存中的总数据量,则预设条件可包括终端上行缓存中的总数据量大于第二数据量阈值;若上行参数包括目标对象的时延,则预设条件可包括目标对象的时延大于时间阈值。预设条件可认为是影响目标对象的数据传输时延的条件。
[0027] 在丢弃上行缓存中目标对象的部分上行数据时,可优先丢弃最先存储在上行缓存中的数据。例如,根据目标对象的上行数据存储在上行缓存中的时间顺序,从最早存储在上行缓存中的数据开始依次丢弃,直到上行参数不满足预设条件。
[0028] 在本实施例中,目标对象的部分上行数据,可以理解为,上行缓存中目标对象的所有上行数据中的一部分上行数据,也可以理解为,上行缓存中目标对象的所有上行数据。
[0029] 在网络处于较弱环境时,上行缓存会出现数据累积,当网络变好时,虽然上行授权变高,但是还是需要将上行缓存中累积的数据先发送出去,然后再对新的数据进行传输。数据累积较多时,发送上行缓存中累积的数据需要的时间较多。在本实施例中,通过丢弃上行缓存中的目标对象的部分上行数据,可减少终端发送上行缓存中累积的上行数据的数据量,以减少终端发送上行缓存中累积的数据的时间,从而降低目标对象的数据传输时延。也就是说,在网络信号强度不稳定的情况下,上行缓存容易出现累积较多数据量的情况,通过丢弃上行缓存中目标对象的部分上行数据,可降低目标对象的数据传输时延。
[0030] 本发明实施例中,上述终端可以为手机、平板电脑(Tablet Personal Computer)、膝上型电脑(Laptop Computer)、个人数字助理(personal digital assistant,简称PDA)、移动上网装置(Mobile Internet Device,MID)或可穿戴式设备(Wearable Device)等。
[0031] 本发明实施例的数据传输方法,确定所述终端的上行参数;若所述上行参数满足预设条件,则丢弃所述上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件,这样,通过丢弃上行缓存中的目标对象的部分上行数据,可减少终端发送上行缓存中累积的上行数据的数据量,以减少终端发送上行缓存中累积的数据的时间,从而降低目标对象的数据传输时延。
[0032] 当采用的上行参数不同时,对应的预设条件不同,以下列举几种实现方式对上述步骤102进行说明。
[0033] 第一种实现方式:在所述目标对象包括所述终端的第一应用,所述上行参数包括所述上行缓存中所述第一应用的上行数据的数据量和所述上行缓存的总数据量的情况下,上述步骤102,包括:
[0034] 若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述上行缓存的总数据量大于第二数据量阈值,则丢弃所述上行缓存中所述第一应用的部分上行数据,使得所述上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值,和/或,使得所述上行缓存的总数据量不大于第二数据量阈值;
[0035] 或者,
[0036] 若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述上行缓存的总数据量大于第二数据量阈值,触发上行最大重传,以清空所述上行缓存。
[0037] 具体的,预设条件为所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述上行缓存的总数据量大于第二数据量阈值。第二数据量阈值可根据实际情况进行设置,在此不做限定。第二数据量阈值大于第一数据量阈值。第二数据量阈值可认为是上行缓存可接受的最大数据累积量,第一数据量阈值可认为是第一应用可接受的最小数据量。当上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述上行缓存的总数据量大于第二数据量阈值时,对上行缓存中的上行数据进行处理。
[0038] 在对上行缓存中的上行数据进行处理时,包括两种处理方式。第一种处理方式为:丢弃所述上行缓存中所述第一应用的部分上行数据,使得所述上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值,和/或,使得所述上行缓存的总数据量不大于第二数据量阈值。通过丢弃上行缓存中的第一应用的部分上行数据,可减少终端发送上行缓存中累积的上行数据的数据量,以减少终端发送上行缓存中累积的数据的时间,从而降低第一应用的数据传输时延。对于时延要求较高的应用来说,采用本处理方式可减少时延,提高用户体验。
[0039] 第一应用的部分上行数据,可以理解为,上行缓存中第一应用的所有上行数据中的一部分上行数据,也可以理解为,上行缓存中第一应用的所有上行数据。
[0040] 第二种处理方式为:触发上行最大重传,以清空所述上行缓存。触发上行最大重传,可使得终端自判定无线链路失败(Radio Link Failure,简称RLF),进入无线链路重建。终端借助无线链路重建,可以完成上行缓存的清空。清空之后,上行缓存中第一应用的剩余上行数据的数据量为0,上行缓存的总数据量为0,仍旧满足上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值,或者所述上行缓存的总数据量不大于第二数据量阈值。
[0041] 在第二种处理方式中,从触发上行最大重传,使得终端自判定无线链路失败到完成无线链路重建,需要几十到几百毫秒,存在一定风险,优选适用于网络出现短时大幅波动后,需要将上行缓存中的数据迅速恢复的情况。通过清空上行缓存,可减少终端发送上行缓存中累积的上行数据的数据量,以减少终端发送上行缓存中累积的数据的时间,从而降低第一应用的数据传输时延。
[0042] 第二种实现方式:在所述目标对象包括所述终端的第一应用,所述上行参数包括所述上行缓存中所述第一应用的上行数据的数据量,以及所述第一应用的时延的情况下,上述步骤102,包括:
[0043] 若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述时延大于时间阈值,则丢弃所述上行缓存中所述第一应用的部分上行数据,以使得所述上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值,和/或,使得所述时延不大于所述时间阈值;
[0044] 或者,
[0045] 若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述时延大于时间阈值,触发上行最大重传,以清空所述上行缓存。
[0046] 具体的,第一应用的时延可从终端的传输控制协议(Transmission Control Protocol,简称TCP)或互联网协议(Internet Protocol,简称IP)(可理解为TCP/IP层)层中获取。在第二种实现方式中,上行参数不仅包括上行缓存中第一应用的上行数据的数据量,还包括第一应用的时延。在所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述时延大于时间阈值的情况下,对上行缓存中的上行数据进行处理。
[0047] 在对上行缓存中的上行数据进行处理时,包括两种处理方式。第一种处理方式为:丢弃所述上行缓存中所述第一应用的部分上行数据,使得所述上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值,和/或,使得所述时延不大于所述时间阈值。
[0048] 在丢弃上行缓存中第一应用的部分上行数据时,可优先丢弃最先存储在上行缓存中的数据。例如,根据第一应用的上行数据存储在上行缓存中的时间顺序,从最早存储在上行缓存中的数据开始依次丢弃,直到上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值,和/或,使得所述时延不大于所述时间阈值。
[0049] 通过丢弃上行缓存中的第一应用的部分上行数据,可减少终端发送上行缓存中累积的第一应用的上行数据的数据量,以减少终端发送上行缓存中累积的数据的时间,从而降低第一应用的数据传输时延。对于时延要求较高的应用来说,采用本处理方式可减少时延,提高用户体验。
[0050] 第一应用的部分上行数据,可以理解为,上行缓存中第一应用的所有上行数据中的一部分上行数据,也可以理解为,上行缓存中第一应用的所有上行数据。
[0051] 第二种处理方式为:触发上行最大重传,以清空所述上行缓存。触发上行最大重传,可使得终端自判定无线链路失败(Radio Link Failure,简称RLF),进入无线链路重建。终端借助无线链路重建,可以完成上行缓存的清空。清空之后,上行缓存中第一应用的剩余上行数据的数据量为0,仍旧满足上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值的条件。
[0052] 在第二种处理方式中,从触发上行最大重传,使得终端自判定无线链路失败到完成无线链路重建,需要几十到几百毫秒,存在一定风险,优选适用于网络出现短时大幅波动后,需要将上行缓存中的数据迅速恢复的情况。通过清空上行缓存,可减少终端发送上行缓存中累积的上行数据的数据量,以减少终端发送上行缓存中累积的数据的时间,从而降低第一应用的数据传输时延。
[0053] 从触发上行最大重传,使得终端自判定无线链路失败到完成无线链路重建,需要几十到几百毫秒,存在一定风险,优选适用于网络出现短时大幅波动后,需要将上行缓存中的数据迅速恢复的情况。通过清空上行缓存,可减少终端发送上行缓存中累积的上行数据的数据量,以减少终端发送上行缓存中累积的数据的时间,从而降低目标对象的数据传输时延。
[0054] 在对上行缓存中,可通过数据是否具有目标对象的标识来判断该数据是否为目标对象的数据。实现的方式为:在步骤101、确定所述终端的上行参数之前,还包括:
[0055] 为所述第一应用的上行数据设置标识;
[0056] 根据所述标识确定所述上行缓存中所述第一应用的上行数据。
[0057] 具体的,终端在TCP/IP层对目标对象的上行数据进行标记,为上行数据设置唯一标识,终端根据标识可将目标对象的上行数据与终端的其他上行数据进行区分。
[0058] 在分组数据汇聚协议(Packet Data Convergence Protocol,简称PDCP)、无线链路控制层协议(Radio Link Control,简称RLC)、介质访问控制子层协议(Media Access Control,简称MAC)的分包处理中,对高层到来的包,如发现目标对象的标识,则在相应层的分包中,也加入目标对象的标识。对于往低层传递的包,在传递的过程中,需要去掉当前层添加的目标对象的标识后再传递(即数据在传输过程中,是按照没有标识位的数据格式进行传递的,数据在L2的各层中时,数据是以有标识位的数据格式存在的,L2层包括PDCP层、RLC层和MAC层)。目标对象的标识只能储存于各层的数据的头部(header)中,例如,可以在头部增加标识位,此标识位可以映射到目标对象(即标识位的数值与目标对象对应)。数据传输过程中,终端可依据此标识位来确定是否是目标对象的数据,从而确定是否需要丢弃。
[0059] 终端在确定上行缓存中目标对象的上行数据时,可根据所述标识确定所述上行缓存中所述第一应用的上行数据,从而确定第一应用的上行数据的数据量。上行缓存位于MAC层。
[0060] 终端通过为目标对象的上行数据设置标识,可根据所述标识确定所述上行缓存中所述第一应用的上行数据的数据量,以进一步根据所述目标对象的上行数据的数据量确定是否需要丢弃数据,并在丢弃数据时,根据标识确定目标对象的上行数据,从而对目标对象的上行数据进行丢弃。
[0061] 本发明还提供另一种确定是否是目标对象数据的方式。进一步的,在所述确定所述终端的上行参数之前,还包括:
[0062] 若所述第一应用的上行数据包括预设的服务质量等级标识QCI,则根据所述QCI确定用于进行上行传输的逻辑信道;
[0063] 将所述逻辑信道中的数据确定为所述第一应用的上行数据。
[0064] 具体的,目标对象的上行数据可能具有特有的服务质量等级标识(QoS Class Identifier,简称QCI),其中,QoS为服务质量(Quality of Service,简称QoS),例如,有些游戏数据。在目标对象的上行数据包括预设的QCI的情况下,根据所述QCI确定用于进行上行传输的逻辑信道,该逻辑信道用于传输目标对象的上行数据,此时,该逻辑信道中的数据即可确定为目标对象的上行数据,并将所述逻辑信道中的数据量确定为所述第一应用的上行数据的数据量。在进行数据丢弃时,对逻辑信道缓存中的数据丢弃即可。也就是说,通过逻辑信道可确定目标对象的上行数据。逻辑信道缓存可理解为上行缓存的一部分。
[0065] 在对逻辑信道缓存中的数据进行丢弃时,可优先丢弃最先存储在逻辑信道缓存中的数据。例如,数据存储在逻辑信道缓存中的时间顺序,从最早存储的数据开始依次丢弃,直到上行参数不满足预设条件。另外,也可以对逻辑信道进行清空处理,即将逻辑信道缓存中的数据全部清除。
[0066] 在本实施例中,通过丢弃逻辑信道缓存中的数据,以丢弃目标对象的部分上行数据,可减少终端发送上行缓存中累积的上行数据的数据量,以减少终端发送上行缓存中累积的数据的时间,从而降低目标对象的数据传输时延。
[0067] 终端也会通过配置PDCP丢包计时器(discard timer)来进行丢包动作,终端可针对特定应用(例如第一应用)采用自定义门限(即第一数据量阈值,和/第二数据量阈值)进行丢包,相比采用丢包计时器,丢包方式更加灵活。当丢包计时器配置为无穷大(infinity)的时候,终端的丢包行为直接按照上述实现方式中的丢包方式实现;当丢包计时器没有设置成无穷大(infinity)时(例如300ms),若上行参数中,目标对象的时延小于该值(300ms),采用本发明的数据传输方法也能发挥改善时延的作用。
[0068] 如图2所示,图2为本发明实施例提供的数据传输方法的流程示意图之二,如图2所示,图2以低时延类游戏为例进行说明。
[0069] 步骤111、进入游戏,即终端上运行游戏应用。
[0070] 步骤122、对游戏应用的上行数据进行标记。终端根据游戏应用的标识(也可称为数据标识),在TCP/IP层对游戏应用的数据进行标记。上行发送中,当这些数据到达modem时,也能在modem(可理解为L2层)中与其他数据进行区别。在PDCP、RLC、MAC的分包处理中,对高层到来的包,如发现“游戏数据标识”,则在相应层的分包中,也加入“游戏数据标识。对于往低层传递的包,在传递的版本中,需要去掉当前层的“游戏数据标识”后再传递。数据标识只能储存于各层header中,需要增加header中标识位,此标识位可以映射到某个或者某类低时延应用。数据传输过程中,modem可依据此标识位来定位需要丢弃的数据。
[0071] 步骤133、上行缓存中累积数据量A1>X且A2>Y。通过自定义设定的threshold X(第二数据量阈值)和threshold Y(第一数据量阈值),其中X为可接受的最大数据累积量,Y为游戏应用可接受的最小数据量(YX且A2>Y时,转步骤44执行。
[0072] 步骤144、识别并丢弃上行缓存中的部分游戏数据。即识别并丢弃超出threshold X的对应游戏数据量。例如,丢弃最早累积的游戏数据,直到A1<=X或者A2<=Y,退出循环并保持监控buffer累积数据量。
[0073] Threshold X和Threshold Y可设置在终端工程模式或者开发者模式中进行调整。
[0074] 步骤155、后续发包重新从序号n开始。若MAC层的数据包不进行丢弃,则在相应数据包发送前,需去掉标识(即终端为识别目标对象,为目标对象添加的标识)后再发送;若对MAC层的数据包进行丢弃,则在丢弃时,需要将RLC层和PDCP层的包也相应丢弃,且RLC层和PDCP包编号保持连续,即,在丢弃相应包的同时,需要记录丢弃的相应包的序号n,后续发包时需要重新从序号n开始,避免造成乱序重发。
[0075] 如图3所示,图3为本发明实施例提供的数据传输方法的流程示意图之三,如图3所示,图3以低时延类游戏为例进行说明。
[0076] 图3与图2的区别在于,省去了标记游戏应用数据的步骤。游戏数据具有特有的QCI,通过相应的逻辑信道承载。在进行数据丢弃时,只需要针对游戏数据特有的逻辑信道进行丢弃。
[0077] 步骤211、进入游戏,即终端上运行游戏应用。
[0078] 步骤222、上行缓存中累积数据量A1>X且A2>Y。通过自定义设定的threshold X(第二数据量阈值)和threshold Y(第一数据量阈值),其中X为可接受的最大数据累积量,Y为游戏应用可接受的最小数据量(YX且A2>Y时,转步骤233执行。
[0079] 步骤233、通过对应QCI识别到对应逻辑信道,并对逻辑信道内的部分数据进行丢弃。
[0080] 识别并丢弃超出threshold X的对应游戏数据量。例如,丢弃最早累积的游戏数据,直到A1<=X或者A2<=Y,退出循环并保持监控buffer累积数据量。
[0081] Threshold X和Threshold Y可设置在终端工程模式或者开发者模式中进行调整。
[0082] 步骤244、后续发包重新从序号n开始。若MAC层的数据包不进行丢弃,则在相应数据包发送前,需去掉标识(即终端为识别目标对象,为目标对象添加的标识)后再发送;若对MAC层的数据包进行丢弃,则在丢弃时,需要将RLC层和PDCP层的包也相应丢弃,且RLC层和PDCP包编号保持连续,即,在丢弃相应包的同时,需要记录丢弃的相应包的序号n,后续发包时需要重新从序号n开始,避免造成乱序重发。
[0083] 图3所示方式比图2所示方式更加简明直接,但是受到一些因素限制:如对于双开游戏,无法识别不同游戏数据,或者,某些地方核心网策略并不支持特定游戏对应到特定QCI等。
[0084] 如图4所示,图4为本发明实施例提供的数据传输方法的流程示意图之四,如图4所示,图4以低时延类游戏为例进行说明。图4与图2的区别在于,同时考虑了游戏数据在上行缓存中的数据量,以及游戏应用的时延。
[0085] 步骤311、进入游戏,即终端上运行游戏应用。
[0086] 步骤322、对游戏应用的上行数据进行标记。终端根据游戏应用的标识(也可称为数据标识),在TCP/IP层对游戏应用的数据进行标记。上行发送中,当这些数据到达modem时,也能在modem(可理解为L2层)中与其他数据进行区别。在PDCP、RLC、MAC的分包处理中,对高层到来的包,如发现“游戏数据标识”,则在相应层的分包中,也加入“游戏数据标识。对于往低层传递的包,在传递的版本中,需要去掉当前层的“游戏数据标识”后再传递。数据标识只能储存于各层header中,需要增加header中标识位,此标识位可以映射到某个或者某类低时延应用。数据传输过程中,modem可依据此标识位来定位需要丢弃的数据。
[0087] 步骤333、游戏应用时延T1>T且A2>Y。游戏时延T1可从TCP/IP中获取。通过自定义设定的threshold T(时间阈值)和threshold Y(第一数据量阈值)。buffer游戏应用累积的数据量记做A2。在游戏应用运行时,若因为上行受限造成L2上行缓存(buffer)累积,当T1>T且A2>Y时,转步骤344执行。
[0088] 步骤344、识别并丢弃上行缓存中的部分游戏数据,即识别并丢弃最早累积的游戏数据,直到A1<=X或者A2<=Y,退出循环并保持监控buffer累积数据量。
[0089] Threshold T和Threshold Y可设置在终端工程模式或者开发者模式中进行调整。
[0090] 步骤355、后续发包重新从序号n开始。若MAC层的数据包不进行丢弃,则在相应数据包发送前,需去掉标识(即终端为识别目标对象,为目标对象添加的标识)后再发送;若对MAC层的数据包进行丢弃,则在丢弃时,需要将RLC层和PDCP层的包也相应丢弃,且RLC层和PDCP包编号保持连续,即,在丢弃相应包的同时,需要记录丢弃的相应包的序号n,后续发包时需要重新从序号n开始,避免造成乱序重发。
[0091] 如图5所示,图5为本发明实施例提供的数据传输方法的流程示意图之五,如图5所示,图5以低时延类游戏为例进行说明。
[0092] 步骤411、进入游戏,即终端上运行游戏应用。
[0093] 步骤422、优先传递具有游戏数据标识的UDP数据。在TCP/IP层向L2传递数据时,优先传递具有标识(该标识用于标识游戏数据)的UDP数据,然后,再传递其它TCP或用户数据报协议(User Datagram Protocol,简称UDP)。
[0094] 步骤433、判断游戏应用时延T1>T且A2>Y,或者A1>X且A2>Y是否成立,A1当发现游戏应用的时延T1>T或者,L2buffer累积A1>X且A2>Y时,转步骤444执行。
[0095] 步骤444、触发上行最大重传,清空上行缓存。即触发上行最大重传,使得终端自判定RLF(无线链路失败),进入无线链路重建,借助无线链路重建,完成modem数据的清空。完成无线链路重建后,TCP/IP层将没有确认传递的数据包,重新下发到L2。
[0096] 步骤455、后续发包重新从序号n开始。若MAC层的数据包不进行丢弃,则在相应数据包发送前,需去掉标识(即终端为识别目标对象,为目标对象添加的标识)后再发送;若对MAC层的数据包进行丢弃,则在丢弃时,需要将RLC层和PDCP层的包也相应丢弃,且RLC层和PDCP包编号保持连续,即,在丢弃相应包的同时,需要记录丢弃的相应包的序号n,后续发包时需要重新从序号n开始,避免造成乱序重发。
[0097] 图5所示实施例,触发RLF到完成重建需要几十到几百毫秒,存在一定风险,仅适用于网络出现短时大幅波动后,需要将buffer中的数据迅速恢复的情况。
[0098] 图1-图5所示实施例中,在上行缓存累积造成的游戏卡顿场景下,通过丢弃一部分游戏数据,可缓解卡顿情况。丢弃游戏数据时主要依据两种方式;若在IP层通过标识对游戏数据进行标记,那么在丢弃时,可根据标识确定游戏应用的数据,从而进行丢弃;若游戏数据具有QCI,那么可通过QCI映射到对应逻辑信道,丢弃该信道上的游戏数据。
[0099] 在实时性较强的业务中,用户对时延的容忍性很低,传统方式在网络环境波动的情况下,每次可能需要多至1s才能清空之前上行缓存,容易造成多次卡顿,影响用户体验。本发明可自定义第一数据量阈值、第二数据量阈值和时间阈值,通过丢弃之前不再重要的业务数据,及时传输新的数据,能有效减少网络从卡顿到流畅的恢复时间,在环境信号强度不稳定的情况下,能够显著降低延迟,提升用户体验。本发明优选应用于UDP传输的实时性较高的场景。
[0100] 参见图6,图6是本发明实施例提供的终端的结构图之一,如图6所示,终端600包括:
[0101] 第一确定模块601,用于确定所述终端的上行参数;
[0102] 处理模块602,用于若所述上行参数满足预设条件,则丢弃所述上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件。
[0103] 进一步的,所述目标对象包括所述终端的第一应用,所述上行参数包括所述上行缓存中所述第一应用的上行数据的数据量和所述上行缓存的总数据量;
[0104] 所述处理模块602,用于:
[0105] 若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述上行缓存的总数据量大于第二数据量阈值,则丢弃所述上行缓存中所述第一应用的部分上行数据,使得所述上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值,和/或所述上行缓存的总数据量不大于第二数据量阈值;
[0106] 或者,
[0107] 若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述上行缓存的总数据量大于第二数据量阈值,触发上行最大重传,以清空所述上行缓存。
[0108] 进一步的,所述目标对象包括所述终端的第一应用,所述上行参数包括所述上行缓存中所述第一应用的上行数据的数据量和所述第一应用的时延;
[0109] 所述处理模块602,用于:
[0110] 若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述时延大于时间阈值,则丢弃所述上行缓存中所述第一应用的部分上行数据,以使得所述上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值,和/或,使得所述时延不大于所述时间阈值;
[0111] 或者,
[0112] 若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述时延大于时间阈值,触发上行最大重传,以清空所述上行缓存。
[0113] 进一步的,终端600还包括:
[0114] 设置模块,用于为所述第一应用的上行数据设置标识;
[0115] 第二确定模块,用于根据所述标识确定所述上行缓存中所述第一应用的上行数据的数据量。
[0116] 进一步的,终端600还包括:
[0117] 第三确定模块,用于若所述第一应用的上行数据包括预设的服务质量等级标识QCI,则根据所述QCI确定用于进行上行传输的逻辑信道;
[0118] 第四确定模块,用于将所述逻辑信道中的数据量确定为所述第一应用的上行数据的数据量。
[0119] 终端600能够实现图1至图5的方法实施例中终端实现的各个过程,为避免重复,这里不再赘述。
[0120] 本发明实施例的终端600,确定所述终端的上行参数;若所述上行参数满足预设条件,则丢弃所述上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件,这样,通过丢弃上行缓存中的目标对象的部分上行数据,可减少终端发送上行缓存中累积的上行数据的数据量,以减少终端发送上行缓存中累积的数据的时间,从而降低目标对象的数据传输时延。
[0121] 图7为实现本发明各个实施例的一种终端的硬件结构示意图,如图7所示,该终端700包括但不限于:射频单元701、网络模块702、音频输出单元703、输入单元704、传感器
705、显示单元706、用户输入单元707、接口单元708、存储器709、处理器710、以及电源711等部件。本领域技术人员可以理解,图7中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,终端包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
[0122] 其中,处理器710,用于确定所述终端的上行参数;
[0123] 若所述上行参数满足预设条件,则丢弃所述上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件。
[0124] 进一步的,所述目标对象包括所述终端的第一应用,所述上行参数包括所述上行缓存中所述第一应用的上行数据的数据量和所述上行缓存的总数据量;
[0125] 处理器710,用于若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述上行缓存的总数据量大于第二数据量阈值,则丢弃所述上行缓存中所述第一应用的部分上行数据,使得所述上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值,和/或所述上行缓存的总数据量不大于第二数据量阈值;
[0126] 或者,
[0127] 若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述上行缓存的总数据量大于第二数据量阈值,触发上行最大重传,以清空所述上行缓存。
[0128] 进一步的,所述目标对象包括所述终端的第一应用,所述上行参数包括所述上行缓存中所述第一应用的上行数据的数据量和所述第一应用的时延;
[0129] 处理器710,用于若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述时延大于时间阈值,则丢弃所述上行缓存中所述第一应用的部分上行数据,以使得所述上行缓存中所述第一应用的剩余上行数据的数据量不大于所述第一数据量阈值,和/或,使得所述时延不大于所述时间阈值;
[0130] 或者,
[0131] 若所述上行缓存中所述第一应用的上行数据的数据量大于第一数据量阈值,且所述时延大于时间阈值,触发上行最大重传,以清空所述上行缓存。
[0132] 进一步的,处理器710,还用于为所述第一应用的上行数据设置标识;
[0133] 根据所述标识确定所述上行缓存中所述第一应用的上行数据。
[0134] 进一步的,处理器710,还用于若所述第一应用的上行数据包括预设的服务质量等级标识QCI,则根据所述QCI确定用于进行上行传输的逻辑信道;
[0135] 将所述逻辑信道中的数据确定为所述第一应用的上行数据。
[0136] 终端700能够实现前述实施例中终端实现的各个过程,为避免重复,这里不再赘述。
[0137] 本发明实施例的终端700,确定所述终端的上行参数;若所述上行参数满足预设条件,则丢弃所述上行缓存中目标对象的部分上行数据,以使得所述上行参数不满足所述预设条件。这样,通过丢弃上行缓存中的目标对象的部分上行数据,可减少终端发送上行缓存中累积的上行数据的数据量,以减少终端发送上行缓存中累积的数据的时间,从而降低目标对象的数据传输时延。
[0138] 应理解的是,本发明实施例中,射频单元701可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器710处理;另外,将上行的数据发送给基站。通常,射频单元701包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元701还可以通过无线通信系统与网络和其他设备通信。
[0139] 终端通过网络模块702为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
[0140] 音频输出单元703可以将射频单元701或网络模块702接收的或者在存储器709中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元703还可以提供与终端700执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元703包括扬声器、蜂鸣器以及受话器等。
[0141] 输入单元704用于接收音频或视频信号。输入单元704可以包括图形处理器(Graphics Processing Unit,GPU)7041和麦克风7042,图形处理器7041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元706上。经图形处理器7041处理后的图像帧可以存储在存储器709(或其它存储介质)中或者经由射频单元701或网络模块702进行发送。麦克风7042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元701发送到移动通信基站的格式输出。
[0142] 终端700还包括至少一种传感器705,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板7061的亮度,接近传感器可在终端700移动到耳边时,关闭显示面板
7061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器705还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
[0143] 显示单元706用于显示由用户输入的信息或提供给用户的信息。显示单元706可包括显示面板7061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板7061。
[0144] 用户输入单元707可用于接收输入的数字或字符信息,以及产生与终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元707包括触控面板7071以及其他输入设备7072。触控面板7071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板7071上或在触控面板7071附近的操作)。触控面板7071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器710,接收处理器710发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板7071。除了触控面板7071,用户输入单元707还可以包括其他输入设备7072。具体地,其他输入设备7072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
[0145] 进一步的,触控面板7071可覆盖在显示面板7061上,当触控面板7071检测到在其上或附近的触摸操作后,传送给处理器710以确定触摸事件的类型,随后处理器710根据触摸事件的类型在显示面板7061上提供相应的视觉输出。虽然在图7中,触控面板7071与显示面板7061是作为两个独立的部件来实现终端的输入和输出功能,但是在某些实施例中,可以将触控面板7071与显示面板7061集成而实现终端的输入和输出功能,具体此处不做限定。
[0146] 接口单元708为外部装置与终端700连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元708可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到终端700内的一个或多个元件或者可以用于在终端700和外部装置之间传输数据。
[0147] 存储器709可用于存储软件程序以及各种数据。存储器709可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器709可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0148] 处理器710是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器709内的软件程序和/或模块,以及调用存储在存储器709内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。处理器710可包括一个或多个处理单元;优选的,处理器710可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器710中。
[0149] 终端700还可以包括给各个部件供电的电源711(比如电池),优选的,电源711可以通过电源管理系统与处理器710逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0150] 另外,终端700包括一些未示出的功能模块,在此不再赘述。
[0151] 优选的,本发明实施例还提供一种终端,包括处理器710,存储器709,存储在存储器709上并可在所述处理器710上运行的计算机程序,该计算机程序被处理器710执行时实现上述数据传输方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0152] 本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据传输方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
[0153] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0154] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0155] 上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。