数据传输方法及装置、电子设备、计算机可读存储介质转让专利

申请号 : CN202111254531.X

文献号 : CN113973124B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钟书城周超

申请人 : 北京达佳互联信息技术有限公司

摘要 :

本公开关于一种数据传输方法及装置、电子设备、计算机可读存储介质,所述数据传输方法包括:响应于来自用户的数据传输请求,根据质量评估参数从多个可用传输协议中确定优选传输协议和备选传输协议,其中,所述质量评估参数是根据历史下载速度得到的;通过所述优选传输协议优先于所述备选传输协议来尝试建立连接,以根据尝试建立连接的结果使用所述优选传输协议或所述备选传输协议进行数据传输。

权利要求 :

1.一种数据传输方法,其特征在于,包括:

响应于来自用户的数据传输请求,根据质量评估参数从多个可用传输协议中确定优选传输协议和备选传输协议,其中,所述质量评估参数是根据历史下载速度得到的;

通过所述优选传输协议优先于所述备选传输协议来尝试建立连接,以根据尝试建立连接的结果使用所述优选传输协议或所述备选传输协议进行数据传输;

其中,所述通过所述优选传输协议优先于所述备选传输协议来尝试建立连接,以根据尝试建立连接的结果使用所述优选传输协议或所述备选传输协议进行数据传输,包括:在不存在已经连通的第一会话的情况下,通过所述优选传输协议创建第二会话并尝试建立连接,其中,所述第一会话是通过所述优选传输协议创建的会话;

在通过所述第二会话尝试建立连接的预设时间段之后,通过所述备选传输协议创建第三会话并尝试建立连接;

通过在所述第二会话以及所述第三会话中成功建立连接的会话进行数据传输。

2.如权利要求1所述的数据传输方法,其特征在于,所述根据质量评估参数从多个可用传输协议中确定优选传输协议和备选传输协议,包括:将所述多个可用传输协议中质量评估参数的数值最大的传输协议确定为所述优选传输协议,并将所述多个可用传输协议中除所述优选传输协议之外的传输协议确定为所述备选传输协议。

3.如权利要求1所述的数据传输方法,其特征在于,所述质量评估参数是通过下述操作得到的:获取预设历史时间段内的最大下载速度、最小下载速度以及在所述预设历史时间段内进行最后一次下载时的下载速度;

获取所述最后一次下载时的下载速度与所述最小下载速度的第一差值,并获取所述最大下载速度与所述最小下载速度的第二差值;

对所述第一差值与所述第二差值求商,来得到所述质量评估参数。

4.如权利要求1所述的数据传输方法,其特征在于,所述通过所述优选传输协议优先于所述备选传输协议来尝试建立连接,以根据尝试建立连接的结果使用所述优选传输协议或所述备选传输协议进行数据传输,还包括:在存在已经连通的所述第一会话的情况下,通过所述第一会话进行数据传输。

5.如权利要求1所述的数据传输方法,其特征在于,还包括:当所述第二会话和所述第三会话中的其中一个会话建立连接成功时,停止通过所述第二会话和所述第三会话中的其他会话尝试建立连接。

6.如权利要求1所述的数据传输方法,其特征在于,还包括:当所述第二会话和所述第三会话中的其中一个会话建立连接失败时,在存在通过所述第二会话和所述第三会话中的其他会话尝试建立连接的情况下,等待通过所述其他会话建立连接的结果;

如果所述结果是建立连接成功,则通过所述其他会话进行数据传输。

7.如权利要求6所述的数据传输方法,其特征在于,还包括:当不存在通过所述第二会话和所述第三会话中的其他会话尝试建立连接的情况时,生成数据传输请求失败的信息。

8.如权利要求1所述的数据传输方法,其特征在于,所述多个可用传输协议包括TCP协议和QUIC协议。

9.一种数据传输装置,其特征在于,包括:

协议确定单元,被配置为:响应于来自用户的数据传输请求,根据质量评估参数从多个可用传输协议中确定优选传输协议和备选传输协议,其中,所述质量评估参数是根据历史下载速度得到的;

数据传输单元,被配置为:通过所述优选传输协议优先于所述备选传输协议来尝试建立连接,以根据尝试建立连接的结果使用所述优选传输协议或所述备选传输协议进行数据传输;

其中,所述数据传输单元被配置为:

在不存在已经连通的第一会话的情况下,通过所述优选传输协议创建第二会话并尝试建立连接,其中,所述第一会话是通过所述优选传输协议创建的会话;

在通过所述第二会话尝试建立连接的预设时间段之后,通过所述备选传输协议创建第三会话并尝试建立连接;

通过在所述第二会话以及所述第三会话中成功建立连接的会话进行数据传输。

10.如权利要求9所述的数据传输装置,其特征在于,所述协议确定单元被配置为:将所述多个可用传输协议中质量评估参数的数值最大的传输协议确定为所述优选传输协议,并将所述多个可用传输协议中除所述优选传输协议之外的传输协议确定为所述备选传输协议。

11.如权利要求9所述的数据传输装置,其特征在于,还包括质量评估参数确定单元,所述质量评估参数确定单元被配置为:获取预设历史时间段内的最大下载速度、最小下载速度以及在所述预设历史时间段内进行最后一次下载时的下载速度;

获取所述最后一次下载时的下载速度与所述最小下载速度的第一差值,并获取所述最大下载速度与所述最小下载速度的第二差值;

对所述第一差值与所述第二差值求商,来得到所述质量评估参数。

12.如权利要求9所述的数据传输装置,其特征在于,所述数据传输单元还被配置为:在存在已经连通的所述第一会话的情况下,通过所述第一会话进行数据传输。

13.如权利要求9所述的数据传输装置,其特征在于,所述数据传输单元还被配置为:当所述第二会话和所述第三会话中的其中一个会话建立连接成功时,停止通过所述第二会话和所述第三会话中的其他会话尝试建立连接。

14.如权利要求9所述的数据传输装置,其特征在于,所述数据传输单元还被配置为:当所述第二会话和所述第三会话中的其中一个会话建立连接失败时,在存在通过所述第二会话和所述第三会话中的其他会话尝试建立连接的情况下,等待通过所述其他会话建立连接的结果;

如果所述结果是建立连接成功,则通过所述其他会话进行数据传输。

15.如权利要求14所述的数据传输装置,其特征在于,所述数据传输单元还被配置为:当不存在通过所述第二会话和所述第三会话中的其他会话尝试建立连接的情况时,生成数据传输请求失败的信息。

16.如权利要求9所述的数据传输装置,其特征在于,所述多个可用传输协议包括TCP协议和QUIC协议。

17.一种电子设备,其特征在于,包括:

至少一个处理器;

至少一个存储计算机可执行指令的存储器,

其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1到8中的任一权利要求所述的数据传输方法。

18.一种存储指令的计算机可读存储介质,其特征在于,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1到8中的任一权利要求所述的数据传输方法。

说明书 :

数据传输方法及装置、电子设备、计算机可读存储介质

技术领域

[0001] 本公开涉及通信技术领域,更具体地说,涉及一种数据传输方法及装置、电子设备、计算机可读存储介质。

背景技术

[0002] 在短视频拉流、直播拉流或者API请求等场景中,下载速度是影响用户体验的关键因素之一。为了获得良好的下载速度,目前有一种传输协议竞速策略,可选择建连速度更快的传输协议进行数据传输。例如,在基于Chromium网络栈独立出来的开源网络库Cronet中,实现了TCP(Transmission Control Protocol,传输控制协议)和QUIC(Quick UDP Internet Connection,基于UDP的低时延的互联网传输层协议)之间的协议竞速,可在当UDP(User Datagram Protocol,用户数据报协议)被运营商QOS(Quality of Service,服务质量)限制或封禁时及时切换至TCP。但采用当前的传输协议竞选策略,仍然经常出现用户的下载速度偏慢的情况。

发明内容

[0003] 本公开提供一种数据传输方法及装置、电子设备、计算机可读存储介质,以至少解决上述相关技术中的问题,也可不解决任何上述问题。
[0004] 根据本公开实施例的第一方面,提供一种数据传输方法,包括:响应于来自用户的数据传输请求,根据质量评估参数从多个可用传输协议中确定优选传输协议和备选传输协议,其中,所述质量评估参数是根据历史下载速度得到的;通过所述优选传输协议优先于所述备选传输协议来尝试建立连接,以根据尝试建立连接的结果使用所述优选传输协议或所述备选传输协议进行数据传输。
[0005] 可选地,所述根据质量评估参数从多个可用传输协议中确定优选传输协议和备选传输协议,包括:将所述多个可用传输协议中质量评估参数的数值最大的传输协议确定为所述优选传输协议,并将所述多个可用传输协议中除所述优选传输协议之外的传输协议确定为所述备选传输协议。
[0006] 可选地,所述质量评估参数是通过下述操作得到的:获取预设历史时间段内的最大下载速度、最小下载速度以及在所述预设历史时间段内进行最后一次下载时的下载速度;获取所述最后一次下载时的下载速度与所述最小下载速度的第一差值,并获取所述最大下载速度与所述最小下载速度的第二差值;对所述第一差值与所述第二差值求商,来得到所述质量评估参数。
[0007] 可选地,通过所述优选传输协议优先于所述备选传输协议来尝试建立连接,以根据尝试建立连接的结果使用所述优选传输协议或所述备选传输协议进行数据传输,包括:在存在已经连通的第一会话的情况下,通过所述第一会话进行数据传输,其中,所述第一会话是通过所述优选传输协议创建的会话;在不存在已经连通的第一会话的情况下,通过所述优选传输协议创建第二会话并尝试建立连接;在通过所述第二会话尝试建立连接的预设时间段之后,通过所述备选传输协议创建第三会话并尝试建立连接;通过在所述第二会话以及所述第三会话中成功建立连接的会话进行数据传输。
[0008] 可选地,还包括:当所述第二会话和所述第三会话中的其中一个会话建立连接成功时,停止通过所述第二会话和所述第三会话中的其他会话尝试建立连接。
[0009] 可选地,还包括:当所述第二会话和所述第三会话中的其中一个会话建立连接失败时,在存在通过所述第二会话和所述第三会话中的其他会话尝试建立连接的情况下,等待通过所述其他会话建立连接的结果;如果所述结果是建立连接成功,则通过所述其他会话进行数据传输。
[0010] 可选地,还包括:当不存在通过所述第二会话和所述第三会话中的其他会话尝试建立连接的情况时,生成数据传输请求失败的信息。
[0011] 可选地,所述多个可用传输协议包括TCP协议和QUIC协议。
[0012] 根据本公开实施例的第二方面,提供一种数据传输装置,包括:协议确定单元,被配置为:响应于来自用户的数据传输请求,根据质量评估参数从多个可用传输协议中确定优选传输协议和备选传输协议,其中,所述质量评估参数是根据历史下载速度得到的;数据传输单元,被配置为:通过所述优选传输协议优先于所述备选传输协议来尝试建立连接,以根据尝试建立连接的结果使用所述优选传输协议或所述备选传输协议进行数据传输。
[0013] 可选地,所述协议确定单元可被配置为:将所述多个可用传输协议中质量评估参数的数值最大的传输协议确定为所述优选传输协议,并将所述多个可用传输协议中除所述优选传输协议之外的传输协议确定为所述备选传输协议。
[0014] 可选地,还包括质量评估参数确定单元,所述质量评估参数确定单元可被配置为:获取预设历史时间段内的最大下载速度、最小下载速度以及在所述预设历史时间段内进行最后一次下载时的下载速度;获取所述最后一次下载时的下载速度与所述最小下载速度的第一差值,并获取所述最大下载速度与所述最小下载速度的第二差值;对所述第一差值与所述第二差值求商,来得到所述质量评估参数。
[0015] 可选地,所述数据传输单元可被配置为:在存在已经连通的第一会话的情况下,通过所述第一会话进行数据传输,其中,所述第一会话是通过所述优选传输协议创建的会话;在不存在已经连通的第一会话的情况下,通过所述优选传输协议创建第二会话并尝试建立连接;在通过所述第二会话尝试建立连接的预设时间段之后,通过所述备选传输协议创建第三会话并尝试建立连接;通过在所述第二会话以及所述第三会话中成功建立连接的会话进行数据传输。
[0016] 可选地,所述数据传输单元还可被配置为:当所述第二会话和所述第三会话中的其中一个会话建立连接成功时,停止通过所述第二会话和所述第三会话中的其他会话尝试建立连接。
[0017] 可选地,所述数据传输单元还可被配置为:当所述第二会话和所述第三会话中的其中一个会话建立连接失败时,在存在通过所述第二会话和所述第三会话中的其他会话尝试建立连接的情况下,等待通过所述其他会话建立连接的结果;如果所述结果是建立连接成功,则通过所述其他会话进行数据传输。
[0018] 可选地,所述数据传输单元还可被配置为:当不存在通过所述第二会话和所述第三会话中的其他会话尝试建立连接的情况时,生成数据传输请求失败的信息。
[0019] 可选地,所述多个可用传输协议包括TCP协议和QUIC协议。
[0020] 根据本公开实施例的第三方面,提供一种电子设备,包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行根据本公开的数据传输方法。
[0021] 根据本公开实施例的第四方面,提供一种存储指令的计算机可读存储介质,其特征在于,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行根据本公开的数据传输方法。
[0022] 根据本公开实施例的第五方面,提供一种计算机程序产品,该计算机程序产品中的指令可由计算机设备的处理器执行以完成根据本公开的数据传输方法。
[0023] 本公开的实施例提供的技术方案至少带来以下有益效果:
[0024] 根据本公开的数据传输方法及装置,在接收到来自用户的数据传输请求之时,根据质量评估参数从多个可用传输协议中确定优选传输协议和备选传输协议,并且根据优选传输协议优先于备选传输协议的原则来选择传输协议以建立连接并进行数据传输,因此可在不同的网络环境下灵活选择最适合用户的传输协议,避免了由于传输速率偏慢,导致用户的下载速度偏低的情况。
[0025] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

[0026] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
[0027] 图1是示出根据本公开的示例性实施例的数据传输方法的流程图。
[0028] 图2是示出根据本公开的示例性实施例的从TCP协议和QUIC协议中进行选择的流程示意图。
[0029] 图3是示出根据本公开的示例性实施例的数据传输装置的框图。
[0030] 图4是示出根据本公开的示例性实施例的电子设备400的框图。

具体实施方式

[0031] 为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
[0032] 需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0033] 在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
[0034] 在短视频拉流、直播拉流或者API(Application Program Interface,应用程序接口)请求等场景中,数据的下载速率是影响用户体验的关键因素之一。为了获得良好的下载速度,目前可通过传输协议竞速策略来选择建连速度更快的传输协议进行数据传输。例如,在基于Chromium网络栈独立出来的开源网络库Cronet中,实现了TCP协议和QUIC协议之间的竞速协议,可在当UDP被运营商QOS限制或封禁时及时切换至TCP。
[0035] 具体来讲,QUIC协议是Google制定的一种互联网传输层协议,它基于UDP协议,同时兼具TCP、TLS(Transport Layer Security Protocol,安全传输层协议)、HTTP/2等协议的可靠性和安全性,可以有效减少连接与传输延时。因为QUIC协议与TCP相比,在重传、拥塞控制和连接复用上有优势,所以很多网络服务都切换成了QUIC协议。
[0036] 在短视频拉流的过程中,上层可基于HTTP协议进行分片下载,底层可切换至QUIC协议进行下载。不同于一般的HTTP短连接,短视频拉流下载的数据量会很大,此时影响短视频拉流体验的因素有很多,比如建连时间、下载速度等。如果因为某些原因导致使用QUIC协议的传输速率比使用TCP协议更慢(例如,运营商对UDP限速、QUIC协议和TCP协议的拥塞控制算法差异等),那么此时仍然使用QUIC协议就会导致下载速度偏慢,影响用户体验。
[0037] TCP协议和QUIC协议之间的竞速协议的具体执行流程如下:
[0038] 首先,客户端发起HTTP请求后,开始决策使用QUIC协议还是TCP协议。在存在连通的QUIC session(QUIC会话)时,直接复用该QUIC session,且不尝试通过TCP建立连接;在不存在连通的QUIC session时,立刻创建QUIC session并开始建立连接,之后,在1.5个srtt(Smoothed Round Trip Time)时延后创建TCP session并开始建立连接。此时,如果QUIC session先建连成功,则使用QUIC session进行数据传输并停止尝试TCP session建连;如果TCP session先建连成功,则使用TCP session进行数据传输,但可继续尝试QUIC session建连以准备在下次进行数据传输时直接复用该QUIC session;如果通过QUIC协议建连失败,则查看是否存在延时创建的TCP session,并在存在延时创建的TCP session的情况下立刻开始建连,否则回调HTTP请求失败的信息;如果TCP session建连失败,则查看是否存在正在建连的QUIC session,并在存在正在建连的QUIC session的情况下,继续等待该QUIC session建连,否则回调HTTP请求失败。
[0039] 但TCP协议和QUIC协议之间的竞速协议总是QUIC协议优先,而TCP协议延时开始,竞速策略不公平;并且这种竞速机制完全基于建连快慢来决定采用哪一种传输协议,而没有考虑传输速度的差别,导致使用这套竞速机制的用户在某些情况下(例如,运营商针对UDP限制流量或者在当前网络环境下TCP协议使用的拥塞控制算法比QUIC协议使用的拥塞控制算法效果更好等)的下载速度偏慢。
[0040] 为了解决当前的下载速度偏慢的问题,本公开提出了一种数据传输方法及装置、电子设备、计算机可读存储介质,具体地说,在接收到来自用户的数据传输请求之时,根据质量评估参数从多个可用传输协议中确定优选传输协议和备选传输协议,并且根据优选传输协议优先于备选传输协议的原则来选择传输协议以建立连接并进行数据传输,因此可在不同的网络环境下灵活选择最适合用户的传输协议,避免了由于传输速率偏慢,导致用户的下载速度偏低的情况,提升了用户体验。下面,将参照图1至图4具体描述根据本公开的示例性实施例的数据传输方法及装置。
[0041] 图1是示出根据本公开的示例性实施例的数据传输方法的流程图。首先需要说明的是,本公开示出的数据传输方法可以应用于短视频拉流、直播拉流以及API请求等应用场景中,只要涉及到通过传输协议进行数据传输的情景都适用于本公开示出的方案。在下文的描述中,为了使本公开的方案得到清晰的展示,以短视频拉流来进行示例说明。
[0042] 参照图1,在步骤101,响应于来自用户的数据传输请求,根据质量评估参数从多个可用传输协议中确定优选传输协议和备选传输协议,其中,所述质量评估参数是根据历史下载速度得到的。
[0043] 根据本公开的示例性实施例,质量评估参数可根据客户端的历史下载速度得到。具体来讲,可首先获取客户端在预设历史时间段内的最大下载速度、最小下载速度以及在该预设历史时间段内进行最后一次下载时的下载速度;然后获取该最后一次下载时的下载速度与最小下载速度的第一差值,并获取最大下载速度与最小下载速度的第二差值;最后对得到的第一差值与第二差值求商,可得到质量评估参数。而在得到质量评估参数之后,可将多个可用传输协议中质量评估参数的数值最大的传输协议确定为优选传输协议,并将该多个可用传输协议中除确定出的优选传输协议之外的传输协议确定为备选传输协议。在一些实施例中,多个可用的传输协议,例如,但不限于,可以是QUIC协议、TCP协议或者KTP(Kwai Transport Protocol,Kwai传输协议)协议等。
[0044] 下行带宽是导致短视频拉流卡顿的重要因素之一,因此,可设置根据历史下载速度来选择适应于当前网络环境的最匹配的传输协议。短视频拉流以每次通过http请求1MB数据的分片下载方式进行,可以以http请求为单位对多个可用传输协议的质量进行评估(例如,在短视频拉流中,可对TCP协议和QUIC协议的质量进行评估),根据质量评估结果确定优选的传输协议和备选的传输协议。
[0045] 具体来讲,在没有任何先验知识时,可首先分别通过每个可用的传输协议进行下载,来取得一定的QOS统计值(即,历史下载速度),然后根据QOS统计值从多个可用的传输协议中选择效果更好的协议。在一些实施例中,可对传输协议的选择问题进行数学建模,将该选择问题转化为经典的多臂老虎机问题,每个可用的传输协议分别对应老虎机的每个臂,而历史下载速度则对应老虎机的reward(回报收益)。在这里,为了实现通过建模来选择传输协议,需要对历史下载速度做进一步的处理,使其符合多臂老虎机的reward机制,具体来讲,可选取历史一定时间内根据http请求计算出来的历史下载速度,用其中的最大值、最小值进行正规化,将正规化得到的值作为每次请求的reward(此处,reward即为质量评估参数),即,获取客户端在预设历史时间段内的最大下载速度、最小下载速度以及在该预设历史时间段内进行最后一次下载时的下载速度;然后获取该最后一次下载时的下载速度与最小下载速度的第一差值,并获取最大下载速度与最小下载速度的第二差值;最后对得到的第一差值与第二差值求商,可得到质量评估参数。另外,因为网络存在波动,并且运营商对一些传输协议的限制也可能随时间变化,所以reward分布是不稳定的,因此,可通过SW‑UCB(sliding window UCB)算法来进行传输协议的选择,该算法通过在传统UCB算法中引入一个时间窗口来解决reward分布可能随时间变化的问题。
[0046] 举例来讲,假设时间窗口是60s,已经完成了5次下载,这5次下载对应的时间点和下载速度分别为:第10s,下载速度为1Mbps;第20s,下载速度为5Mbps;第30s,下载速度为4Mbps;第40s,下载速度为2Mbps;第50s,下载速度为3Mbps。在第60s的时候完成了第6次下载,下载速度为3Mbps,那么对应的reward=(3Mbps–1Mbps)/(5Mbps–1Mbps)=0.5。在第75s完成了第7次下载,下载速度4Mbps,此时第一次下载距现在已经超过时间窗口,计算时不考虑,对应的reward=(4Mbps–2Mbps)/(5Mbps–2Mbps)=0.667。在第85s完成了第8次下载,下载速度3.5Mbps,此时第二次下载也超过时间窗口,对应的reward=(3.5Mbps‑2Mbps)/(4Mbps–2Mbps)=0.75。在选取的历史一定时间内获得多个reward以后,对多个reward求平均值,即可根据多臂老虎机的选择机制选择出适合当下网络环境的优选传输协议。
[0047] 在步骤102,通过优选传输协议优先于备选传输协议来尝试建立连接,以根据尝试建立连接的结果使用所述优选传输协议或所述备选传输协议进行数据传输。
[0048] 根据本公开的示例性实施例,在确定出优选协议和备选协议之后,通过优选传输协议优先于备选传输协议来尝试建立连接,以根据尝试建立连接的结果使用所述优选传输协议或所述备选传输协议进行数据传输。具体来讲,首先查看是否存在通过优选传输协议创建并连通的第一会话,在存在已经连通的第一会话的情况下,直接通过该第一会话进行数据传输,并且不再尝试通过备选传输协议建立会话。在不存在已经连通的第一会话的情况下,则立刻通过优选传输协议创建第二会话并尝试建立连接,并在通过该第二会话尝试建立连接的预设时间段(例如,1.5*srtt时延)之后,通过备选传输协议创建第三会话并尝试建立连接,之后,通过在第二会话以及第三会话中最先成功建立连接的会话进行数据传输。在一些实施例中,当第二会话和第三会话中的其中一个会话建立连接成功时,停止通过第二会话和第三会话中的其他会话尝试建立连接,而当第二会话和第三会话中的其中一个会话建立连接失败时,在存在通过第二会话和第三会话中的其他会话尝试建立连接的情况下,等待通过其他会话建立连接的结果;如果结果是建立连接成功,则通过该其他会话进行数据传输,如果结果是建连失败,则生成数据传输请求失败的信息。另外,当不存在通过第二会话和第三会话中的其他会话尝试建立连接的情况时,也生成数据传输请求失败的信息。
[0049] 图2是示出根据本公开的示例性实施例的从TCP协议和QUIC协议中进行选择的流程示意图。
[0050] 参考图2,HTTP请求负责HTTP的整个流程,在接收到用户的数据传输请求之后,开始向任务控制器请求传输用的会话。任务控制器在接收到会话请求之后,首先询问自适应协议引擎,以获取优选传输协议和备选传输协议。在这里,自适应协议引擎负责监听QOS指标(历史下载速度),按照步骤S101中示出的方案确定出优选传输协议和备选传输协议传送给任务控制器。当优选传输协议为QUIC协议时,创建QUIC任务,并从QUIC会话池中请求传输用的QUIC会话,当存在已经连通的QUIC会话时,直接复用该QUIC会话,当不存在已经连通的QUIC会话时,立刻创建QUIC会话,并在1.5*srtt时延后创建备选的TCP会话。当优选传输协议为TCP协议时,创建TCP任务,并从TCP会话池中请求传输用的TCP会话,当存在已经连通的TCP会话时,直接复用该TCP会话,当不存在已经连通的TCP会话时,立刻创建TCP会话,并在1.5*srtt时延后创建备选的QUIC会话。
[0051] 图3是示出根据本公开的示例性实施例的数据传输装置300的框图。
[0052] 参照图3,根据本公开的示例性实施例的数据传输装置300可包括协议确定单元301以及数据传输单元302。
[0053] 协议确定单元301可响应于来自用户的数据传输请求,根据质量评估参数从多个可用传输协议中确定优选传输协议和备选传输协议,在这里,质量评估参数可根据历史下载速度得到。
[0054] 根据本公开的示例性实施例,协议确定单元301可将多个可用传输协议中质量评估参数的数值最大的传输协议确定为所述优选传输协议,并将多个可用传输协议中除优选传输协议之外的传输协议确定为备选传输协议,在一些实施例中,多个可用的传输协议,例如,但不限于,可以是QUIC协议、TCP协议或者KTP(Kwai Transport Protocol,Kwai传输协议)协议等。
[0055] 根据本公开的示例性实施例,数据传输装置300还可包括质量评估参数确定单元303,该质量评估参数确定单元303可获取预设历史时间段内的最大下载速度、最小下载速度以及在所述预设历史时间段内进行最后一次下载时的下载速度;然后,获取该最后一次下载时的下载速度与最小下载速度的第一差值,并获取最大下载速度与最小下载速度的第二差值;之后,对第一差值与所述第二差值求商,来得到该质量评估参数。
[0056] 数据传输单元302可通过优选传输协议优先于备选传输协议来尝试建立连接,以根据尝试建立连接的结果使用所述优选传输协议或所述备选传输协议进行数据传输。
[0057] 根据本公开的示例性实施例,数据传输单元302可在存在已经连通的第一会话的情况下,通过该第一会话进行数据传输,在这里,该第一会话是通过优选传输协议创建的会话。而在不存在已经连通的第一会话的情况下,数据传输单元302可通过优选传输协议创建第二会话并尝试建立连接,并在通过该第二会话尝试建立连接的预设时间段之后,通过备选传输协议创建第三会话并尝试建立连接,然后通过在该第二会话以及该第三会话中成功建立连接的会话进行数据传输。
[0058] 根据本公开的示例性实施例,数据传输单元302可在当第二会话和第三会话中的其中一个会话建立连接成功时,停止通过第二会话和第三会话中的其他会话尝试建立连接,而当第二会话和第三会话中的其中一个会话建立连接失败时,在存在通过第二会话和第三会话中的其他会话尝试建立连接的情况下,等待通过其他会话建立连接的结果;如果结果是建立连接成功,则通过该其他会话进行数据传输,如果结果是建连失败,则生成数据传输请求失败的信息。另外,当不存在通过第二会话和第三会话中的其他会话尝试建立连接的情况时,也生成数据传输请求失败的信息。
[0059] 图4是根据本公开的示例性实施例的电子设备400的框图。
[0060] 参照图4,电子设备400包括至少一个存储器401和至少一个处理器402,所述至少一个存储器401中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个处理器402执行时,执行根据本公开的示例性实施例的数据传输方法。
[0061] 作为示例,电子设备400可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备400并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备400还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
[0062] 在电子设备400中,处理器1002可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
[0063] 处理器402可运行存储在存储器401中的指令或代码,其中,存储器401还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
[0064] 存储器401可与处理器1002集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器401可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器401和处理器402可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器402能够读取存储在存储器中的文件。
[0065] 此外,电子设备400还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备400的所有组件可经由总线和/或网络而彼此连接。
[0066] 根据本公开的示例性实施例,还可提供一种存储指令的计算机可读存储介质,其中,当指令被至少一个处理器运行时,促使至少一个处理器执行根据本公开的数据传输方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD‑ROM、CD‑R、CD+R、CD‑RW、CD+RW、DVD‑ROM、DVD‑R、DVD+R、DVD‑RW、DVD+RW、DVD‑RAM、BD‑ROM、BD‑R、BD‑R LTH、BD‑RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
[0067] 根据本公开的示例性实施例,还可提供一种计算机程序产品,该计算机程序产品中的指令可由计算机设备的处理器执行以完成根据本公开的示例性实施例的数据传输方法。
[0068] 根据本公开的数据传输方法及装置,在接收到来自用户的数据传输请求之时,根据质量评估参数从多个可用传输协议中确定优选传输协议和备选传输协议,并且根据优选传输协议优先于备选传输协议的原则来选择传输协议以建立连接并进行数据传输,因此可在不同的网络环境下灵活选择最适合用户的传输协议,避免了由于传输速率偏慢,导致用户的下载速度偏低的情况,提升了用户体验。
[0069] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0070] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。