System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及视频通信,特别涉及一种基于多路径的数据包调度方法、装置、设备及介质。
技术介绍
1、自适应视频流是一种流媒体的自适应比特率选择技术,该技术会将视频流内容分解成一系列小型的基于超文本传输协议(http,hypertext transfer protocol)的文件片段,每个片段包含很短长度的可播放视频,视频将被制成多种比特率的备选片段,以提供多种比特率的版本供选用。当视频被客户端播放时,客户端将根据当前网络条件自动选择下载和播放哪一种比特率。自适应视频流技术可以适应不断变化的网络条件并提供高质量的播放体验,提供更少的卡顿与重新缓冲发生率。但是,由于网络较差、波动较大等固有问题,使得用户无法享受高质量视频服务。因此,多路径视频流技术应运而生,多路径技术极使用多个路径来最大化信道资源使用。由于现在的移动设备往往存在多个网络接口,例如wifi和5g,因此可以使用多路径协议例如多路传输控制协议(mptcp,multipath transmissioncontrol protocol)或者快速用户数据报协议互联网合约(quic,quick user datagramprotocol internet connections)建立多个子通道,进行数据的收发。
2、虽然多路径聚合多条链路带宽,为提供高质量视频服务带来可能。但多路径视频流现阶段还未普及,主要原因是数据调度问题带来的头部阻塞问题,导致序列号靠后的数据包先到达接收端,此时必须等待前序数据包到达,才可以向上层转发。因此头部阻塞问题受到广泛关注,并提出了很多新颖的调
3、影响用户体验的两个最关键的因素为卡顿和平均码率,当播放缓冲区长度为空的时候,卡顿对应发生。现有的多路径算法存在多方面的缺陷:第一,传输层的调度算法缺少应用层信息,跨层调度难以保证用户体验,第二,缺乏卡顿监控和及时的重传策略,第三,缺乏链路状态检测,容易导致链路数据包数量高于承载范围,引发拥塞丢包,从而造成视频播放质量低。
技术实现思路
1、本申请提供了一种基于多路径的数据包调度方法、装置、设备及介质,可以解决视频播放质量低的问题。
2、第一方面,本申请实施例提供了一种基于多路径的数据包调度方法,应用于视频播放服务端,该数据包调度方法包括:
3、接收视频播放客户端发送的数据响应消息;数据响应消息中携带有播放缓冲区信息,播放缓冲区信息用于描述视频播放客户端的当前播放视频是否存在卡顿风险;
4、若播放缓冲区信息指示视频播放客户端的当前播放视频存在卡顿风险,则根据播放缓冲区信息将未接收到数据确认消息的多个数据包作为重传数据包,并将所有重传数据包重新发送到视频播放客户端;数据确认消息为视频播放客户端接收到数据包后,若数据包满足播放条件则向视频播放服务端发送的确认消息,播放条件为数据包所属的子流按照子流的序列号顺序对数据包进行传输、且数据包被子流传输时按照数据包的序列号顺序到达视频播放客户端,子流为视频播放服务端向视频播放客户端传输数据包的链路,且视频播放服务端与视频播放客户端之间具有多个子流;
5、若播放缓冲区信息指示视频播放客户端的当前视频播放不存在卡顿风险,则分别基于每个子流传输数据包时的最大往返时延和最小往返时延获取子流的拥塞状态系数和子流中数据包到达视频播放客户端的到达时间,并根据所有子流的拥塞状态系数和到达时间从多个子流中选择目标子流,利用目标子流进行数据包调度;拥塞状态系数用于描述子流的拥塞状态。
6、可选的,播放缓冲区信息为重传数据包的数量n;
7、根据播放缓冲区信息将未接收到数据确认消息的多个数据包作为重传数据包,包括:
8、按照所有未接收到数据确认消息的数据包的序列号,由小到大依次选中n个数据包并将每个被选中的数据包作为重传数据包;
9、将所有重传数据包重新发送到视频播放客户端,包括:
10、将所有子流中存在空闲发送窗口、且往返时延小于其他所有子流的往返时延的子流作为一条重传子流;
11、判断重传子流的数量是否大于等于重传子流预设数量;
12、若是,则利用所有重传子流将所有重传数据包重新按序发送到视频播放客户端;
13、否则,从重传子流以外的其他所有子流中选取存在空闲发送窗口、且往返时延小于其他所有子流的往返时延的子流作为一条重传子流,并返回判断重传子流的数量是否大于等于重传子流预设数量的步骤。
14、可选的,分别基于每个子流传输数据包时的最大往返时延和最小往返时延获取子流的拥塞状态系数和子流中的数据包到达视频播放客户端的到达时间,包括:
15、分别针对每个子流,执行以下步骤:
16、将子流在多个时刻传输数据包时最大排队时延对应的往返时延作为最大往返时延,并将最小排队时延对应的往返时延作为最小往返时延;最大排队时延大于排队时延预设上限值,最小排队时延小于排队时延预设下限值;
17、基于子流在多个时刻传输数据包时的往返时延,获取子流的累积往返时延变化量;
18、基于子流的最大往返时延、最小往返时延和累积往返时延变化量,得到子流的拥塞状态系数;
19、根据子流的拥塞状态系数得到子流中的数据包到达视频播放客户端的到达时间。
20、可选的,基于子流在多个时刻的往返时延,获取子流的累积往返时延变化量,包括:
21、通过公式:
22、
23、计算第i个子流的累积往返时延变化量xi;
24、其中,表示在第t个时刻第i个子流的往返时延,表示在第t-1个时刻第i个子流的往返时延,t=1,2,...,t,t表示当前时刻;
25、基于子流的最大往返时延、最小往返时延和累积往返时延变化量,得到子流的拥塞状态系数,包括:
26、通过公式:
27、
28、计算第i个子流的拥塞状态系数f(xi);
29、其中,max_rtti表示第i个子流的最大往返时延,min_rtti表示第i个子流的最小往返时延,α表示拥塞控制上限,β表示控制系数;
30、根据子流的拥塞状态系数得到子流中的数据包到达视频播放客户端的到达时间,包括:
31、通过公式:
32、
33、计算第i个子流的到达时间ati;
34、其中,bufferi表示第i个子流中等待传输的数据包的大本文档来自技高网...
【技术保护点】
1.一种基于多路径的数据包调度方法,其特征在于,应用于视频播放服务端,所述数据包调度方法包括:
2.根据权利要求1所述的数据包调度方法,其特征在于,所述播放缓冲区信息为重传数据包的数量n;
3.根据权利要求1所述的数据包调度方法,其特征在于,所述分别基于每个子流传输数据包时的最大往返时延和最小往返时延获取所述子流的拥塞状态系数和所述子流中的数据包到达所述视频播放客户端的到达时间,包括:
4.根据权利要求3所述的数据包调度方法,其特征在于,所述基于所述子流在多个时刻的往返时延,获取所述子流的累积往返时延变化量,包括:
5.根据权利要求1所述的数据包调度方法,其特征在于,所述根据所有子流的拥塞状态系数和到达时间选择目标子流,包括:
6.一种基于多路径的数据包调度方法,其特征在于,应用于视频播放客户端,所述数据包调度方法包括:
7.根据权利要求6所述的数据包调度方法,其特征在于,所述播放缓冲区信息为重传数据包的数量n;
8.根据权利要求7所述的数据包调度方法,其特征在于,所述根据当前所述播放缓冲区的时长
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的基于多路径的数据包调度方法,或者实现如权利要求6至8任一项所述的基于多路径的数据包调度方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的基于多路径的数据包调度方法,或者实现如权利要求6至8任一项所述的基于多路径的数据包调度方法。
...【技术特征摘要】
1.一种基于多路径的数据包调度方法,其特征在于,应用于视频播放服务端,所述数据包调度方法包括:
2.根据权利要求1所述的数据包调度方法,其特征在于,所述播放缓冲区信息为重传数据包的数量n;
3.根据权利要求1所述的数据包调度方法,其特征在于,所述分别基于每个子流传输数据包时的最大往返时延和最小往返时延获取所述子流的拥塞状态系数和所述子流中的数据包到达所述视频播放客户端的到达时间,包括:
4.根据权利要求3所述的数据包调度方法,其特征在于,所述基于所述子流在多个时刻的往返时延,获取所述子流的累积往返时延变化量,包括:
5.根据权利要求1所述的数据包调度方法,其特征在于,所述根据所有子流的拥塞状态系数和到达时间选择目标子流,包括:
6.一种基于多路径的数据包调度方法,其特征在于,应用于视频播放客户端,所述数据包调度方法包括:...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。