可用带宽的探测方法及装置转让专利

申请号 : CN201611144916.X

文献号 : CN108234224B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王晓海郭亮张轲朱文涛

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明公开了一种可用带宽的探测方法及装置,属于互联网技术领域。包括:每隔预设时间周期接收发送端发送的第一探测数据包;计算当前时间周期内第一探测数据包的单向时延的时延值;当确定单向时延的时延值发生突变时,将根据第一探测数据包的数据量计算得到的接收速率作为当前时间周期内的可用带宽。本发明并不依赖于多媒体数据包,而基于专门用于探测可用带宽的第一探测数据包进行探测,由于该第一探测数据包并不包含音视频通信的相关数据,丢失不会影响通信质量,且网络内每种数据包的丢包概率相同,当网络拥塞时,因第一探测数据包的存在,使得所丢失的多媒体数据包相对现有技术要少,明显地提高了音视频通信质量,因此,探测方法更加合理。

权利要求 :

1.一种可用带宽的探测方法,其特征在于,所述方法包括:

在多媒体数据包的接收过程中,每隔预设时间周期接收发送端发送的第一探测数据包;

获取当前时间周期内第一探测数据包的时间戳信息;

根据所述时间戳信息和与所述发送端的系统时钟差,计算所述当前时间周期内第一探测数据包的单向时延的时延值;

如果确定所述当前时间周期内第一探测数据包的单向时延的时延值发生突变,则获取根据第一探测数据包的数据量计算得到的接收速率;

将所述接收速率确定为当前时间周期内的可用带宽;

向策略服务器发送通知消息,所述通知消息用于触发所述策略服务器调整所述发送端在下一时间周期内发送多媒体数据包的发送策略。

2.根据权利要求1所述的方法,其特征在于,所述根据所述时间戳信息和与所述发送端的系统时钟差,计算所述当前时间周期内第一探测数据包的单向时延的时延值之前,还包括:向所述发送端发送第二探测数据包,并记录所述第二探测数据包的发送时间;

当接收到确认信息时,记录所述第二探测数据包的接收时间,所述确认信息由所述发送端在接收到所述第二探测数据包时发送,所述确认信息包括所述发送端接收所述第二探测数据包的接收时间;

根据所述第二探测数据包的发送时间和所述第二探测数据包的接收时间,计算所述第二探测数据包的往返时延;

根据所述往返时延、所述第二探测数据包的发送时间及所述发送端接收所述第二探测数据包的接收时间,计算与所述发送端的系统时钟差。

3.根据权利要求1所述的方法,其特征在于,所述时间戳信息包括所述当前时间周期内第一探测数据包的发送时间和接收时间;

所述根据所述时间戳信息和与所述发送端的系统时钟差,计算所述当前时间周期内第一探测数据包的单向时延的时延值,包括:计算所述当前时间周期内第一探测数据包的接收时间与发送时间及与所述发送端的系统时钟差的差值,得到所述当前时间周期内第一探测数据包的单向时延的原始时延值;

将所述单向时延的原始时延值,作为所述当前时间周期内第一探测数据包的单向时延的时延值。

4.根据权利要求1所述的方法,其特征在于,所述时间戳信息包括所述当前时间周期内第一探测数据包的发送时间和接收时间;

所述根据所述时间戳信息和与所述发送端的系统时钟差,计算所述当前时间周期内第一探测数据包的单向时延的时延值,包括:计算所述当前时间周期内第一探测数据包的接收时间与发送时间及与所述发送端的系统时钟差的差值,得到所述当前时间周期内第一探测数据包的单向时延的原始时延值,所述原始时延值为传输时延值和排队时延值之和,所述排队时延值包括噪声时延值和均值时延的观察时延值;

根据瓶颈带宽和多媒体数据包的数据量,计算所述传输时延值;

根据所述原始时延值和所述传输时延值,计算所述排队时延值;

通过滤波器去除所述排队时延值中的噪声时延值,得到所述均值时延的观察时延值;

根据所述均值时延的观察时延值、上一时间周期的均值时延的预测时延值及所述滤波器在当前时间周期的增益值,计算所述均值时延的预测时延值;

将所述均值时延的预测时延值和所述传输时延值之和,作为所述当前时间周期内第一探测数据包的单向时延的时延值。

5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:

计算所述当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差,所述平均单向时延的时延值根据当前时间周期之前的历史第一探测数据包的单向时延的时延值确定;

如果所述当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差大于指定阈值,则确定所述当前时间周期内第一探测数据包的单向时延的时延值发生突变。

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

如果所述当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差大于所述指定阈值,则确定所述当前时间周期内的网络状态为过度使用状态,所述过度使用状态用于触发所述发送端在下一时间周期减小对多媒体数据包的发送速率;

如果所述当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差小于所述指定阈值,则确定所述当前时间周期内的网络状态为未充分使用状态,所述未充分使用状态用于触发所述发送端在下一时间周期增大对多媒体数据包的发送速率。

7.根据权利要求1所述的方法,其特征在于,所述当前时间周期内第一探测数据包包括多媒体冗余数据,所述方法还包括:如果检测到所述当前时间周期内接收到的多媒体数据包丢失,根据所述多媒体冗余数据包及未丢失的多媒体数据包,对丢失的媒体数据包进行恢复。

8.一种可用带宽的探测装置,其特征在于,所述装置包括:

接收模块,用于在多媒体数据包的接收过程中,每隔预设时间周期接收发送端发送的第一探测数据包;

第一获取模块,用于获取当前时间周期内第一探测数据包的时间戳信息;

第一计算模块,用于根据所述时间戳信息和与所述发送端的系统时钟差,计算所述当前时间周期内第一探测数据包的单向时延的时延值;

第二获取模块,用于当确定所述当前时间周期内第一探测数据包的单向时延的时延值发生突变时,获取根据第一探测数据包的数据量计算得到的接收速率;

第一确定模块,用于将所述接收速率确定为当前时间周期内的可用带宽;

第二发送模块,用于向策略服务器发送通知消息,所述通知消息用于触发所述策略服务器调整所述发送端在下一时间周期内发送多媒体数据包的发送策略。

9.根据权利要求8所述的装置,其特征在于,所述装置还包括:

第一发送模块,用于向所述发送端发送第二探测数据包;

第一记录模块,用于记录所述第二探测数据包的发送时间;

第二记录模块,用于当接收到确认信息时,记录所述第二探测数据包的接收时间,所述确认信息由所述发送端在接收到所述第二探测数据包时发送,所述确认信息包括所述发送端接收所述第二探测数据包的接收时间;

第二计算模块,用于根据所述第二探测数据包的发送时间和所述第二探测数据包的接收时间,计算所述第二探测数据包的往返时延;

第三计算模块,用于根据所述往返时延、所述第二探测数据包的发送时间及所述发送端接收所述第二探测数据包的接收时间,计算与所述发送端的系统时钟差。

10.根据权利要求8所述的装置,其特征在于,所述时间戳信息包括所述当前时间周期内第一探测数据包的发送时间和接收时间;

所述第一计算模块,用于计算所述当前时间周期内第一探测数据包的接收时间与发送时间及与所述发送端的系统时钟差的差值,得到所述当前时间周期内第一探测数据包的单向时延的原始时延值;将所述单向时延的原始时延值,作为所述当前时间周期内第一探测数据包的单向时延的时延值。

11.根据权利要求8所述的装置,其特征在于,所述时间戳信息包括所述当前时间周期内第一探测数据包的发送时间和接收时间;

所述第一计算模块,用于计算所述当前时间周期内第一探测数据包的接收时间与发送时间及与所述发送端的系统时钟差的差值,得到所述当前时间周期内第一探测数据包的单向时延的原始时延值,所述原始时延值为传输时延值和排队时延值之和,所述排队时延值包括噪声时延值和均值时延的观察时延值;根据瓶颈带宽和多媒体数据包的数据量,计算所述传输时延值;根据所述原始时延值和所述传输时延值,计算所述排队时延值;通过滤波器去除所述排队时延值中的噪声时延值,得到所述均值时延的观察时延值;根据所述均值时延的观察时延值、上一时间周期的均值时延的预测时延值及所述滤波器在当前时间周期的增益值,计算所述均值时延的预测时延值;将所述均值时延的预测时延值和所述传输时延值之和,作为所述当前时间周期内第一探测数据包的单向时延的时延值。

12.根据权利要求10或11所述的装置,其特征在于,所述装置还包括:第四计算模块,用于计算所述当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差,所述平均单向时延的时延值根据当前时间周期之前的历史第一探测数据包的单向时延的时延值确定;

第二确定模块,用于当所述当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差大于指定阈值时,确定所述当前时间周期内第一探测数据包的单向时延的时延值发生突变。

13.根据权利要求12所述的装置,其特征在于,所述装置还包括:

第三确定模块,用于当所述当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差大于所述指定阈值时,确定所述当前时间周期内的网络状态为过度使用状态,所述过度使用状态用于触发所述发送端在下一时间周期减小对多媒体数据包的发送速率;当所述当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差小于所述指定阈值时,确定所述当前时间周期内的网络状态为未充分使用状态,所述未充分使用状态用于触发所述发送端在下一时间周期增大对多媒体数据包的发送速率。

14.根据权利要求8所述的装置,其特征在于,所述当前时间周期内第一探测数据包包括多媒体冗余数据,所述装置还包括:恢复模块,用于当检测到所述当前时间周期内接收到的多媒体数据包丢失时,根据所述多媒体冗余数据包及未丢失的多媒体数据包,对丢失的媒体数据包进行恢复。

说明书 :

可用带宽的探测方法及装置

技术领域

[0001] 本发明涉及互联网技术领域,特别涉及一种可用带宽的探测方法及装置。

背景技术

[0002] 随着互联网技术的发展及网络业务的拓展,互联网上即时应用的数量急剧增加,用户享受即时应用带来便利的同时,也对即时应用的服务质量提出了更高的要求。然而,不断增加的即时应用,增加了网络负担,导致网络设备负荷运转。因此,需要对反映网络传输能力的可用带宽进行探测,从而根据可用带宽调整服务策略,进而提高即时应用的服务质量。
[0003] 在借助即时应用进行音视频通信的场景下,目前主要采用PRM(Probing Rate Model,探测包速率模型),对发送端和接收端之间的传输链路的可用带宽进行探测,具体探测过程为:发送端采用线性增加发送速率的方式周期性地向接收端发送多媒体数据包,接收端根据单位时间内接收到的多媒体数据包的数据量,计算接收速率,并根据多媒体数据包的发送时间和接收时间,计算多媒体数据包从发送端到接收端的单向时延,如果单向时延小于预设数值,则触发发送端增大下一时间周期内对多媒体数据包的发送速率,如果单向时延大于预设数值,则将根据该多媒体数据包计算得到的接收速率,作为当前时间周期内的可用带宽。
[0004] 由于现有技术基于多媒体数据包对可用带宽进行探测,且在多媒体数据包的单向时延增大时能够探测到可用带宽,当多媒体数据包单向时延增大时网络发生拥塞,此时大量多媒体数据包已经出现丢包现象,在音视频通信过程中,丢失的多媒体数据包会引起语音卡顿、丢字、变调无声等变化,进而降低音视频通信质量,因此,现有的探测方法不够合理。

发明内容

[0005] 为了解决现有技术的问题,本发明实施例提供了一种可用带宽的探测方法及装置。所述技术方案如下:
[0006] 一方面,提供了一种可用带宽的探测方法,所述方法包括:
[0007] 在多媒体数据包的接收过程中,每隔预设时间周期接收发送端发送的第一探测数据包;
[0008] 获取当前时间周期内第一探测数据包的时间戳信息;
[0009] 根据所述时间戳信息和与所述发送端的系统时钟差,计算所述当前时间周期内第一探测数据包的单向时延的时延值;
[0010] 如果确定所述当前时间周期内第一探测数据包的单向时延的时延值发生突变,则获取根据第一探测数据包的数据量计算得到的接收速率;
[0011] 将所述接收速率确定为当前时间周期内的可用带宽。
[0012] 另一方面,提供了一种可用带宽的探测装置,所述装置包括:
[0013] 接收模块,用于在多媒体数据包的接收过程中,每隔预设时间周期接收发送端发送的第一探测数据包;
[0014] 第一获取模块,用于获取当前时间周期内第一探测数据包的时间戳信息;
[0015] 第一计算模块,用于根据所述时间戳信息和与所述发送端的系统时钟差,计算所述当前时间周期内第一探测数据包的单向时延的时延值;
[0016] 第二获取模块,用于当确定所述当前时间周期内第一探测数据包的单向时延的时延值发生突变时,获取根据第一探测数据包的数据量计算得到的接收速率;
[0017] 第一确定模块,用于将所述接收速率确定为当前时间周期内的可用带宽。
[0018] 本发明实施例提供的技术方案带来的有益效果是:
[0019] 本发明并不依赖于多媒体数据包,而基于专门用于探测可用带宽的第一探测数据包进行探测,由于该第一探测数据包并不包含音视频通信的相关数据,丢失不会影响通信质量,且网络内每种数据包的丢包概率相同,当网络拥塞时,因第一探测数据包的存在,使得所丢失的多媒体数据包相对现有技术要少,明显地提高了音视频通信质量,因此,探测方法更加合理。

附图说明

[0020] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021] 图1是现有技术中一种基于探测包速率模型的可用带宽探测原理的示意图;
[0022] 图2是现有技术中一种数据包网络传输抖动计算的示意图;
[0023] 图3是本发明一个实施例提供的一种可用带宽的探测方法所涉及的实时环境的示意图;
[0024] 图4是本发明另一个实施例提供的一种可用带宽的探测方法的流程图;
[0025] 图5是本发明另一个实施例提供的一种数据冗余编码与恢复示意图;
[0026] 图6是本发明另一个实施例提供的一种自适应滤波器仿真效果的示意图;
[0027] 图7是本发明另一个实施例提供的一种可用带宽的探测装置的结构示意图;
[0028] 图8示出了本发明实施例所涉及的可用带宽的探测终端的结构示意图。

具体实施方式

[0029] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0030] 随着互联网技术的发展,网络规模不断扩大,互联网上即时应用的数量急剧增加,与此同时网络资源的需求量也飞速增加。然而,不断增加的即时应用,增加了网络负担,导致网络设备负荷运转。为了提升网络性能,提高用户的服务质量,可对网络带宽进行探测。
[0031] 根据所表征的数据传输能力,网络带宽分为链路带宽、瓶颈带宽及可用带宽。其中,链路带宽(Link Capatity)是指从发送端到接收端之间的传输链路上的最大发送速率,该链路带宽实际上为传输链路中最宽子链路所能提供的最大带宽;瓶颈带宽(也称为路径带宽)是指从发送端到接收端之间的传输链路上的最小发送速率,该瓶颈带宽实际上为传输链路中最窄子链路所能提供的最大带宽;可用带宽(也称为路径可用带宽)是指在不造成网络拥塞的前提下,从发送端到接收端之间的传输链路的最大发送速率,该可用带宽实际上为传输链路中最窄子链路上能够使用的最大带宽,该可用带宽等于瓶颈带宽与背景流带宽之差。由于可用带宽相对链路带宽和瓶颈带宽更能体现传输链路的网络传输能力,在对网络带宽进行探测时,主要是对可用带宽进行探测。
[0032] 目前主要基于PGM(Probing Gap Model,探测包间隔模型)和PRM对可用带宽进行探测,以采用PRM进行探测为例。PRM实际上为一种基于自拥塞原理的可用带宽探测方法,通过向网络中发送大量的数据包以制造网络拥塞,从而实现对可用带宽的探测。图1为采用PRM对可用带宽进行探测的探测原理的示意图,其中,横轴表示数据包的发送速率,纵轴表示数据包的单向时延,由图1可知,对于一条由发送端到接收端的传输链路,如果发送端发送数据包的发送速率R(n)小于等于可用带宽A,网络未发生拥塞,接收端接收数据包的接收速率与发送速率相等,此时数据包的单向延时比较稳定,接近一个固定的常量;如果发送端发送数据包的发送速率R(n)大于可用带宽A,网络发生拥塞,数据包因需在网络内排队,导致接收端接收数据包的接收速率小于发送速率,此时数据包的单向延时增大,大于固定的常量。如果将单向延时突然增大的转折点称为延时突变转折点,则延时突变转折点所对应的接收速率,即为网络的可用带宽。
[0033] 为确保数据包能够顺利地从发送端传输到接收端,在整个传输链路上会设置有多个路由器,如果将传输链路上的每个路由器作为一个节点,则根据节点数可将传输链路分为多个子链路,多个子链路共同构成了从发送端到接收端之间的完整传输链路,相应地,数据包在多个子链路上的时延之和,就构成了传输链路上的单向时延。
[0034] 通常数据包在传输链路上的单向时延可以分为三部分,分别为:1)、传输时延,表示数据包在每个子链路上理想的传输时间,可用tt表示,每个子链路上的传输时延其中,i表示第i条子链路,L(i)表示数据包的数据量,C(i)表示第i条子链路上的瓶颈带宽;2)、传播时延,表示数据包进出每个子链路上交换机的时间,可用td表示,该td为常量,由于该传播时延较短,在实际计算时一般可忽略;3)、排队时延,表示数据包在网络中排队的时间,可用tq表示,,因此,数据包在传输链路上的单向时延为:
[0035] 在互联网技术领域,网络带宽预测方法的本质都是基于数据包传输时延特征进行分析,为了更好地表示相邻两个数据包在传输过程中单向延时的变化程度,引入了网络传输抖动程度(Jitter)这一参数。如果网络传输抖动程度为零,说明相邻两个数据包的单向时延相等,数据包的发送速率小于可用带宽,当前网络并未出现拥塞现象,此时发送端可继续增大数据包的发送速率,以提高服务质量;如果网络传输抖动程度不为零,说明相邻两个数据包的单向时延不相等,当前网络已经出现拥塞,此时发送端需要降低数据包的发送速率,以提高服务质量。
[0036] 在实际应用中,网络传输抖动程度可根据相邻两个数据包的时间戳信息计算得到,其中,数据包的时间戳信息包括数据包的发送时间和接收时间。图2示出了数据包网络传输抖动计算的示意图,参见图2,对于相邻两个数据包Pk+n和Pk+n+1,发送端发送数据包Pk+n的发送时间为TSn,发送端发送数据包Pk+n+1的发送时间为TSn+1,接收端接收数据包Pk+n的接收时间为TRn,接收端接收数据包Pk+n+1的接收时间为TRn+1。由于发送端发送两个数据包的时间间隔ΔTreceived为TSn+1-TSn,接收端接收两个数据包的时间间隔ΔTsend为TRn+1-TRn,因此,可得到数据包Pk+n与数据包Pk+n+1之间的网络传输抖动程度Jitter=ΔTreceived-ΔTsend=(TRn+1-TRn)-(TSn+1-TSn)。
[0037] 基于传输链路上单向时延的表示形式 及网络传输抖动程度的计算公式Jitter=(TRi+1-TRi)-(TSi+1-TSi),以传输链路中的第i条子链路为例,则下面将计算发送端第n-1次发送的数据包和第n次发送的数据包的网络抖动程度,在计算时假设第i条子链路上的瓶颈带宽为定值C,则具体计算过程为:
[0038] 发送端第n-1次发送的数据包和第n次发送的数据包的单向延时为:ΔTsend=Ts(n)-Ts(n-1);
[0039] 接收端第n-1次接收的数据包和第n次接收的数据包的单向延时为:ΔTreceived=Tr(n)-Tr(n-1);
[0040] 第n-1次发送的数据包和第n次发送的数据包的网络传输抖动程度为:
[0041]
[0042]
[0043] 对于数据量大小相对均匀的数据包, 为0,因此,Jitter(i)=Δtq,也即是相邻两个数据包的网络传输抖动程度仅取决于数据包在网络传输过程中的排队时延的变化。
[0044] 在基于即时应用进行音视频通信的场景下,为了给用户提供良好的通信质量,现有技术基于PRM原理通过逐渐增大多媒体数据包的发送速率来探测当前网络的可用带宽,如果接收端计算出多媒体数据包的单向时延突然增加,且大于常量,则将根据该多媒体数据包计算得到的接收速率,作为当前网络的可用带宽。在实际应用中,当发送速率接近或大于可用带宽时,网络会出现拥塞现象,导致多媒体数据包出现丢包现象,在音视频通信过程中,表现为语音卡顿、丢字、变调、无声等,用户体验较差。
[0045] 为了解决现有技术存在问题,本发明实施例提供了一种可用带宽的探测方法,图3为可用带宽的探测方法所涉及的实施环境,参见图3,该实施环境包括:发送端301、接收端302及策略服务器303。
[0046] 其中,发送端301和接收端302可以为智能手机、平板电脑、笔记本电脑等具有网络通信功能的设备,本实施例不对发送端301和接收端302的产品类型作具体的限定。发送端301和接收端302可具有数据传输能力,基于数据传输能力,发送端301和接收端302可彼此传输数据。发送端301和接收端302还可具有计时能力,基于计时能力,发送端301每发送一个数据包,将标记该数据包的发送时间;接收端302每接收到一个数据包,将标记接收该数据包的接收时间。发送端301和接收端302还可具有计算处理能力,基于计算处理能力,发送端301能够采用一定的策略向接收端302发送数据包,并在接收到策略服务器发送的控制指令后,调整数据包的发送策略;接收端302能够根据接收到的数据包,计算数据包的接收速率及当前网络的可用带宽。当然,除了具有网络通信能力、数据传输能力、计时能力、计算处理能力外,发送端301和接收端302还可以具有其他能力,本发明实施例不再进行一一说明。
另外,为了满足用户的音视频通信需求,发送端301和接收端302中安装了多种即时应用。
[0047] 策略服务器303用于根据接收端302发送的通知消息,调整发送端301发送多媒体数据包的发送策略,该策略服务器303可以为一台计算设备,还可以为多台计算设备构成的集群,在实际应用中可根据处理能力确定。
[0048] 上述发送端301与策略服务器303之间可通过有线网络或无线网络进行通信,接收端302与策略服务器303之间可通过有线网络或无线网络进行通信。
[0049] 本发明实施例提供了一种可用带宽的探测方法,以发送端和接收端执行本方法为例,参见图4,本发明实施例提供的方法流程包括:
[0050] 401、在多媒体数据包的发送过程中,发送端每隔预设时间周期向接收端发送第一探测数据包。
[0051] 在发送端和接收端进行音视频通信的场景下,为了改善接收端侧用户的通信质量,发送端在每隔第一时间周期向接收端发送多媒体数据包的过程中,还将每隔预设时间周期向接收端发送第一探测数据包,从而通过计算第一探测数据包的单向时延,探测当前网络的可用带宽。其中,第一探测数据包可以为网络带宽上限探测数据包(Data Probe)等。在对可用带宽的探测过程中,为了尽可能地避免多媒体数据包出现丢包,第一时间周期应小于预设时间周期,该第一时间周期可以40ms(毫秒)、50ms等,该预设时间周期可以为2秒、
3秒等。
[0052] 在本发明实施例中,发送端每发送一个数据包,发送端都会根据系统时钟,为发送的数据包标记上一个发送时间,接收端每接收一个数据包,接收端都会根据系统时钟,为接收的数据包标记上一个接收时间,而发送端和接收端为数据包所标记的时间直接影响着该数据包的单向时延的准确性。由于目前发送端和接收端的系统时钟一般以震荡电路或者石英钟为基础,而震荡电路或石英钟一天的误差可能达到数秒,这样经过一段时间的积累发送端和接收端的系统时钟将出现较大的偏差,然而,单向时延的数量级为毫秒级的,因而在对可用带宽的探测过程中,发送端和接收端的系统时钟同步至关重要。为此,在多媒体数据包的发送过程中,发送端还将每隔第二时间周期向接收端发送第二探测数据包,该第二探测数据包可以为主机系统时钟差探测包(Align Probe)等,主要用于探测发送端和接收端的系统时钟差。由于发送端和接收端的系统时钟并不会实时变化,因而为了避免增加网络负担,第二探测数据包的发送时间周期可大于第一探测数据包的发送时间周期,在实际发送过程中,第二探测数据包的发送时间周期可以10s、11s等。
[0053] 由上述内容可知,在音视频通信过程中,发送端会向接收端发送三种类型的数据包,分别为多媒体数据包、第一探测数据包及第二探测数据包,为了避免不同类型的数据包彼此干扰,发送端可采用独立的线程并行周期性地发送上述三种类型的数据包。为了便于接收端接收到上述三种数据包后,能够将上述三种数据包区分开来,本发明实施例还将为上述三种数据包设置不同的数据包类型标识,并将为每种数据包所设置的数据包类型标识添加到每种数据包的头部,因此,当接收端接收到上述三种数据包时,可从接收到的数据包的头部获取数据包类型标识,进而根据数据包类型标识,确定出不同类型的数据包,进而采用不同的处理方式对不同数据包进行处理。
[0054] 需要说明的是,由于本发明实施例对可用带宽进行探测的主要目的是通过调整发送端发送多媒体数据包的发送速率,提高接收端用户的通信质量,而当发送端发送多媒体数据包的发送速率、发送第一探测数据包的发送速率、发送第二探测数据包的发送速率均不断变化时,将很难实现对发送端发送多媒体数据包的发送速率进行调节,为此,本发明实施例规定第一探测数据包的发送速率和第二探测数据包的发送速率固定不变,而在每个第一时间周期内多媒体数据包的发送速率可根据发送端维护的发送码表进行调整。
[0055] 需要说明的,在一个端到端的网络传输路径中,通信的任一方均可作为发送端,也可作为接收端,例如,在终端A与终端B通信过程中,终端A作为发送端会向终端B发送多媒体数据包、第一探测数据包及第二探测数据包,对终端A到终端B的网络状况进行探测,终端B在作为接收端的同时也可以作为发送端,也可以向终端A发送多媒体数据包、第一探测数据包及第二探测数据包,对终端B到终端A的网络状况进行探测,终端A和终端B通过彼此向对方发送多媒体数据包、第一探测数据包及第二探测数据包,探测本端到对端的网络状况,快速调整向对方发送多媒体数据包的发送速率,从而向用户提供良好的通信服务。
[0056] 本发明实施例通过主动向接收端发送第一探测数据包的方式探测当前网络的网络状况,在局部范围内因多媒体数据包、第一探测数据包及第二探测数据包的叠加作用,这些局部密集的数据包可以提前感知到网络带宽的上限,产生短时网络拥塞,改变数据包的单向时延,从而可使发送端能够及时调整多媒体数据包的发送速率,避免更多的多媒体数据包丢失。
[0057] 402、接收端获取当前时间周期内第一探测数据包的时间戳信息。
[0058] 其中,第一探测数据包的时间戳信息包括第一探测数据包的发送时间和第一探测数据包的接收时间等。在当前时间周期内,发送端向接收端发送第一探测数据包时,会为该第一探测数据包标记上发送时间,接收端接收到该第一探测数据包时,也会为该第一探测数据包标记上接收时间,因此,接收端可从第一探测数据包中获取该第一探测数据包的时间戳信息。当然,发送端和接收端除了为第一探测数据包标记上时间戳信息外,还可为多媒体数据包和第二探测数据包标记上时间戳信息。
[0059] 在本实施例中,接收端在为多媒体数据包、第一探测数据包及第二探测数据包标记接收时间的同时,还将记录所接收到的多媒体数据包、第一探测数据包及第二探测数据包的数据量。基于为每个数据包所标记的接收时间及记录的每个数据包的数据量,接收端可每隔预设时长计算数据包的接收速率。具体计算时,可将预设时长内接收到的数据包的总数据量除以预设时长,得到预设时长内数据报的接收速率。其中,预设时长可由系统设置,该预设时长可以为1s、2s等,本实施例不对预设时长的大小作具体的限定。
[0060] 在本实施例中,接收端接收到发送端发送的第二探测数据包时,还将向发送端发送确认信息,该确认信息包括接收端接收第二探测数据包的接收时间,从而使得发送端在接收到确认信息时,可根据第二探测数据包的发送时间、接收端接收第二探测数据包的接收时间及接收确认信息的接收时间,计算出与接收端的系统时钟差,该过程具体计算时,与接收端计算与发送端的系统时钟差的计算方法相同,具体参见下述步骤403,此处不再赘述。
[0061] 403、接收端根据时间戳信息和与发送端的系统时钟差,计算当前时间周期内第一探测数据包的单向时延的时延值。
[0062] 其中,单向时延是指数据包从发送端到接收端之间的传输链路上的时延。在发送端与接收端的系统时钟同步的情况下,单向时延为发送端和接收端之间传输链路上的往返时延的一半,但由于发送端和接收端的系统时钟自身的缺陷或者用户人为修改,导致发送端和接收端的系统时钟可能不再同步,此时不能将往返时延的时延值的一半作为单向时延的时延值,需要根据第一探测数据包的时间戳信息和与发送端的系统时钟差,计算当前时间周期内第一探测数据包的单向时延的时延值。而在此之前,接收端需要先计算出与发送端之间的系统时钟差,具体计算过程可参见下述步骤40311~40314:
[0063] 40311、接收端向发送端发送第二探测数据包,并记录第二探测数据包的发送时间。
[0064] 在本实施例中,不仅发送端会向接收端发送第二探测数据包,接收端也会向发送端发送第二探测数据包。当接收端向发送端发送第二探测数据包时,接收端可根据系统时间,记录该第二探测数据包的发送时间。
[0065] 40312、当接收到确认信息时,接收端记录第二探测数据包的接收时间。
[0066] 当接收到接收端发送的第二探测数据包时,发送端向接收端发送确认信息,该确认信息包括发送端接收该第二探测数据包的接收时间。当接收到发送端发送的确认信息时,接收端记录该第二探测数据包的接收时间。
[0067] 40313、接收端根据第二探测数据包的发送时间和第二探测数据包的接收时间,计算第二探测数据包的往返时延。
[0068] 接收端计算第二探测数据包的接收时间与第二探测数据包的发送时间之间的时间差,得到第二探测数据包的往返时延的时延值。
[0069] 40314、接收端根据往返时延、第二探测数据包的发送时间及发送端接收第二探测数据包的接收时间,计算与发送端的系统时钟差。
[0070] 接收端根据往返时延的时延值,获取往返时延的时延值的一半,并计算接收端接收第二探测数据包的接收时间与第二探测数据包的发送时间及往返时延的时延值的一半之间的差值,并将得到的差值作为接收端与发送端的系统时钟差。
[0071] 例如,接收端发送第二探测数据包的发送时间为TSend,发送端接收到第二探测数据包的接收时间为TRec,接收端接收第二探测数据包的接收时间为TRAck,发送端和接收端之间的往返时延Rtt=TRAck-TSend,发送端与接收端之间的系统时钟差
[0072] 在本实施例中,当前时间周期内第一探测数据包的单向时延的时延值包括未经任何处理的原始时延值及经过去噪声等处理方式处理过的时延值,针对时延值的这两种情况,本发明实施例采用以下两种方式计算当前时间周期内第一探测数据包的单向时延的时延值。
[0073] 第一种情况、当前时间周期内第一探测数据包的单向时延的时延值为未经过任何处理的原始时延值。
[0074] 针对第一种情况,接收端在根据第一探测数据包的时间戳信息和与发送端的系统时钟差,计算当前时间周期内第一探测数据包的单向时延的时延值时,可采用如下步骤40321~40322:
[0075] 40321、接收端计算当前时间周期内第一探测数据包的接收时间与发送时间及与发送端的系统时钟差的差值,得到当前时间周期内第一探测数据包的单向时延的原始时延值。
[0076] 例如,在当前时间周期内,第一探测数据包的接收时间为T1,第一探测数据包的发送时间为T2,接收端与发送端的系统时钟差值为T3,则可得到当前时间周期内第一探测数据包的单向时延的原始时延值为T1-T2-T3。
[0077] 40322、接收端将单向时延的原始时延值,作为当前时间周期内第一探测数据包的单向时延的时延值。
[0078] 基于上述步骤40321计算得到的单向时延的原始时延值,接收端可直接将单向时延的原始时延值作为当前时间周期内第一探测数据包的单向时延的时延值。
[0079] 针对第二种情况、当前时间周期内第一探测数据包的单向时延的时延值为经过去噪声等处理方式处理过的时延值。
[0080] 由于网络环境十分复杂,在对可用带宽的探测过程中,突发背景流量都会给探测过程带来不可避免的噪声,从而影响当前时间周期内第一探测数据包的单向时延的时延值,进一步影响所探测的可用带宽的准确性,针对该种情况,接收端在根据第一探测数据包的时间戳信息和与发送端的系统时钟差,计算当前时间周期内第一探测数据包的单向时延的时延值时,通过去噪声等处理方式对得到的单向时延的原始时延值进行处理,得到准确性较高的单向时延的时延值,具体计算时,可采用如下步骤40331~40336:
[0081] 40331、接收端计算当前时间周期内第一探测数据包的接收时间与发送时间及与发送端的系统时钟差的差值,得到当前时间周期内第一探测数据包的单向时延的原始时延值。
[0082] 在通信系统中,对于电子器件内部的自由电子的热运动(热噪声)、真空电子管的起伏发射和半导体中载流子的非均匀变化(又称散弹噪声)等,它们的统计特性基本上都符合高斯分布,即高斯过程或随机过程(Gaussian Process/Stochastic process)。在本发明中,数据包在网络传输过程中的各种干扰也被认为是符合高斯分布的,这些干扰部分作为过程激励噪声(即为本实施例中的噪声时延值)。
[0083] 另外,本发明实施例提供的算法所依赖的基础数据,比如发送时间、接收时间的精度受到系统自身硬件设备的影响,以及系统时间软件API的精度影响,也对算法的精度造成一定的影响,这部分干扰可以作为观测噪声(为本实施例因算法自身缺陷所存在误差,即预测值与观察值之间的差值)。
[0084] 相对于传输过程中的其他变化(排队时延、未知网络干扰等),瓶颈带宽C(i)值相对稳定,所以单向时延的原始时延中相对固定的部分是: 因此,单向时延的原始时延值为: 其中w(i)是对随机过程W的采样,根据前面的基础分析得出,w(i)实际上就是排队时延变化的函数,前面所述的传播时延a极小可以忽略不计。因此,当前时间周期内第一探测数据包的原始时延值为传输时延值和排队时延值之和。
[0085] 40332、接收端根据瓶颈带宽和多媒体数据包的数据量,计算传输时延值。
[0086] 其中,传输时延等于多媒体数据包的数据量与瓶颈带宽的比值。在本实施例中,设定发送端到接收端之间传输链路上的瓶颈带宽为固定值,而发送端向接收端发送的多媒体数据包的数据量也是确定的,因此,接收端根据瓶颈带宽及多媒体数据包的数据量,所计算的传输时延也是固定不变的。
[0087] 40333、接收端根据原始时延值和传输时延值,计算排队时延值。
[0088] 由于本实施例中,单向时延的原始值为传输时延值与排队时延值之和,当根据瓶颈带宽和所媒体数据包的数据量,计算出传输时延值之后,接收端通过将原始时延值减去传输时延值,可得到排队时延值。
[0089] 40334、接收端通过滤波器去除排队时延值中的噪声时延值,得到均值时延的观察时延值。
[0090] 由于噪声信号具有随时间变化的特性,为了更好地去除因噪声到导致的噪声时延,本实施例中所述的滤波器为自适应滤波器。自适应滤波器可根据反馈调整滤波器的系数及频率响应,以适应噪声信号随时间变化的特性,从而实现最优滤波。
[0091] 自适应滤波器在不同的应用领域也存在着不同的选择,常用的自适应滤波器有:维纳滤波器(Wiener),最小均方(LMS/NLMS)滤波器,卡尔曼(Kalman)滤波戚等。本发明实施例选取擅于轨迹跟踪、应用于航空航天、雷达追踪、导航制导等领域的卡尔曼滤波器。卡尔曼滤波器在测量方差已知的情况下,能够从一系列存在噪声的数据中估计出动态系统的状态。由于卡尔曼滤波器便于计算机编程实现,且能够对采集数据的数据进行实时更新和处理,因而卡尔曼滤波器是目前应用最为广泛滤波器。
[0092] 在采用卡尔曼滤波器进行去除噪声时,主要基于卡尔曼滤波公式,卡尔曼滤波公式如下:
[0093] 1、卡尔曼状态估计公式:Xminus(n)=x(n-1);其中,Xminus(n)表示本周期的状态,x(n-1)表示上一周期的状态;
[0094] 2、卡尔曼协方差估计公式:Pminus(n)=P(n-1)+Q;其中,Pminus(n)表示本周期的协方差,P(n-1)表示上一周期的协方差,Q表示过程激励协方差;
[0095] 3、卡尔曼增益计算公式:K(n)=Pminus(n)/(Pminus(n)+R);其中,K(n)表示本周期的增益,R表示观察噪声协方差。
[0096] 4、卡尔曼后验估计公式:x=Xminus(n)+K(n)*(z(n)-Xminus(n));x表示本周期内的预测值;z(n)表示本周期的观察值;
[0097] 5、卡尔曼后验估计协方差计算公式:P(n)=(1-K(n))*Pminus(n)。
[0098] 本发明实施例采用卡尔曼滤波器主要用在可用带宽探测中对单向延时的原始时延值的处理,例如,第一探测数据包的单向时延的原始时延值往往都会存在波动,卡尔曼滤波器去除噪声所造成的干扰,得到一个相对准确的时延值。在处理过程中,卡尔曼滤波器采用迭代算法,借助上一周期的预测值及本周期的观察值,计算本周期的预测值(在本实施例中,预测值为经过处理得到的数值,观察值为未经处理的数值)。为了方便理解卡尔曼滤波器的迭代过程,下面可通过几个周期的运算过程来熟悉卡尔曼滤波器的运算步骤:
[0099] 参见表1,对于当前时间周期内接收到的数据包,已知上一时间周期的状态值(状态估计x(n)=x(n-1))和当前时间周期接收端观察值(z(i)),可根据这两个值,并结合它们各自的噪声时延,估算出实际的数据包到达时间间隔。在本次计算时,设定过程激励协方差Q为0.25,观测噪声协方差R为0.05,X(0)=23ms,P(0)=1.0。
[0100] 表1
[0101]
[0102] 对于单向时延的原始时延值 由于传输时延值为定值,因而单向时延的原始时延值主要取决于w(n)。在本实施例中,w(n)符合高斯分布,当w(n)增加时,排队时延变化较大,此刻网络负载重,网络出现拥塞,数据流占用过多的带宽(Over Using);
当w(n)减少时,排队时延变化小,此刻网络负载轻,数据流占用较少的带宽(Under Using);
如果w(n)的变化为0时,说明排队时延无变化,数据流占用的带宽刚刚好。
[0103] 因此,只要能够计算出w(n),就可根据w(n)判断目前的网络状态,从而通过增加或者减少发送速率,提高服务质量。由于w(n)满足高斯分布,因此,w(n)可分解为均值函数m(n)和噪声变量v(n),即排队时延值包括均值时延值和噪声时延值。此时,单向时延的原始时延值 当将得到的排队时延值通过卡尔曼滤波器处理后,可去除排队时延值中的噪声时延值,得到均值时延的观察时延值。
[0104] 40335、接收端根据均值时延的观察时延值、上一时间周期的均值时延的预测时延值及滤波器在当前时间周期的增益值,计算均值时延的预测时延值。
[0105] 在本实施例中,网络状态的估计值θ(n)可以表示为瓶颈带宽C(n)和均值时延m(n)的函数,即 所以可以推导出:
[0106]
[0107] 在本实施例中,将当前时间周期的单向时延的原始时延值与上一周期处理后的单向时延的原始时延值之间的差值称为残差。基于单向时延的时延值表示形式,残差[0108] 其中,T(n)表示当前时间周期的单向时延的原始时延值,T`(n-1)表示当前时间周期的单向时延的原始时延值。
[0109] 在本实施例中,设定过程激励协方差Q为0.25,设定观察噪声协方差R为0.05,设定状态估计的初始值X(0)为23ms,设定协方差估计的初始值R(0)为1.0,基于上述五个卡尔曼滤波公式,通过迭代算法,可计算出卡尔曼滤波器在当前时间周期的增益值k(n)。
[0110] 在本实施例中,卡尔曼滤波器的作用就是将符合高斯分布的网络传输过程中的噪声滤掉,从而得到尽量接近真实值的均值时延值m(n)。基于均值时延的观察时延值、上一时间周期的均值时延的预测时延值、卡尔曼滤波器在当前时间周期的增益值及残差,接收端在计算均值时延的预测时延值时,可采用如下公式:
[0111] m'(n)=m(n-1)+Re sidual(n)×k(n)
[0112] 上式是卡尔曼滤波器的第四个公式,即由均值时延的观察时延值、上一时间周期的均值时延的预测时延值、残差以及卡尔曼滤波器在当前时间周期的增益值k(n),共同计算得到均值时延的预测时延值m'(i),这个均值时延的预测时延值m'(i)。
[0113] 40336、接收端将均值时延的预测时延值和传输时延值之和,作为当前时间周期内第一探测数据包的单向时延的时延值。
[0114] 当得到均值时延的预测时延值和传输时延值,接收端通过将均值时延的预测时延值和传输时延值之和,作为当前时间周期内第一探测数据包的单向时延的时延值。
[0115] 图5为经过卡尔曼滤波器处理后的仿真效果图,由图可知,处理后的滤波值(预测值)与真实值接近。
[0116] 404、接收端根据当前时间周期内第一探测数据包的单向时延的时延值和平均单向时延的时延值,判断当前时间周期内第一探测数据包的单向时延的时延值是否发生突变。
[0117] 其中,平均单向时延可根据当前时间周期之前的历史第一探测数据包的单向时延的时延值确定。平均单向时延值可通过如下公式进行计算:
[0118] 平均单向时延值=第一次单向时延值*a0+第二次单向时延值*a1+…+第二次单向时延值*an。
[0119] 其中,a0表示第一次单向时延值对应的权重值,a1表示第二次单向时延的时延值,an表示第n次单向时延值对应的权重值。
[0120] 接收端在根据当前时间周期内第一探测数据包的单向时延的时延值和平均单向时延的时延值,判断当前时间周期内第一探测数据包的单向时延的时延值是否发生突变时,可计算当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差,如果当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差大于指定阈值,则确定当前时间周期内第一探测数据包的单向时延的时延值发生突变。其中,指定阈值可通过实验室网络损伤仪器计算得到,在计算过程中要兼顾指定阈值的灵敏性和稳定性的因素。通过大量实验,得到的不同平台下的指定阈值如下:
[0121] PC(Personal Computer,个人电脑)平台下的指定阈值为2500;
[0122] IOS平台下指定阈值为14400;
[0123] 安卓平台下指定阈值为2250等。
[0124] 本发明实施例提供的方法还可根据当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差,确定当前的网络状态。其中,网络状态包括过度使用状态和未充分使用状态等。
[0125] 在本发明的一个实施例中,如果当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差大于指定阈值,则接收端确定当前时间周期内的网络状态为过度使用状态。当网络处于过度使用状态时,网络处于拥塞状态,多媒体数据包发生丢包的概率较大,将影响到接收端与发送端之间的音视频通信质量,为此,当确定当前时间周期内的网络状态为过度使用状态,接收端可触发发送端在下一时间周期减小对多媒体数据包的发送速率。
[0126] 在本发明的另一个实施例中,如果当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差小于指定阈值,则接收端确定当前时间周期内的网络状态为未充分使用状态。当网络处于未充分使用状态时,网络中存在闲置的网络资源,接收端和发送端之间的音视频通信质量具有提升空间,为此,当确定当前时间周期内的网络状态为未充分使用状态,接收端可触发发送端在下一时间周期增大对多媒体数据包的发送速率。
[0127] 405、如果确定当前时间周期内第一探测数据包的单向时延的时延值发生突变,接收端获取根据第一探测数据包的数据量计算得到的接收速率。
[0128] 当根据当前时间周期内第一探测数据包的单向时延的时延值和平均单向时延的时延值,确定当前时间周期内第一探测数据包的单向时延的时延值发生突变,接收端获取预设时长内根据第一探测数据包的数据量计算得到的接收速率。
[0129] 406、接收端将接收速率确定为当前时间周期内的可用带宽。
[0130] 当确定当前时间周期内的可用带宽之后,接收端还将向策略服务器发送通知消息,当接收到通知消息之后,接收端通过下发服务质量参数对发送端发送多媒体数据包的发送策略进行调整,如减少发送端发送多媒体数据包的发送速率等,从而提高服务质量。
[0131] 在对网络丢包场景研究时发现,网络拥塞是导致丢包的主要原因,当网络出现拥塞时,各条子链路因需要缓存的数据包大于缓存队列的长度而主动丢包,进而影响音视频通信质量。为此,本发明实施例提供了一种丢包恢复方法,该方法通过在第一探测数据包中添加多媒体冗余数据包,而对丢失的多媒体数据包进行恢复。具体恢复过程为:当检测到当前时间周期内接收到的多媒体数据包丢失,接收端对第一探测数据包进行解码,获取多媒体冗余数据包,并采用丢包恢复算法,根据多媒体冗余数据包及未丢失的多媒体数据包,对丢失的媒体数据包进行恢复。
[0132] 其中,丢包恢复算法可以为FEC(Forward Error Cancellation,前向丢包补偿算法)等,该FEC算法采用Reed Solomon(简称RS)方法,Reed Solomon为一种前向错误更正的信道编码,对由校正数据采样所产生的有效多项式。编码过程首先在多个点上对这些多项式求冗余,然后将其传输或者存储。当接收端接收到足够多的点对应的数据包时,即可恢复原来的多项式,即便接收到的多项式上有很多点被噪声干扰失真。RS FEC增加了数据包恢复的灵活性,丢包恢复效果更好。
[0133] 图6示出了一种RS FEC数据包冗余编码与恢复的示意图,参见图6,第一探测数据包的编码段采用3+2冗余方式,当在传输过程中多媒体数据包D2丢失时,接收端对第一探测数据包进行解码,得到多媒体冗余数据包FEC1,并基于多媒体数据包D1、多媒体数据包D3及多媒体冗余数据包FEC1,对丢失的多媒体数据包D2进行恢复。
[0134] 以双人语音聊天及视频聊天场景为例,采用本实施例提供的方法可有效地降低网络拥塞的发生频次,降低网络卡顿场景,在不同类型的客户端设备、不同类型的网络连接类型、以及不同实时变化的网络状态下,均可提供稳定可靠的端到端的可用带宽探测机制,使得发送端和接收端具有良好的网络带宽的适应性。
[0135] 需要说明的是,本发明提供的方法不仅适合用于实时音视频通信场景,还适用于非实时音视频通信、直播间内的音视频通信、K歌、在线教育、游戏等多种应用场景。
[0136] 本发明实施例提供的方法,并不依赖于多媒体数据包,而基于专门用于探测可用带宽的第一探测数据包进行探测,由于该第一探测数据包并不包含音视频通信的相关数据,丢失不会影响通信质量,且网络内每种数据包的丢包概率相同,当网络拥塞时,因第一探测数据包的存在,使得所丢失的多媒体数据包相对现有技术要少,明显地提高了音视频通信质量,因此,探测方法更加合理。
[0137] 参见图7,本发明实施例提供了一种可用带宽的探测装置,该装置包括:
[0138] 接收模块701,用于在多媒体数据包的接收过程中,每隔预设时间周期接收发送端发送的第一探测数据包;
[0139] 第一获取模块702,用于获取当前时间周期内第一探测数据包的时间戳信息;
[0140] 第一计算模块703,用于根据时间戳信息和与发送端的系统时钟差,计算当前时间周期内第一探测数据包的单向时延的时延值;
[0141] 第二获取模块704,用于当确定当前时间周期内第一探测数据包的单向时延的时延值为时延值突变转折点时,获取根据第一探测数据包的数据量计算得到的接收速率;
[0142] 第一确定模块705,用于将接收速率确定为当前时间周期内的可用带宽。
[0143] 在本发明的另一个实施例中,该装置还包括:
[0144] 第一发送模块,用于向发送端发送第二探测数据包;
[0145] 第一记录模块,用于记录第二探测数据包的发送时间;
[0146] 第二记录模块,用于当接收到确认信息时,记录第二探测数据包的接收时间,确认信息由发送端在接收到第二探测数据包时发送,确认信息包括发送端接收第二探测数据包的接收时间;
[0147] 第二计算模块,用于根据第二探测数据包的发送时间和第二探测数据包的接收时间,计算第二探测数据包的往返时延;
[0148] 第三计算模块,用于根据往返时延、第二探测数据包的发送时间及发送端接收第二探测数据包的接收时间,计算与发送端的系统时钟差。
[0149] 在本发明的另一个实施例中,时间戳信息包括当前时间周期内第一探测数据包的发送时间和接收时间;
[0150] 第一计算模块703用于计算当前时间周期内第一探测数据包的接收时间与发送时间及与发送端的系统时钟差的差值,得到当前时间周期内第一探测数据包的单向时延的原始时延值;将单向时延的原始时延值,作为当前时间周期内第一探测数据包的单向时延的时延值。
[0151] 在本发明的另一个实施例中,时间戳信息包括当前时间周期内第一探测数据包的发送时间和接收时间;
[0152] 第一计算模块703,用于计算当前时间周期内第一探测数据包的接收时间与发送时间及与发送端的系统时钟差的差值,得到当前时间周期内第一探测数据包的单向时延的原始时延值,该原始时延值为传输时延值和排队时延值之和,该排队时延值包括噪声时延值和均值时延的观察时延值;根据瓶颈带宽和多媒体数据包的数据量,计算传输时延值;根据原始时延值和传输时延值,计算排队时延值;通过滤波器去除排队时延值中的噪声时延值,得到均值时延的观察时延值;根据均值时延的观察时延值、上一时间周期的均值时延的预测时延值及滤波器在当前时间周期的增益值,计算均值时延的预测时延值;将均值时延的预测时延值和传输时延值之和,作为当前时间周期内第一探测数据包的单向时延的时延值。
[0153] 在本发明的另一个实施例中,该装置还包括:
[0154] 第四计算模块,用于计算当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差,平均单向时延的时延值根据当前时间周期之前的历史第一探测数据包的单向时延的时延值确定;
[0155] 第二确定模块,用于当当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差大于指定阈值时,确定当前时间周期内第一探测数据包的单向时延的时延值为时延值突变转折点。
[0156] 在本发明的另一个实施例中,该装置还包括:
[0157] 第三确定模块,用于当当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差大于指定阈值时,确定当前时间周期内的网络状态为过度使用状态,该过度使用状态用于触发发送端在下一时间周期减小对媒体数据包的发送速率;当当前时间周期内第一探测数据包的单向时延的时延值与平均单向时延的时延值之间的方差小于指定阈值时,确定当前时间周期内的网络状态为未充分使用状态,该未充分使用状态用于触发发送端在下一时间周期增大对多媒体数据包的发送速率。
[0158] 在本发明的另一个实施例中,当前时间周期内第一探测数据包包括多媒体冗余数据,装置还包括:
[0159] 恢复模块,用于当检测到当前时间周期内接收到的多媒体数据包丢失时,根据多媒体冗余数据包及未丢失的多媒体数据包,对丢失的媒体数据包进行恢复。
[0160] 在本发明的另一个实施例中,该装置还包括:
[0161] 第二发送模块,用于向策略服务器发送通知消息,该通知消息用于触发策略服务器调整发送端在下一时间周期内发送多媒体数据包的发送策略。
[0162] 综上所述,本发明实施例提供的装置,并不依赖于多媒体数据包,而基于专门用于探测可用带宽的第一探测数据包进行探测,由于该第一探测数据包并不包含音视频通信的相关数据,丢失不会影响通信质量,且网络内每种数据包的丢包概率相同,当网络拥塞时,因第一探测数据包的存在,使得所丢失的多媒体数据包相对现有技术要少,明显地提高了音视频通信质量,因此,探测方法更加合理。
[0163] 参见图8,其示出了本发明实施例所涉及的可用带宽的探测终端的结构示意图,该终端可以用于实施上述实施例中提供的可用带宽的探测方法。具体来讲:
[0164] 终端800可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(Wireless Fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图8中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0165] RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
[0166] 存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端800的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器
120的访问。
[0167] 输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0168] 显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端800的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板
141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图8中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
[0169] 终端800还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端800移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端800还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0170] 音频电路160、扬声器161,传声器162可提供用户与终端800之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端800的通信。
[0171] WiFi属于短距离无线传输技术,终端800通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块170,但是可以理解的是,其并不属于终端800的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0172] 处理器180是终端800的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端800的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;可选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
[0173] 终端800还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0174] 尽管未示出,终端800还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端800的显示单元是触摸屏显示器,终端800还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。
[0175] 该终端800用于执行上述图4所示的可用带宽的探测方法。
[0176] 本发明实施例提供的终端,并不依赖于多媒体数据包,而基于专门用于探测可用带宽的第一探测数据包进行探测,由于该第一探测数据包并不包含音视频通信的相关数据,丢失不会影响通信质量,且网络内每种数据包的丢包概率相同,当网络拥塞时,因第一探测数据包的存在,使得所丢失的多媒体数据包相对现有技术要少,明显地提高了音视频通信质量,因此,探测方法更加合理。
[0177] 本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该一个或者一个以上程序被一个或者一个以上的处理器用来执行可用带宽的探测方法,该方法用于执行上述图4所示的可用带宽的探测方法。
[0178] 本发明实施例提供的计算机可读存储介质,并不依赖于多媒体数据包,而基于专门用于探测可用带宽的第一探测数据包进行探测,由于该第一探测数据包并不包含音视频通信的相关数据,丢失不会影响通信质量,且网络内每种数据包的丢包概率相同,当网络拥塞时,因第一探测数据包的存在,使得所丢失的多媒体数据包相对现有技术要少,明显地提高了音视频通信质量,因此,探测方法更加合理。
[0179] 本发明实施例中提供了一种图形用户接口,该图形用户接口用在可用带宽的探测终端上,该执行可用带宽的探测终端包括触摸屏显示器、存储器和用于执行一个或者一个以上的程序的一个或者一个以上的处理器;该图形用户接口用于执行上述图4所示的可用带宽的探测方法。
[0180] 本发明实施例提供的图形用户接口,并不依赖于多媒体数据包,而基于专门用于探测可用带宽的第一探测数据包进行探测,由于该第一探测数据包并不包含音视频通信的相关数据,丢失不会影响通信质量,且网络内每种数据包的丢包概率相同,当网络拥塞时,因第一探测数据包的存在,使得所丢失的多媒体数据包相对现有技术要少,明显地提高了音视频通信质量,因此,探测方法更加合理。
[0181] 需要说明的是:上述实施例提供的可用带宽的探测装置在探测可用带宽时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将可用带宽的探测装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的可用带宽的探测装置与可用带宽的探测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0182] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0183] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。