一种降低视频网络播放卡顿率的方法及装置转让专利

申请号 : CN201710283619.1

文献号 : CN107426615B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨伟邱模炯曾福振

申请人 : 优刻得科技股份有限公司

摘要 :

本发明涉及一种降低视频网络播放卡顿率的方法及装置。装置包括预测单元、比较单元和重传单元。方法包括以下步骤:根据当前网络的平滑RTT和重传率来判断当前网络状况,主动预测数据包的丢包概率;将所述数据包的丢包概率与阈值进行比较;当数据包丢包的概率大于阈值时,重传数据包。本发明能够主动预测网络状况,主动地触发重传机制,降低网络播放卡顿率。

权利要求 :

1.一种降低视频网络播放卡顿率的方法,其特征在于,包括:

根据当前网络状况周期性预测数据包的丢包概率,其中,所述当前网络状况通过当前网络的平滑传输往返时间和重传率来判断;

将所述数据包的丢包概率与第一阈值进行比较;

当所述数据包的丢包概率大于所述第一阈值时,重传所述数据包;

当所述丢包概率小于所述第一阈值时,不进行重传;

其中,所述丢包概率用重传系数B来表征,所述重传系数B=α*平滑传输往返时间变化率+β*重传率,其中,平滑传输往返时间变化率反映单位时间内平滑传输往返时间抖动变化,重传率=(α*C1+β*C2)/C0,其中,C1为快速重传和早期重传引发的重传的个数,C2为重传超时时间超时引发的重传的个数,C0为总重传的个数,α和β为预先设定的系数。

2.根据权利要求1所述的降低视频网络播放卡顿率的方法,其特征在于,当所述重传系数B大于所述第一阈值时,根据所述重传系数B确定重传数据包个数和每个数据包传输的次数,以根据所述重传数据包个数和每个数据包传输的次数控制重传数据包。

3.根据权利要求2所述的降低视频网络播放卡顿率的方法,其特征在于,进一步包括:当所述重传系数B大于所述第一阈值并小于或等于第二阈值时,根据所述重传系数B确定重传数据包个数和每个数据包传输的次数,以根据所述重传数据包个数和每个数据包传输的次数控制重传数据包;

当所述重传系数B大于所述第二阈值时,不进行重传。

4.一种降低视频网络播放卡顿率的装置,其特征在于,包括:

预测单元,所述预测单元根据当前网络状况周期性预测数据包的丢包概率,其中,所述当前网络状况通过当前网络的平滑传输往返时间和重传率来判断,所述丢包概率用重传系数B来表征;所述重传系数B=α*平滑传输往返时间变化率+β*重传率,其中,平滑传输往返时间变化率反映单位时间内平滑传输往返时间抖动变化,重传率=(α*C1+β*C2)/C0,其中,C1为快速重传和早期重传引发的重传的个数,C2为重传超时时间超时引发的重传的个数,C0为总重传的个数,α和β为预先设定的系数;

比较单元,所述比较单元将所述数据包的丢包概率与第一阈值进行比较;

重传单元,当所述数据包丢包的概率大于所述第一阈值时,所述重传单元重传所述数据包。

5.根据权利要求4所述的降低视频网络播放卡顿率的装置,其特征在于,当所述重传系数B大于所述第一阈值时,根据所述重传系数B确定重传数据包个数和每个数据包传输的次数,以根据所述重传数据包个数和每个数据包传输的次数控制重传数据包。

6.根据权利要求5所述的降低视频网络播放卡顿率的装置,其特征在于,进一步包括:当所述重传系数B大于所述第一阈值并小于或等于第二阈值时,根据所述重传系数B确定重传数据包个数和每个数据包传输的次数,以根据所述重传数据包个数和每个数据包传输的次数控制重传数据包;

当所述重传系数B大于所述第二阈值时,不进行重传。

说明书 :

一种降低视频网络播放卡顿率的方法及装置

技术领域

[0001] 本发明涉及一种降低视频网络播放卡顿率的方法及装置,属于计算机网络领域。

背景技术

[0002] 重传是TCP(Transmission Control Protocol)协议保证数据可靠性的一个重要机制,TCP协议要求在发送端每发送一个报文段,就启动一个定时器并等待确认信息;接收端成功接收新数据后返回确认信息。若在定时器超时前数据未能被确认,TCP就认为报文段中的数据已丢失或损坏,需要对报文段中的数据重新组织和重传。
[0003] TCP协议用于控制数据段是否需要重传的依据是设立重发定时器。在发送一个数据段的同时启动一个重传,如果在重传超时前收到确认(ACK,Acknowlegement)就关闭该重传,如果重传超时前没有收到确认,则重传该数据段。在选择重发时间的过程中,TCP必须具有自适应性。它需要根据互联网当时的通信情况,给出合适的重发时间。
[0004] 随着移动视频直播和点播等业务的兴起,对内容分发网络(CDN,Content Delivery Network)的传输性能也提出了更高的要求,CDN业务使用TCP作为传输协议,在遇到丢包情况时,TCP必须等待重传超时时间(RTO,Retransmission TimeOut)超时才能重传,这使得视频接收端接收到有效数据包的时间延长,视频直播的卡顿率也随之增高。
[0005] 为了避免必须等待到RTO才进行超时重传,当前TCP协议栈存在的两个算法如下:
[0006] 1.快速重传(FR,Fast Retransmit)算法,快速重传是数据丢包的情况下给出的一种修补机制。一般来说,重传发生在超时之后,但是如果发送端接受到3个以上的重复ACK,即表示数据丢失,需要重新传递。这种机制不需要等到重传定时器溢出可以避免发送端因等待重传计时器的超时而空闲较长时间,以此增加网络吞吐量。
[0007] 2.早期重传(ER,Early Retransmit)算法,早期重传是一种对快速重传算法的改进,当一个ACK到达后,发送端判断下面两个条件:
[0008] (1)发出去但是还未收到ACK确认的TCP报文个数是否小于4;
[0009] (2)是否不存在未发送的数据或者接收窗口不允许新的段被发送。
[0010] 当满足两个条件情况激活Early Retransmit,该算法也在一定程度弥补了在发送端无法收到3个连续的dup ACK的情况,仍然能保证尽早重传。
[0011] 然而,当前的技术方案对于直播等需要进行快速数据传输的业务,存在卡顿率较高的问题。

发明内容

[0012] 为解决上述问题,本发明提出一种降低视频直播卡顿率的方法及装置,主动预测网络状况,主动地触发重传机制,从而降低直播业务卡顿率。
[0013] 根据本发明的一个方面,提供了一种降低视频网络播放卡顿率的方法,包括:
[0014] 根据当前网络状况周期性预测数据包的丢包概率;
[0015] 将数据包的丢包概率与第一阈值进行比较;
[0016] 当数据包的丢包概率大于第一阈值时,重传数据包;
[0017] 当丢包概率小于第一阈值时,不进行重传。
[0018] 进一步地,当前网络状况通过当前网络的平滑RTT和重传率来判断。
[0019] 进一步地,根据当前网络状况周期性预测数据包的丢包概率,包括:
[0020] 基于平滑RTT和重传率周期性计算重传系数B,其中,重传系数B用于表征丢包概率:
[0021] 重传系数B=α*平滑RTT变化率+β*重传率;
[0022] 其中,平滑RTT变化率反映单位时间内平滑RTT抖动变化;
[0023] 重传率=(α*C1+β*C2)/C0,
[0024] 其中,C1为FR和ER引发的重传的个数,
[0025] C2为RTO超时引发的重传的个数,
[0026] C0为总重传的个数,
[0027] α和β为预先设定的系数。
[0028] 进一步地,当重传系数B大于第一阈值时,根据重传系数B确定重传数据包个数和每个数据包传输的次数,以根据重传数据包个数和每个数据包传输的次数控制重传数据包。
[0029] 进一步地,当重传系数B大于第一阈值时,重传数据包,包括:
[0030] 当重传系数B大于第一阈值并小于或等于第二阈值时,根据重传系数B确定重传数据包个数和每个数据包传输的次数,以根据重传数据包个数和每个数据包传输的次数控制重传数据包;
[0031] 当重传系数B大于第二阈值时,不进行重传。
[0032] 根据本发明的另一个方面,提供了一种降低视频直播卡顿率的装置,包括:
[0033] 预测单元,预测单元根据当前网络状况周期性预测数据包的丢包概率;
[0034] 比较单元,比较单元将数据包的丢包概率与第一阈值进行比较;
[0035] 重传单元,当数据包丢包的概率大于第一阈值时,重传单元重传数据包。
[0036] 进一步地,预测单元通过当前网络的平滑RTT和重传率来判断当前网络状况。
[0037] 进一步地,根据当前网络状况周期性预测数据包的丢包概率,包括:
[0038] 基于平滑RTT和重传率周期性计算重传系数B,其中,重传系数B用于表征丢包概率:
[0039] 重传系数B=α*平滑RTT变化率+β*重传率
[0040] 其中,平滑RTT变化率反映单位时间内平滑RTT抖动变化;
[0041] 重传率=(α*C1+β*C2)/C0,
[0042] 其中,C1为FR和ER引发的重传的个数,
[0043] C2为RTO超时引发的重传的个数,
[0044] C0为总重传的个数,
[0045] α和β为预先设定的系数。
[0046] 进一步地,当重传系数B大于第一阈值时,根据重传系数B确定重传数据包个数和每个数据包传输的次数,以根据重传数据包个数和每个数据包传输的次数控制重传数据包。
[0047] 进一步地,当重传系数B大于第一阈值时,重传数据包,包括:
[0048] 当重传系数B大于第一阈值并小于或等于第二阈值时,根据重传系数B确定重传数据包个数和每个数据包传输的次数,以根据重传数据包个数和每个数据包传输的次数控制重传数据包;
[0049] 当重传系数B大于第二阈值时,不进行重传。
[0050] 根据本发明的另一个方面,提供了一种降低视频直播卡顿率的系统,包括发送端和接收端,其中发送端包括前述的装置。
[0051] 根据本发明的另一个方面,提供了一种非易失性存储介质,在存储介质上存储有指令,该指令被计算机执行以实施前述降低视频网络播放卡顿率的方法。
[0052] 根据本发明的另一个方面,提供了一种降低视频网络播放卡顿率的设备,包括:存储器,存储有计算机可以执行的降低视频网络播放卡顿率的程序;以及处理器,连接至所述存储器,并且被配置为执行所述降低视频网络播放卡顿率的程序以实现前述降低视频网络播放卡顿率的方法。
[0053] 根据本发明的另一个方面,提供了一种服务器,包括前述的降低视频网络播放卡顿率的设备。
[0054] 本发明能够根据当前网络的平滑RTT和重传率来主动预测网络状况,主动地触发重传机制,而无需等待ACK包的接收。而对比现有技术,无论FR还是ER都是在接收到ACK包后被动的确定重传,而被动的确定重传时,其至少经历了一个端点间的传输往返时间(RTT,Round Trip Time)。因此,本发明能够有效地降低重传的等待时间,从而降低直播业务卡顿率。

附图说明

[0055] 图1是根据本发明的一个实施例的主动重传降低视频网络播放卡顿率的装置的示意图。
[0056] 图2是根据本发明的一个实施例的主动重传降低视频网络播放卡顿率的方法的流程图。
[0057] 图3是根据本发明的一个实施例的根据不同重传系数采取不同重传策略的流程示意图。

具体实施方式

[0058] 下面结合具体实施例和附图对本发明做进一步说明。
[0059] 图1为本发明一个实施例中的一种降低视频网络播放卡顿率的装置结构示意图,该装置基于使用TCP作为传输协议的CDN节点网络进行传输。降低视频网络播放卡顿率的装置1包括预测单元101、比较单元102和重传单元103。其中,预测单元101能够根据当前网络的平滑RTT和重传率来判断当前网络状况,预测单元101周期性地主动预测数据包的丢包概率;比较单元102将数据包的丢包概率与阈值进行比较;重传单元103能够主动重传数据包。图1所示装置仅仅是本发明的一种实现方式,除了图1中已经示出的单元外,装置还可以包括其他未示出的单元、模块和/或组件。
[0060] 下面介绍通过上述装置或其他合适的装置来实现降低视频网络播放卡顿率的方法。图2显示了根据本发明的一个实施例的基于主动重传降低视频网络播放卡顿率的方法的流程图。
[0061] 首先,在步骤S201中,根据当前的网络的RTT计算平滑RTT,进而得到平滑RTT变化率,平滑RTT变化率反应单位时间内平滑RTT抖动变化。
[0062] 随后,在步骤S202中,根据TCP协议栈内存在的两个算法FR和ER引发的重传计算当前重传率。
[0063] 随后,在步骤S203中,根据当前网络的平滑RTT和重传率来判断当前网络状况,周期性地主动预测数据包的丢包概率。此处的丢包概率可以采用各种能够反映网络状况的算法得到。
[0064] 随后,在步骤S204中,得到丢包概率后,将数据包的丢包概率与预设第一阈值进行比较,该第一阈值可以根据实际需求进行调整。当数据包丢包的概率大第一于阈值时,主动重传数据包。
[0065] 在本实施例中,可选择地,在前述第一阈值的基础上,可以再设定一个第二阈值。首先,在步骤S204中,将丢包概率与第一阈值进行比较。
[0066] 当丢包概率小于第一阈值时,说明网络状态良好,进入步骤S206中,不重传数据包。
[0067] 当丢包概率大于第一阈值时,进入步骤S205,再将丢包概率与第二阈值进行比较。
[0068] 随后,在步骤S207中,当丢包概率大于第一阈值且小于第二阈值时,说明网络状况不佳,需要重传数据包,此时,无需等待ACK包的接收而直接重传数据包,以减少等待时间。
[0069] 当丢包概率大于第二阈值时,说明网络状况很差,为了避免网络负载过重,返回步骤S206,不进行重传操作。
[0070] 通过上述方式能够根据当前网络的平滑RTT和重传率来主动预测网络状况,主动地触发重传机制,而无需像FR或是ER一样等待ACK包接收后再被动的确定重传,降低了重传的等待时间。
[0071] 下面描述本发明的思想的一种实现方式。根据本发明的一个实施例的根据不同重传系数采取不同重传策略的流程如图3所示。根据本发明的一个实施例,实现一个定时器,用于周期性地控制连续重传X个数据包以及每个数据包传输Y次。在本实施例中,定义重传系数B作为网络状况参数预测当前网络状态下数据包的丢包的概率。可选择地,在其他实施例中,可以根据其他网络状况参数来预测当前网络状态下数据包的丢包概率。
[0072] 首先,在步骤S301中,根据当前网络的RTT计算平滑RTT,进而得到平滑RTT变化率,平滑RTT变化率反应单位时间内平滑RTT抖动变化。
[0073] 随后,在步骤S302中,根据TCP协议栈内存在的两个算法FR和ER引发的重传计算当前重传率:
[0074] 重传率=(α*C1+β*C2)/C0,
[0075] 其中,C1为FR和ER引发的重传个数;FR为前述快速重传算法,在发送端接受到3个以上的重复ACK时重新传递数据包;ER为前述早期重传算法,当一个ACK到达后,当满足两个早期重传条件时激活重传;
[0076] C2为RTO超时引发的重传个数;
[0077] C0为总重传个数。
[0078] 通过平滑RTT变化率和重传率,得到重传系数B(步骤S303):
[0079] 重传系数B=α*平滑RTT变化率+β*重传率
[0080] 通过平滑RTT变化率和重传率计算既可利用平滑RTT变化率避免网络状态抖动,又可以利用重传率真实反映网络状况,其中的α和β预先设定,并可以随着网络状态动态调整。
[0081] 下面以α=0.3,β=0.7为例对本实施例进行说明,α和β之和为1,代表不同的权重。在本实施例中,重传系数B的范围在(0,1)之间,重传系数B的大小反应网络状况。重传系数B越大,则说明丢包概率越高,网络状况越差。在该实施例中,设定第一阈值为0.35,第二阈值为0.69,并在第一阈值与第二阈值之间设定两个子阈值0.46和0.57。
[0082] 在步骤S304中,将重传系数B与第一阈值0.35进行比较。
[0083] 当B≤0.35时,说明网络状况良好,进入步骤S305,此时无需重传数据包;
[0084] 当B>0.35时,在步骤S306中,将重传系数B与子阈值0.46进行比较,当0.35
[0085] 当B>0.46时,在步骤S308中,将重传系数B与子阈值0.57进行比较,当0.46
[0086] 当B>0.57时,在步骤S310中,将重传系数B与第二阈值0.69进行比较,当0.57
[0087] 当B>0.69时,进入步骤S312,为了避免网络负载过重,不激活定时器。
[0088] 在本实施例中,设定了0.35、0.46、0.57、0.69几个阈值,可选择地,在其他实施例中,也可以根据不同需求设置其他阈值。当重传系数B大于阈值中的最小值并且小于阈值中的最大值时,为了保障网络畅通,避免拥堵,重传的数据包的个数以及每个数据包被重传的次数随重传系数B的增大而减少。
[0089] 本发明能够主动预测网络状况,主动地触发重传机制,而无需等待ACK包的接收,降低了重传的等待时间。申请人将根据本发明的实施例的基于主动重传的方法与仅仅基于TCP协议原生内核进行视频直播进行比较试验,试验条件涉及10个省会的CDN节点,结果发现在直播业务使用CDN服务的过程中,用户侧直播的卡顿率明显下降,相比仅仅基于TCP协议原生内核进行视频直播,流畅度提升20%。试验结果证明本发明能够有效地降低直播业务卡顿率。
[0090] 根据本发明的另一实施例,还包括一种降低视频直播卡顿率的系统,包括发送端和接收端,其中发送端包括前述的装置。
[0091] 根据本发明的又一实施例,还包括一种非易失性存储介质,在存储介质上存储有指令,该指令被计算机执行以实施前述主动重传方法。
[0092] 根据本发明的又一实施例,还包括一种降低视频网络播放卡顿率的设备,包括:存储器,存储有计算机可以执行的降低视频网络播放卡顿率的程序;以及处理器,连接至所述存储器,并且被配置为执行所述降低视频网络播放卡顿率的程序以实现前述主动重传方法。
[0093] 根据本发明的又一实施例,还包括一种服务器,包括前述的降低视频网络播放卡顿率的设备。
[0094] 虽然前面以直播业务为例阐述了本发明的思想、方案和效果,但本领域技术人员应当意识到的是,本发明并不限于在视频直播和点播业务中应用,在应用TCP作为传输协议的各个节点之间的交互中,均可以将本发明应用其中。
[0095] 上面结合附图对本发明的实施例做了详细说明,但本发明并不限于上述实施例,在本领域普通技术人员所具备的知识范围内,在不脱离本发明宗旨的前提下做出的各种变化,均应归属于本发明专利涵盖范围。