数据传输方法、系统、设备、存储介质及程序产品转让专利

申请号 : CN202310152689.9

文献号 : CN115834556B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吕格瑞刘彦梅陈文韬杨馥榕郭虹宇陈颖

申请人 : 阿里巴巴(中国)有限公司

摘要 :

本申请提供一种数据传输方法、系统、设备、存储介质及程序产品,其中方法包括:获取服务器确定的目标数据块对应的路径调度策略信息,其中,所述终端与所述服务器之间包括多个传输路径,所述路径调度策略信息为针对所述多个传输路径的调度策略信息;根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述目标数据块对应的码率;根据确定的码率向所述服务器请求所述目标数据块。本申请实现了降低了多路径调度对于目标数据块吞吐量采样的不良影响,从而减少目标数据块吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。

权利要求 :

1.一种数据传输方法,其特征在于,应用于终端,所述方法包括:获取服务器确定的目标数据块对应的路径调度策略信息,其中,所述终端与所述服务器之间包括多个传输路径,所述路径调度策略信息为针对所述多个传输路径的调度策略信息;

根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述目标数据块对应的码率;

根据确定的码率向所述服务器请求所述目标数据块。

2.根据权利要求1所述的方法,其特征在于,所述获取服务器确定的目标数据块对应的路径调度策略信息,包括:响应于对目标数据块的获取指令,发送所述目标数据块的获取通知至服务器,所述获取通知用于指示所述服务器确定所述目标数据块对应的路径调度策略信息;

接收所述服务器返回的所述目标数据块对应的路径调度策略信息。

3.根据权利要求1所述的方法,其特征在于,所述获取服务器确定的目标数据块对应的路径调度策略信息,包括:接收所述服务器以预设周期发送的所述路径调度策略信息。

4.根据权利要求1所述的方法,其特征在于,所述根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述目标数据块对应的码率,包括:根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述多个传输路径对所述目标数据块的第一吞吐量;

根据所述第一吞吐量,确定所述目标数据块对应的第一目标码率。

5.根据权利要求4所述的方法,其特征在于,所述路径调度策略信息包括:传输所述目标数据块时需要使用的多个目标路径和各个所述多个目标路径被配置的数据传输量;所述根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述多个传输路径对所述目标数据块的第一吞吐量,包括:根据所述多个目标路径的带宽资源和各个所述多个目标路径被配置的数据传输量,确定所述多个目标路径对所述目标数据块的第一吞吐量。

6.根据权利要求4所述的方法,其特征在于,所述根据确定的码率向所述服务器请求所述目标数据块,包括:根据所述目标数据块对应的第一目标码率发送对应的数据请求至所述服务器;

接收所述服务器基于所述第一目标码率返回的所述目标数据块。

7.根据权利要求1所述的方法,其特征在于,在所述根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述目标数据块对应的码率之后,还包括:接收所述服务器发送的针对所述多个传输路径的更新后调度策略信息;

根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定下一个数据块对应的第二目标码率,所述下一个数据块排在所述目标数据块之后;

根据所述第二目标码率向所述服务器请求所述下一个数据块。

8.根据权利要求7所述的方法,其特征在于,所述根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定所述下一个数据块对应的第二目标码率,包括:在已缓存数据块的总数据量小于预设阈值时,根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定所述下一个数据块对应的第二目标码率。

9.根据权利要求7所述的方法,其特征在于,所述根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定下一个数据块对应的第二目标码率,包括:根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定所述多个传输路径对所述下一个数据块的第二吞吐量;

根据所述第二吞吐量,确定所述下一个数据块对应的所述第二目标码率。

10.根据权利要求1所述的方法,其特征在于,所述目标数据块为待传输视频流中的视频块。

11.一种数据传输方法,其特征在于,应用于服务器,所述方法包括:根据终端与服务器之间的多个传输路径,确定目标数据块对应的路径调度策略信息;

发送所述路径调度策略信息至所述终端,所述路径调度策略信息用于指示所述终端确定所述目标数据块对应的码率;

在接收到所述终端发送的针对所述目标数据块的数据请求时,根据所述传输路径调度策略信息和所述目标数据块对应的码率,发送所述目标数据块至所述终端,其中,所述数据请求携带有所述目标数据块对应的码率。

12.根据权利要求11所述的方法,其特征在于,所述根据终端与服务器之间的多个传输路径,确定目标数据块对应的路径调度策略信息,包括:根据所述多个传输路径中各个传输路径的带宽资源和所述目标数据块的总数据量,确定传输所述目标数据块时需要使用的多个目标路径,并为所述多个目标路径配置对应的数据传输量,所述路径调度策略信息包括:传输所述目标数据块时需要使用的多个目标路径和各个所述目标路径被配置的数据传输量。

13.根据权利要求12所述的方法,其特征在于,所述在接收到所述终端发送的针对所述目标数据块的数据请求时,根据所述传输路径调度策略信息和所述目标数据块对应的码率,发送所述目标数据块至所述终端,其中,所述数据请求携带有目标码率,包括:接收所述终端发送的针对所述目标数据块的数据请求,所述数据请求中携带有所述目标数据块对应的第一目标码率;

根据所述目标数据块的总数据量、所述第一目标码率和对应的所述多个目标路径被配置的数据传输量,为各个目标路径分配数据包;

根据数据包分配结果,通过所述多个目标路径发送所述目标数据块至所述终端。

14.根据权利要求11所述的方法,其特征在于,所述根据所述传输路径调度策略信息和所述目标数据块对应的码率,发送所述目标数据块至所述终端,还包括:监测所述目标数据块对应的所述多个传输路径的当前传输状态;

当根据所述当前传输状态确定所述多个传输路径无法同时完成针对所述目标数据块的传输任务时,获取所述目标数据块已经分配路径且未发送的待处理数据包和所述多个传输路径的当前带宽资源;

根据所述当前带宽资源和所述待处理数据包,更新针对所述多个传输路径的调度策略信息,得到更新后调度策略信息;

根据所述更新后调度策略信息和第一目标码率,发送所述待处理数据包至所述终端。

15.根据权利要求14所述的方法,其特征在于,所述根据所述当前带宽资源和所述待处理数据包,更新针对所述多个传输路径的调度策略信息,得到更新后调度策略信息,包括:根据所述当前带宽资源和所述待处理数据包的数据总量,重新为所述待处理数据包对应的多个目标路径配置更新后数据传输量,所述更新后调度策略信息包括:各个所述待处理数据包需要使用的多个目标路径和各个所述目标路径被配置的更新后数据传输量。

16.一种数据流传输系统,其特征在于,所述系统包括:终端和服务器,所述终端与所述服务器之间包括多个传输路径;其中:所述服务器,用于根据所述终端与服务器之间的多个传输路径,确定目标数据块对应的路径调度策略信息,发送所述路径调度策略信息至所述终端;

所述终端,用于接收所述服务器确定的所述目标数据块对应的路径调度策略信息,根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述目标数据块对应的码率,根据确定的码率向所述服务器请求所述目标数据块;

所述服务器,用于在接收到所述终端发送的针对所述目标数据块的数据请求时,根据所述传输路径调度策略信息和所述目标数据块对应的码率,发送所述目标数据块至所述终端,其中,所述数据请求携带有所述目标数据块对应的码率。

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

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行权利要求1‑15任一项所述的方法。

18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1‑15任一项所述的方法。

说明书 :

数据传输方法、系统、设备、存储介质及程序产品

技术领域

[0001] 本申请涉及数据处理技术领域,尤其涉及一种数据传输方法、系统、设备、存储介质及程序产品。

背景技术

[0002] 如今,视频流占据了绝大部分互联网流量。传统的视频流基于单路径进行传输。随着无线技术及移动终端的发展,客户端设备往往可以同时利用两条及以上的路径进行数据传输,称为多路径传输。使用多路径传输视频流有两个好处:1) 更高的聚合带宽:通过利用多条路径的带宽,服务器可以传输更高码率的视频,从而提升了视频质量;2) 鲁棒性:若一条路径的性能骤降,服务器可以在其他路径上完成视频内容的传输,从而可以减少卡顿。
[0003] 现有多路径自适应视频流传输方案,一般针对传输性能进行优化,但忽略了自适应视频流在应用层的优化目标QoE(Quality of Experience,用户的体验质量),从而导致视频应用的QoE性能不好,影响用户体验。

发明内容

[0004] 本申请实施例的主要目的在于提供一种数据传输方法、系统、设备、存储介质及程序产品,实现了多路径调度与数据流码率的协同优化,降低多路径调度对于目标数据块吞吐量采样的不良影响,从而减少吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。
[0005] 第一方面,本申请实施例提供一种数据传输方法,包括:获取服务器确定的目标数据块对应的路径调度策略信息,其中,所述终端与所述服务器之间包括多个传输路径,所述路径调度策略信息为针对所述多个传输路径的调度策略信息;根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述目标数据块对应的码率;根据确定的码率向所述服务器请求所述目标数据块。
[0006] 于一实施例中,所述获取服务器确定的目标数据块对应的路径调度策略信息,包括:响应于对目标数据块的获取指令,发送所述目标数据块的获取通知至服务器,所述获取通知用于指示所述服务器确定所述目标数据块对应的路径调度策略信息;接收所述服务器返回的所述目标数据块对应的路径调度策略信息。
[0007] 于一实施例中,所述获取服务器确定的目标数据块对应的路径调度策略信息,包括:接收所述服务器以预设周期发送的所述路径调度策略信息。
[0008] 于一实施例中,所述根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述目标数据块对应的码率,包括:根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述多个传输路径对所述目标数据块的第一吞吐量;根据所述第一吞吐量,确定所述目标数据块对应的第一目标码率。
[0009] 于一实施例中,所述路径调度策略信息包括:传输所述目标数据块时需要使用的多个目标路径和各个所述多个目标路径被配置的数据传输量;所述根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述多个传输路径对所述目标数据块的第一吞吐量,包括:根据所述多个目标路径的带宽资源和各个所述多个目标路径被配置的数据传输量,确定所述多个目标路径对所述目标数据块的第一吞吐量。
[0010] 于一实施例中,所述根据确定的码率向所述服务器请求所述目标数据块,包括:根据所述目标数据块对应的第一目标码率发送对应的数据请求至所述服务器;接收所述服务器基于所述第一目标码率返回的所述目标数据块。
[0011] 于一实施例中,在所述根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述目标数据块对应的码率之后,还包括:接收所述服务器发送的针对所述多个传输路径的更新后调度策略信息;根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定下一个数据块对应的第二目标码率,所述下一个数据块排在所述目标数据块之后;根据所述第二目标码率向所述服务器请求所述下一个数据块。
[0012] 于一实施例中,所述根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定所述下一个数据块对应的第二目标码率,包括:在已缓存数据块的总数据量小于预设阈值时,根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定所述下一个数据块对应的第二目标码率。
[0013] 于一实施例中,所述根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定下一个数据块对应的第二目标码率,包括:根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定所述多个传输路径对所述下一个数据块的第二吞吐量;根据所述第二吞吐量,确定所述下一个数据块对应的所述第二目标码率。
[0014] 于一实施例中,所述目标数据块为待传输视频流中的视频块。
[0015] 第二方面,本申请实施例提供一种数据传输方法,应用于服务器,所述方法包括:根据终端与服务器之间的多个传输路径,确定目标数据块对应的路径调度策略信息;发送所述路径调度策略信息至所述终端,所述路径调度策略信息用于指示所述终端确定所述目标数据块对应的码率;在接收到所述终端发送的针对所述目标数据块的数据请求时,根据所述传输路径调度策略信息和所述目标数据块对应的码率,发送所述目标数据块至所述终端,其中,所述数据请求携带有所述目标数据块对应的码率。
[0016] 于一实施例中,所述根据终端与服务器之间的多个传输路径,确定目标数据块对应的路径调度策略信息,包括:根据所述多个传输路径中各个传输路径的带宽资源和所述目标数据块的总数据量,确定传输所述目标数据块时需要使用的多个目标路径,并为所述多个目标路径配置对应的数据传输量,所述路径调度策略信息包括:传输所述目标数据块时需要使用的多个目标路径和各个所述目标路径被配置的数据传输量。
[0017] 于一实施例中,所述发送所述路径调度策略信息至所述终端,包括:在接收到所述终端发送的对所述目标数据块的获取通知时,发送所述路径调度策略信息至所述终端。
[0018] 于一实施例中,所述发送所述路径调度策略信息至所述终端,包括:以预设周期发送所述路径调度策略信息至所述终端。
[0019] 于一实施例中,所述在接收到所述终端发送的针对所述目标数据块的数据请求时,根据所述传输路径调度策略信息和所述目标数据块对应的码率,发送所述目标数据块至所述终端,其中,所述数据请求携带有目标码率,包括:接收所述终端发送的针对所述目标数据块的数据请求,所述数据请求中携带有所述目标数据块对应的第一目标码率;根据所述目标数据块的总数据量、所述第一目标码率和对应的所述多个目标路径被配置的数据传输量,为各个目标路径分配数据包;根据数据包分配结果,通过所述多个目标路径发送所述目标数据块至所述终端。
[0020] 于一实施例中,所述根据所述传输路径调度策略信息和所述目标数据块对应的码率,发送所述目标数据块至所述终端,还包括:监测所述目标数据块对应的所述多个传输路径的当前传输状态;当根据所述当前传输状态确定所述多个传输路径无法同时完成针对所述目标数据块的传输任务时,获取所述目标数据块已经分配路径且未发送的待处理数据包和所述多个传输路径的当前带宽资源;根据所述当前带宽资源和所述待处理数据包,更新针对所述多个传输路径的调度策略信息,得到更新后调度策略信息;根据所述更新后调度策略信息和第一目标码率,发送所述待处理数据包至所述终端。
[0021] 于一实施例中,所述根据所述当前带宽资源和所述待处理数据包,更新针对所述多个传输路径的调度策略信息,得到更新后调度策略信息,包括:根据所述当前带宽资源和所述待处理数据包的数据总量,重新为所述待处理数据包对应的所述多个目标路径配置更新后数据传输量,所述更新后调度策略信息包括:各个所述待处理数据包需要使用的多个目标路径和各个所述目标路径被配置的更新后数据传输量。
[0022] 于一实施例中,在所述根据所述当前带宽资源和所述待处理数据包,更新针对所述多个传输路径的调度策略信息,得到更新后调度策略信息之后,还包括:发送所述更新后调度策略信息至所述终端,所述更新后调度策略信息用于指示所述终端确定下一个数据块对应的第二目标码率,所述下一个数据块排在所述目标数据块之后;接收所述终端发送的针对所述下一个数据块的更新后数据请求,所述更新后数据请求携带有所述下一个数据块对应的所述第二目标码率;根据所述更新后路径调度策略信息、所述第二目标码率,发送所述下一个数据块至所述终端。
[0023] 于一实施例中,所述目标数据块为待传输视频流中的视频块。
[0024] 第三方面,本申请实施例提供一种数据传输装置,应用于终端,该装置包括:
[0025] 获取模块,用于获取服务器确定的目标数据块对应的路径调度策略信息,其中,所述终端与所述服务器之间包括多个传输路径,所述路径调度策略信息为针对所述多个传输路径的调度策略信息;
[0026] 第一确定模块,用于根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述目标数据块对应的码率;
[0027] 第一请求模块,用于根据确定的码率向所述服务器请求所述目标数据块。
[0028] 于一实施例中,所述获取模块,用于响应于对目标数据块的获取指令,发送所述目标数据块的获取通知至服务器,所述获取通知用于指示所述服务器确定所述目标数据块对应的路径调度策略信息;接收所述服务器返回的所述目标数据块对应的路径调度策略信息。
[0029] 于一实施例中,所述获取模块,用于接收所述服务器以预设周期发送的所述路径调度策略信息。
[0030] 于一实施例中,所述第一确定模块,用于根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述多个传输路径对所述目标数据块的第一吞吐量;根据所述第一吞吐量,确定所述目标数据块对应的第一目标码率。
[0031] 于一实施例中,所述路径调度策略信息包括:传输所述目标数据块时需要使用的多个目标路径和各个所述多个目标路径被配置的数据传输量;所述第一确定模块,用于根据所述多个目标路径的带宽资源和各个所述多个目标路径被配置的数据传输量,确定所述多个目标路径对所述目标数据块的第一吞吐量。
[0032] 于一实施例中,所述第一请求模块,用于根据所述目标数据块对应的第一目标码率发送对应的数据请求至所述服务器;接收所述服务器基于所述第一目标码率返回的所述目标数据块。
[0033] 于一实施例中,还包括:第一接收模块,用于在所述根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述目标数据块对应的码率之后,接收所述服务器发送的针对所述多个传输路径的更新后调度策略信息;第二确定模块,用于根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定下一个数据块对应的第二目标码率,所述下一个数据块排在所述目标数据块之后;第二请求模块,用于根据所述第二目标码率向所述服务器请求所述下一个数据块。
[0034] 于一实施例中,所述第二确定模块,用于在已缓存数据块的总数据量小于预设阈值时,根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定所述下一个数据块对应的第二目标码率。
[0035] 于一实施例中,所述第二确定模块,用于根据所述更新后调度策略信息和所述多个传输路径的当前带宽资源,确定所述多个传输路径对所述下一个数据块的第二吞吐量;根据所述第二吞吐量,确定所述下一个数据块对应的所述第二目标码率。
[0036] 第四方面,本申请实施例提供一种数据传输装置,应用于服务器,该装置包括:
[0037] 第三确定模块,用于根据终端与服务器之间的多个传输路径,确定目标数据块对应的路径调度策略信息;
[0038] 第一发送模块,用于发送所述路径调度策略信息至所述终端,所述路径调度策略信息用于指示所述终端确定所述目标数据块对应的码率;
[0039] 第二发送模块,用于在接收到所述终端发送的针对所述目标数据块的数据请求时,根据所述传输路径调度策略信息和所述目标数据块对应的码率,发送所述目标数据块至所述终端,其中,所述数据请求携带有所述目标数据块对应的码率。
[0040] 于一实施例中,所述第三确定模块,用于根据所述多个传输路径中各个传输路径的带宽资源和所述目标数据块的总数据量,确定传输所述目标数据块时需要使用的多个目标路径,并为所述多个目标路径配置对应的数据传输量,所述路径调度策略信息包括:传输所述目标数据块时需要使用的多个目标路径和各个所述目标路径被配置的数据传输量。
[0041] 于一实施例中,所述第一发送模块,用于在接收到所述终端发送的对所述目标数据块的获取通知时,发送所述路径调度策略信息至所述终端。
[0042] 于一实施例中,所述第一发送模块,用于以预设周期发送所述路径调度策略信息至所述终端。
[0043] 于一实施例中,所述第二发送模块,用于接收所述终端发送的针对所述目标数据块的数据请求,所述数据请求中携带有所述目标数据块对应的第一目标码率;根据所述目标数据块的总数据量、所述第一目标码率和对应的所述多个目标路径被配置的数据传输量,为各个目标路径分配数据包;根据数据包分配结果,通过所述多个目标路径发送所述目标数据块至所述终端。
[0044] 于一实施例中,所述第二发送模块,还用于监测所述目标数据块对应的所述多个传输路径的当前传输状态;当根据所述当前传输状态确定所述多个传输路径无法同时完成针对所述目标数据块的传输任务时,获取所述目标数据块已经分配路径且未发送的待处理数据包和所述多个传输路径的当前带宽资源;根据所述当前带宽资源和所述待处理数据包,更新针对所述多个传输路径的调度策略信息,得到更新后调度策略信息;根据所述更新后调度策略信息和第一目标码率,发送所述待处理数据包至所述终端。
[0045] 于一实施例中,所述根据所述当前带宽资源和所述待处理数据包,更新针对所述多个传输路径的调度策略信息,得到更新后调度策略信息,包括:根据所述当前带宽资源和所述待处理数据包的数据总量,重新为所述待处理数据包对应的所述多个目标路径配置更新后数据传输量,所述更新后调度策略信息包括:各个所述待处理数据包需要使用的多个目标路径和各个所述目标路径被配置的更新后数据传输量。
[0046] 于一实施例中,还包括:第三发送模块,用于在所述根据所述当前带宽资源和所述待处理数据包,更新针对所述多个传输路径的调度策略信息,得到更新后调度策略信息之后,发送所述更新后调度策略信息至所述终端,所述更新后调度策略信息用于指示所述终端确定下一个数据块对应的第二目标码率,所述下一个数据块排在所述目标数据块之后;第二接模块,用于收接收所述终端发送的针对所述下一个数据块的更新后数据请求,所述更新后数据请求携带有所述下一个数据块对应的所述第二目标码率;第四发送模块,用于根据所述更新后路径调度策略信息、所述第二目标码率,发送所述下一个数据块至所述终端。
[0047] 第五方面,本申请实施例提供一种数据流传输系统,所述系统包括:终端和服务器,所述终端与所述服务器之间包括多个传输路径;其中:
[0048] 目标数据块所述服务器,用于根据所述终端与服务器之间的多个传输路径,确定所述目标数据块对应的路径调度策略信息,发送所述路径调度策略信息至所述终端;
[0049] 所述终端,用于接收所述服务器确定的所述目标数据块对应的路径调度策略信息,根据所述路径调度策略信息和所述多个传输路径的带宽资源,确定所述目标数据块对应的码率,根据确定的码率向所述服务器请求所述目标数据块;
[0050] 所述服务器,用于在接收到所述终端发送的针对所述目标数据块的数据请求时,根据所述传输路径调度策略信息和所述目标数据块对应的码率,发送所述目标数据块至所述终端,其中,所述数据请求携带有所述目标数据块对应的码率。
[0051] 第六方面,本申请实施例提供一种电子设备,包括:
[0052] 至少一个处理器;以及
[0053] 与所述至少一个处理器通信连接的存储器;
[0054] 其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行上述任一方面所述的方法。
[0055] 第七方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述任一方面所述的方法。
[0056] 第八方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方面所述的方法。
[0057] 本申请实施例提供的数据传输方法、系统、设备、存储介质及程序产品,通过基于服务器的多路径调度策略和传输路径的带宽资源确定目标数据块的码率,以确定的码率向服务器请求目标数据块,如此,由于确定码率的时候考虑到了多路径调度策略,因此降低了多路径调度对于目标数据块吞吐量采样的不良影响,从而减少数据流吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。

附图说明

[0058] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0059] 图1为本申请实施例提供的一种电子设备的结构示意图;
[0060] 图2为本申请实施例提供的一种数据流传输系统的示意图;
[0061] 图3为本申请实施例提供的一种数据流传输系统的场景架构示意图;
[0062] 图4为本申请实施例提供的一种数据流传输系统的场景架构示意图;
[0063] 图5为本申请实施例提供的一种数据传输方法的流程示意图;
[0064] 图6为本申请实施例提供的一种数据传输方法的流程示意图;
[0065] 图7为本申请实施例提供的一种数据传输方法的流程示意图;
[0066] 图8为本申请实施例提供的一种数据传输方法的流程示意图;
[0067] 图9为本申请实施例提供的一种数据传输方法的信令交互流程示意图;
[0068] 图10为本申请实施例提供的一种数据传输装置的结构示意图;
[0069] 图11为本申请实施例提供的一种数据传输装置的结构示意图。
[0070] 通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

[0071] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。
[0072] 本文中术语“和/或”,用于描述关联对象的关联关系,具体表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
[0073] 需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
[0074] 为了清楚地描述本申请实施例的技术方案,首先对本申请所涉及的名词进行释义:
[0075] HTTP:Hyper Text Transfer Protocol,超文本传输协议。
[0076] DASH:Dynamic Adaptive Streaming over HTTP,基于HTTP的动态自适应流。
[0077] ABR:Adaptive BitRate,自适应码率算法,根据网络环境(如吞吐量预测值)及播放缓冲水平动态选择视频块的码率或分辨率级别,其目标是最大化QoE。
[0078] QoE:Quality of Experience,用户的体验质量,对于点播视频流,主要包括视频码率、卡顿时间、码率切换程度、视频启动时延四方面指标。
[0079] 多路径传输:指同时利用多个不同的物理路径进行数据传输,如同时在WiFi和Cellular链路上传输数据。对于计算机网络的传输层而言,其将五元组(源IP地址、目的IP地址、源端口号、目的端口号、传输层协议类型)视为一条路径的标识。
[0080] 多路径调度:传输层将应用层交付的数据包在特定时机按照特定数量分配到指定路径上,目的是优化传输性能,如减少传输时间或提升吞吐量。IP地址:Internet Protocol Address,互联网协议地址。
[0081] TCP:Transmission Control Protocol,传输控制协议。
[0082] MPTCP:Multi Path TCP,基于TCP的多路径传输控制协议。
[0083] QUIC:Quick UDP Internet Connection,一种基于UDP的低时延的互联网传输层协议。
[0084] MPQUIC:Multi Path QUIC,基于QUIC的多路径传输控制协议。
[0085] UDP:User Datagram Protocol,用户数据报协议。
[0086] cwnd:Congestion Window,计算机网络中由传输层维护的拥塞窗口。拥塞窗口的大小取决于网络链路的拥塞程度和接收端的接收窗口大小,由拥塞控制算法实时调整。
[0087] 吞吐量:是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。
[0088] Mbps:megabits per second的缩写,是一种传输速率单位,指每秒传输的位(比特)数量。
[0089] DRL:Deep Reinforcement Learning,深度强化学习。
[0090] Pkt:Packet,数据包。
[0091] 3G:3rd Generation Mobile Telecommunications,第三代移动通信。
[0092] Cellular链路:是基于Cellular接口的链路,是3G的接口类型。
[0093] WiFi:无线网络通信技术。
[0094] Cubic:一种基于丢包的拥塞控制算法,是Linux(操作系统)内核默认的拥塞控制算法。
[0095] BBR:Bottleneck Bandwidth and Round‑trip propagation time,一种基于带宽和时延估计的拥塞控制算法。
[0096] RTT:Round Trip Time,往返时延。
[0097] APP:Application,应用程序。
[0098] 如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以实现多路径调度与数据流码率的协同优化,降低多路径调度对于目标数据块QoE的不良影响,从而减少吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。
[0099] 于一实施例中,电子设备1可以是投影仪、手机、平板电脑、笔记本电脑、台式计算机或者多个计算机组成的大型运算系统。
[0100] 图2为本申请实施例提供的一种数据流传输系统200的示意图。如图2所示,该系统包括:服务器210和终端220,其中:
[0101] 服务器210可以是提供数据流服务的数据平台,比如可以是提供视频流传输服务的视频服务平台。实际场景中,一个视频服务平台可能有多个服务器210,图2中以1个服务器210为例。
[0102] 终端220可以是用户登录视频服务平台时使用的电脑、手机、平板等设备,终端220也可以有多个,图2中以2个终端220为例进行示意。
[0103] 终端220与服务器210之间可以通过互联网进行信息传输,以使终端220可以访问服务器210上的数据。上述终端220和/或者服务器210均可以由电子设备1来实现。
[0104] 本申请实施例的数据流传输的方式可以应用于任意需要数据流传输的领域。比如观看网络视频的场景。
[0105] 以网络视频场景为例,如今,视频流占据了绝大部分互联网流量。其中,DASH作为基于HTTP的视频流标准,被广泛部署在商业视频服务中。在DASH中,每个视频被编码为多个不同码率的版本(如5Mbps、8Mbps、16Mbps),分别对应不同的清晰度和质量(如480p、720p、1080p,其中字母P(progressive scan)表示逐行扫描)。
[0106] 实际场景中,每个码率级别的视频被进一步分割为若干个等时长的视频块,其时长通常为2s~5s。客户端播放器运行ABR算法,根据网络吞吐量及播放缓冲水平动态选择每个视频块的码率级别,以提升视频质量同时减少卡顿时间。因此,ABR算法对于提升用户的QoE而言至关重要。
[0107] 传统的视频流基于单路径进行传输。随着无线技术及移动终端的发展,客户端设备往往可以同时利用两条及以上的路径进行数据传输,称为多路径传输。使用多路径传输视频流有两个好处:1) 更高的聚合带宽:通过利用多条路径的带宽,服务器可以传输更高码率的视频,有希望提升视频质量。2) 鲁棒性:若一条路径的性能骤降,服务器可以在其他路径上完成视频内容的传输,有希望减少视频卡顿。
[0108] 传统多路径自适应视频流传输方案,一般针对传输性能进行优化,希望通过优化传输性能来缩短视频块传输时间以提升QoE。但这种间接优化逻辑忽略了自适应视频流在应用层的自有优化逻辑ABR算法与独立优化目标QoE,从而可能导致视频应用的QoE性能下降,影响用户体验。
[0109] 多路径调度器是多路径技术中的核心模块,因此受到了业界的广泛关注。多路径调度器通过决定何时把数据包分配到哪条路径上来最大化传输性能,如最小化多路径队首阻塞(MP‑HoL Blocking)。现有理论研究与工程实践达成了“乱序发送,按序到达”的多路径调度设计共识,其核心思想是为快路径分配超过其拥塞窗口的数据包,以实现双路径同时完成传输,从而最小化整体传输时间。尽管很多现有工作尝试将多路径技术应用于视频传输中,但仅有非常少数的工作考虑如何将多路径调度与ABR算法进行结合。
[0110] 在一些多路径技术应用于视频流传输工作中,可以基于MPTCP设计。随着QUIC作为新的传输层协议出现,近期工作开始关注MPQUIC。虽然已有很多工作尝试将多路径与视频流进行结合,但只有少数工作与ABR算法和DASH动态视频流有关,而且其中的绝大部分工作并不涉及多路径技术的核心,即多路径数据包调度。
[0111] 因此,在当前工作中,一般仅从传输层角度进行优化,忽略了应用层的播放器行为、ABR决策逻辑与QoE性能需求。即使有些方案从跨层优化的角度出发,比如具有多径传输的神经自适应视频流方案,基于深度强化学习(DRL)模型,同时为多路径调度和ABR算法做出决策。然而,这种解决方案具有三个问题:1) 其视频块级别的数据包调度决策无法应对单个视频块传输过程内的网络环境突变,从而会导致传输性能下降。2) 机器学习方法未能给该问题提供深层次的见解,从而对实际部署与后续优化造成阻碍。
[0112] 总体而言,现有多路径自适应视频流传输方案可以分为独立优化与协同优化两类。1. 独立优化方案仅针对传输性能进行优化,但该方式忽略了自适应视频流的应用层自适应码率算法与应用层优化目标QoE,从而无法直接帮助应用取得更优的QoE性能。2. 协同优化方案将传输层与应用层统一决策,但忽略了二者的作用粒度差异,从而导致传输性能劣化。
[0113] 为了解决上述问题,本申请实施例提供一种数据流传输的方案,通过基于服务器的多路径调度策略和传输路径的带宽资源确定目标数据块的目标码率,以目标码率向服务器请求目标数据块,如此,由于确定目标码率的时候考虑到了多路径调度策略,因此降低了多路径调度对于数据流吞吐量采样的不良影响,从而减少吞吐量的预测不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。
[0114] 另一方面,与已有的多路径自适应视频流传输方案相比,利用多路径技术协助ABR算法进行决策,使得传输层直接参与优化应用层的QoE目标。具体而言,本申请实施例提出了“粗粒度决策,细粒度矫正”的方案:
[0115] 1.粗粒度决策作用于视频块传输开始前,通过在服务器侧预先固定视频块的多路径调度决策,消除其对视频块吞吐量的影响,通过降低预测不确定性来协助客户端取得更优的吞吐量预测,从而直接为ABR算法带来更好的码率决策。
[0116] 2.细粒度矫正作用于视块传输过程中,利用传输层的细粒度特性,当网络环境发现突变时,及时矫正之前的单次调度决策,通过重调度和重注入来最大化传输性能,从而满足视频流的传输需求。
[0117] 上述数据流传输的方案可以部署在服务器210上,也可以部署在终端220上,或者部分部署在服务器210上,部分部署在终端220上。实际场景中可以基于实际需求选择,本实施例不做限定。
[0118] 当数据流传输的方案全部或者部分部署在服务器210上时,可以对终端220开放调用接口,以对终端220提供算法支持。
[0119] 下面结合附图,对本申请的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
[0120] 如图3所示,其为本申请一实施例的数据流传输系统的应用场景示意图,以视频流的传输为例,该系统可以包括:客户端和服务器两部分,其中客户端可以装载在上述终端220中,用户可以通过终端220中装载的客户端与服务器210进行数据交互。
[0121] 其中,客户端包括:播放器、HTTP模块、QUIC模块、UDP模块和视频块吞吐量预测器。播放器用于播放视频流,以供用户观看。
[0122] 于一实施例中,QUIC模块还可以包括传输层客户端,其中传输层客户端可以包括多条能够触达服务器的传输路径,图3中以2条传输路径(即路径1和路径2)为例。
[0123] 于一实施例中,视频块吞吐量预测器用于根据输入的路径传输数据量的分配比例和路径带宽预测吞吐量。
[0124] 服务器可以包括:Web Server(Web服务)、HTTP模块、QUIC模块、UDP模块、数据包调度器和重注入控制器。其中,服务器的QUIC模块可以包括传输层服务器,传输层服务器具体可以包括多个能够触达客户端传输路径,图3中以2条传输路径(即路径1和路径2)为例。
[0125] 如图3所示,假设路径1是WiFi链路,路径2是Cellular链路,客户端和服务器可以通过WIFI链路或Cellular链路二者其一传递视频块内某个数据包pkt,也可以任一路径基于特定格式的数据包向对端传递信息,比如可以基于QOE_CONTROL_SIGNALS帧(简称QoE帧,一种特定格式的数据包)向对端传递QoE信息,比如服务器通过QoE帧将确定的路径调度策略中各个传输路径的传输量分配比例传输给客户端。
[0126] 在本申请实施例中,数据传输方法可以包括粗粒度决策与细粒度矫正两个阶段。其中,粗粒度决策包括数据包调度器、多路径吞吐量预测器。细粒度矫正包括重调度控制器、重注入控制器。
[0127] 如图4所示,为本申请实施例的数据传输方法整体逻辑结构示意图,实际场景中,对于每个视频块,该方案的具体工作流程为:
[0128] 1.在粗粒度矫正阶段,服务器端预先通过数据包调度器确定整个视频块的多路径调度决策,将多路径调度决策传递至客户端,比如可以将该决策通过MPQUIC的QOE_CONTROL_SIGNALS帧传递至客户端。
[0129] 2.客户端的吞吐量预测器根据服务器的调度决策(包含路径分配比例)及多路径接收速率来预测视频块的预测吞吐量,ABR算法基于预测值选择码率,向服务器发起请求。
[0130] 于一实施例中,吞吐量预测器可以由任意以路径传输量分配比例作为输入的多路径吞吐量预测方法实现,如基于监督学习的神经网络。
[0131] 3.服务器在接收到请求后,按照预先确定的调度决策为多路径分配数据包并开始发送,之后进入细粒度矫正阶段。
[0132] 4.在细粒度矫正阶段,服务器监测多路径的可用状态,当网络环境发生变化时,重调度控制器和重注入控制器按照特定算法执行重调度和重注入,以适应网络环境变化。
[0133] 于一实施例中,重注入控制器可以结合其他重注入控制策略以限制冗余数据用量,如使用双阈值控制算法。
[0134] 请参看图5,其为本申请一实施例的数据传输方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2至图4所示的数据流传输系统的应用场景中,以实现多路径调度与数据流码率的协同优化,降低多路径调度对于目标数据块吞吐量采样的不良影响,从而减少吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。本实施例以终端220为执行端为例,主要涉及粗粒度决策方案,该方法包括如下步骤:
[0135] 步骤501:获取服务器确定的目标数据块对应的路径调度策略信息。
[0136] 在本步骤中,目标数据块可以是用户选中要传输的数据流。目标数据块包含但不限于:视频数据流、语音数据流和文本数据流。以基于DASH技术的视频点播场景为例,可以基于DASH技术,将视频流编码为多个不同码率的版本,每个码率级别的视频流被进一步分割为若干个等时长的视频块,由于视频流根据播放顺序有时间先后性,因此多个视频块可以按照时间先后顺序排列,便于索引。此时,目标数据块可以是一个视频块,可以分别对每个视频块进行一次独立的码率决策。终端220与服务器210之间可以包括多个传输路径,路径调度策略信息为针对多个传输路径的调度策略信息。可以通过服务器210根据上述多个传输路径,确定目标数据块对应的路径调度策略信息,节省终端220的数据计算量。
[0137] 于一实施例中,步骤501具体可以包括:响应于对目标数据块的获取指令,发送目标数据块的获取通知至服务器210。接收服务器210返回的目标数据块对应的路径调度策略信息。
[0138] 在本实施例中,路径调度策略信息的获取流程可以是同步流程,即终端通知服务器一次,服务器相应的返回一次路径调度策略信息,也就是说服务器210接到终端220的获取通知后,将确定的路径调度策略信息返回给终端220,终端220可以实时接收服务器210返回的路径调度策略信息,此处终端220可以通过QoE帧向服务器210发送获取通知。获取指令可以是文字指令、语音指令或者手势指令等。目标数据块可以是用户选中的数据流。目标数据块包含但不限于:视频流、语音流和文本数据流。
[0139] 以用户观看在线视频场景为例,目标数据块可以是待传输视频流中的视频块,用户可以通过终端220建立与服务器210的连接,登录到在线视频服务平台,然后通过终端220录入获取指令,比如通过终端220的交互界面录入获取指令或者通过外接键盘录入获取指令,多样化的获取指令录入方式,提高用户的交互体验。具体地,用户打开手机上的视频应用,当用户想要观看视频A(即目标数据块),则可以在手机触摸屏上触摸视频A的图标,触摸屏捕获到该触摸操作,即触发对视频A的获取指令。具体地,如果视频A包括按时间顺序排列的多个视频块,则每个视频块可以对应一个获取指令,在相应的视频块播放之前,触发对该视频块的获取指令,或者在该视频块播放过程中触发对下一个视频块的获取指令。也可以依据视频播放时间顺序,到特定时间点自动触发对视频块的获取指令。终端220响应于该获取指令,发送对视频块的获取通知给服务器210。其中获取通知用于指示服务器210确定目标数据块对应的路径调度策略信息。路径调度策略信息可以由服务器210确定,节省终端220的数据计算量。
[0140] 于一实施例中,步骤501具体可以包括:接收服务器以预设周期发送的路径调度策略信息。
[0141] 在本实施例中,路径调度策略信息的获取流程可以是异步流程,即服务器以特定的预设周期发送路径调度策略信息给终端,终端根据实际需求采用最新的路径调度策略信息来确定数据流的码率。比如在基于DASH技术的视频点播场景下,服务器可以每隔200ms发送一次最新的调度策略信息给客户端。实际场景可以基于实际需求灵活选择路径调度策略信息的获取流程的实现方式。
[0142] 于一实施例中,路径调度策略信息包含但不限于:传输目标数据块时需要使用的多个目标路径和各个多个目标路径被配置的数据传输量。
[0143] 在本实施例中,如图3所示,以双路径为例,其中WiFi链路为路径1,Cellular链路为路径2,假设视频A包括按时间顺序排列的多个视频块,目标数据块是视频A中的一个视频块A1,路径1和路径2是传输视频块A1时需要使用的多个目标路径,则路径调度策略信息就可以是在传输视频块A1时对WiFi链路和Cellular链路的调度策略。路径调度策略信息可以包括WiFi链路和Cellular链路,以及WiFi链路和Cellular链路被配置的数据传输量。如此,路径调度策略信息明确的指示了各个目标路径在传输一个视频块时的数据分配比例,可以为终端220提供码率判别所依据的条件,促进提高用户体验。
[0144] 于一实施例中,数据传输量可以采用传输量分配比例来表征,可以基于各个目标路径的带宽资源之间的比例,来确定各个目标路径对应的传输量分配比例,以使被调度的多个目标路径能够同时完成一个视频块的传输任务,减少视频卡顿。比如可以通过服务器210中的数据包调度器,将整个视频块的数据包分配至所有路径上,使得所有目标路径同时完成传输,以取得最短传输时间,减少视频卡顿。
[0145] 于一实施例中,以目标路径为双路径来传输视频的场景为例,假设路径1的带宽资源大于路径2的带宽资源,带宽资源越大表示该路径的传输速率越大,也就是说路径1是快路径,路径2是慢路径。可以采用如下公式计算各个目标路径对应的传输量分配比例:
[0146]
[0147] 其中,α为快路径的传输量分配比例,Bf为快路径的带宽,Bs为慢路径的带宽。对于双路径而言,给定快路径的传输量分配比例α,数据包调度器可以将要传输的一个视频块前α部分的数据包分配给快路径,后1‑α部分的数据包分配给慢路径。
[0148] 于一实施例中,为将服务器210的路径调度决策告知客户端,本实施例可以使用MPQUIC的QOE_CONTROL_SIGNALS帧(简称为QoE帧)进行信息传递。具体而言,在同步流程中,服务器210可以在接收到客户端的获取通知后向客户端返回QoE帧。在异步流程中可以按照每200ms更新本地多路径的带宽信息,并将该信息封装在QoE帧中发送至客户端,QoE帧中可以包括:快路径索引,慢路径索引,快路径带宽,慢路径带宽。以便于终端220及时获取到路径调度策略信息。
[0149] 于一实施例中,可以使用解耦合拥塞控制算法,即每条传输路径运行单独的拥塞控制算法,提高计算效率。路径带宽资源为服务器210端的传输层发送速率,可由拥塞控制算法直接给出(如BBR),或由该传输路径的拥塞窗口除以RTT计算得到(如Cubic)。其中服务器210端执行调度决策可以异步于客户端预测吞吐量,但可以基于相同的信息和计算方式。
[0150] 步骤502:根据路径调度策略信息和多个传输路径的带宽资源,确定目标数据块对应的码率。
[0151] 在本步骤中,路径的带宽资源可以通过该路径的接收速率来表征,装载在终端220的客户端可以根据服务器210发来的路径调度决策信息,以对应的参与传输的多个目标路径的接收速率来选择数据块的码率,路径的接收速率与该路径的带宽资源正相关。以视频块作为数据块为例,这里选择的码率决定了该视频块的视频清晰度和质量,实际场景中,可以提供视频清晰度选项给用户,用户手动选取清晰度。在用户没有主动选取视频清晰度的情况下,终端220可以根据路径调度策略信息和多个传输路径的带宽资源,自动确定目标数据块对应的码率,比如可以采用ABR算法确定视频块的码率。实际场景中,影响视频块码率决策的因素为参与传输的目标路径带宽资源、服务器210对路径的调度策略以及该视频块的数据量大小,本实施例中综合考虑调度策略和多路径的带宽资源来确定视频块对应的码率,实现了多路径调度与数据流码率的协同优化,降低多路径调度对于目标数据吞吐量采样的不良影响,从而减少吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。
[0152] 于一实施例中,步骤502具体可以包括:根据路径调度策略信息和多个传输路径的带宽资源,确定多个传输路径对目标数据块的第一吞吐量。根据第一吞吐量,确定目标数据块对应的第一目标码率。
[0153] 在本实施例中,以视频块作为目标数据块为例,视频流中可能包括多个视频块,可以按照多个视频块的时间先后顺序,逐个确定码率。对于要传输的当前视频块,客户端可以根据服务器210发送的路径调度决策,以及多个目标路径的接收速率首先预测当前视频块的第一吞吐量,然后可以采用ABR算法基于预测的当前视频块的吞吐量选择当前视频块对应的第一目标码率,如此,通过协同多路径调度与ABR算法以实现跨层优化视频流QoE。于一实施例中,可以采用如图3和图4中所示的吞吐量预测器实现对视频块第一吞吐量的预测。吞吐量预测器可以位于客户端,也可以位于服务器,图3和图4中以吞吐量预测器位于客户端为例。吞吐量预测器主要功能为根据服务器210的调度决策预测视频块的多路径吞吐量,并将该预测值提供给ABR算法以便做出码率决策。吞吐量预测器的输入信息为服务器210端的一次性调度决策(即快路径1的传输量分配比例α)和终端220的双路径接收速率。
[0154] 实际场景中,在码率确定时,可以选择不超过预测吞吐量的最高码率级别作为视频块的目标码率,假设不同清晰度对应的码率级别是{1, 2.5, 5, 8, 16}Mbps,各个码率级别分别对应清晰度为:360p,480p,720p,1080p,2K(2K分辨率)。如果该视频块预测的第一吞吐量是12Mbps,可以选择8Mbps码率级别(对应1080p清晰度)作为该视频块的第一目标码率。
[0155] 于一实施例中,根据路径调度策略信息和多个传输路径的带宽资源,确定多个传输路径对目标数据块的第一吞吐量,具体可以包括:目标数据块根据多个目标路径的带宽资源和各个多个目标路径被配置的数据传输量,确定多个目标路径对目标数据块的第一吞吐量。
[0156] 在本实施例中,在实际的数据请求中,假设目标数据块是大的数据流中的一个数据块,可以一次请求一个目标数据块,该数据块通过多个路径传输,可以提高整个大数据流的数据传输效率。以视频流场景为例,目标数据块可以是视频流A中的一个视频块。目标路径为双路径,假设路径1的带宽资源大于路径2的带宽资源,带宽资源越大表示该路径的传输速率越大,也就是说路径1是快路径,路径2是慢路径。可以采用如下公式计算多个传输路径对视频流A中一个视频块的吞吐量:
[0157]
[0158] 其中, 表示视频流中第k个视频块的预测吞吐量,k为正整数。Bf为快路径1的带宽,Bs为慢路径2的带宽。其中,快路径1的带宽可以采用快路径1的接收速率的平滑值来表征,慢路径2的带宽可以采用慢路径2的接收速率的平滑值来表征。
[0159] 于一实施例中,对于一个视频块,各个目标路径的接收速率等于该路径接收的总字节数除以该视频块的传输时间(从客户端发出请求的第一个字节到收到响应到的最后一个字节经历的时间)。接收速率可使用算术平均数、调和平均数、指数加权移动平均数(EWMA,Exponentially Weighted Moving‑Average)等方法进行平滑。
[0160] 于一实施例中,吞吐量预测也可以采用其他的预测方式,比如采用基于机器学习的网络模型进行预测。实际应用中可以基于是基于实际需求选择,本申请实施例对吞吐量的预测方式不做限制。
[0161] 步骤503:根据确定的码率向服务器210请求目标数据块。
[0162] 在本步骤中,终端220确定了目标数据块对应的码率后,可以向服务器210发送对目标数据块的数据请求,该数据请求中携带有确定的码率,以使服务器210根据确定的码率和路径调度策略信息返回对应的目标数据块,返回的目标数据块符合终端220确定的码率。
[0163] 于一实施例中,步骤503具体可以包括:根据目标数据块对应的第一目标码率发送对应的数据请求至服务器210。接收服务器210基于第一目标码率返回的目标数据块。
[0164] 在本实施例中,假设一个大的数据流包括多个数据块,多个数据块可以按照时间先后顺序排列。在该大数据流传输过程中,可以一次请求目标数据块中的一个数据块,该数据块通过多个路径传输,可以提高数据传输效率,则当前要传输的数据块就是目标数据块。以视频流场景为例,视频流包括多个视频块,多个视频块可以按照播放顺序排列,目标数据块可以是其中一个要传输的当前视频块。假设经过步骤502确定了当前视频块对应的第一目标码率,可以按照视频块播放的时间先后顺序,发送当前视频块的数据请求至服务器
210,数据请求中携带有该当前视频块对应的第一目标码率,以使服务器210按照时间先后顺序,返回对应的当前视频块,终端220接收服务器210返回的当前视频块,并按照播放顺序进行播放,保证视频流按照顺序播放。
[0165] 上述数据传输方法,通过基于服务器210的多路径调度策略和传输路径的带宽资源确定目标数据块的码率,以确定的码率向服务器210请求目标数据块,如此,由于确定码率的时候考虑到了多路径调度策略,因此降低了多路径调度对于数据流吞吐量采样的不良影响,从而减少吞吐量的预测不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。
[0166] 请参看图6,其为本申请一实施例的数据传输方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2至图4所示的数据流传输系统的应用场景中,以实现多路径调度与数据流码率的协同优化,降低多路径调度对于目标数据块吞吐量采样的不良影响,从而减少吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。本实施例以终端220为执行端,以同步流程获取路径调度策略信息为例,与前述实施例相比,本实施例了还包括粗粒度决策方案,该方法包括如下步骤:
[0167] 步骤601:响应于对目标数据块的获取指令,发送目标数据块的获取通知至服务器210。详细参阅上述实施例中对步骤501的相关描述。
[0168] 步骤602:接收服务器210返回的目标数据块对应的路径调度策略信息。详细参阅上述实施例中对步骤501的相关描述。
[0169] 步骤603:根据路径调度策略信息和多个传输路径的带宽资源,确定多个传输路径对目标数据块的第一吞吐量。详细参阅上述实施例中对步骤502的相关描述。
[0170] 步骤604:根据第一吞吐量,确定目标数据块对应的第一目标码率。详细参阅上述实施例中对步骤502的相关描述。
[0171] 步骤605:根据目标数据块对应的第一目标码率发送对应的数据请求至服务器210。详细参阅上述实施例中对步骤503的相关描述。
[0172] 步骤606:接收服务器210基于第一目标码率返回的目标数据块。详细参阅上述实施例中对步骤503的相关描述。
[0173] 步骤607:接收服务器210发送的针对多个传输路径的更新后调度策略信息。
[0174] 在本步骤中,针对一个数据流中各个数据块可以采用相同的技术原理进行处理,在步骤606之后,可以采用类似于步骤601至步骤606的方式,继续处理下一个数据块。具体而言,以视频流传输场景为例,在前述目标视频块传输开始后,即可进入细粒度矫正阶段,服务器210会监测多个传输路径的当前传输状态,并在网络环境发生变化时,更新调度策略,并将更新后调度策略信息发送给终端220。例如为将服务器210的路径调度决策告知客户端,可以使用MPQUIC的QOE_CONTROL_SIGNALS帧(简称为QoE帧)进行信息传递。具体而言,同步流程下,服务器210可以在接收到客户端的获取通知后向客户端返回QoE帧。服务器210更新本地多路径的带宽信息,并将该信息封装在QoE帧中发送至客户端,QoE帧中可以包括:快路径索引,慢路径索引,快路径带宽,慢路径带宽。以便于终端220及时获取到路径调度策略信息。
[0175] 步骤608:根据更新后调度策略信息和多个传输路径的当前带宽资源,确定下一个数据块对应的第二目标码率。
[0176] 在本步骤中,下一个数据块排在目标数据块之后。假设一个大的数据流中包括多个数据块,多个数据块可以按照时间先后顺序排列,若目标数据块是正在传输的当前数据块,则时间顺序与当前数据块相邻,并且排在当前数据块之后的数据块就是下一个数据块。在当前数据块传输过程中,当终端220接收到服务器210发来的更新后调度策略信息时,说明当前网络环境已经发生变化,此时终端220可以根据更新后调度策略信息和多个传输路径的当前带宽资源,确定下一个数据块对应的第二目标码率,以便于向服务器210请求下一个数据块对应的数据资源,保证数据传输过程基于最新的调度策略信息顺利进行,灵活应对网络环境变化。
[0177] 需要说明的是,在同步流程的具体场景下,服务器210在发送视频块的过程中可以实时更新路径带宽信息(比如每RTT由拥塞控制算法更新)。对于同步流程下的每一个视频块,服务器一直在传输过程中更新路径信息,并可以在客户端请求该视频块前将最新的信息以QoE帧发送至客户端。在同一个视频块的传输过程中,路径调度策略信息可能会不断调整更新,也可能不调整。
[0178] 另外,不同的视频块传输过程中,网络环境也不一定会发生变化,因此,当网络环境未发生变化时,来自服务器210的相邻QoE帧可能包含相同的信息(除了QoE帧的序号外)。
[0179] 于一实施例中,步骤608具体可以包括:在已缓存数据块的总数据量小于预设阈值时,根据更新后调度策略信息和多个传输路径的当前带宽资源,确定下一个数据块对应的第二目标码率。
[0180] 在本实施例中,假设一个大的数据流中包括多个数据块,在该数据流传输过程中,可以采用先缓存部分数据块,再根据需求请求缓存后续数据块的方式进行数据块的传输。因此,该数据流中的多个数据块的传输过程在时间上可以并不是连续的。可以预先缓存一部分数据块使用,在已缓存数据块的数据总量低于设定的预设阈值时,为避免影响数据使用,可以启动对下一个数据块的缓存过程。具体地,下一个数据块是未传输的数据块,如果当前已缓存数据块的总数据量大于或等于预设阈值,则说明缓存的数据块够多,不会让用户使用数据时出现卡顿,则可以暂停数据块码率的确定,然后定期检查当前已缓存数据块的总数据量,直至当前已缓存数据块的总数据量小于预设阈值的情况下,再启动对下一个数据块的缓存过程,不仅可以降低数据卡顿风险,而且可以减少已缓存数据给存储器带来的压力。
[0181] 在已缓存数据块的数据总量低于设定的预设阈值时,可以根据更新后调度策略信息和多个传输路径的当前带宽资源确定下一个数据块的第二目标码率,进而对下一个数据块向服务器发起传输请求。预设阈值用来限定缓存的数据量大小,可以基于终端的实际情况设定。
[0182] 以视频流的传输过程为例,一个视频流会话涉及多个视频块的传输,但这些视频块的传输过程在时间上可以并不是连续的。在视频播放的一部分时间里,终端的播放器可能并不会向服务器发起请求(即二者间没有任何数据传输)。实际应用中,播放器的请求行为可以取决于播放缓冲区,具体流程如下:
[0183] 客户端播放器配置有一个缓冲区用来存放已下载但未播放的视频帧(块)。缓冲区的时长表征缓冲区中已下载的视频块的总时长,其随着视频块下载而增加,例如视频块时长4s,则下载一个视频块会增加4s的缓冲区时长。同时缓冲区的时长随着视频播放而减少,比如播放速度为1倍速,则每秒减少1s的缓冲区时长。播放器可以设定一个目标缓冲区阈值来表征前述的预设阈值,比如可以是30s,可以定期(如每隔0.5s检查一次)检查当前缓冲区中缓存的视频块总时长是否低于前述阈值30s。如果当前缓存视频总时长小于阈值30s,则可以立即向服务器请求下一个未传输的视频块(播放器可以维护视频块序号来确保按序请求);否则,可以继续等待0.5s再检查缓冲区时长(需要说明的是,1倍速播放则会消耗0.5s的缓冲区时长),等待视频播放将缓冲区时长消耗至阈值30s以下,再向服务器发起对下一个视频块的请求。
[0184] 在一个具体实施例场景中:在视频最开始播放时(起始阶段)缓冲区为空,则终端播放器可以立即向服务器请求一个视频块。当连续请求若干个视频块后,缓存的视频总时长会达到阈值30s,比如一个视频块时长4s,则缓存8个视频块就会达到预设阈值30s,此时播放器就不再请求视频块,而是间隔0.5s后进行下一次检查,假设2.5s后缓冲区中缓存的视频块总时长降到29.5s,则可以向服务器请求下一个视频块。如此,每个视频块的请求过程可以是相对独立的,每个视频块的码率也可以不一样。
[0185] 于一实施例中,根据更新后调度策略信息和多个传输路径的当前带宽资源,确定下一个数据块对应的第二目标码率,包括:根据更新后调度策略信息和多个传输路径的当前带宽资源,确定下一个数据块的第二吞吐量。根据第二吞吐量,确定下一个数据块对应的第二目标码率。
[0186] 在本实施例中,假设一个大的数据流中包括多个数据块,目标数据块是正在传输的当前数据块,则下一个数据块是未传输的数据块。为了应对网络环境的变化,可以针对未传输的数据块进行重新调度,服务器210会基于多个传输路径的当前带宽资源重新确定未传输的数据块的更新后调度策略信息。具体而言,终端220可以根据更新后调度策略信息和多个传输路径的当前带宽资源,重新确定多个传输路径对下一个数据块的第二吞吐量,进而根据第二吞吐量,确定下一个数据块对应的第二目标码率,以便于基于第二目标码率向服务器210请求未传输的数据块,降低网络环境变化给数据传输带来的不确定性影响,提高用户体验。
[0187] 步骤609:根据第二目标码率向服务器210请求下一个数据块。
[0188] 在本步骤中,终端220确定了下一个数据块对应的第二目标码率后,可以向服务器210发送对下一个数据块的数据请求,该数据请求中携带有第二目标码率,以使服务器210根据第二目标码率和更新后调度策略信息返回对应的下一个数据块,返回的下一个数据块符合终端220确定的第二目标码率。
[0189] 于一实施例中,为了在保证数据流连贯传输,并且能够应对网络环境的变化,可以基于最新的路径调度策略信息针对未传输的数据块向服务器210发送数据请求,具体地,可以按照各个未传输的数据块对应的时间先后顺序,依次根据各个未传输的数据块对应的第二目标码率发送对应的数据请求至服务器210,数据请求中携带有数据块对应的第二目标码率。依次接收服务器210基于第二目标码率返回的各个未传输的数据块。以视频流场景为例,视频流包括10个视频块,其中3个视频块已经传输完成,剩余6个视频块就是未传输的数据块,当网络环境发生改变,服务器更新了路径调度策略信息,可以按照剩余6个视频块播放的时间先后顺序,依次基于最新的路径调度策略信息确定最新的目标码率,依次发送对剩余6个视频块的数据请求至服务器210,数据请求中携带有该各个视频块对应的第二目标码率,以使服务器210按照时间先后顺序,返回对应的视频块,终端220接收依次接收服务器210返回的各个视频块进行播放,保证视频流按照顺序播放。
[0190] 上述数据传输方法,利用多路径技术协助ABR算法进行决策,使得传输层直接参与优化应用层的QoE目标。具体而言,本方案提出了“粗粒度决策,细粒度矫正”的方法:1.粗粒度决策作用于视频块传输开始前,通过在服务器210侧预先固定视频块的多路径调度决策,消除其对视频块吞吐量的影响,通过降低预测不确定性来协助客户端取得更优的吞吐量预测,从而直接为ABR算法带来更好的码率决策。2.细粒度矫正作用于视块传输过程中,通过利用传输层的细粒度特性,当网络环境发现突变时,及时矫正之前的单次调度决策,通过重调度和重注入来最大化传输性能。如此,通过多路径调度与ABR算法的协同优化,在用户所处网络环境带宽本身没有增长的情况下,提升APP视频场景的用户QoE体验,例如自动为用户选择到更高的合适码率或者降低视频卡顿,帮助用户获取更好的视频流观看体验,从而帮助提升APP的用户视频观看体验和用户留存。
[0191] 请参看图7,其为本申请一实施例的数据传输方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2至图4所示的数据流传输系统的应用场景中,以实现多路径调度与数据流码率的协同优化,降低多路径调度对于目标数据块吞吐量采样的不良影响,从而减少吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。本实施例以服务器210为执行端为例,主要涉及粗粒度决策方案,该方法包括如下步骤:
[0192] 步骤701:根据终端220与服务器210之间的多个传输路径,确定目标数据块对应的路径调度策略信息。
[0193] 在本步骤中,目标数据块可以是用户选中要传输的数据流。目标数据块包含但不限于:视频数据流、语音数据流和文本数据流。以基于DASH技术的视频点播场景为例,可以基于DASH技术,将视频流编码为多个不同码率的版本,每个码率级别的视频流被进一步分割为若干个等时长的视频块,由于视频流根据播放顺序有时间先后性,因此多个视频块可以按照时间先后顺序排列,便于索引。此时,目标数据块可以是一个视频块,可以分别对每个视频块进行一次独立的码率决策。终端220与服务器210之间可以包括多个传输路径,路径调度策略信息为针对多个传输路径的调度策略信息。可以通过服务器210根据上述多个传输路径,确定目标数据块对应的路径调度策略信息,节省终端220的数据计算量。服务器210将确定的路径调度策略信息返回给终端220,以使终端220可以实时接收服务器210返回的路径调度策略信息。于一实施例中,步骤701具体可以包括:根据多个传输路径中各个传输路径的带宽资源和目标数据块的总数据量,确定传输目标数据块时需要使用的多个目标路径,并为多个目标路径配置对应的数据传输量。
[0194] 在本实施例中,路径调度策略信息包含但不限于:传输目标数据块时需要使用的多个目标路径和各个多个目标路径被配置的数据传输量。如图3所示,以双路径为例,其中WiFi链路为路径1,Cellular链路为路径2,假设目标数据块是视频A中的一个要传输的当前视频块A1,路径1和路径2是传输视频块A1时需要使用的多个目标路径,则路径调度策略信息就是对WiFi链路和Cellular链路的调度策略。路径调度策略信息可以包括WiFi链路和Cellular链路,以及WiFi链路和Cellular链路被配置的数据传输量。如此,路径调度策略信息明确的指示了各个目标路径在传输视频块时的数据分配比例,可以为终端220提供码率判别所依据的条件,促进提高用户体验。
[0195] 于一实施例中,数据传输量可以采用传输量分配比例来表征,可以基于各个目标路径的带宽资源之间的比例,来确定各个目标路径对应的传输量分配比例,以使被调度的多个目标路径能够同时完成一个视频块的传输任务,减少视频卡顿。比如可以通过服务器210中的数据包调度器,将整个视频块的数据包分配至所有路径上,使得所有目标路径同时完成传输,以取得最短传输时间,减少视频卡顿。
[0196] 于一实施例中,以目标路径为双路径为例,假设路径1的带宽资源大于路径2的带宽资源,带宽资源越大表示该路径的传输速率越大,也就是说路径1是快路径,路径2是慢路径。可以采用如下公式计算各个目标路径对应的传输量分配比例:
[0197]
[0198] 其中,α为快路径1的传输量分配比例,Bf为快路径1的带宽,Bs为慢路径2的带宽。对于双路径而言,给定快路径1的传输量分配比例α,数据包调度器可以将视频块前α部分的数据包分配给快路径1,后1‑α部分的数据包分配给慢路径2。
[0199] 步骤702:发送路径调度策略信息至终端220。
[0200] 在本步骤中,为将服务器210的路径调度决策告知客户端,可以使用特定格式的数据包与客户端进行信息传递,比如可以使用MPQUIC的QOE_CONTROL_SIGNALS帧(简称为QoE帧)与客户端进行信息传递。具体而言,服务器210更新本地多路径的带宽信息,并将该信息封装在QoE帧中发送至客户端,QoE帧中可以包括:快路径索引,慢路径索引,快路径带宽,慢路径带宽。以便于终端220及时获取到路径调度策略信息,路径调度策略信息用于指示终端220确定目标数据块对应的码率。
[0201] 于一实施例中,步骤702具体可以包括:在接收到终端发送的对目标数据块的获取通知时,发送路径调度策略信息至终端。
[0202] 在本实施例中,路径调度策略信息的获取流程可以是同步流程,即终端通知服务器一次,服务器相应的返回一次路径调度策略信息,也就是说服务器210接到终端220的获取通知后,将确定的路径调度策略信息返回给终端220,终端220可以实时接收服务器210返回的路径调度策略信息。终端220发来的获取通知用于指示服务器210确定目标数据块对应的路径调度策略信息。以用户观看在线视频场景为例,目标数据块是视频流,用户可以通过终端220建立与服务器210的连接,登录到在线视频服务平台。具体地,用户打开手机上的视频APP,当用户想要观看视频A(即目标数据块),则可以在手机触摸屏上触摸视频A的图标,触摸屏捕获到该触摸操作,即触发对视频A的获取指令。具体地,如果视频A包括按时间顺序排列的多个视频块,则每个视频块可以对应一个获取指令,在相应的视频块播放之前,触发对该视频块的获取指令,或者在该视频块播放过程中触发对下一个视频块的获取指令。也可以依据视频播放时间顺序,到特定时间点自动触发对视频块的获取指令。终端220响应于该获取指令,发送对视频块的获取通知给服务器210,服务器210接收到该获取通知后,再发送路径调度策略信息给终端。
[0203] 于一实施例中,步骤702具体可以包括:以预设周期发送路径调度策略信息至终端。
[0204] 在本实施例中,路径调度策略信息的获取流程可以是异步流程,即服务器以特定的预设周期发送路径调度策略信息给终端,终端根据实际需求采用最新的路径调度策略信息来确定数据流的码率。比如在基于DASH技术的视频点播场景下,服务器可以每隔200ms发送一次最新的调度策略信息给客户端。实际场景可以基于实际需求灵活选择路径调度策略信息的获取流程的实现方式。
[0205] 于一实施例中,可以使用解耦合拥塞控制算法,即每条传输路径运行单独的拥塞控制算法,提高计算效率,或者也可以使用耦合拥塞控制算法,即所有路径运行同一个拥塞控制算法,实际应用中可以基于实际需求灵活选择,本申请实施例中对此不做限制。路径带宽资源为服务器210端的传输层发送速率,可由拥塞控制算法直接给出(如BBR),或由该传输路径的拥塞窗口除以RTT计算得到(如Cubic)。其中服务器210端执行调度决策可以异步于客户端预测吞吐量,但可以基于相同的信息和计算方式。
[0206] 步骤703:在接收到终端220发送的针对目标数据块的数据请求时,根据传输路径调度策略信息和确定的码率,发送目标数据块至终端220。
[0207] 在本步骤中,终端220确定了目标数据块对应的码率后,可以向服务器210发送对目标数据块的数据请求,数据请求携带有目标数据块对应的码率,服务器210接收到该数据请求时,可以根据确定的码率和路径调度策略信息发送对应的目标数据块,发送的目标数据块符合终端220确定的码率。
[0208] 于一实施例中,步骤703具体可以包括:接收终端220发送的针对目标数据块的数据请求,数据请求中携带有目标数据块对应的第一目标码率。根据目标数据块的总数据量、第一目标码率和对应的多个目标路径被配置的数据传输量,为各个目标路径分配数据包。根据数据包分配结果,通过多个目标路径发送目标数据块至终端220。
[0209] 在本实施例中,假设一个大的数据流包括多个数据块,多个数据块可以按照时间先后顺序排列。在该大数据流传输过程中,终端220可以一次请求其中的一个数据块,该数据块通过多个路径传输,可以提高数据传输效率,则当前要传输的数据块就是目标数据块。以视频流场景为例,视频流包括多个视频块,多个视频块可以按照播放顺序排列,目标数据块可以是其中一个要传输的当前视频块。终端可以按照视频块播放的时间先后顺序,发送对当前视频块的数据请求至服务器210,数据请求中携带有该当前视频块对应的第一目标码率,则服务器210可以接收当前视频块对应的数据请求,并根据当前视频块的总数据量、第一目标码率和对应的多个目标路径被配置的数据传输量,为各个目标路径分配数据包,并按照当前视频块对应的时间先后顺序,通过分配好的多路径发送对应的当前视频块给终端220,以使终端220接收服务器210返回的当前视频块进行播放,保证视频流按照顺序播放。
[0210] 上述数据传输方法,通过基于服务器210的多路径调度策略和传输路径的带宽资源确定目标数据块的码率,以确定的码率向服务器210请求目标数据块,如此,由于确定码率的时候考虑到了多路径调度策略,因此降低了多路径调度对于数据流吞吐量采样的不良影响,从而减少数据流吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。
[0211] 请参看图8,其为本申请一实施例的数据传输方法,该方法可由图1所示的电子设备1来执行,并可以应用于图2至图4所示的数据流传输系统的应用场景中,以实现多路径调度与数据流码率的协同优化,降低多路径调度对于目标数据块吞吐量采样的不良影响,从而减少吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。本实施例以服务器210为执行端,以同步流程获取路径调度策略信息为例,与前述实施例相比,本实施例了还包括细粒度矫正方案,该方法包括如下步骤:
[0212] 步骤801:接收终端220发送的对目标数据块的获取通知。详细参阅上述实施例中对步骤702的相关描述。
[0213] 步骤802:根据终端220与服务器210之间的多个传输路径,确定目标数据块对应的路径调度策略信息。详细参阅上述实施例中对步骤701的相关描述。
[0214] 步骤803:发送路径调度策略信息至终端220。详细参阅上述实施例中对步骤702的相关描述。
[0215] 步骤804:接收终端220发送的针对目标数据块的数据请求,数据请求中携带有目标数据块对应的第一目标码率。详细参阅上述实施例中对步骤703的相关描述。
[0216] 步骤805:根据目标数据块的总数据量、第一目标码率和对应的多个目标路径被配置的数据传输量,为各个目标路径分配数据包。详细参阅上述实施例中对步骤703的相关描述。
[0217] 步骤806:根据数据包分配结果,通过多个目标路径发送目标数据块至终端220。详细参阅上述实施例中对步骤703的相关描述。
[0218] 步骤807:监测目标数据块对应的多个传输路径的当前传输状态。
[0219] 在本步骤中,假设目标数据块是要传输的一个视频块,在视频块传输开始后,即可进入细粒度矫正阶段,服务器210会监测多个传输路径的当前传输状态,当前传输状态可以包括各个传输路径的可用状态、带宽资源变化信息等。
[0220] 步骤808:当根据当前传输状态确定多个传输路径无法同时完成针对目标数据块的传输任务时,获取目标数据块已经分配路径且未发送的待处理数据包和多个传输路径的当前带宽资源。
[0221] 在本步骤中,在网络环境发生变化时,服务器210需要更新调度策略,以保证网络环境变化的情况下视频流也能顺利传输。具体场景中,重调度策略可以发生在一个视频块传输的过程中,且在一个视频块传输过程中可能会发生多次。服务器210如果监测到多个传输路径无法同时完成针对目标数据块的传输任务,比如在双路径传输一个视频块的过程中,发现一条路径先于另一条路径完成发送(具体情况可以为,一条路径有剩余可用发送窗口且无未发送数据包,另一条路径无剩余窗口且存在未发送数据包),此时表明当前传输状态下,可以预见双路径无法同时完成针对该视频块的传输任务,此时服务器210获取该视频块已经分配路径且未发送的待处理数据包和多个传输路径的当前带宽资源,以便于重新确定调度策略,及时应对网络环境变化。
[0222] 步骤809:根据当前带宽资源和待处理数据包,更新针对多个传输路径的调度策略信息,得到更新后调度策略信息。
[0223] 在本步骤中,当网络环境变化后,各个传输路径的带宽资源发生变化,原本的调度策略已无法适用新的路径环境,为了降低网络资源变化给数据传输过程带来不良影响,针对正在传输的当前视频块,服务器210可以根据各个传输路径当前带宽资源和未发送的待处理数据包,重新进行路径调度,更新针对多个传输路径的调度策略信息,得到更新后调度策略信息。
[0224] 于一实施例中,步骤809具体可以包括:根据当前带宽资源和目标数据块中未传输的待处理数据包的总量,重新为待处理数据包对应的多个目标路径配置更新后数据传输量,更新后调度策略信息包括:各个待处理数据包需要使用的多个目标路径和各个目标路径被配置的更新后数据传输量。
[0225] 在本实施例中,数据传输量可以采用传输量分配比例来表征,以前述目标路径为双路径的场景为例,假设网络环境变化后,路径1的带宽资源小于路径2的带宽资源,带宽资源越大表示该路径的传输速率越大,也就是说此时路径2是快路径,路径1是慢路径。可以采用如下公式计算各个目标路径对应的更新后传输量分配比例:
[0226]
[0227] 其中,此时,α为快路径的更新后传输量分配比例,Bf为快路径的当前带宽,Bs为慢路径的当前带宽,Su表示当前数据块的未传输数据包总字节数,clip[x, 0, 1]表示将x限界至[0, 1]内。RTTf表示快路径的RTT,RTTs表示慢路径的RTT。重调度阶段路径存在inflight(飞行中,指已发送但未被确认的)数据包,因此需要考虑路径的往返时延RTT,当高带宽路径RTT(即RTTf)过长或未发送数据量(即Su)过少时,双路径可能无法同时完成传输,此时需要执行重注入以加速传输。
[0228] 于一实施例中,服务器210的重调度控制器,其主要功能为回收已分配至路径但未发送的数据包,根据最新的网络环境重新做出调度决策,以在动态网络环境下实现多路径同时完成传输。
[0229] 于一实施例中,在步骤809之后,还可以包括:发送更新后调度策略信息至终端220。接收终端发送的针对下一个数据块的更新后数据请求,更新后数据请求携带有下一个数据块对应的第二目标码率。根据更新后路径调度策略信息、第二目标码率,发送未传输的数据块下一个数据块至终端。
[0230] 在本实施例中,更新后调度策略信息用于指示终端确定下一个数据块对应的第二目标码率,下一个数据块排在目标数据块之后。为将更新后调度决策告知客户端,服务器210可以使用特定格式的数据包向终端进行信息传递,比如可以使用MPQUIC的QOE_CONTROL_SIGNALS帧(简称为QoE帧)向终端进行信息传递。具体而言,服务器210可以按照前述的同步流程或者异步流程将更新后调度策略信息封装在QoE帧中发送至客户端,QoE帧中可以包括:快路径索引,慢路径索引,快路径带宽,慢路径带宽。以便于终端220及时获取到最新的路径调度策略信息,并基于更新后调度策略信息确定下一个数据块对应的第二目标码率。
[0231] 本实施例的原理与前述实施例中对目标数据块的传输原理相同,具体可以参阅前述实施例的相关描述。
[0232] 步骤810:根据更新后路径调度策略信息、第一目标码率,发送待处理数据包至终端220。
[0233] 在本步骤中,服务器210可以通过重注入控制器实现数据重传,重注入控制器的主要功能为将一条路径上的inflight数据包在其他路径上进行重传。对于多路径而言,重注入控制器可以选择除原路径以外的最短RTT路径作为重注入路径,在其拥塞窗口允许的情况下发送原路径的inflight数据包,比如可以在传输的最后一个RTT,使用重注入加速传输,提高数据传输效率。
[0234] 在DASH技术中,一个视频流包括多个视频块,对每个视频块进行一次独立的码率决策,因此前述粗粒度决策和细粒度矫正的作用周期可以以每个视频块作为基本单位。当服务器检测到网络环境变化,确定更新后路径调度策略信息后,对于正在传输的当前视频块,如果还有未传输的待处理数据包,则这些未传输的待处理数据包依据更新后路径调度策略信息进行重调度传输,保证当前视频块传输的连贯性。
[0235] 于一实施例中,在视频块传输开始后,服务器210端立即进入细粒度矫正阶段,以前述双路径传输为例,该阶段的逻辑可以如下:
[0236] 若在传输过程中,一条路径先于另一条路径完成发送,比如一条路径有剩余可用发送窗口且无未发送数据包,另一条路径无剩余窗口且存在未发送数据包,则表明网络环境已经发送变化,此时通过重调度来为未发送数据包作重新分配。可以在传输的最后一个RTT,使用重注入加速传输具体重注入加速传输。
[0237] 上述数据传输方法,至少具备如下有益效果:
[0238] 1.跨层协同优化:本申请实施例通过预先确定多路径调度决策,以消除数据包调度对于视频块吞吐量的影响,从而减少预测不确定性,帮助取得更优的多路径视频块吞吐量预测以及更优的码率决策,直接协助ABR算法取得更优的QoE性能。
[0239] 2.粗粒度决策与细粒度矫正:在传输层执行视频块级别的粗粒度调度决策后,若网络环境发生变化,本发明利用其细粒度特性,通过重调度和重注入对先前的一次性决策进行矫正,以在动态网络环境下优化传输性能。
[0240] 请参看图9,其为本申请一实施例的数据传输方法的信令交互流程示意图,该方法可以由图2至图4所示的数据流传输系统中的服务器210和终端220交互执行,以实现多路径调度与数据流码率的协同优化,降低多路径调度对于目标数据块吞吐量采样的不良影响,从而减少吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。该方法以同步流程传递路径调度策略信息为例,包括如下步骤:
[0241] 步骤901:终端220响应于对目标数据块的获取指令,发送目标数据块的获取通知至服务器210。
[0242] 步骤902:服务器210接收终端220发送的对目标数据块的获取通知,并根据终端220与服务器210之间的多个传输路径,确定目标数据块对应的路径调度策略信息。
[0243] 步骤903:服务器210发送路径调度策略信息至终端220。
[0244] 步骤904:终端220接收服务器210返回的目标数据块对应的路径调度策略信息,根据路径调度策略信息和多个传输路径的带宽资源,确定目标数据块对应的码率。
[0245] 步骤905:终端220根据确定的码率向服务器210请求目标数据块。
[0246] 步骤906:服务器210在接收到终端220发送的针对目标数据块的数据请求时,根据传输路径调度策略信息和目标数据块对应的码率,为多个传输路径分配数据包,其中,数据请求携带有目标数据块对应的码率。
[0247] 步骤907:服务器210通过多个传输路径发送目标数据块的各个数据包至终端220。
[0248] 步骤908:服务器210监测目标数据块对应的多个传输路径的当前传输状态,当根据当前传输状态确定多个传输路径无法同时完成针对目标数据块的传输任务时,获取目标数据块已经分配路径但未发送的待处理数据包和多个传输路径的当前带宽资源。根据当前带宽资源和待处理数据包,更新针对多个传输路径的调度策略信息,得到更新后调度策略信息。并根据更新后路径调度策略信息、第一目标码率,发送待处理数据包至终端220。
[0249] 于一实施例中,在步骤908中服务器210更新了调度策略信息后,还可以包括:
[0250] 步骤909:服务器210发送更新后调度策略信息至终端220,更新后调度策略信息用于指示终端220确定下一个数据块对应的第二目标码率。
[0251] 步骤910:终端220接收服务器210发送的针对多个传输路径的更新后调度策略信息。根据更新后调度策略信息和多个传输路径的当前带宽资源,确定下一个数据块对应的第二目标码率。
[0252] 步骤911:终端220根据第二目标码率向服务器210请求下一个数据块。
[0253] 步骤912:服务器210接收终端220发送的针对下一个数据块的更新后数据请求,更新后数据请求携带有下一个数据块对应的第二目标码率。
[0254] 步骤913:根据更新后路径调度策略信息、第二目标码率,发送下一个数据块至终端220。
[0255] 上述步骤的具体内容请参见前述实施例中相关方法步骤的描述,其实现原理和技术效果类似,此处不再赘述。
[0256] 请参看图10,其为本申请一实施例的数据传输装置1000,该装置可以应用于图1所示的电子设备1,并可以应用于图2至图4所示的数据流传输系统的中的终端220,以实现多路径调度与数据流码率的协同优化,降低多路径调度对于目标数据块吞吐量采样的不良影响,从而减少吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。该装置包括:获取模块1001、第一确定模块1002和第一请求模块1003,各个模块的功能原理如下:
[0257] 获取模块1001,用于获取服务器确定的目标数据块对应的路径调度策略信息,其中,终端与服务器之间包括多个传输路径,路径调度策略信息为针对多个传输路径的调度策略信息;
[0258] 第一确定模块1002,用于根据路径调度策略信息和多个传输路径的带宽资源,确定目标数据块对应的码率;
[0259] 第一请求模块1003,用于根据确定的码率向服务器请求目标数据块。
[0260] 于一实施例中,获取模块1001,用于响应于对目标数据块的获取指令,发送目标数据块的获取通知至服务器,获取通知用于指示服务器确定目标数据块对应的路径调度策略信息;接收服务器返回的目标数据块对应的路径调度策略信息。
[0261] 于一实施例中,获取模块1001,用于接收服务器以预设周期发送的路径调度策略信息。
[0262] 于一实施例中,第一确定模块1002,用于根据路径调度策略信息和多个传输路径的带宽资源,确定多个传输路径对目标数据块的第一吞吐量;根据第一吞吐量,确定目标数据块对应的第一目标码率。
[0263] 于一实施例中,路径调度策略信息包括:传输目标数据块时需要使用的多个目标路径和各个多个目标路径被配置的数据传输量;第一确定模块1002,用于根据多个目标路径的带宽资源和各个多个目标路径被配置的数据传输量,确定多个目标路径对目标数据块的第一吞吐量。
[0264] 于一实施例中,第一请求模块1003,用于根据目标数据块对应的第一目标码率发送对应的数据请求至服务器;接收服务器基于第一目标码率返回的目标数据块。
[0265] 于一实施例中,还包括:第一接收模块,用于在根据路径调度策略信息和多个传输路径的带宽资源,确定目标数据块对应的码率之后,接收服务器发送的针对多个传输路径的更新后调度策略信息;第二确定模块,用于根据更新后调度策略信息和多个传输路径的当前带宽资源,确定下一个数据块对应的第二目标码率,下一个数据块排在目标数据块之后;第二请求模块,用于根据第二目标码率向服务器请求下一个数据块。
[0266] 于一实施例中,第二确定模块,用于在已缓存数据块的总数据量小于预设阈值时,根据更新后调度策略信息和多个传输路径的当前带宽资源,确定下一个数据块对应的第二目标码率。
[0267] 于一实施例中,第二确定模块,用于根据更新后调度策略信息和多个传输路径的当前带宽资源,确定多个传输路径对下一个数据块的第二吞吐量;根据第二吞吐量,确定下一个数据块对应的第二目标码率。
[0268] 于一实施例中,目标数据块为待传输视频流中的视频块。
[0269] 上述数据传输装置1000的详细描述,请参见上述实施例中相关方法步骤的描述,其实现原理和技术效果类似,本实施例此处不再赘述。
[0270] 请参看图11,其为本申请一实施例的数据传输装置1100,该装置可以应用于图1所示的电子设备1,并可以应用于图2至图4所示的数据流传输系统的中的服务器210,以实现多路径调度与数据流码率的协同优化,降低多路径调度对于目标数据块吞吐量采样的不良影响,从而减少吞吐量预测的不确定性,提升多路径数据流码率决策效果,进而取得更优的QoE性能。该装置包括:第二确定模块1101、第一发送模块1102和第二发送模块1103,各个模块的功能原理如下:
[0271] 第三确定模块,用于根据终端与服务器之间的多个传输路径,确定目标数据块对应的路径调度策略信息;
[0272] 第一发送模块1102,用于发送路径调度策略信息至终端,路径调度策略信息用于指示终端确定目标数据块对应的码率;
[0273] 第二发送模块1103,用于在接收到终端发送的针对目标数据块的数据请求时,根据传输路径调度策略信息和目标数据块对应的码率,发送目标数据块至终端,其中,数据请求携带有目标数据块对应的码率。
[0274] 于一实施例中,第三确定模块,用于根据多个传输路径中各个传输路径的带宽资源和目标数据块的总数据量,确定传输目标数据块时需要使用的多个目标路径,并为多个目标路径配置对应的数据传输量,路径调度策略信息包括:传输目标数据块时需要使用的多个目标路径和各个目标路径被配置的数据传输量。
[0275] 于一实施例中,第一发送模块1102,用于在接收到终端发送的对目标数据块的获取通知时,发送路径调度策略信息至终端。
[0276] 于一实施例中,第一发送模块1102,用于以预设周期发送路径调度策略信息至终端。
[0277] 于一实施例中,第二发送模块1103,用于接收终端发送的针对目标数据块的数据请求,数据请求中携带有目标数据块对应的第一目标码率;根据目标数据块的总数据量、第一目标码率和对应的多个目标路径被配置的数据传输量,为各个目标路径分配数据包;根据数据包分配结果,通过多个目标路径发送目标数据块至终端。
[0278] 于一实施例中,第二发送模块1103,还用于监测目标数据块对应的多个传输路径的当前传输状态;当根据当前传输状态确定多个传输路径无法同时完成针对目标数据块的传输任务时,获取目标数据块已经分配路径且未发送的待处理数据包和多个传输路径的当前带宽资源;根据当前带宽资源和待处理数据包,更新针对多个传输路径的调度策略信息,得到更新后调度策略信息;根据更新后调度策略信息和第一目标码率,发送待处理数据包至终端。
[0279] 于一实施例中,根据当前带宽资源和待处理数据包,更新针对多个传输路径的调度策略信息,得到更新后调度策略信息,包括:根据当前带宽资源和待处理数据包的数据总量,重新为待处理数据包对应的多个目标路径配置更新后数据传输量,更新后调度策略信息包括:各个待处理数据包需要使用的多个目标路径和各个目标路径被配置的更新后数据传输量。
[0280] 于一实施例中,还包括:第三发送模块,用于在根据当前带宽资源和待处理数据包,更新针对多个传输路径的调度策略信息,得到更新后调度策略信息之后,发送更新后调度策略信息至终端,更新后调度策略信息用于指示终端确定下一个数据块对应的第二目标码率,下一个数据块排在目标数据块之后;第二接模块,用于收接收终端发送的针对下一个数据块的更新后数据请求,更新后数据请求携带有下一个数据块对应的第二目标码率;第四发送模块,用于根据更新后路径调度策略信息、第二目标码率,发送下一个数据块至终端。
[0281] 于一实施例中,目标数据块为待传输视频流中的视频块。
[0282] 上述数据传输装置1100的详细描述,请参见上述实施例中相关方法步骤的描述,其实现原理和技术效果类似,本实施例此处不再赘述。
[0283] 本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现前述任一实施例的方法。
[0284] 本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一实施例的方法。
[0285] 在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0286] 上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器210,或者网络设备等)或处理器执行本申请各个实施例方法的部分步骤。
[0287] 应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
[0288] 上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0289] 一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
[0290] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0291] 上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0292] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端220设备(可以是手机,计算机,服务器210,空调器,或者网络设备等)执行本申请各个实施例的方法。
[0293] 本申请的技术方案中,所涉及的用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0294] 以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。