基于网络的自适应速率限制的制作方法
【技术领域】
[0001]本公开涉及网络通信,并且更具体地,涉及速率限制。
【背景技术】
[0002]自适应比特率流式传输(streaming)是在通过计算机网络向一个或多个客户端流式传输多媒体中使用的技术,例如该技术可以根据传输协议(例如,超文本传输协议(HTTP))来提供。自适应流式传输一般是通过根据相应客户端的带宽和能力来调整视频流的速率而进行操作的。客户端可以根据可用的资源在具有不同编码比特率的流式传输之间进行相应地切换。当多个自适应流式传输客户端在瓶颈链路处互相竞争带宽时,每个客户端可能很难估计自己的带宽份额。由于在一个或多个客户端处差的自适应决定,这可能导致可令用户分心的不稳定性和/或频繁的比特流改变。
【附图说明】
[0003]图1示出了自适应速率限制系统的示例。
[0004]图2示出了自适应速率限制系统的另一示例。
[0005]图3示出了将自适应速率限制流量与高速数据流量相组合的系统的示例。
[0006]图4示出了被配置为实现自适应速率限制的网络系统的示例。
[0007]图5示出了用于执行自适应速率限制的方法的示例。
【具体实施方式】
[0008]挺述
[0009]本公开总体涉及网络通信,并且更具体地,涉及基于网络的自适应速率限制。
[0010]作为示例,方法可以包括将权重分配至多个自适应流式传输媒体会话中的给定流式传输会话,该多个自适应流式传输会话被提供给馈入瓶颈链路的网络节点。给定流式传输会话的速率限制可以基于所分配的权重和用于通过瓶颈链路向多个自适应流式传输媒体会话提供流式传输媒体流量的有效目标带宽来计算。给定流式传输会话的下游速率可以被根据所计算的速率限制来调整。
[0011]作为另一示例,装置可以包括会话速率限制计算器和速率限制器。会话速率限制计算器可以被配置为基于给定会话的状态信息和下游瓶颈链路的状态信息来计算多个活跃流式传输媒体会话中的给定会话的会话速率限制,其中该装置将多个活跃流式传输媒体会话馈入该下游瓶颈链路。速率限制器可以被配置为基于所计算的会话速率限制来控制给定会话的下游流量,并且针对给定会话提供相应的经速率限制的下游流量。
[0012]作为又一示例,系统可以包括存储器,该存储器存储会话数据和瓶颈数据。会话数据可以包括多个自适应流式传输媒体会话中的每一个的状态信息,瓶颈数据包括瓶颈链路的控制参数和状态信息,其中多个自适应流式传输媒体会话被通过该瓶颈链路向下游提供。控制系统可以包括会话速率限制计算器,该会话速率限制计算器被配置为计算多个自适应流式传输媒体会话中的给定会话的会话速率限制,该会话速率限制基于瓶颈链路的控制参数和状态信息而变化。会话速率限制器可以被配置为控制给定会话的比特率,该给定会话是通过瓶颈链路基于会话速率限制以提供给定会话的相应经速率限制的下游流量来向下游提供的。相比于被用来更新瓶颈链路的控制参数和状态信息中的至少一个的时间尺度,对给定会话的比特率的控制可在不同时间尺度上执行。
[0013]示例实施例
[0014]图1描绘了可以实现网络流量(例如,通过网络被传输并且馈入这样的网络中的瓶颈链路的网络流量)的速率限制的系统10的示例。如本文中所使用的,因此,瓶颈链路指网络中的点或位置,一个或多个数据流通过该点或位置进行传递用于向一个或多个客户端通信流式传输媒体。一旦客户端都升档至足够高的比特率,瓶颈链路上流动的下游流量可足以驱使瓶颈链路进入拥塞。
[0015]作为示例,因此,基于网络的自适应速率限制可以在网络节点(例如,路由器或交换机)12上实现,该网络节点12充当承载下游方向(例如,从网络到客户端)中的许多自适应流式传输会话的流量的瓶颈链路的入口。多个数据流的流量在本文中也被称为会话。节点12被配置为提供一个或多个这样的会话的经速率限制的相应下游流量。此外,如本文中所使用的,给定会话可以对应于一个或多个协议连接,例如根据传输控制协议(TCP)。作为进一步的示例,本文所公开的示例中的每一个可以对应于超文本传输协议(HTTP)通信协议,例如本文所公开的示例中的每一个针对流式传输媒体可以通过TCP来通信(例如,根据HTTP/TCP来通信)。在另一示例中,每个会话的请求和响应可以根据SPDY协议来通信(例如,根据HTTP/sroY/TCP来通信)。在又一示例中,快速UDP互联网连接(QUIC)可以被用作用于传输会话的传输层网络协议(例如,根据HTTP/SroY/QUIC来通信)。也可以利用其他协议。在一些示例中,会话可以包括用于从内容传送网络向一个或多个相应的下游客户端传送流式传输视频的HTTP自适应流式传输(HAS)会话。
[0016]如本文所公开的,系统10通过调整每个活跃会话的每会话比特率限制来实现基于每个会话的自适应速率限制,从而促进并且使得自适应会话客户端能够做出稳定的速率选择并且提升整体用户体验。如本文所使用的,速率限制可以包括流量监管、流量整形(shaping)、或它们的组合。监管和整形可以被应用至任意网络协议。
[0017]在图1的示例中,系统10包括流量监测器14,该流量监测器14被配置为监测网络流量并且接收相关参数。流量监测器14可以提供网络的软件配置信息,例如包括瓶颈链路状态信息16以及每会话状态信息18。例如,瓶颈链路状态信息16可以包括指示由节点12在下游方向上驱使的瓶颈链路的目标带宽的值。瓶颈链路状态信息16还可以包括活跃的下游会话的聚合权重值的指示。因此,瓶颈链路状态信息16可以包括关于瓶颈链路的状态的信息以及与网络流量相关联的聚合信息(包括关于相应会话的聚合信息)。
[0018]会话状态信息18可以针对多个会话中的每一个会话被提供。这可以包括活跃会话以及非活跃会话。在其他示例中,非活跃会话的数据可以被移除。作为示例,对于每个会话,会话状态信息18可以包括会话标识符、分配至会话的权重值、以及其他相关会话信息(例如,指示会话是活跃或非活跃的状态值、对应于会话的通过下游瓶颈链路发送的最后分组的时间戳)。
[0019]如本文所公开的,瓶颈链路状态信息和会话状态信息可以由流量监测器基于监测通过这样的链路的流量来提供。除了流量监测器14的活跃网络流量监测功能,流量监测器可以包括控制器(未示出),该控制器被配置为接收软件配置参数,例如包括目标带宽和分配至相应会话的权重值的指示。因此,流量监测器14可以包括一个或多个计算器,该一个或多个计算器基于它接收到的配置信息来计算其他流量相关的参数。例如,由于每个会话的状态信息18可以包括相应的会话权重值,因此瓶颈链路状态信息16中的总权重值可以从被分配给多个活跃会话中的每一个活跃会话的单独状态信息中得出。流量监测器14还可以做出会话是否是活跃的确定。
[0020]会话速率限制计算器20被配置为基于瓶颈链路状态信息16和给定会话的会话状态信息18来计算多个活跃流式传输媒体会话中的给定会话的会话速率限制。会话速率限制器22被配置为基于由计算器20计算的速率限制来提供经速率限制的下游会话流量。可以根据不同速率限制技术来实现会话速率限制器22,例如速率限制技术可以包括流量监管、流量整形、或整形功能和监管功能的组合。如本文所公开的,取决于用于针对多个活跃流式传输媒体会话中的每一个实现相应的速率限制的会话数量,可以分别存在任意数量的速率会话计算器20和会话速率限制器22。每个会话的经速率限制的下游流量可以被聚合并且被提供至用于通过瓶颈链路进行发送的传输队列。应当理解和明白的是,速率限制系统10可以在给定节点12之内被实现为硬件、存储在非暂态计算机可读介质中的可执行指令、或硬件与可执行指令的组合。自适应速率限制方法因此可以减轻失速(stall)、提升视频质量、并且提升流式传输视频媒体的稳定性。
[0021]图2描绘了可以在通过通信网络的瓶颈链路来馈入数据的节点处被实现的速率限制系统50的示例。速率限制系统50被配置为根据给定传输协议来接收下游会话流量,并且向用于馈入多个下游客户端的瓶颈链路提供相应的经速率限制的下游流量。速率限制系统50当被应用于对如下下游流量进行速率限制时具有特别效用,所述下游流量被提供至多个HTTP自适应流式传输(HAS)客户端作为相应流式传输媒体会话。在这样的示例中,HAS客户端可以通过针对所请求的流式传输媒体在不同编码方式之间切换来竞争可用带宽。如本文所公开的,自适应速率限制系统50可以基于与每个活跃流式传输会话相关联的状态信息和与瓶颈链路52相关联的状态信息,来动态地计算各个流式传输会话的速率限制。系统50可以转而根据所计算的各个相应会话的速率限制来调整各个相应活跃流式传输会话的下游比特率。
[0022]在图2的示例中,系统50包括控制系统54,该控制系统54被配置为控制在调整速率限制中利用的速率限制参数。系统50还可以包括存储器56,该存储器56可以存储多个会话60中的每一个会话的会话数据58(在会话I到会话N处所指示的,其中N是正整数)。控制系统54可以执行相应的功能(例如,计算器和控制回路),该相应的功能可以被利用来更新各个相应会话60的会话数据。控制系统54还可以包括被配置为确定瓶颈数据62的功能和方法。
[0023]各个相应会话的会话数据可以包括与各个相应会话的标识和操作相关联的参数。例如,这样的会话数据可以包括会话标识符(ID)、会话权重值、会话速率限制r[i](其中i表示给定会话)、以及可以在实现系统50的速率限制中被利用的其他会话状态信息。控制系统54可以被实现为包括一个或多个处理核心、算术逻辑单元、或可以访问和执行相应指令(例如,从存储器)从而控