防止对自适应比特率流客户端中可用带宽的过高估计的制作方法

文档序号:7793460阅读:147来源:国知局
防止对自适应比特率流客户端中可用带宽的过高估计的制作方法
【专利摘要】在一个示例实施例中给出了一种方法并且该方法包括:为自适应比特率(ABR)客户端生成带宽估计;评估ABR客户端的缓冲器的当前状态;以及至少根据带宽估计和缓冲器的当前状态,来确定被用于ABR客户端的编码速率。针对ABR客户端的获取间隔随缓冲器变得更满而增长,而不达到ABR客户端以与它在下载数据的速率相同的速率在消耗数据的水平。
【专利说明】防止对自适应比特率流客户端中可用带宽的过高估计

【技术领域】
[0001 ] 本公开一般涉及通信领域,并且更具体地涉及用于防止对自适应比特率流客户端中可用带宽的过高估计的系统和方法。

【背景技术】
[0002]终端用户比以前具有更多的介质和通信选择。很多突出的技术趋势当前正在进行中(例如,更多计算设备、更多在线视频服务、更多互联网视频流),并且这些趋势正在改变介质递送景观。分别地,这些趋势正在超越容量的极限,并且进一步降低了视频的性能,其中这样的降低在终端用户、内容提供商以及服务提供商之中引起了失望。在很多情况下,寻求递送的视频数据被丢弃、分裂、延迟、或简单地对某些终端用户来说是不可用的。
[0003]自适应比特率(ABR)是计算机网络上的一种用于流化多媒体中的技术。在过去时,大多数视频流技术利用文件下载、渐进的文件下载或定制的流协议,但现在的大多数自适应流技术是基于超文本传输协议(HTTP)。这些技术的目的是在诸如互联网的大型分布式HTTP网络上有效地运行。
[0004]ABR通过检测用户的带宽和CPU容量并且通过相应地调整视频流的质量进行操作。通常,ABR有效利用可以以多比特率编码单一源视频的编码器。播放器客户端可以根据可用源在不同的编码之间进行切换。理想地,这些活动的结果对于高带宽连接和低带宽连接二者都是很少的缓冲、快速的启动时间和良好的体验。然而,在常见的有问题的网络场景中仍留有重大的挑战,这将导致客户端由于错误估计带宽而错误地调整它们的视频流。

【专利附图】

【附图说明】
[0005]为提供对本公开和其中的特征和优势的更完整的理解,连同附图参照下面的描述,其中相似的参考数字表示相似部分,其中:
[0006]图1A是根据本公开的一个实施例的用于阻止对可用带宽的过高估计的通信系统的简化框图。
[0007]图1B是示出了与本公开的一个实施例相关联的可能的示例细节的简化框图。
[0008]图1C是示出了与本公开的一个实施例相关联的可能的示例细节的另一简化框图。
[0009]图2是示出了与本公开的一个实施例相关联的潜在的操作的简化图。
[0010]图3是示出了与本公开的一个实施例相关联的潜在的操作的另一简化图。
[0011]图4是根据本公开的一个实施例的示出了与通信系统相关联的潜在的操作的简化流程图。
[0012]图5是示出了与通信系统相关联的可选实施例的简化框图。

【具体实施方式】
[0013]概览
[0014]在一个示例实施例中给出了一种方法并且该方法包括:为自适应比特率(ABR)客户端生成带宽估计;评估ABR客户端的缓冲器的当前状态;以及至少根据带宽估计和缓冲器的当前状态,来确定被用于ABR客户端的编码速率。针对ABR客户端的获取间隔随缓冲器变得更满而增长,而不达到ABR客户端以与它在下载数据的速率相同的速率在消耗数据的水平。
[0015]‘带宽估计’可以涉及与带宽相关联的任何特征、水平、阈值、低或高水印、测量、计算、推理、评估、分析等。在更具体的实施例中,带宽估计至少基于将通过ABR客户端接收的字节数除以字节被接收的时间间隔来被计算。另外,该方法可以包括根据平均测量的下载速率和缓冲器的当前状态选择随后的编码速率。‘当前状态’可以与缓冲器的充满度、它的容量、它的功能、它的能力、它的实时水平、它的预计水平、它的当前功能等相关联。该方法还可以包括为ABR客户端定义第一缓冲水平;以及为ABR客户端定义第二缓冲水平。为ABR客户端定义了一个功能,其根据第一缓冲水平和第二缓冲水平给出了连续块下载之间的最小间隔。另外,可以随着缓冲器的特定水平从最小水平增加到最大水平提供从获取间隔到实际的块持续时间的线性插值。
[0016]在其它实施例中,阻止ABR客户端的瞬时缓冲水平达到最大水平。该方法还可以包括转换到更高的编码速率以阻止缓冲器增长到特定水平。可选的实施例可以包括计算最小获取间隔;以及为ABR客户端将开始时间设置为当前组开始时间加上最小获取间隔。示例方法还可以包括将指令提供给特定网络元件来以由ABR客户端所确定的速率量出数据到ABR客户端。更具体的示例方法可以包括确定不升档至更高的编码速率;以及以ABR客户端的当前编码的标称播出速率排出传输控制协议(TCP)缓冲器。
[0017]示例实施例
[0018]转向图1,图1A是根据本公开的一个实施例的通信系统10的简化框图,该通信系统10被配置用于防止对自适应比特率(ABR)流客户端中的可用带宽的过高估计。通信系统10包括多个服务器12a-b、介质存储器14、网络16、多个ABR客户端18a_c、以及多个中间节点15a_b。服务器12a_b被配置为将被请求的内容递送到ABR客户端18a_c。内容可以包括任何适当的可以在网络中传播的信息和/或数据(例如,视频、音频、媒体、任何类型的流信息等)。某些内容可以被存储在介质存储器14中,在网络中可以在任何地方供应介质存储器14。介质存储器14可以是任何网络服务器的一部分、可以逻辑上被连接到服务器12a-b中的一个服务器、可以使用网络16适当地被访问等。通常,通信系统10可以被配置为提供与数据服务相关联的下载和流能力。通信系统10也可以提供对混合媒体供应品的内容进行管理的能力,供应品可以将视频、音频、游戏、应用、信道、以及程序结合到数字媒体束中。
[0019]根据本公开的技术,图1A的架构可以提供ABR流客户端,该ABR流客户端显著地改善了管理的和非管理的网络环境中的性能。特别地,当本公开的ABR客户端在瓶颈链路上为带宽互相竞争时,ABR客户端可以在链路上很好的完成估计它们的正确的、公平共享带宽的工作。因此,ABR客户端可以更不频繁地转换速率,同时衰减转换的振幅。一般,架构可以通过系统地维持瓶颈链路被充分利用来进行操作,并且还不浪费带宽(意味着被下载的所有内容块可以通过ABR客户端被使用)。另外,即使当可用编码速率以不允许链路带宽用这些可用编码速率的组合正好被填满的方式被量化,架构仍可以维持此完全链路利用。最终,架构可以限制ABR客户端所需的速率转换的数量,例如,如果每个客户端被要求无任何间隙连续地下载块,则允许客户端较少频率地转换速率。
[0020]在转向与本公开相关联的一些操作活动之前,理解包括ABR客户端的网络中遇到的一些挑战是重要的。下面的基础信息可以被看作本公开可以被适当地解释的基础。自适应流视频系统使用多速率视频编码和灵活的IP传输协议组(通常是超文本传输协议/传输控制协议/互联网协议(HTTP/TCP/IP)、但不包括诸如HTTP/SroY/IP等的其它传输)以在广泛变化地网络条件下将高质量流视频传送到众多并发用户。这些系统通常负责“过多的”视频服务,该视频服务在网络路径上适应变化的服务质量。
[0021 ] 在自适应流中,源视频被编码从而使得相同内容可用于若干不同速率的流(这也可以通过诸如H.264 AVC的多速率编码或诸如H.264 SVC的分层编码)。此视频可以被分成一个或多个图像组(GOP)的“块”;通常长度为两(2)秒到十(10)秒。ABR客户端可以使用Web范式(例如,在TCP/IP传输上的HTTP GET操作)访问存储在服务器上的(或为“现场”流近实时地产生的)块,并且取决于可靠性、拥塞控制、以及针对数据递送的TCP/IP的流量控制特征。ABR客户端可以通过监测递送速率和/或它们的缓冲器的填充水平间接地观察流获取操作的性能,并且当带宽可用时,可以进一步升档至更高的编码速率以获得更好的质量,或当可用带宽减少时,可以进一步降档以避免缓冲器低负荷运行和因此导致的视频失速。
[0022]与诸如经典有线电视或广播服务的无适应性系统相比,自适应流系统使用显著更大量的缓冲来吸收来自网络的变化带宽的影响。它们通常以“贪婪的”模式操作:互相竞争并且与其它网络流竞争以获得它们能获得的尽可能多的带宽。
[0023]操作上,ABR流客户端通常通过测量最近获取的媒体块的下载速率来估计可用的路径带宽。当ABR客户端以远高于块的标称编码速率的速率下载几个块时,ABR客户端可以判定相比于当前编码速率所需要的带宽,更多的带宽在路径上是可用的,并且可以“升档”(即,决定从更高比特率编码获取随后的块,因此使用更多可用链路带宽)。
[0024]实验数据已经表明当现有ABR客户端在瓶颈链路上为带宽互相竞争时,重复模式可能出现,其中客户端显著地过高估计可用带宽。这使客户端升档,仅为了一旦它们发现实际可用的带宽,可以再快速地降档。据观察,此重复、震荡模式是大多数(如果不是所有)现有ABR客户端的特色。另外,仿真已经表明当竞争ABR客户端允许瓶颈链路变得稍微“松弛”时,可用带宽的过高估计就会发生。本公开中的术语“松弛”包括与在一段时间之上测量的低于容量、订阅不足、或未充分利用相关联的任何条件或特征。另外,现有ABR客户端被以这样的方式设计:它们将不可避免地允许链路编程轻微订阅不足的。这导致上述的每个客户端对可用带宽的时段的过高估计。此可用带宽的过高估计,反过来,导致了现有ABR客户端中观察到的震荡的模式。应该注意的是在一些情况中,可用带宽的过高估计也可以导致个别客户端的显著的不稳定性,而无轻易可观察的宏观的震荡模式。
[0025]在那些案例中当参照“松弛”时,大多数时候链路实际上被100%利用(例如,假设有几个活跃的进行传输的TCP连接,它们将快速地吸收所有的可用带宽并且在瓶颈链路中加强拥塞)。然而,如果考虑较长的时间间隔(例如,至少几秒),则链路未充分利用的时段可以被观察,尽管此链路未充分利用可能仅构成全部可用链路容量的百分比的一部分。因此,下面的事关带宽估计的订阅不足(或松弛的链路)是可以在很多秒的时段上发生的事情,而不仅仅是几个往返时间(RRTs)发生的事情。这与未充分利用通常(例如排队被考虑时)表不的意思不同。
[0026]理解了链路一变成最轻微的比特松弛/订阅不足,带宽过高估计就会发生,正确的带宽估计和过高估计之间的过渡作为悬崖操作(例如,突然地从正确的估计切换到显著过高的估计)。过高估计可以是显著的(例如,在100个ABR客户端的情况下多达3倍或更多)。另外,随着共享瓶颈的客户端数量增加,过高估计恶化。
[0027]因此,ABR客户端不稳定和震荡的问题对ABR客户端是特有的,如同他们现在存在一样,并且不能简单地通过微调适应算法或TCP行为被消除。特别地,ABR客户端震荡和不稳定由下面的组合引起:1)所有客户端展示的稳定状态开/关行为;以及2)当客户端以链路小于100%被订阅或是“松弛”的时段期间的下载速率为基础进行它们的带宽估计时发生的带宽的显著过高的估计。避免带宽估计“悬崖”作为竞争ABR客户端的不稳定的来源的关键是识别确保链路不进入松弛状态的方式,从而移除这些因素的第二因素。
[0028]考虑一个说明某些ABR客户端活动的示例。操作上,现有的ABR客户端根据它们的缓冲水平在两种操作模式之间切换。当ABR客户端的内容缓冲低于某一目标水平时,ABR客户端使用第一模式(被称为“缓冲-生长模式”)。(需要注意的是应该将缓冲生长模式与相似的术语“缓冲模式”加以区分。后者表明视频没有播出的状态:由于客户端首次启动来获取视频,或由于低负荷运行引起的“失速”。另外,缓冲模式可以参照视频或媒体应用中的实例,其中在播出开始之前,接收器正在将它的缓冲生长到安全水平。这些术语是有区别的,并且进一步,典型的缓冲模式通常可以被视为缓冲生长模式的子状态。)
[0029]当在此缓冲生长模式中时,客户端通常尽可能迅速地获取ABR内容的块,一完成之前块的下载,就开始下一块的获取。当客户端正在缓冲生长模式中操作时,由于它尝试尽可能迅速地填充它的缓冲器,因此它使用它可以获得的尽可能多的网络带宽。一旦ABR客户端的缓冲器已经填充至某一目标水平,ABR客户端就切换到“稳定状态”模式。
[0030]当在稳定状态模式中时,ABR客户端仅可以如它的解码器消耗内容一样快的获取内容,否则它的缓冲器将无限制的生长。例如,如果ABR内容已经作为2秒块被编码,那么当在稳定状态模式中时,ABR客户端可以平均不比每2秒频繁的获取一个新块。当客户端在稳定状态模式中时,它不使用比它正在下载的内容的标称播出速率更多的带宽,即使在链路上有更多的带宽是可用的。(注意如果在链路上有更多可用的带宽,则ABR客户端最终可以“升档”至更高的编码速率。然而,由本公开解决的某些问题是由于ABR客户端当以特定的编码速率处在稳定的状态中时没有能力在升档之间接受额外的带宽而造成的。)
[0031]通信系统10可以以将缓冲生长状态和稳定状态之间的明显的区别移除的方式来实施ABR客户端。为了作比较,现有的ABR客户端将接受网络可以在缓冲生长状态中提供的尽可能多的带宽,并且进一步,将接受不超过当前播出速率(除了在诸如快进、倒退、暂停等的“特技模式”中,当前播出速率等价于当前编码速率)。当在稳定状态中时,图1A的架构中提供的ABR客户端将根据它的缓冲水平在这两个极端之间平稳地转换。
[0032]考虑一个示例,其中为ABR客户端定义了两个缓冲水平(例如,b_min和b_max,其中‘b’表示ABR客户端的瞬时缓冲水平)。通常,ABR客户端的缓冲水平以播出时间的可用秒被测量,而不是以字节。另外,假设每个被编码的ABR块的持续时间是D秒。定义了函数(I (b)),其给出了连续块下载之间的*最小*间隔如下:
[0033]如果(b< b_min)贝丨J I (b) = 0 ;
[0034]如果(b> = b_max)则 I (b) = D ;
[0035]否贝1J,I(b) = D*(b_b_min)/ (b_max_b_min)。
[0036]换一种说法,随着缓冲水平从b_min增加到b_max,系统从0到实际的块持续时间线性地插入获取间隔。
[0037]此配置的一方面是应该阻止b达到b_max。这是因为如果b曾经达到b_max,则
I(b)将达到实际的块持续时间D,并且ABR客户端将开始表现得像现有ABR客户端(例如,甚至在稍微高于内容的标称编码(或播出)速率的速率上也不愿意接受数据)。这将反过来导致松弛的链路条件和ABR客户端对可用带宽的过高估计。在详述与本公开相关联的附加的操作之前,下面详细说明示例架构。
[0038]ABR客户端18a_c可以与希望通过某一网络在通信系统10中接收数据或内容的终端用户、设备、或客户相关联。术语‘ABR客户端’包括用于启动通信的设备,例如任何类型的接收器、计算机、机顶盒、网络无线电设备(IRD)、手机、智能手机、平板电脑、个人数字助理(PDA)、谷歌机器人、iPhone、iPad或能够在通信系统10内启动声音、语音、视频、媒体或数据交换的任何其它设备、组件、元件、终端、或物体。ABR客户端18a-c还可以包括到人类用户的适当的接口,例如显示器、键盘、触摸板、远程控制器或任何其它终端装备。ABR客户端18a-c也可以是任何寻求代表另一实体或元件启动通信的设备,例如应用、数据库或能够在通信系统10内开始交换的任何其它组件、设备、元件或物体。本文在此文档中所使用的数据涉及任何类型的数字、声音、视频、媒体、音频、或脚本数据、或任何类型的源代码或目标代码、或可以从一点到另一点通信的任何适当的格式的任何其它适当的信息。
[0039]网络16表示用于接收和发送通过通信系统10传播的信息的分组的互连通信路径的一系列点或节点。网络16给出了源和/或主机之间的通信接口,并且网络16可以是任何局域网(LAN)、无线局域网(WLAN)、城域网(MAN)、内联网、外联网、WAN、虚拟专用网(VPN)、或促进网络环境中的通信的任何其它适当的架构或系统。网络可以包括任意数量的通过通信介质互相耦合(并且互相通信)的硬件或软件元件。
[0040]在一个特定实例中,本公开的架构可以与服务提供商数字用户线路(DSL)部署相关联。在其它示例中,本公开的架构将同样地适用于其它通信环境,例如企业广域网(WAN)部署、电缆场景、广义宽带、固定无线实例、光纤到x(FFTx),光纤到X是用于在最后一英里架构中使用光纤的任何宽带网络架构的通用术语,以及电缆数据服务接口规范(DOCSIS)有线电视(CATV)。本公开的架构可以包括针对网络中分组的发送和/或接收能够进行传输控制协议/互联网协议(TCP/IP)通信的配置。
[0041]转向图1B,图1B是示出了与通信系统10相关联的一个可能的细节组的简化框图。此特定配置包括被提供有缓冲器22、处理器24a、存储器26a、缓冲器监测功能28、以及速率控制功能30的ABR客户端18a。缓冲器22可以被配置为缓冲在接收器(例如,ABR客户端18a)处接收的内容。缓冲器监测功能28可以被配置为监测缓冲器22并且判定缓冲器22的状态。速率控制功能30可以被配置为监测接收器(例如,ABR客户端18a)正在接收的内容流的状态并且判定内容是否正在以高于或低于流正在被接收的速率的速率渲染。
[0042]转向图1C,图1C是示出了与给定服务器相关联的一个可能的细节组的简化框图。此特定配置包括服务器12a,其可以包括处理器24b、存储器26b、速率控制功能32、以及内容的存储元件25。在一个特定的示例中,服务器12a可以被配置为接收指令来以本文讨论的算法所确定的速率量出数据。因此,本公开的一个可选实施例涉及两部分解决方案,其中服务器12a和ABR客户端18a—致操作以实现本公开的教导。这可以涉及例如,被提供在服务器12a中的速率控制功能32和/或缓冲器监测功能28的实例。或者,可以在ABR客户端和这些元件之间交换简单的消息或信令以执行本文讨论的活动。在这个意义上说,可以在这些设备之中共享一些带宽管理操作和职责。
[0043]在示例实施例的操作中,ABR比特率客户端在带宽消耗场景中倾向于具有更少的侵略性(即,它们利用较少的带宽)。偶尔,链路结束时未被充分利用。问题是即使较小的未充分利用也会触发ABR客户端(严重)高估可用的带宽。在群体动力中操作,数个ABR客户端可以共同地升档(相信有大量轻易可用的带宽)。这导致显著的震荡和客户端不稳定,正如之前所指出的。
[0044]系统中提供有两种不同的“速率选择”或速率管理。在第一种情况中,有速率选择功能,通常由ABR客户端执行,其中客户端决定从服务器请求哪个编码速率。这是ABR的主要的适应机制。在第二种情况中,有一种特殊的情况,其中当客户端不能考虑升档时(例如,因为在清单中没有更高的速率或因为客户端具有小屏幕或不能解码更高的速率)。当客户端在此不能考虑升档的状态中时,它应该转换到不同的模式,在该模式中它排出它的接收缓冲器没有比它正在消耗内容的速率更快(即,通常以内容的标称编码速率)。在此环境中客户端应该转换到此其它模式的原因是因为客户端不能再被允许生长它的缓冲器,因此它不能参与正常的计划,在正常的计划中它一定要乐意“吞下”比它真正想要的更多的内容。注意到任何组件可以执行这些功能(在任何适当的位置)是重要的。下面参照图5讨论这些可能性中的一些可能性。
[0045]ABR客户端18a_c和服务器12a_b是可以促进本文所讨论的带宽管理活动的网络元件。如本文在此说明书中所使用的,术语‘网络元件’意味着包含任何上述的元件,以及路由器、交换机、分线盒、网关、桥、负载平衡器、防火墙、内联服务节点、代理、服务器、处理器、模块、或在网络环境中可操作来交换信息的任何其它适当的设备、组件、元件、专用器具、或物体。这些网络元件可以促进其操作的任何适当的硬件、软件、组件、模块、接口、或物体。这可以包括考虑了有效的数据或信息交换的适当的算法和通信协议。
[0046]在一个实施方式中,ABR客户端18a_c和/或服务器12a_b包括软件以实现(或促进)本文所讨论的带宽管理活动。这可以包括缓冲器监测功能28、速率控制功能30、和/或速率控制功能32的实例的实施方式。另外,每个这些元件可以具有内部结构(例如,处理器、存储器元件等)以促进本文所描述的一些操作。在其它实施例中,这些带宽管理活动可以在这些元件的外部被执行,或被包括在一些其它网络元件内以实现预期的功能。另夕卜,为了实现本文所描述的带宽管理活动,ABR客户端18a-c和服务器12a_b可以包括可以与其它网络元件相协调的软件(或往复式软件)。在其它实施例中,一个或多个设备可以包括促进其操作的任何适当的算法、硬件、软件、组件、模块、接口、或物体。
[0047]转向图2-3,图2-3是根据本公开的一个实施例的描述下载速率与缓冲器充满度的对比的图解说明(通常分别在50和60处表明)。在一种特定的情况下,图代表从左向右移动的常数函数(例如,阶跃函数等)。在图2的示例配置中,最大下载速率(例如,Mbps)被提供在y轴上,而缓冲的内容(例如,秒)被提供在X轴上。虚线代表最小缓冲水平和最大缓冲水平,其中当前编码的标称速率也被示出。更具体地,图2示出了现有ABR客户端如何将它们的最大下载速率设置为缓冲器充满度的函数,与本公开的ABR客户端将如何完成这个相对比。在图3的示例中,描述了下载速率与缓冲器充满度的对比的广义的说明。更具体地,图3的说明试图示出对本文在此说明书中所给出的概念的概括。
[0048]通常,本公开的一个重要的方面涉及设置缓冲器充满度与最大下载速率之间的关系从而使得最大下载速率逐渐地减少(例如,随着缓冲器充满度增加,从越快越好,到当前被选择的编码/播出速率)。缓冲器充满度和最大下载速率之间的关系的准确的形式可以被选择以优化系统的其它性能。
[0049]通信系统10的实施例因多种原因可以是高效的。例如,本公开的架构可以阻止竞争的ABR客户端群过高估计可用的带宽,导致频繁的速率转换和震荡。首先,为什么当一群ABR客户端在瓶颈链路处为带宽竞争时它们将倾向于让链路松弛地运行理解起来相当直观。问题发生是因为:(i)对每个客户端可用的编码速率的量化导致存在正好用完瓶颈链路的100%带宽的被选编码/播出速率的组合的概率很低;(ii)如果在所有ABR客户端之间的被选速率的组合合计多于瓶颈链路带宽,则一些客户端将最终降档以避免缓冲器低负荷运行;并且(iii)在现有ABR客户端处于稳定状态模式的情况下,没有客户端将接受比它的当前被选择的编码/播出速率哪怕多一丁点的带宽。
[0050]举个简单的示例,如果有10个客户端共享100Mbps链路,并且假设可用的编码速率是8Mbps和11Mbps,则所有ABR客户端上(假设没有客户端正在使用特技模式)被选择的速率的总和可以是80Mbps、83Mbps、86Mbps、89Mbps、…、98Mbps、101Mbps等。因此,链路可以是98%或101%被订阅,但不是100%被订阅。另外,由于链路不能被无限地101%订阅,它将偶尔下降(至少)至98%订阅。
[0051]在上述的描述中,重要的是理解(至少在一个实例中)每当通过所有ABR客户端的被选择的速率的总和合计至少于链路带宽时,链路就被视为处于松弛状态。注意因为所有ABR客户端使用TCP来下载块,并且由于TCP作为贪婪协议来操作,所以即使链路订阅量不足,它将仍通常具有非零队列。然而,如果检查可与块持续时间相比的间隔,则至少一些没有队列的时段可以被识别(无论多么短暂)。
[0052]对于本文所概述的ABR客户端,链路上松弛的时段将被消除。虽然现有ABR客户端将仅仅以它们的当前被选择的编码/播出速率下载,但是这些新的客户端将使用比它们的当前被选择的编码/播出速率仅高一点的下载速率。在上述涉及10个客户端的示例中,当前已选择了 8Mbps的速率的每个客户端可以尝试以高达8.5Mbps来下载内容,而当前已选择了 11Mbps的速率(假设也有更高的速率)的每个客户端将试图以11.5Mbps下载内容。实际尝试的下载速率可以根据每个客户端的缓冲水平,但是所有客户端将比它们的被选择的速率更快地下载。这意味着当ABR客户端具有的所有被选择的速率合计达98Mbps时,它们将实际上愿意以高达103Mbps的速率来下载比特,因此完全地使瓶颈链路100%的时间饱和。
[0053]分析中的下一步是理解链路利用和带宽过高估计之间的关系。甚至瓶颈链路的轻微的订阅不足(例如,仅仅0.1%)就可以导致对ABR客户端可用的公平共享的带宽的显著的过高估计。实际上,ABR客户端估计链路上可用的公平共享的带宽的能力中有“悬崖”,该“悬崖”正好在100%订阅时发生。当链路订阅超过100%时,客户端迅速地聚集在公平共享带宽的正确的估计上。当链路订阅低于100%时,客户端显著地过高估计可用的公平共享的带宽。在具有99%链路订阅的100个客户端中可用带宽的过高估计可以高于3: 1。当链路订阅达到101%时,很少有或没有对可用的公平共享带宽的过高估计。
[0054]最终,分析中的最后一步涉及理解为什么对可用的公平共享带宽的过高估计能够导致ABR客户端的频繁的速率转换,并且甚至导致系统的震荡,其中大多数客户端一致地一起升档和降档。当一群ABR客户端在过多订阅瓶颈链路时,ABR客户端获得对链路上可用的公平共享带宽的正确的估计。某些客户端将因此认识到它们的当前被选择的速率是不可持续的,并且这些客户端可以降档。当这些客户端降档时,系统则可以转换到松弛的或订阅不足的状态。在这种情况下,客户端可能显著地过高估计了可用的公平共享带宽,其中很多客户端将升档,再次导致链路的过高订阅。
[0055]转向图4,图4是示出了与本公开相关联的一个可能的活动组的简化流程图100。在102中,当前获取开始时间被设为当前时间。因此,在初始化后,ABR客户端具有当前被选择的比特率和当前缓冲水平。在104处,以当前速率请求下一块。因此,ABR客户端以当前被选择的比特率在请求内容的下一块。
[0056]在106处,关于是否可能升档做出决定。如果不可能,则将不比标称速率更快地接收数据,如在114处表示的一样。如果对此询问的回答为是,则尽可能快地接收数据,如在108处表示的一样。如果块接收被完成(通常在110和116处表示),则在112处更新平均测量的下载速率和缓冲水平。总之,ABR客户端能够接收对它的下载请求的回复,其中它进入花费了多长时间来接收回复。它可以使用接收的字节数除以它接收字节花费的时间作为对针对那个块请求的公平共享网络带宽的估计。另外,可以通过保留先前块下载的一些历史来获得总体的时间加权平均。
[0057]在118处,根据平均测量的下载速率和缓冲水平来选择下一速率。在120处,根据缓冲水平计算最小获取间隔。在122处,下一组开始时间被设为当前组开始时间加上最小获取间隔。因此,ABR客户端在使用被与算法(例如,被提供在ABR客户端内,如本文所讨论的)相结合的当前缓冲水平以决定在请求下一块之前等待多久。ABR客户端等待那个数量的时间,然后请求下一块,并且回路将以相似的方式继续。在124处,当前时间被评估以判定它是否大于下一获取时间。如果是,则流程将返回到102。如果对此询问的回答是否定的,则系统将等待直到下一获取开始时间,如通常在126处表示的。
[0058]因此,本公开的架构在实施ABR客户端,该ABR客户端被阻止到达能够允许瓶颈链路松弛运行的状态。在大多数情况中(除了 ABR客户端已经在以最高可用速率获取内容的特殊情况外),客户端将愿意比正在通过解码器被消耗稍微更快地接收内容。如本文所使用的,‘获取间隔’可以包括与检索内容(或者,至少其一部分)相关联的任何适当的时间参数。在一个示例中,根据被确定的最小值和最大值来识别获取间隔。一般地,随着缓冲器变得更满,获取间隔在增加,而未达到ABR客户端以它正在下载的相同速率在消耗的水平。本质上,ABR客户端不允许它自己进入它在同它在下载内容一样快地消耗内容的状态。
[0059]如连同图4所讨论的,为了阻止任何ABR客户端实际上将它的缓冲器填满至b_max,两个规定可以被添加到ABR客户端实施方式。首先,如果客户端处在它不能考虑升档至更高的速率的条件下(例如,因为没有更高的可用的编码速率,或因为它没有CPU或显示力以支持更高的速率),则它将精确地以当前编码的标称播出速率排出它的TCP接收缓冲器,因此确保(通过TCP流量控制)它的TCP连接将没有断开时段。(注意在此类别中的客户端没有必要测量可用下载带宽来查看附加的带宽对升档是否是可用的)。第二,如果客户端不在上述的条件中(即,如果它*可以*考虑升档),则ABR客户端将在它的缓冲水平达到b_max之前执行升档。换一种说法,客户端可以自始至终通过升档至更高的编码速率来阻止它自己填满它的缓冲器,这进而将意味着它将更慢地填充它的缓冲器(以应用持续时间而不是字节被测量)。
[0060]现在随着ABR客户端以块之间它的最小下载间隔逐渐地从0增加至实际的块持续时间D、而从没有达到D的方式被实施,还没有达到其最大可能速率的每个客户端将处在它愿意接受比它正在获取的内容的标称播出速率稍微更高的下载速率的状态。陈述此的另一方式是每个客户端(至少在某种程度上)愿意始终将它的缓冲器生长超越它的当前水平(除非它达到最大可用编码速率)。由于每个客户端愿意接受比它的当前被选择的播出速率稍微更高的速率,链路将保留在100%利用,即使当被选择的编码/播出速率的总和小于链路带宽的100%也是如此。因此,当ABR客户端根据本文在此说明书中所给出概念被实施,链路不能在松弛的状态中运行:假设存在至少一个没有达到其最大可用编码速率的客户端。
[0061]图5是示出了与本公开相关联的一个可选实施例的简化框图。在可选实施方式中,高速缓存77、网络代理75、和/或内容递送网络(CDN) 80可以被供应在网络的中间(或在边缘处),并且进一步连同本公开进行操作。另外,这些元件可以被提供在图5中示出的瓶颈的任意一边。还要注意ABR客户端本身可以被嵌入这些元件(高速缓存77、网络代理75、⑶N 80)中的任何元件中。在某些实施例中,这些元件可以被命令以由本文所讨论的算法所确定的速率量出数据。因此,本公开的解决方法可以作为代理服务器、网络代理、高速缓存XDN等的一部分进行操作。这可以涉及例如,被供应在这些元件中的速率控制功能32和/或缓冲器监测功能28的实例。另外,可以在ABR客户端和这些元件之间交换简单的消息或信令以执行本文所讨论的活动。在此情况下,可以在这些设备之中共享一些带宽管理操作。
[0062]操作上,⑶N 80可以将内容的带宽有效递送提供给ABR客户端18a_c或其它终端,包括机顶盒、个人电脑、游戏机、智能手机、平板设备、ipad、iphone、谷歌机器人、用户端装备、或任何适当的终端。注意服务器12a-b (之前在图1A中被指出)也可以集成或被耦合到边缘高速缓存、网关XDN 80、或任何其它网络元件。在某些实施例中,服务器12a-b可以与诸如家庭网关(RG)的用户端装备(CPE)相集成。内容块也可以被缓存在上游服务器上或被缓存至靠近CDN的边缘。例如,源服务器可以被准备有内容块,并且家庭网关也可以获取和缓存内容块。
[0063]如之前所指出的,网络元件可以包括软件(例如,缓冲器监测功能28、速率控制功能30、和/或速率控制功能32等)以实现如本文在此文档中所概述的带宽管理操作。在某些示例实施方式中,可以通过被编码在一个或多个非暂态、有形的介质中的逻辑(例如,被提供在专用集成电路[ASIC]中的嵌入式逻辑、数字信号处理器[DSP]指令、通过处理器[图1B和图1C中示出的处理器24a和24b]或其它相似的机器被执行的软件[潜在地包括目标代码和源代码]等)来实施本文所概述的带宽管理功能。在这些实例中的一些中,存储器元件[图1B和图1 C中示出的存储器26a和26b]可以对被用于本文所描述的操作的数据进行存储。这包括存储器元件能够对被执行以实施此说明书中所描述的活动的指令(例如,软件、代码等)进行存储。处理器(例如,处理器24a和24b)可以执行与数据相关联的任何类型的指令以实现本文在此说明书中所详述的操作。在一个示例中,处理器可以将元件或素材(例如,数据)从一个状态或事物变换到另一状态或事物。在另一示例中,本文所概述的活动可以用固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)来实施并且本文所指出的元件可以是某些类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列[FPGA]、可擦可编程只读存储器(EPROM)、电可擦可编程ROM (EEPR0M))或包括数字逻辑、软件、代码、电子指令、或它们的任何适当的组合的ASIC中。
[0064]任何这些元件(例如,网络元件等)都可以包括存储器元件用于对被用于实现如本文所概述的带宽管理活动的信息进行存储。另外,每个这些设备都可以包括可以执行软件或算法的处理器以执行此说明书中所讨论的带宽管理活动。这些设备可以进一步使信息保持在任何适当的存储元件[随机存取存储器(RAM)、R0M、EPR0M、EEPR0M、ASIC等]、软件、硬件、或在任何其它适当的组件、设备、元件、或适当的物体中并且基于特定的需要。本文所讨论的任何存储器项目应该被解释为被包含在广义的术语‘存储元件’中。同样地,此说明书中所描述的任何可能的处理元件、模块、和机器应该被解释为被包含在广义的术语‘处理器’中。每个网络元件也可以包括适当的接口用于在网络环境中接收、发送、和/或以其它方式传输数据或信息。
[0065]注意对于上述提供的示例,交互可以依据两个、三个、或四个网络元件被描述。然而,这么做仅仅是为了清楚和示例的目的。在某些情况下,仅通过参照有限数量的网络元件来描述给定流程组的一个或多个功能是更容易的。应该理解的是通信系统10(以及它的教导)是很容易进行扩展的,并且进一步可以容纳大量的组件、以及更复杂/更精密的布置和配置。因此,提供的示例不应该限制通信系统10的范围或抑制通信系统10的广阔的教导,潜在地被应用到大量的其它架构。
[0066]注意到之前的图中的步骤仅示出了可以由通信系统10执行、或可以在通信系统10内被执行的一些可能的场景,这也是重要的。在不脱离本公开的范围的情况下,这些步骤中的一些步骤可以在适当的地方被删除或移除,或这些步骤可以被显著地修改或改变。另夕卜,这些操作中的很多操作已经被描述为与一个或多个附加的操作同时(或并行)被执行。然而,这些操作的定时可以显著地被改变。为示例和讨论的目的给出了之前的操作流程。通信系统10提供了实质的灵活性:在不脱离本公开的教导的情况下,可以中提供任何适当的布置、时序、配置、以及定时机制。
[0067]应该注意的是很多之前的讨论可能隐含单一客户端服务器关系。事实上,在本公开的某些实施方式中在递送层有很多服务器。另外,本公开可以轻易地扩展至应用到架构中的更上游的中间服务器,尽管这不一定与通过‘η’个服务器的‘m’个客户端相关联。任何这样的排列、缩放、以及配置明显都在本公开的广阔的范围内。
[0068]很多其他改变、替换、变化、变更、以及修改对本领域的技术人员来说都是确定的并且它意味着本公开包含落在附录的权利要求的范围内的所有这样的改变、替换、变化、变更、以及修改。为了帮助美国专利商标局(USPT0)并且另外,被发布在此申请上的任何专利的任何读者在解释这里附录的权利要求时, 申请人:希望注意的是此 申请人::(a)不打算任何附录的权利要求因在申请日时存在而调用35 U.S.C部分112的第六(6)段,除非词“用于……的装置”或“用于……的步骤”被具体地用于此特定权利要求中;以及(b)不意指通过此说明书中的任何陈述来以没有另外被体现在附录权利要求中的任何方式限制此公开。
【权利要求】
1.一种方法,包括: 为自适应比特率(ABR)客户端生成带宽估计; 评估所述ABR客户端的缓冲器的当前状态;以及 至少根据所述带宽估计和所述缓冲器的当前状态,来确定被用于所述ABR客户端的编码速率,其中针对所述ABR客户端的获取间隔随所述缓冲器变得更满而增长,而不达到所述ABR客户端以与它在下载数据的速率相同的速率在消耗数据的水平。
2.如权利要求1所述的方法,其中所述带宽估计至少基于将所述ABR客户端接收的字节数除以所述字节被接收的时间间隔来被计算。
3.如权利要求1所述的方法,进一步包括: 根据平均测量的下载速率和所述缓冲器的当前状态来选择随后的编码速率。
4.如权利要求1所述的方法,进一步包括: 为所述ABR客户端定义第一缓冲水平;以及 为所述ABR客户端定义第二缓冲水平,其中为所述ABR客户端定义了一个功能,所述功能根据所述第一缓冲水平和所述第二缓冲水平给出了连续块下载之间的最小间隔。
5.如权利要求1所述的方法,其中随着所述缓冲器的特定水平从最小水平增加到最大水平,提供了从所述获取间隔到实际的块持续时间的线性插值。
6.如权利要求5所述的方法,其中阻止所述ABR客户端的瞬时缓冲水平达到所述最大水平。
7.如权利要求1所述的方法,进一步包括: 转换到更高的编码速率以阻止所述缓冲器增长到某一水平。
8.如权利要求1所述的方法,进一步包括: 计算最小获取间隔;以及 为所述ABR客户端将开始时间设置为当前组开始时间加上所述最小获取间隔。
9.如权利要求1所述的方法,进一步包括: 将指令提供给特定的网络元件来以由所述ABR客户端所确定的速率量出数据到所述ABR客户端。
10.如权利要求1所述的方法,进一步包括: 确定不升档至更高的编码速率;以及 以所述ABR客户端的当前编码的标称播出速率排出传输控制协议(TCP)缓冲器。
11.一种被编码在一个或多个非暂态介质中的逻辑,该逻辑包括用于执行的指令,并且当所述指令被处理器执行时,该指令可操作以执行包括以下各项的操作: 为自适应比特率(ABR)客户端生成带宽估计; 评估所述ABR客户端的缓冲器的当前状态;以及 至少根据所述带宽估计和所述缓冲器的当前状态,来确定被用于所述ABR客户端的编码速率,其中针对所述ABR客户端的获取间隔随所述缓冲器变得更满而增长,而不达到所述ABR客户端以与它在下载数据的速率相同的速率在消耗数据的水平。
12.如权利要求11所述的逻辑,其中所述带宽估计至少基于将所述ABR客户端接收的字节数除以所述字节被接收的时间间隔来被计算。
13.如权利要求11所述的逻辑,所述操作进一步包括: 根据平均测量的下载速率和所述缓冲器的当前状态来选择随后的编码速率。
14.如权利要求11所述的逻辑,所述操作进一步包括: 为所述ABR客户端定义第一缓冲水平;以及 为所述ABR客户端定义第二缓冲水平,其中为所述ABR客户端定义了一个功能,所述功能根据所述第一缓冲水平和所述第二缓冲水平给出了连续块下载之间的最小间隔。
15.如权利要求11所述的逻辑,其中随着所述缓冲器的特定水平从最小水平增加到最大水平,提供了从所述获取间隔到实际的块持续时间线性插值。
16.如权利要求15所述的逻辑,其中阻止所述ABR客户端的瞬时缓冲水平达到所述最大水平。
17.如权利要求11所述的逻辑,所述操作进一步包括: 转换到更高的编码速率以阻止所述缓冲器增长到某一水平。
18.一种装置,包括: 存储器兀件,被配直为存储指令; 处理器,被耦合到所述存储元件;以及 缓冲器,其中所述装置被配置用于: 为自适应比特率(ABR)客户端生成带宽估计; 评估所述ABR客户端的缓冲器的当前状态;以及 至少根据所述带宽估计和所述缓冲器的当前状态,来确定被用于所述ABR客户端的编码速率,其中针对所述ABR客户端的获取间隔随所述缓冲器变得更满而增长,而不达到所述ABR客户端以与它在下载数据的速率相同的速率在消耗数据的水平。
19.如权利要求18所述的装置,所述装置被进一步配置用于: 转换到更高的编码速率以阻止所述缓冲器增长到某一水平。
20.如权利要求18所述的装置,所述装置被进一步配置用于: 确定不升档至更高的编码速率;以及 以所述ABR客户端的当前编码的标称播出速率排出传输控制协议(TCP)缓冲器。
【文档编号】H04L29/06GK104365074SQ201380030798
【公开日】2015年2月18日 申请日期:2013年5月31日 优先权日:2012年6月12日
【发明者】乔舒亚·B·盖哈姆, 艾丽·C·贝根, 大卫·R·奥兰 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1