一种带宽测量方法、装置、终端、服务器及存储介质与流程

文档序号:18868204发布日期:2019-10-14 18:52阅读:172来源:国知局
一种带宽测量方法、装置、终端、服务器及存储介质与流程

本发明涉及带宽测量技术领域,具体涉及一种带宽测量方法、装置、终端、服务器及存储介质。



背景技术:

目前为了缓解海量流媒体播放器对流媒体服务器的带宽压力,通常可以将终端中的流媒体播放器作为流媒体上传方,响应接收到的其他终端中作为流媒体下载方的流媒体播放器发送的数据请求,向流媒体下载方发送数据请求结果。

为了保证流媒体上传方所在终端中的其他app的网络体验的同时,尽可能利用流媒体上传方的流媒体上传能力,通常需要对流媒体上传方的上传带宽进行测量。

虽然现有技术能够通过带宽测量服务器对流媒体上传方的上传带宽进行测量;但是,其所能测量到的仅仅是流媒体上传方相对于带宽测量服务器的上传带宽,而并不是流媒体上传方相对于流媒体下载方的上传带宽。



技术实现要素:

有鉴于此,本发明实施例提供一种带宽测量方法、装置、终端、服务器及存储介质,以实现对流媒体上传方相对于流媒体下载方的上传带宽的测量。

为实现上述目的,本发明实施例提供如下技术方案:

一种带宽测量方法,包括:

确定流媒体下载方的流媒体下载周期内,流媒体上传方响应所述流媒体下载方发送的数据请求向所述流媒体下载方发送的至少一个数据块中的、用于带宽测量的目标数据块;

确定第一数量和第二数量,所述第一数量为所述流媒体下载周期内,所述流媒体上传方向所述流媒体下载方发送所述目标数据块之前,所述流媒体上传方向所述流媒体下载方发出的数据块的数量;所述第二数量为所述流媒体下载周期内,所述流媒体上传方向所述流媒体下载方发送所述目标数据块之前,所述流媒体上传方接收到的由所述流媒体下载方发送的数据请求的数量;

基于所述第一数量和所述第二数量计算第三数量,所述第三数量为若确定目标数据块成功发送给所述流媒体下载方,所述流媒体上传方需等待接收的由所述流媒体下载方发送的数据请求的数量;

根据所述目标数据块的字节、所述流媒体上传方开始发送所述目标数据块的系统时间,以及所述流媒体上传方从发送所述目标数据块开始到接收到所述第三数量个数据请求的系统时间,计算所述流媒体上传方相对于所述流媒体下载方的上传带宽。

一种带宽测量装置,包括:

目标数据块确定单元,用于确定流媒体下载方的流媒体下载周期内,流媒体上传方响应所述流媒体下载方发送的数据请求向所述流媒体下载方发送的至少一个数据块中的、用于带宽测量的目标数据块;

数量确定单元,用于确定第一数量和第二数量,所述第一数量为所述流媒体下载周期内,所述流媒体上传方向所述流媒体下载方发送所述目标数据块之前,所述流媒体上传方向所述流媒体下载方发出的数据块的数量;所述第二数量为所述流媒体下载周期内,所述流媒体上传方向所述流媒体下载方发送所述目标数据块之前,所述流媒体上传方接收到的由所述流媒体下载方发送的数据请求的数量;

数量计算单元,用于基于所述第一数量和所述第二数量计算第三数量,所述第三数量为若确定目标数据块成功发送给所述流媒体下载方,所述流媒体上传方需等待接收的由所述流媒体下载方发送的数据请求的数量;

第一带宽计算单元,用于根据所述目标数据块的字节、所述流媒体上传方开始发送所述目标数据块的系统时间,以及所述流媒体上传方从发送所述目标数据块开始到接收到所述第三数量个数据请求的系统时间,计算所述流媒体上传方相对于所述流媒体下载方的上传带宽。

一种终端,包括:

处理器以及存储器,所述处理器以及存储器通过通信总线相连;

其中,所述处理器,用于调用并执行所述存储器中存储的程序;

所述存储器,用于存储程序,所述程序至少用于:

确定流媒体下载方的流媒体下载周期内,流媒体上传方响应所述流媒体下载方发送的数据请求向所述流媒体下载方发送的至少一个数据块中的、用于带宽测量的目标数据块;

确定第一数量和第二数量,所述第一数量为所述流媒体下载周期内,所述流媒体上传方向所述流媒体下载方发送所述目标数据块之前,所述流媒体上传方向所述流媒体下载方发出的数据块的数量;所述第二数量为所述流媒体下载周期内,所述流媒体上传方向所述流媒体下载方发送所述目标数据块之前,所述流媒体上传方接收到的由所述流媒体下载方发送的数据请求的数量;

基于所述第一数量和所述第二数量计算第三数量,所述第三数量为若确定目标数据块成功发送给所述流媒体下载方,所述流媒体上传方需等待接收的由所述流媒体下载方发送的数据请求的数量;

根据所述目标数据块的字节、所述流媒体上传方开始发送所述目标数据块的系统时间,以及所述流媒体上传方从发送所述目标数据块开始到接收到所述第三数量个数据请求的系统时间,计算所述流媒体上传方相对于所述流媒体下载方的上传带宽。

一种服务器,至少一个存储器和至少一个处理器;所述存储器存储有程序,所述处理器调用所述存储器存储的程序,所述程序用于:

确定流媒体下载方的流媒体下载周期内,流媒体上传方响应所述流媒体下载方发送的数据请求向所述流媒体下载方发送的至少一个数据块中的、用于带宽测量的目标数据块;

确定第一数量和第二数量,所述第一数量为所述流媒体下载周期内,所述流媒体上传方向所述流媒体下载方发送所述目标数据块之前,所述流媒体上传方向所述流媒体下载方发出的数据块的数量;所述第二数量为所述流媒体下载周期内,所述流媒体上传方向所述流媒体下载方发送所述目标数据块之前,所述流媒体上传方接收到的由所述流媒体下载方发送的数据请求的数量;

基于所述第一数量和所述第二数量计算第三数量,所述第三数量为若确定目标数据块成功发送给所述流媒体下载方,所述流媒体上传方需等待接收的由所述流媒体下载方发送的数据请求的数量;

根据所述目标数据块的字节、所述流媒体上传方开始发送所述目标数据块的系统时间,以及所述流媒体上传方从发送所述目标数据块开始到接收到所述第三数量个数据请求的系统时间,计算所述流媒体上传方相对于所述流媒体下载方的上传带宽。

一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1至7任一项所述的带宽测量方法。

本申请提供一种带宽测量方法、装置、终端、服务器及存储介质,通过确定流媒体下载方的流媒体下载周期内,流媒体上传方向流媒体下载方发送的至少一个数据块中的、用于带宽测量的目标数据块;确定第一数量和第二数量,第一数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方向流媒体下载方发出的数据块的数量;第二数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方接收到的由流媒体下载方发送的数据请求的数量;基于第一数量和第二数量计算第三数量(第三数量为若确定目标数据块成功发送给流媒体下载方,流媒体上传方需等待接收的由流媒体下载方发送的数据请求的数量)的方式;便可根据目标数据块的字节、流媒体上传方开始发送目标数据块的系统时间,以及流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间,计算出流媒体上传方相对于流媒体下载方的上传带宽。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的现有技术中的一种数据请求方法的应用场景示意图;

图2为本申请实施例提供的现有技术中的另一种数据请求方法的应用场景示意图;

图3为本申请实施例提供的现有技术中的一种带宽测量方法的应用场景示意图;

图4为本申请实施例提供的一种终端的硬件结构框图;

图5为本申请实施例提供的一种服务器的硬件结构框图;

图6为本申请实施例提供的一种带宽测量方法流程图;

图7为本申请实施例提供的另一种带宽测量方法流程图;

图8为本申请实施例提供的一种流媒体上传方和流媒体下载方之间的数据请求机制的示意图;

图9为本申请实施例提供的一种根据目标数据块的字节、流媒体上传方开始发送目标数据块的系统时间,以及流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间,计算流媒体上传方相对于流媒体下载方的上传带宽的方法流程图;

图10为本申请实施例提供的又一种带宽测量方法流程图;

图11为本申请实施例提供的一种流媒体上传方和流媒体下载方的结构示意图;

图12为本申请实施例提供的一种数据响应示意图;

图13为本申请实施例提供的又一种带宽测量方法流程图;

图14为本申请实施例提供的一种带宽测量装置的结构示意图。

具体实施方式

本申请的带宽测量方法可以用于测量流媒体上传方相对于流媒体下载方的上传带宽。

参见图1,传统的终端中的流媒体播放器在运行过程中,一般是由流媒体播放器向流媒体服务器发送数据请求,以请求用于构成流媒体的数据块,并根据接收到流媒体服务器返回的数据请求结果(即,数据请求所请求的数据块)实现流媒体的播放。因每个流媒体播放器都需要向流媒体服务器请求数据块才可实现正常流媒体播放,故通常会存在流媒体服务器带宽压力大的情况;尤其是随着流媒体播放器的大量增加,进一步加重了海量流媒体播放器对流媒体服务器的带宽压力,而流媒体服务器带宽压力的增大往往会导致流媒体服务器奔溃、进而造成海量流媒体播放器不能正常播放等问题。

参见图2,现有技术为了缓解海量流媒体对流媒体服务器的带宽压力,除了可以如图1一样由流媒体服务器接收流媒体播放器发送的数据请求,并向流媒体播放器返回数据请求结果;还可以将位于终端中的流媒体播放器看成一个流媒体上传方和/或流媒体下载方;当位于终端中的流媒体播放器可以看成是流媒体上传方时,该流媒体上传方可以接收其他终端中的流媒体播放器(此处的终端中的流媒体播放器可以看成流媒体下载方)发送的数据请求,并向流媒体播放器下载方返回数据请求结果。

现有技术流媒体播放器作为流媒体上传方为流媒体下载方提供数据请求结果,使得作为流媒体上传方的流媒体播放器分担了流媒体下载方对流媒体服务器的带宽压力,为流媒体服务器的稳定运行提供了保障。

然而,虽然现有技术中的作为流媒体上传方的流媒体播放器可以为流媒体服务器分担带宽压力;但是,如果流媒体下载方对流媒体上传方的数据请求过多,会使得流媒体上传方的上传吞吐率过大,进而导致流媒体上传方所在终端中的其他app不能正常运行的情况的发生。并且,如果为了保证流媒体服务器作为流媒体上传方的终端中的app能够正常运行,而一味降低流媒体上传方的上传吞吐率,便会使得流媒体上传方为流媒体服务器分担的带宽压力过小,造成流媒体服务器奔溃的情况的发生。

因此,如何在保证流媒体上传方所在终端中其他app正常工作的同时,尽可能利用该流媒体上传方的流媒体上传方能力,降低海量流媒体播放器对流媒体服务器的压力,是亟待解决的问题。

目前为了解决这一技术问题,提供了一种对流媒体上传方的上传带宽的测量方法,根据测量到的流媒体上传方的上传带宽来实现对流媒体上传方的上传吞吐率的控制,进而达到在保证流媒体上传方所在终端中其他app正常工作的同时,尽可能利用该流媒体上传方的流媒体上传能力的目的。

具体的,如图3所示,现有技术通常是通过带宽测量服务器来实现对流媒体上传方的上传带宽的测量。这种测量方式,虽然可以实现对流媒体上传方的上传带宽的测量,但是其所测量到的是流媒体上传方相对于带宽测量服务器的上传带宽,而并非是流媒体上传方相对于流媒体下载方的上传带宽。

并且,从另一方面来讲,这种测量方式因需要利用带宽测量服务器才能实现,故通常存在测量成本高、测量周期长【如,带宽测量服务器的有效工作周期比较长(如,一个月进行一次),以减轻带宽测量服务器的压力,因此,流媒体服务器向带宽测量服务器发起带宽测量请求后,经常遇到带宽测量服务器忙拒绝服务器的反馈】的问题。

因此,亟需一种带宽测量方法,以在降低测量成本、测量周期的基础上,实现对流媒体上传方相对于流媒体下载方的上传带宽的测量。

相应的,本申请便是提供了这样一种带宽测量方法,该方法可以实现对流媒体上传方相对于流媒体下载方的上传带宽的测量,而且,在实现对流媒体上传方相对于流媒体下载方的上传带宽的测量的基础上,相对于现有技术还进一步降低了测量成本和测量周期。

可选的,本申请实施例提供的一种带宽测量方法应用于终端;可选的,本申请实施例提供的一种带宽测量方法可以应用于终端中的流媒体上传方,也可以应用于终端中的独立于流媒体上传方的其他应用程序,以实现对该终端中的流媒体上传方相对于另一终端中的流媒体下载方的上传带宽的测量。

可选的,本申请实施例提供的一种带宽测量方法还可以应用于一终端(该终端中可以设置有作为流媒体上传方和/或流媒体下载方的流媒体播放器,也可以未设置有作为流媒体上传方和/或流媒体下载方的流媒体播放器)以实现对另一终端中的流媒体上传方相对于其他终端中流媒体下载方的上传带宽的测量,此处的其他终端可以是本申请实施例提供的一种带宽测量方法应用于的终端(即,此处的终端为上述所提到的带宽测量方法所应用于的一终端),可以不是本申请实施例提供的一种带宽测量方法应用于的终端(即,此处的终端不为上述所提到的带宽测量方法所应用于的一终端)。

在本申请实施例中,终端可以为手机、平板电脑等。如,参见图4,其示出了本申请实施例的带宽测量方法所适用的终端的一种组成结构示意图。

在图4中,该终端400可以包括:处理器401、存储器402、通信接口403、输入单元404和显示器405和通信总线406。

存储器402中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:

确定流媒体下载方的流媒体下载周期内,流媒体上传方响应所述流媒体下载方发送的数据请求向所述流媒体下载方发送的至少一个数据块中的、用于带宽测量的目标数据块;

确定第一数量和第二数量,所述第一数量为所述流媒体下载周期内,所述流媒体上传方向所述流媒体下载方发送所述目标数据块之前,所述流媒体上传方向所述流媒体下载方发出的数据块的数量;所述第二数量为所述流媒体下载周期内,所述流媒体上传方向所述流媒体下载方发送所述目标数据块之前,所述流媒体上传方接收到的由所述流媒体下载方发送的数据请求的数量;

基于所述第一数量和所述第二数量计算第三数量,所述第三数量为若确定目标数据块成功发送给所述流媒体下载方,所述流媒体上传方需等待接收的由所述流媒体下载方发送的数据请求的数量;

根据所述目标数据块的字节、所述流媒体上传方开始发送所述目标数据块的系统时间,以及所述流媒体上传方从发送所述目标数据块开始到接收到所述第三数量个数据请求的系统时间,计算所述流媒体上传方相对于所述流媒体下载方的上传带宽。

处理模块401、存储器402、通信接口403、输入单元404、显示器405、均通过通信总线406完成相互间的通信。

在本申请实施例中,该处理器401,可以为中央处理器(centralprocessingunit,cpu),特定应用集成电路(application-specificintegratedcircuit,asic),数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件等。

该处理器可以调用并执行存储器402中存储的程序。

该通信接口403可以为通信模块的接口,如gsm模块的接口。

本申请还可以包括输入单元405,该输入单元可以包括感应触摸显示面板上的触摸事件的触摸感应单元、键盘等等。

该显示器404包括显示面板,如触摸显示面板等。在一种可能的情况中,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板。

当然,图4所示的终端结构并不构成对本申请实施例中终端的限定,在实际应用中终端可以包括比图4所示的更多或更少的部件,或者组合某些部件。

本申请实施例提供的一种带宽测量方法可以应用于服务器,该服务器可以是网络侧为用户提供服务的服务设备,其可能是多台服务器组成的服务器集群,也可能是单台服务器。

可选的,图5示出了服务器的硬件结构框图,参照图5,服务器的硬件结构可以包括:处理器51,通信接口52,存储器53和通信总线54;

在本发明实施例中,处理器51、通信接口52、存储器53、通信总线54的数量均可以为至少一个,且处理器51、通信接口52、存储器53通过通信总线54完成相互间的通信;

处理器51可能是一个中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;

存储器53可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;

其中,存储器存储有程序,处理器可调用存储器存储的程序,程序用于:

确定流媒体下载方的流媒体下载周期内,流媒体上传方响应所述流媒体下载方发送的数据请求向所述流媒体下载方发送的至少一个数据块中的、用于带宽测量的目标数据块;

确定第一数量和第二数量,所述第一数量为所述流媒体下载周期内,所述流媒体上传方向所述流媒体下载方发送所述目标数据块之前,所述流媒体上传方向所述流媒体下载方发出的数据块的数量;所述第二数量为所述流媒体下载周期内,所述流媒体上传方向所述流媒体下载方发送所述目标数据块之前,所述流媒体上传方接收到的由所述流媒体下载方发送的数据请求的数量;

基于所述第一数量和所述第二数量计算第三数量,所述第三数量为若确定目标数据块成功发送给所述流媒体下载方,所述流媒体上传方需等待接收的由所述流媒体下载方发送的数据请求的数量;

根据所述目标数据块的字节、所述流媒体上传方开始发送所述目标数据块的系统时间,以及所述流媒体上传方从发送所述目标数据块开始到接收到所述第三数量个数据请求的系统时间,计算所述流媒体上传方相对于所述流媒体下载方的上传带宽。

可选的,程序的细化功能和扩展功能可参照上文描述。

下面结合本申请的以上共性,对本申请实施例的带宽测量方法进行详细介绍。

参见图6,其示出了本申请实施例提供的一种带宽测量方法的流程示意图,在介绍如图6所示的带宽测量方法之前,先对流媒体上传方和流媒体下载方之间的数据交互机制进行说明。

发明人在研究如何实现对流媒体上传方相对于流媒体下载方的上传带宽的测量时,发现流媒体上传方和流媒体下载方在进行数据交互时,存在如下机制:流媒体下载方向流媒体上传方发送数据请求;流媒体上传方在接收到流媒体下载方发送的数据请求后,会确定数据请求指示的各个数据块,并将每个数据块返回给流媒体下载方;相应的,流媒体下载方每当接收到一个流媒体上传方返回的数据块,便会被该数据块触发向该流媒体上传方发送至多一个数据请求,以便于流媒体上传方每当接收到由该流媒体下载方发送的一个数据请求,便可得知有至少有一个数据块已成功传送给流媒体下载方。

于是,本申请发明人基于流媒体上传方和流媒体下载方在进行数据交互时的这一机制,提出一种流媒体上传方相对于流媒体下载方的上传带宽测量方法。

在介绍本申请实施例提供的如图6所示的带宽测量方法之前,先对本申请实施例提供的一种带宽测量方法的核心思想进行介绍。

可选的,带宽可以理解为单位时间内从发送端(如,流媒体上传方)到达接收端(如,流媒体下载方)的字节数目,一般带宽的单位是为kbps。

流媒体上传方向流媒体下载方发送n个数据块,流媒体上传方在发送n个数据块之后收到流媒体下载方发送的m+n个新的数据请求。其中,m个数据请求是流媒体上传方向流媒体下载方发送n个数据块之前,向流媒体下载方发送的多个数据块中的、在流媒体上传方向流媒体下载方发送n个数据块时未能到达流媒体下载方的m个数据块的确认;n个数据请求是对该次发送的n个数据块的确认;记录流媒体上传方发送n个数据块,到收到m+n个新的数据请求的时间t,若n个数据块的字节长度为s,可计算流媒体上传方到流媒体下载方的带宽测量值bw,bw=s/t。

为了便于对这一核心思想的理解,现从如图6所示的带宽测量方法进行详细说明。如图6所示,该方法可以包括:

s601、确定流媒体下载方的流媒体下载周期内,流媒体上传方响应流媒体下载方发送的数据请求向流媒体下载方发送的至少一个数据块中的、用于带宽测量的目标数据块;

在本申请实施例中,优选的,流媒体下载方在流媒体下载周期内,可向流媒体上传方发送数据请求,流媒体上传方接收到数据请求后,会确定数据请求指示的各个数据块;并将所确定的各个数据块发送给流媒体下载方,其中,每个数据块被流媒体下载方接收到以后,均可以触发该流媒体下载方向流媒体上传方发送至多一个数据请求。相应的,流媒体下载方根据接收到的各个数据块实现流媒体播放;流媒体上传方每当接收到流媒体下载方发送的一个数据请求,便可以确定该流媒体上传方已成功发送给流媒体下载方至少一个数据块。

本申请实施例中,为了便于对流媒体上传方相对于流媒体下载方的上传带宽进行测量,故将流媒体上传方向流媒体下载方返回的每个数据块近似成均可触发流媒体下载方向流媒体上传方返回一个数据请求。

可选的,流媒体下载周期可以是:在播放该流媒体时,由该流媒体的播放开始时间点和播放结束时间点构成的时间段,该时间段的播放开始时间点是该流媒体的播放开始时间点,该时间段的播放结束时间点是该流媒体的播放结束时间点。其中,流媒体可以为任一视频、音频等。比如,在播放一视频时,将播放该视频的播放开始时间点和播放结束时间点构成的时间段(该时间段也可以看成该视频从开始到结束播放的播放时间段),作为该视频的下载周期。

可选的,流媒体下载方向流媒体上传方发送的数据请求携带流媒体下载方请求的原始数据块的存储位置;流媒体上传方接收到数据请求后,根据数据请求携带的原始数据块的存储位置,获取各个原始数据块;并对获取到的各个原始数据块进行打包处理,得到待发送给流媒体下载方的至少一个数据块(此处的待发送给流媒体下载方的至少一个数据块便是上述实施例所提到的流媒体上传方接收到数据请求后,确定的数据请求指示的各个数据块);并将至少一个数据块发送给流媒体下载方。

比如,若流媒体上传方接收到数据请求后,根据数据请求携带的原始数据块的存储位置,获取到5个原始数据块以后,可能将其中的2个原始数据块打包成一个用于返回给流媒体下载方的数据块,并将其余的3个原始数据块中的每个原始数据块分别作为一个用于返回给流媒体下载方的数据块。这样,流媒体上传方在接收到数据请求后,确定的数据请求指示的数据块的个数为4个(即,确定的用于返回给流媒体下载方的数据块的个数为4个)。

本申请实施例中,优选的,数据请求指示的各个数据块可以是流媒体上传方在接收到流媒体下载方发送的数据请求后,确定的用于返回给流媒体下载方的数据块。

s602、确定第一数量和第二数量,第一数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方向流媒体下载方发出的数据块的数量;第二数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方接收到的由流媒体下载方发送的数据请求的数量;

s603、基于第一数量和第二数量计算第三数量,第三数量为若确定目标数据块成功发送给流媒体下载方,流媒体上传方需等待接收的由流媒体下载方发送的数据请求的数量;

可选的,目标数据块中包括用于发送给流媒体下载方的一个或多个数据块;为了便于区分,将目标数据块中包括的数据块的数量称为第四数量。

在本申请实施例中,优选的,基于第一数量、第二数量以及第四数量,可以计算得到第三数量。

可选的,基于第一数量、第二数量和第四数量计算第三数量的方式包括:计算第一数量和第二数量之间的差值,获取计算得到的差值减去1的结果,将获取的结果与第四数量的和确定为第三数量。第三数量可以是流媒体上传方若确定目标数据块成功发送给流媒体下载方,从该流媒体上传方向流媒体下载方发送目标数据块开始,流媒体上传方需要等待接收的由流媒体下载方发送的数据请求的数量。

比如,若流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方向流媒体下载方发出的数据块的数量为10(第一数量为10);流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方接收到的由流媒体下载方发送的数据请求的数量为5(第二数量为5);目标数据块包括的数据块的数量为3(第四数量为3);则基于第一数量、第二数量和第四数量,计算到的若流媒体上传方确定目标数据块成功发送给流媒体下载方,从流媒体上传方发送目标数据块开始,流媒体上传方需等待接收的由流媒体下载方发送的数据请求的数量为7,具体的计算方式为:10-5-1+3=7。

可选的,基于第一数量、第二数量和第四数量计算第三数量的方式包括:计算第一数量和第二数量之间的差值,将计算到的差值与第四数量的和确定为第三数量。第三数量可以是流媒体上传方若确定目标数据块成功发送给流媒体下载方,从该流媒体上传方向流媒体下载方发送目标数据块开始,流媒体上传方需要等待接收的由流媒体下载方发送的数据请求的数量。

比如,若流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方向流媒体下载方发出的数据块的数量为10(第一数量为10);流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方接收到的由流媒体下载方发送的数据请求的数量为5(第二数量为5);目标数据块包括的数据块的数量为3(第四数量为3);则基于第一数量、第二数量和第四数量,计算到的若流媒体上传方确定目标数据块成功发送给流媒体下载方,从流媒体上传方发送目标数据块开始,流媒体上传方需等待接收的由流媒体下载方发送的数据请求的数量为7,具体的计算方式为:10-5+3=8。

在本申请实施例中,基于第一数量和第二数量计算第三数量,包括:获取第一数量减去目标数量的第一结果,目标数量为第二数量或目标数量为第二数量与1的和;将第一结果与目标数据块包括的数据块的数量的和,确定为第三数量。

s604、根据目标数据块的字节、流媒体上传方开始发送目标数据块的系统时间,以及流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间,计算流媒体上传方相对于流媒体下载方的上传带宽。

可选的,确定流媒体上传方开始发送目标数据块的系统时间;确定流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间;计算确定的两个系统时间之间的时间间隔,并将目标数据块的字节长度除以时间间隔得到的结果作为流媒体上传方相对于流媒体下载方的上传带宽。

可选的,确定流媒体上传方开始发送目标数据块的系统时间包括:将流媒体上传方开始发送目标数据块时,流媒体上传方的系统时间确定为流媒体上传方开始发送目标数据块的系统时间。

可选的,确定流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间,包括:确定流媒体上传方在开始向流媒体下载方发送目标数据块之后,流媒体上传方接收到流媒体下载方返回的第三数量个数据请求时,流媒体上传方的系统时间,将该系统时间确定为流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间。

比如,若第三数量为5,确定流媒体上传方在开始向流媒体下载方发送目标数据块之后,该流媒体上传方接收到流媒体下载方返回的第5个数据请求时,流媒体上传方的系统时间;若该系统时间为第20秒,则确定的流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间为第20秒。

进一步的,若确定流媒体上传方开始向流媒体下载方发送目标数据块时,流媒体上传方的系统时间为第5秒,则确定流媒体上传方开始发送目标数据块的系统时间为第5秒,则进一步确定流媒体上传方开始发送目标数据块的系统时间,和流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间之间的时间间隔为15秒,则将目标数据块的字节长度除以15秒所得的结果变为流媒体上传方相对于流媒体下载方的上传带宽。

在本申请实施例中,优选的,若要测量得到准确的流媒体上传方相对于流媒体下载方的上传带宽,只需在放开该流媒体上传方相对于流媒体下载方的上传吞吐率的情况下,基于本申请实施例提供的一种带宽测量方法来确定的流媒体上传方相对于流媒体下载方的上传带宽即可,这样,计算出的流媒体上传方相对于流媒体下载方的上传带宽是更加接近于流媒体上传方相对于流媒体下载方的实际上传带宽的。

进一步的,为了使得本申请上述实施例提供的带宽测量方法得到更加准确的流媒体上传方相对于流媒体下载方的测量带宽,可以在基于本申请上述实施例提供的带宽测量方法测量流媒体上传方相对于流媒体下载方的上传带宽时,确定至少一个目标数据块;分别针对每个目标数据块计算流媒体上传方相对于流媒体下载方的上传带宽;进而根据分别针对每个目标数据块计算到的流媒体上传方相对于流媒体下载方的上传带宽,计算流媒体上传相对于流媒体下载方的最终上传带宽;该计算得到的最终上传带宽便可认为是基于本申请实施例提供的一种带宽测量方法最终计算得到的流媒体上传方相对于流媒体下载方的上传带宽。有关该内容的实现过程请参照图7提供的另一种带宽测量方法流程图。

如图7所示,该方法包括:

s701、确定至少一个目标数据块,目标数据块为流媒体下载方的流媒体下载周期内,流媒体上传方响应流媒体下载方发送的数据请求向流媒体下载方发送的至少一个数据块中的用于带宽测量的数据块;

可选的,在计算流媒体上传方相对于流媒体下载方的上传带宽时,可以确定至少一个目标数据块,其中,目标数据块是流媒体下载方的流媒体下载周期内,流媒体上传方响应流媒体下载方发送的数据请求向流媒体下载方发送的至少一个数据块中的用于带宽测量的数据块。

在本申请实施例中,优选的,确定的至少一个目标数据块可以是位于同一流媒体下载周期内的目标数据块;也可以是位于不同的流媒体下载周期内的目标数据块;进一步的,还可以是至少一个目标数据块中的任意多个目标数据块位于同一流媒体下载周期内,而剩余其他的目标数据块位于其他流媒体下载周期内,其中剩余其他的目标数据块可以位于同一其他流媒体下载周期,也可以位于不同的流媒体下载周期。

也就是说,本申请实施例提供的一种带宽测量方法并不对至少一个目标数据块所处的流媒体下载周期进行限定,发明人可根据自己的需要任意的流媒体下载方的流媒体下载周期内获取目标数据块,在此不做限定。

s702、确定分别与每个目标数据块对应的第一数量和第二数量,第一数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方向流媒体下载方发出的数据块的数量;第二数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方接收到的由流媒体下载方发送的数据请求的数量;

可选的,针对每个目标数据块执行以下过程:确定与目标数据块对应的第一数量和第二数量,第一数量为目标数据块所处的流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方向流媒体下载方发出数据块的数量;第二数量为目标数据块所处的流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方接收到由流媒体下载方发送的数据请求的数量。

s703、基于与目标数据块对应的第一数量和第二数量,计算与该目标数据块对应的第三数量,第三数量为若确定目标数据块成功发送给流媒体下载方,流媒体上传方需等待接收的由流媒体下载方发送的数据请求的数量;

可选的,针对每个目标数据块执行以下过程:基于与该目标数据块对应的第一数量和第二数量,计算与该目标数据块对应的第三数量;目标数据块的第三数量为若确定目标数据块成功发送给流媒体下载方,从流媒体上传方发送目标数据块开始,流媒体上传方需等待接收的由流媒体下载方发送的数据请求的数量。

s704、根据目标数据块的字节、流媒体上传方开始发送目标数据块的系统时间,以及流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间,计算针对目标数据块流媒体上传方相对于流媒体下载方的上传带宽;

可选的,针对每个目标数据块执行以下过程:根据目标数据块的字节、流媒体上传方开始发送目标数据块的系统时间以及流媒体上传方从发送目标数据块开始到接收到与该目标数据块对应的第三数量个数据请求的系统时间,计算针对该目标数据块计算到的流媒体上传方相对于流媒体下载方的上传带宽。其中,针对目标数据块计算到的流媒体上传方相对于流媒体下载方的上传带宽,可以认为是针对该目标数据块的流媒体上传方相对于流媒体下载方的上传带宽。

s705、根据计算到的分别针对每个目标数据块的流媒体上传方相对于流媒体下载方的上传带宽,计算流媒体上传方相对于流媒体下载方的最终上传带宽。

在本申请实施例中,优选的,根据步骤s704中计算到的分别针对每个目标数据块的流媒体上传方相对于流媒体下载方的上传带宽,计算流媒体上传方相对于流媒体下载方的最终上传带宽,并将该计算到的最终上传带宽作为本申请实施例提供的一种带宽测量方法测量到的流媒体上传方相对于流媒体下载方的上传带宽。

可选的,对计算到的针对各个目标数据块的流媒体上传方相对于流媒体下载方的上传带宽进行平滑滤波,得到流媒体上传方相对于流媒体下载方的最终上传带宽。

在本申请实施例中,优选的,对针对各个目标数据块的流媒体上传方相对于流媒体下载方的上传带宽进行滤波,包括:分别确定每个目标数据块的权重;计算目标数据块的权重和针对该目标数据块流媒体上传方相对于流媒体下载方的上传带宽的乘积结果;将计算到的各个乘积结果的累加结果确定为流媒体上传方相对于流媒体下载方的最终上传带宽。

比如,步骤s701中确定的至少一个目标数据块包括3个目标数据块,这3个目标数据块分别为目标数据块1、目标数据块2和目标数据块3,确定基于目标数据块1计算到的流媒体上传方相对于流媒体下载方的上传带宽,基于目标数据块2计算到的流媒体上传方相对于流媒体下载方的上传带宽,基于目标数据块3计算到的流媒体上传方相对于流媒体下载方的上传带宽;确定目标数据块1的权重1、目标数据块2的权重2和目标数据块3的权重3;确定权重1与基于目标数据块1计算到的流媒体上传方相对于流媒体下载方的上传带宽的乘积结果1;确定权重2与基于目标数据块2计算到的流媒体上传方相对于流媒体下载方的上传带宽的乘积结果2;确定权重3与基于目标数据块3计算到的流媒体上传方相对于流媒体下载方的上传带宽的乘积结果3;将乘积结果1、乘积结果2和乘积结果3的累加结果作为流媒体上传方相对于流媒体下载方的最终上传带宽(即,将乘积结果1、乘积结果2和乘积结果3的和作为流媒体上传方相对于流媒体下载方的最终上传带宽)。

在本申请实施例中,优选的,可以使得至少一种目标数据块中各个目标数据块的权重的累加结果为1。

在本申请实施例中,优选的,可以使得至少一个目标数据块中向流媒体下载方发送时间越晚的目标数据块的权重越大。

以上仅仅是本申请实施例提供的确定目标数据块的权重的优选方式,有关目标数据块的权重的具体确定方式,发明人可根据自己的需求任意设定,在此不做限定。

在本申请实施例中,优选的,为了进一步提高本申请实施例计算得到的流媒体上传方相对于流媒体下载方的上传带宽的准确性,在此对本申请实施例提供的步骤s604进行进一步优化。

本申请发明人对流媒体上传方向流媒体下载方发送数据块的方式进行了进一步研究,如图8所示,数据块pkt1从流媒体上传方到达流媒体下载方的时间包括:t1传输到缓冲区时间,t2排队时间,t3离开缓冲区到达流媒体下载方时间,t4下一个请求从流媒体下载方返回流媒体上传方的时间。流媒体上传方向流媒体下载方发送数据块pkt2的相关时间t5,t6,t7,t8定义类似。

由此,发明人对本申请上述实施例提供的流媒体上传方对流媒体下载方的测量方法进行了进一步的优化,针对数据块测量流媒体上传方相对于流媒体下载方的上传带宽的公式为:

bw(pkt1)=pkt1/(t1+t2+t3)

=pkt1/[(t1+t2+t3+t4)–t4]

=pkt1/[rtt(pkt1)–minrtt/2];其中,bw(pkt1)为针对数据块pkt1的流媒体上传方相对于流媒体下载方的上传带宽;

bw(pkt2)=pkt2/(t5+t6+t7)

=pkt1/[(t5+t6+t7+t8)–t8]

=pkt2/[rtt(pkt2)–minrtt/2];其中,bw(pkt2)为针对数据块pkt2的流媒体上传方相对于流媒体下载方的上传带宽;

其中,t4与t8可以近似计算为minrtt/2,rtt是数据块的往返时延,数据块的往返时延是第一系统时间和第二系统时间之间的时间间隔,其中,第一系统时间是流媒体上传方向流媒体下载方发送数据块的系统时间,第二系统时间是流媒体上传方在接收到流媒体下载方因接收数据块而返回的数据请求时,流媒体上传方的系统时间;minrtt是各个数据块的往返时延中的最小往返时延。

基于上述说明,本申请发明人对本申请上述实施例提供的步骤s604的优选实施方式,请参见图9。

具体的,如图9所示的一种根据目标数据块的字节、流媒体上传方开始发送目标数据块的系统时间,以及流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间,计算流媒体上传方相对于流媒体下载方的上传带宽的方法,包括:

s901、确定目标数据块中的每个数据块的往返时延,数据块的往返时延用于指示数据块的第一时间和第二时间之间的时间间隔,第一时间为流媒体上传方开始向流媒体下载方发送数据块的系统时间,第二时间为流媒体上传方接收到流媒体下载方接收到数据块后返回的数据请求的系统时间;

可选的,流媒体上传方开始向流媒体下载方发送数据块的系统时间,可以为:流媒体上传方开始向流媒体下载方发送数据块时,流媒体上传方的系统时间。

流媒体上传方接收到流媒体下载方接收到数据块后返回的数据请求的系统时间,可以为:流媒体上传方接收到流媒体下载方因接收到数据块而返回的数据请求时,流媒体上传方的系统时间。

s902、根据目标数据块中的各个数据块的往返时延,计算目标往返时延。

可选的,确定目标数据块中每个数据块的往返时延,从所确定的各个往返时延中选择一个表示的时间段最短的往返时延,将选中的往返时延作为目标往返时延。

可选的,确定目标数据块中每个数据块的往返时延,并计算所确定的各个往返时延的平均往返时延,将平均往返时延作为目标往返时延。

以上仅仅是本申请实施例提供的计算目标往返时延的优选方式,有关计算目标往返时延的具体方式,发明人可根据自己的需求任意设置,在此不做限定。

s903、基于目标往返时延、目标数据块的字节、流媒体上传方开始发送目标数据块的系统时间,以及流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间,计算流媒体上传方相对于流媒体下载方的上传带宽。

可选的,确定第二时间戳和第一时间戳之间的时间间隔(为了与上述实施例提到的时间间隔进行区分,可以将此处的时间间隔称为目标时间间隔),第一时间戳可以为流媒体上传方开始发送目标数据块的系统时间,第二时间戳可以为流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间;获取目标时间间隔与目标往返时延的一半之间的差值,将目标数据块的字节长度除以差值的结果作为流媒体上传方相对于流媒体下载方的上传带宽。比如,若第一时间戳为第15秒,第二时间戳为第30秒,目标往返时延为10秒,目标数据块的字节为10kb,则计算得到的流媒体上传方相对于流媒体下载方的上传带宽为10/(30-15-5)=1kb/s,其中,5目标往返时延的一半,目标往返时延的一半可以是由目标往返时延10除以2所得到的。

本申请实施例中,将数据块从流媒体上传方发送到流媒体下载方的时间和流媒体下载方接收到数据块后将数据请求返回给流媒体上传方的时间近似认为是相同的,这样,可以根据目标往返时延确定目标数据块中最后一个数据块对应的数据请求从流媒体下载方返回给流媒体上传方的时间(即,目标往返时延的一半);基于此,便可通过减去二分之一的目标往返时延的方式,更加准确的计算出目标数据块发送给流媒体下载方的时间,进而可以计算出更加准确的流媒体上传方相对于流媒体下载方的上传带宽。

图10为本申请实施例提供的又一种带宽测量方法流程图。

如图10所示的带宽测量方法的主要目标是测量流媒体上传方的上传带宽,其实现思想是求取同一时间段内,流媒体上传方相对于每一个向该流媒体上传方发送数据请求的流媒体下载方的上传带宽,进而基于测量到的流媒体上传方相对于各个流媒体下载方的上传带宽,计算得到流媒体上传方的上传带宽。

为了便于对图10所示的带宽测量方法的理解,现首先对如图10所示的带宽测量方法的应用场景进行说明,具体请参见图11。

可选的,任意终端中的流媒体播放器均可作为流媒体上传方和/或流媒体下载方,当终端中的流媒体播放器作为流媒体上传方时,可以接收其他终端中流媒体播放器发送的数据请求,并向发送数据请求的流媒体播放器返回数据请求结果,数据请求结果即为上述实施例所提到的数据请求指示的数据块,向流媒体上传方发送数据请求的流媒体播放器可以看成是流媒体下载方。如图11仅仅示出了一个流媒体上传方和用于向流媒体上传方发送数据请求的三个流媒体下载方,本领域技术人员应该知道的是本申请仅仅是为了说明流媒体上传方和流媒体下载方之间的关系而给出的实例图,具体应用过程中,流媒体下载方和流媒体上传方的数量并不限定。并且,一流媒体播放器除了可以作为流媒体上传方,同时还可以作为流媒体下载方,以向其他可以作为流媒体上传方的流媒体播放器发送数据请求。如图11示出的流媒体上传方还可以同时作为流媒体下载方,以向其他作为流媒体上传方的流媒体播放发送数据请求。

为了对流媒体上传方的上传带宽的进行测量,需要确定用于向流媒体上传方发送数据请求的各个流媒体下载方,并在同一时间段内,计算出该流媒体上传方分别相对于每个流媒体下载方的上传带宽,进而将计算得到的各个带宽的和作为流媒体上传方的上传带宽。

如图10所示,该方法包括:

s1001、确定用于向流媒体上传方发送数据请求的各个流媒体下载方;

s1002、确定在同一时间段内,流媒体上传方相对于每一个流媒体下载方的上传带宽;

可选的,为了保证计算得到的流媒体上传带宽的准确性,尽量使得在同一时间段内,各个用于向流媒体上传上发送数据请求的流媒体下载方均处于流媒体下载周期内;这样,便会使得各个用于向流媒体上传方发送数据请求的流媒体下载方均处于工作状态,即,处于向流媒体上传方发送数据请求的状态,计算出的流媒体上传方相对于每个流媒体下载方的上传带宽会更加准确;避免了因在同一时间段内,存在流媒体下载方未处于流媒体下载周期内,所导致的该未处于流媒体下载周期内的流媒体下载方未向流媒体上传方发送数据请求,进而计算出的流媒体上传方相对于该流媒体下载方的上传带宽为0的情况的发生。

s1003、对所确定的各个上传带宽进行累加结果作为流媒体上传方的上传带宽。

比如,若确定用于向流媒体上传方发送数据请求的流媒体下载方的个数为3个,分别为流媒体下载方1、流媒体下载方2、和流媒体下载方3;并在同一时间段内,计算出流媒体上传方相对于流媒体下载方1的上传带宽为10kb/s,流媒体上传方相对于流媒体下载方2的上传带宽为5kb/s,流媒体上传方相对于流媒体下载方3的上传带宽为15kb/s;进而,流媒体上传方的上传带宽为10kb/s+5kb/s+15kb/s=30kb/s。

同样的,为了保证计算出的流媒体上传方的上传带宽的准确性,可在不限制流媒体上传方的上传吞吐率的情况下,执行本申请实施例提供的如图10所示的带宽测量方法,这样,计算出的流媒体上传方的上传带宽是更加接近于流媒体上传方的实际上传带宽的。

本申请实施例可基于计算出的流媒体上传方的上传带宽,实现对流媒体上传方的上传吞吐率的控制,通过对终端中的流媒体上传方的上传吞吐率的控制,可使得不会因流媒体上传方的上传吞吐率超过流媒体上传方的上传带宽而导致流媒体上传方所处终端中的其他app不能正常工作的情况的发生。

为了便于对本申请上述实施例提供的一种带宽测量方法的理解,现以数据响应为单位对流媒体上传方相对于流媒体下载方的上传带宽的测量方法进行详细介绍。其中,数据响应可以理解流媒体上传方响应接收到的由流媒体下载方发送的数据请求,并向流媒体下载方返回数据请求指示的数据块的过程。

可选的,图12为本申请实施例提供的一种数据响应示意图,如图12:

s(i):表示第i个数据响应,发送给流媒体下载方的数据块数目;

w(i):表示发送的s(i)个数据块,确认到达流媒体下载方,流媒体上传方需要等待接收的数据请求数目;其中,w(i)=comp(i)+s(i);其中,comp(i)表示截止到第i个数据请求,还没有确认到达的流媒体下载方的数据块数目;

t(i):表示第i个数据请求的到达时间戳;

e(i)=t(i+w(i))-t(i):表示确认所有s(i)到达下载方的时间;

bw(i)=s(i)/(e(i)-minrtt/2);其中,minrtt是第i个数据响应,发送给流媒体下载方的各个数据块的往返时延中的最小往返时延;bw(i)表示针对第i个数据请求作带宽测量,流媒体上传方相对于流媒体下载方的上传带宽。

在本申请实施例中,为了保证测量得到的流媒体上传方相对于流媒体下载方的上传带宽的准确性,可以使得如图12所示的数据响应示意图中的各个数据请求和数据响应是位于流媒体下载方的同一流媒体下载周期内。也就是说,流媒体下载方的一个流媒体下载周期内的数据响应发送给流媒体下载方的数据块数目单独进行计数,不与流媒体下载方中的其他流媒体下载周期中的数据响应发送给流媒体下载方的数据块数目进行累加计数;同样的,流媒体下载方的一个流媒体下载周期内的接收到的数据请求的数量也是单独计数,不与流媒体下载方中的其他流媒体下载周期中接收到的数据请求进行累加计数。

比如,流媒体下载方若存在连续的两个流媒体下载周期,则针对这两个流媒体下载周期中的每个流媒体下载周期而言,该流媒体下载周期中在接收到的第一个数据请求时,记录数据请求的数量为1,后续记录的数据请求的数量随着接收到的数据请求的增多而增多;针对接收到的第一数据请求进行数据响应(也就是在该流媒体下载周期中的第一数据响应)时,确定该数据响应发送给流媒体下载方的数据块的数量,并对该确定的数据块的数量进行记录,后续记录的数据块的数量随着数据响应向流媒体下载方发送的数据块的增多而增多。

可选的,针对一流媒体下载方的流媒体下载周期而言,确定流媒体上传方接收到的流媒体下载方的第一个数据请求,并将流媒体上传方接收到的流媒体下载方的数据请求的数量记录为1;流媒体上传方针对这第一个数据请求进行数据响应(此处的数据响应为流媒体上传方相对于流媒体下载方进行的第一个数据响应),向流媒体下载方发送3个数据块,则记录流媒体上传方向流媒体下载方发送的数据块的数量为3;流媒体下载方每当接收到一个数据块后,便会最多向流媒体上传方返回一个数据请求(为了便于计算,在本申请实施例中,默认流媒体下载方每当接收到流媒体上传方发送的一个数据块,便会向流媒体上传方返回一个数据请求),相应的,流媒体上传方在接收到流媒体下载方返回的数据请求后,会将记录的流媒体上传方接收到的流媒体下载方发送的数据请求的数量修改为2;进一步的,流媒体上传方会根据此次接收到的数据请求进行数据响应(此处的数据响应为流媒体上传方相对于流媒体下载方进行的第二个数据响应),向流媒体下载方发送2个数据块,则此时将记录的流媒体上传方发送给流媒体下载方的数据块的数量修改为5(此处的5为流媒体上传方的第一个数据响应向流媒体下载方返回的3个数据块,和流媒体上传方的第二个数据响应向流媒体下载方返回的2个数据块的和);以此类推。。

在本申请实施例中,优选的,不仅可以对第i个数据请求作带宽测量,还可以对第i个数据响应向流媒体下载方发送的至少一个数据块中的任意一个或多个数据块进行带宽测量。

可选的,当基于本申请实施例提供的带宽测量方法对流媒体上传方进行的第i个数据响应向流媒体下载方发送的至少一个数据块中的任意一个或多个数据块进行带宽测量时,只需要确定进行带宽测量的第i个数据响应中的数据块数量,并将上述实施例中的s(i)的值修改为所确定的第i个数据响应中的用于进行带宽测量的数据块数量即可。这样,便可近似计算出根据流媒体上传方的第i个数据响应向流媒体下载方返回的数据块中的部分数据块,计算出的流媒体上传方相对于流媒体下载方的测量带宽。

进一步的,如果需要更加精确的根据流媒体上传方的第i个数据响应向流媒体下载方发送的数据块中的用于带宽测量的数据块,计算出流媒体上传方相对于流媒体下载方的上传带宽;则可以确定位于第i个数据响应向流媒体下载方发送的数据块中的、在用于带宽测量的数据块之前发出的数据块的数量;并将上述w(i)=comp(i)+s(i)公式修改为w(i)=comp(i)+确定的数量+用于带宽测量的数据块的数量,此处的确定的数量即为上述确定的位于第i个数据响应向流媒体下载方发送的数据块中的、在用于带宽测量的数据块之前发出的数据块的数量。若第i个数据响应向流媒体下载方发送的数据块的个数为5个,且这5个数据块依次发出,这时,如果用于带宽测量的数据块为这5个数据块中的第3和第4个被发出的数据块,则这5个数据块中的在用于带宽测量的数据块之前发出的数据块的数量为2个,用于带宽测量的数据块的数量为2个,公式w(i)=comp(i)+2+2。

基于本申请实施例提供的一种对第i个数据请求进行流媒体上传方相对于流媒体下载方的上传带宽的方法,使得本申请实施例提供的一种带宽测量方法更加清楚、便于理解。

为了便于对本申请实施例提供的一种带宽测量方法的进一步理解,现提供又一种带宽测量方法,请参见图13。如图13所示的带宽测量方法主要从应用实施角度进行说明,具体如下:

流媒体上传方在向流媒体下载方发送数据开始之前,初始化n组计数器counter[n],每组计数器对应一个数据请求的带宽测量,每组计数器均包含waitreq,arrivereq,sendpkt,sendbytes,sendtimestamp这五个变量,其中,sendbytes初始化为与数据请求对应的数据响应发出的数据块的字节长度;sendtimestamp初始化为与数据请求对应的数据响应开始发出数据块的时间戳;sendpkt初始化为r;waitreq表示若确认与数据请求对应的数据响应发出的数据块均成功到达流媒体下载方,需要等待的后续数据请求数目;arrivereq表示流媒体已经接收到的后续数据请求数目;其中,将流媒体上传方接收数据请求进行数据响应,向流媒体下载方发送数据块开始,流媒体上传方接收到的由该流媒体下载方发送的数据请求可以认为是后续数据请求。

针对第i个数据请求发送r个数据块,counter[i]的更新方式如下:

第一步,初始化计数器。

counter[i].waitreq=counter[latest].waitreq-counter[latest].arrivereq+r,counter[i].arrivereq=0,其中,counter[lastest]为上一个用于带宽测量的数据请求,counter[latest].waitreq-counter[latest].arrivereq表示确认响应上一个用于带宽测量的数据请求发送的所有数据块到达流媒体下载方还需要等待的数据请求数目,r是响应该次用于带宽测量的数据请求新发送的数据块数目;

如果无上一个用于带宽测量的数据请求,即第i个数据请求为第1个用于带宽测量的数据请求,令counter[i].waitreq=r,counter[i].arrivereq=0。

第二步,更新计数器。

流媒体上传方每收到一个新的数据请求,遍历counter[n],对waitreq非0的计数器counter[i],如果arrivereq<waitreq-sendpkt,表示该新的数据请求是响应第i个数据请求之前发送的数据块触发的数据请求,arrivereq加1;如果arrivereq>=waitreq-sendpkt,比较当前时刻curtimestamp与counter[i].sendtimestamp,两者之差大于预设的mininverval值,认为该新的数据请求是counter[i]触发的数据请求,arrivereq加1;否则,认为该新的数据请求是counter[i]同时发送过来的数据请求,并非counter[i]触发的数据请求,arrivereq值不变。

可选的,mininverval是一个预设的较小的值,表示连续的数据请求到达流媒体上传方的时间间隔,可以设置为10ms。以上仅仅是本申请实施例提供的mininverval的优选方式,有关mininverval的具体内容,发明人可根据自己的需求任意设置,再此不做限定。

第三步,计算第i个数据请求流媒体上传方相对于流媒体下载方的上传带宽。

如果arrivereq>=waitreq,则表示响应第i个数据请求发送的数据块已经到达流媒体下载方,记录当前时刻curtimestamp,

第i个数据请求流媒体上传方相对于流媒体下载方的上传带宽的宽测量值为bw(i);其中,bw(i)=sendbytes/(curtimestamp-sendtimestamp)。

第四步,对bw作平滑滤波。

进一步的,本申请实施例为了保证测量到的流媒体上传方相对于流媒体下载方的上传带宽的准确性,可对第i个数据请求流媒体上传方相对于流媒体下载方的上传带宽进行平滑滤波,得到流媒体上传方相对于流媒体下载方的最终上传带宽。

其中,流媒体上传方相对于流媒体下载方的最终上传带宽为bw;其中,bw=f(bw(1),bw(2),...,bw(n)),f是关于bw(1),bw(2),...,bw(n)的平滑滤波函数。

可选的,作为一种实施例,bw可以初始化为0,后续每测得一个流媒体上传方相对于流媒体下载方的上传带宽bw(i),将bw(i)与bw比较,若bw(i)小于等于bw,不更新bw;若bw(i)大于bw,更新bw为(bw+bw_i)/2。

以上提供了一种本申请实施例提供的带宽测量方法的具体实施方式,以便于本领域技术人员对本申请实施例提供的一种带宽测量方法的理解。

本申请提供一种带宽测量方法、终端、服务器,通过确定流媒体下载方的流媒体下载周期内,流媒体上传方向流媒体下载方发送的至少一个数据块中的、用于带宽测量的目标数据块;确定第一数量和第二数量,第一数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方向流媒体下载方发出的数据块的数量;第二数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方接收到的由流媒体下载方发送的数据请求的数量;基于第一数量和第二数量计算第三数量(第三数量为若确定目标数据块成功发送给流媒体下载方,流媒体上传方需等待接收的由流媒体下载方发送的数据请求的数量)的方式;便可根据目标数据块的字节、流媒体上传方开始发送目标数据块的系统时间,以及流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间,计算出流媒体上传方相对于流媒体下载方的上传带宽。

下面对本发明实施例提供的带宽测量装置进行介绍,下文描述的带宽测量装置可认为是,服务器/终端为实现本发明实施例提供的带宽测量方法,所需设置的程序模块。下文描述的带宽测量装置内容,可与上文描述的带宽测量方法内容相互对应参照。

图14为本申请实施例提供的一种带宽测量装置的结构示意图。

如图14所示,该装置包括:

目标数据块确定单元141,用于确定流媒体下载方的流媒体下载周期内,流媒体上传方响应流媒体下载方发送的数据请求向流媒体下载方发送的至少一个数据块中的、用于带宽测量的目标数据块;

数量确定单元142,用于确定第一数量和第二数量,第一数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方向流媒体下载方发出的数据块的数量;第二数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方接收到的由流媒体下载方发送的数据请求的数量;

数量计算单元143,用于基于第一数量和第二数量计算第三数量,第三数量为若确定目标数据块成功发送给流媒体下载方,流媒体上传方需等待接收的由流媒体下载方发送的数据请求的数量;

第一带宽计算单元144,用于根据目标数据块的字节、流媒体上传方开始发送目标数据块的系统时间,以及流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间,计算流媒体上传方相对于流媒体下载方的上传带宽。

在本申请实施例中,优选的,目标数据块的个数为至少一个,该装置还包括第二带宽计算单元,第二带宽计算单元,包括:

确定单元,用于确定分别针对每个目标数据块的流媒体上传方相对于流媒体下载方的上传带宽;

平滑滤波单元,用于对所确定的各个流媒体上传方相对于流媒体下载方的上传带宽进行平滑滤波,得到流媒体上传方相对于流媒体下载方的最终上传带宽。

在本申请实施例中,优选的,平滑滤波单元,包括:

权重确定单元,用于分别获取每个目标数据块的权重;

第一计算单元,用于计算目标数据块的权重与针对目标数据块的流媒体上传方相对于流媒体下载方的上传带宽的乘积结果;

第二计算单元,用于将计算到的各个乘积结果的累加结果,确定为流媒体上传方相对于流媒体下载方的最终上传带宽。

在本申请实施例中,优选的,第一带宽计算单元,包括:

往返时延确定单元,用于确定目标数据块中的每个数据块的往返时延,数据块的往返时延用于指示数据块的第一时间和第二时间之间的时间间隔,第一时间为流媒体上传方开始向流媒体下载方发送数据块的系统时间,第二时间为流媒体上传方接收到流媒体下载方接收到数据块后返回的数据请求的系统时间;

第三计算单元,用于根据目标数据块中的各个数据块的往返时延,计算目标往返时延;

第四计算单元,用于基于目标往返时延、目标数据块的字节、流媒体上传方开始发送目标数据块的系统时间,以及流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间,计算流媒体上传方相对于流媒体下载方的上传带宽。

在本申请实施例中,优选的,第四计算单元,包括:

目标时间间隔计算单元,用于确定流媒体上传方开始发送目标数据块的系统时间,以及流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间之间的目标时间间隔;

差值计算单元,用于计算目标时间间隔与目标往返时延的一半之间的差值;

第四计算子单元,用于将目标数据块的字节长度除以差值所得到的结果,作为计算到的流媒体上传方相对于流媒体下载方的上传带宽。

在本申请实施例中,优选的,数量计算单元,具体用于:获取第一数量减去目标数量的第一结果,目标数量为第二数量或目标数量为第二数量与1的和;将第一结果与目标数据块包括的数据块的数量的和,确定为第三数量。

进一步的,本申请实施例提供的一种带宽测量装置还包括:第三带宽计算单元,该第三带宽计算单元,包括:

流媒体下载方确定单元,用于确定用于向流媒体上传方发送数据请求的各个流媒体下载方;

第五计算单元,用于在同一时间段内,计算流媒体上传方分别相对于每个流媒体下载方的上传带宽;

第三带宽计算子单元,用于基于流媒体上传方分别相对于每个流媒体下载方的上传带宽,计算流媒体上传方的上传带宽。

进一步的,本发明实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,程序用于:

确定流媒体下载方的流媒体下载周期内,流媒体上传方响应流媒体下载方发送的数据请求向流媒体下载方发送的至少一个数据块中的、用于带宽测量的目标数据块;

确定第一数量和第二数量,第一数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方向流媒体下载方发出的数据块的数量;第二数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方接收到的由流媒体下载方发送的数据请求的数量;

基于第一数量和第二数量计算第三数量,第三数量为若确定目标数据块成功发送给流媒体下载方,流媒体上传方需等待接收的由流媒体下载方发送的数据请求的数量;

根据目标数据块的字节、流媒体上传方开始发送目标数据块的系统时间,以及流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间,计算流媒体上传方相对于流媒体下载方的上传带宽。

可选的,程序的细化功能和扩展功能可参照上文描述。

本申请提供一种带宽测量装置及存储介质,通过确定流媒体下载方的流媒体下载周期内,流媒体上传方向流媒体下载方发送的至少一个数据块中的、用于带宽测量的目标数据块;确定第一数量和第二数量,第一数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方向流媒体下载方发出的数据块的数量;第二数量为流媒体下载周期内,流媒体上传方向流媒体下载方发送目标数据块之前,流媒体上传方接收到的由流媒体下载方发送的数据请求的数量;基于第一数量和第二数量计算第三数量(第三数量为若确定目标数据块成功发送给流媒体下载方,流媒体上传方需等待接收的由流媒体下载方发送的数据请求的数量)的方式;便可根据目标数据块的字节、流媒体上传方开始发送目标数据块的系统时间,以及流媒体上传方从发送目标数据块开始到接收到第三数量个数据请求的系统时间,计算出流媒体上传方相对于流媒体下载方的上传带宽。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1