改善的拥塞响应

文档序号:790152 发布日期:2021-04-09 浏览:28次 >En<

阅读说明:本技术 改善的拥塞响应 (Improved congestion response ) 是由 Y·胡梅达 S·阿普尔比 M·尼尔森 于 2019-08-08 设计创作,主要内容包括:在本发明的示例中,在内容递送期间,测量各个递送的数据包的往返时间,并且相应地调整被用于递送的拥塞窗口。该拥塞窗口在往返时间相对短时被设定成相对大的值,而在往返时间相对长时被设定成相对小的值。(In an example of the invention, during content delivery, the round trip time of each delivered packet is measured and the congestion window used for delivery is adjusted accordingly. The congestion window is set to a relatively large value when the round trip time is relatively short and to a relatively small value when the round trip time is relatively long.)

改善的拥塞响应

技术领域

本发明涉及在通过网络递送内容期间管理拥塞响应的方法和设备。

背景技术

传输控制协议(TCP)是在通过分布式计算机网络(比如互联网)递送数据时使用的传输协议。

TCP被设计成通过网络实现数据的可靠传输,目的是避免不利地影响争用TCP流量流的网络吞吐量。按照TCP协议,传输中丢失的包被重新传输,以尝试实现可靠的递送。另外,TCP协议实现了拥塞响应或拥塞避免方案。作为该方案的一部分,假设丢包是因网络上的拥塞造成的,那么在检测到丢包之后,包通过网络从发送方到接收方的传输速率会降低。

包到网络的传输速率可以由被称为拥塞窗口(在本文中可以被表示为CWND)的参数来进行控制。拥塞窗口可以指示在任何给定时间已经被传送到网络中但尚未被接收方确认的最大允许数量的包。TCP发送方(例如,媒体内容服务器)可以维持各个接收方(例如,内容客户端)连接或流的拥塞窗口。在检测到给定连接上的丢包之后,TCP发送方通常会迅速采取措施,以显著减小拥塞窗口的大小,从而导致大幅降低该连接的传输速率。TCP NewReno的实现是通过被称为加性增乘性减(additive increase multiplicative decrease)的处理来做到这一点的。

例如,当此类TCP流流经路由器以传递大文件时,传输速率增加,直到路由器队列填满为止,在该点包将会丢失。在被称为尾丢弃的一些路由器实现中,在队列被完全填满之前,包不会丢失。在其它实现(诸如随机早期丢弃)中,丢包的概率随缓冲器填充而单调地增加。然而,通常,因缓冲器填充而造成的丢包的概率随缓冲器填充而增加。

从而,随着路由器缓冲器填满,发生丢包,从而导致TCP通过减小拥塞窗口大小来减慢传输速率。然后,TCP会随着其接收到确认而逐渐增加拥塞窗口大小,直到再一次路由器队列填满并且发生丢包。

图4是示出针对以下情况这种行为随着时间对TCP拥塞窗口大小(CWND)、缓冲器填充以及往返时间(RTT)所造成的结果的典型示例:单个TCP New Reno流通过具有队列大小为100个包的路由器、以及来自除了在路由器中排队的源以外的源的包大小为1500字节、瓶颈吞吐速率为10MBit/s以及RTT为10ms。CWND由实线标绘图400示出(并且以包为单位进行测量),缓冲器填充由虚线标绘图402示出(并且以包为单位进行测量),以及RTT由点虚线标绘图404示出(并且以ms为单位进行测量)。可以看出,这些标绘图中的各个标绘图皆呈锯齿形。

拥塞窗口的大小稳定增加,缓冲器填充和往返时间不是非常线性的,这是因为拥塞窗口按每往返时间增加一个包,但是往返时间随着拥塞窗口和缓冲器填充而增加,从而使增量之间的间隔增加。

TCP拥塞控制的流行实现(诸如TCP New Reno和TCP CUBIC)响应于丢包而控制数据流,因此无法保证在指定的时间间隔内递送指定量的数据。

本申请人的国际申请WO2014/155031描述了TCP拥塞控制,其中,在递送数据片段期间控制TCP拥塞窗口,以确保在指定的时间间隔内递送数据片段,并且其中,在递送期间监测丢包,并且其中,将在递送一个或更多个先前片段期间所测量的丢包用于计算对要被用于递送下一个数据片段的拥塞窗口的约束。

例如,对于内容流传输应用,可以将所述指定的时间间隔设定成相对较短的时间,在该内容流传输应用中,需要在一定时间内递送内容以防止播放停顿。相反地,对于文件下载,如果用户不是迫切地需要文件,那么可以将所述指定的时间间隔设定成相对长的时间。

发明内容

根据本公开的一个方面,提供了一种通过网络从服务器向客户端递送内容的方法,所述内容包括具有可用于递送的关联时间的多个时间片段,并且各个时间片段皆包括多个数据包,所述方法包括以下步骤:

a)从所述服务器向所述客户端递送片段的第一部分;

b)测量与递送至少所述第一部分相关联的多个往返时间;

c)根据所述多个往返时间确定当前往返时间、中心往返时间、低往返时间以及高往返时间;

d)计算在可用于递送所述片段中剩余的数据的时间内递送所述片段中剩余的数据所需的必需拥塞窗口大小,其中,必需拥塞窗口大小取决于所述中心往返时间;

e)计算修改后的拥塞窗口大小,其中,所述修改后的拥塞窗口大小落入在所述必需拥塞窗口大小周围设定的范围内,并且其中,在所述当前往返时间接近所述低往返时间时,所述修改后的拥塞窗口大小相对大,并且其中,在所述当前往返时间接近所述高往返时间时,所述修改后的拥塞窗口大小相对小;

f)使用所述修改后的拥塞窗口大小从所述服务器向所述客户端递送来自所述片段中的剩余部分的进一步数据;

g)测量与递送来自所述片段中的剩余部分的进一步数据相关联的多个往返时间;以及

h)至少使用来自步骤g)的所述多个往返时间来重复步骤c)至步骤f)。

所述当前往返时间可以是与递送最新的包相关联的往返时间。

可用于递送所述片段中的剩余部分中的数据的时间可以是可用于递送所述片段的时间减去自针对所述片段开始的数据递送以来所经过的时间。

所述修改后的拥塞窗口大小可以落入最小拥塞窗口大小与最大拥塞窗口大小之间,所述最小拥塞窗口大小和最大拥塞窗口大小被设定为与必需拥塞窗口大小的百分比偏移量。

所述低往返时间可以是测量出的最短往返时间,并且所述高往返时间可以是测量出的最长往返时间。

所述修改后的拥塞窗口大小CWNDmodified可以由下式给出:

其中,CWNDmin是最小拥塞窗口大小,CWNDmax是最大拥塞窗口大小,RTThigh是高往返时间,RTTlow是低往返时间,以及RTTcurrent是当前往返时间。

根据本公开的第二方面,提供了一种通过网络向客户端递送内容的服务器,所述内容包括具有可用于递送的关联时间的多个时间片段,并且各个时间片段皆包括多个数据包,所述服务器在操作中适于:

a)从所述服务器向所述客户端递送片段的第一部分;

b)测量与递送至少所述第一部分相关联的多个往返时间;

c)根据所述多个往返时间确定当前往返时间、中心往返时间、低往返时间以及高往返时间;

d)计算在可用于递送所述片段中剩余的数据的时间内递送所述片段中剩余的数据所需要的所需拥塞窗口大小,其中,必需拥塞窗口大小取决于所述中心往返时间;

e)计算修改后的拥塞窗口大小,其中,所述修改后的拥塞窗口大小落入在所述必需拥塞窗口大小附近设定的范围内,并且其中,在所述当前往返时间接近所述低往返时间时,所述修改后的拥塞窗口大小相对大,并且其中,在所述当前往返时间接近所述高往返时间时,所述修改后的拥塞窗口大小相对小;

f)使用所述修改后的拥塞窗口大小从所述服务器向所述客户端递送来自所述片段中的剩余部分的进一步数据;

g)测量与递送来自所述片段中的剩余部分的进一步数据相关联的多个往返时间;以及

h)至少使用来自步骤g)的所述多个往返时间来重复步骤c)至步骤f)。

附图说明

为了更好地理解本发明,现在针对以下附图,仅通过示例的方式来进行说明,其中:

图1示出了通信网络的示例;

图2示出了形成图1中的网络的一部分的数据服务器的示例;

图3是概括根据本发明的示例的通过网络进行内容递送的方法的步骤的流程图;

图4是示出示例TCP New Reno流的拥塞窗口大小、缓冲器填充以及往返时间随时间的变化的图表;

图5是示出与具有固定拥塞窗口大小的TCP流争用的示例TCP New Reno流的拥塞窗口大小、缓冲器填充以及往返时间随时间的变化的图表;以及

图6是示出与利用修改后的拥塞窗口控件(window control)的TCP流争用的示例TCP New Reno流的拥塞窗口大小、缓冲器填充以及往返时间随时间的变化的图表。

具体实施方式

现在参照特定示例对本发明进行描述。然而,本发明不限于这样的示例。

本发明的示例呈现了一种通过网络从服务器向客户端递送内容的方法。内容可以是媒体内容(诸如,视频序列),或者可以是某一其它形式的内容(诸如,文件传递)。该内容包括多个时间片段。对于媒体内容,各个片段皆可以在播放时包含达短暂持续时间的数据(例如,相当于2秒到15秒播放的数据)。每段媒体内容的数据包的数量取决于该时间片段的持续时间、经编码的比特率以及各个数据包的大小,并且范围可以从几十个数据包到数千个数据包变动。例如,在时间片段为10秒持续时间、经编码的比特率为1MBit/s、以及数据包大小为1500字节的情况下,10秒持续时间的各个媒体内容片段将包括833个数据包(10×1000000/(1500×8))。

在本发明的示例中,在内容递送期间,测量各个递送的数据包的往返时间,并且相应地调整被用于递送的拥塞窗口。该拥塞窗口在往返时间相对短时被设定成相对大的值,而在往返时间相对长时被设定成相对小的值。

现在,对本公开的示例实施方式进行描述。在以下示例中,媒体内容是根据HTTP自适应比特率流传输通过网络递送的,其中,HTTP将TCP与修改后的TCP拥塞响应一起使用。然而,本发明的示例同样可以应用于其它内容而不是媒体内容,诸如用于操作系统更新、游戏以及应用的文件传递。媒体内容的典型示例包括电影、新闻以及TV节目。

图1示出了通信系统100的示例。该系统包括数据服务器104、以及由通信网络106分离的多个客户端装置或接收器108、110和112。网络106可以是无线网络、有线网络或者有线网络和无线网络的组合。网络106可以是诸如互联网的分布式计算网络(或者可以形成诸如互联网的分布式计算网络的一部分)。

数据服务器104被示出为通信地联接至数据源102。数据源102将数据提供给数据服务器104。如上所述,在该示例中,数据是包括视频流和/或音频流的媒体内容,但是可以是某一它形式的数据。因此,数据源102是被配置成对视频流进行编码以生成经编码的视频流的内容生成器。例如,可以根据ITU-T H.264标准来对视频流进行编码,但是也可以使用其它标准。如果媒体内容另外包括音频内容,则对该音频内容进行编码以生成经编码的音频流。用于对音频流编码的标准的一个示例是MPEG-4HE AAC,但是可以另选地使用其它标准。也可以将数据源102配置成将媒体内容分割成多个离散的时间片段,如上所述,该时间片段的持续时间通常介于2秒与15秒之间。该内容流可以在编码之前或之后进行分割。

数据服务器104被配置成从数据源102接收媒体内容并且可以存储所接收到的内容。如上所示,可以对由数据源102接收的媒体内容进行编码和分割。数据服务器可以经由网络106将媒体内容传送或递送至客户端108、110以及112中的一个或更多个。数据服务器104可以是视频流传输服务器,并且可以根据请求向客户端递送视频(和/或音频)内容。因此,客户端装置108、110以及112可以适于从服务器104请求媒体内容。例如,客户端装置可以是适当配置的机顶盒、PC、膝上型电脑、智能手机、平板电脑、智能TV等。

图2更详细地示出了数据服务器104的示例。

服务器104包括:输入接口202;数据存储部204以及输出接口210。服务器104还包括被联接至输出接口210的调度单元214、拥塞窗口单元212以及递送监测单元218。服务器104可以被配置成在输入接口202处从数据源102接收经编码的内容片段并且将所接收到的经编码的片段作为数据文件206存储在数据存储部204中。

各个内容片段作为多个数据包从服务器104经由输出接口210被发送。即,各个内容数据片段是由多个数据包形成的。构成内容片段的数据包的数量可以改变,并且取决于如早前所描述的许多因素。数据服务器104也可以经由输出接口210从服务器已经将数据包发送至的一个或更多个内容客户端接收确认包。通信系统可以被设置成使内容服务器接收针对通过网络成功递送至客户端的各个数据包的确认包。

参照图1,考虑通过网络106从数据服务器104到客户端108的一个流、以及从数据服务器104到客户端110的第二个流的示例,其中,这两个流争用网络106的至少一部分上的带宽。参照早前所描述的TCP流(图4例示了该TCP流的行为),已经发现,如果存在与这种TCP流争用的第二个流,那么第二个流可以通过在缓冲器不太满时以较高速率进行发送,而在缓冲器较满时以较低速率进行发送来获得更好的性能。常规的TCP流无法这样做,这是因为常规TCP流的传输速率是根据该TCP流的拥塞窗口大小进行控制的,而拥塞窗口大小又由丢包事件来进行控制。然而,使用另选的修改后的拥塞响应的流可以延迟该流对丢包事件的响应,因而无论丢包率如何,都可以控制所述流的传输速率。本发明的示例提出了这种修改后的拥塞响应。

当使用上面描述的两个流争用网络106的至少一部分上的带宽的网络配置时,在模拟中发现,TCP New Reno流的吞吐量与固定拥塞窗口大小为47个数据包的TCP流的吞吐量大致相同。通过对不同的值进行迭代,直到这两个流中的各个流实现的吞吐量大致相同,才能找到这种固定拥塞窗口大小的大小。

图5示出了对于单个TCP New Reno流与具有固定拥塞窗口大小为47个包的单个TCP流通过该网络配置争用的情况的往返时间(RTT)504、缓冲器填充502、TCP New Reno拥塞窗口大小(TCP CWND)500、以及47个包的固定拥塞窗口大小506。

在近20分钟传输的模拟中(图5示出了该20分钟传输中的30秒片段),TCP NewReno流每发送百万个包遭受1204个包丢失。然而,具有固定拥塞窗口大小的TCP流每发送百万个包遭受852个包丢失,这显著少于TCP New Reno流的丢包。

对于具有固定拥塞窗口大小的TCP流,观察到的较低水平的丢包可以解释如下。这两个争用流的平均拥塞窗口大小近似相同,随着缓冲器的填充,TCP New Reno流的拥塞窗口增加,并且在缓冲器溢出时的时间点大于另一个流的固定拥塞窗口大小。尽管任一个流或两个流均可能遭受丢失,但是TCP New Reno流具有更多“飞行中”的包,这使TCP NewReno流在这两种流中更可能遭受丢包。

因此,具有固定拥塞窗口大小的TCP流可以实现与争用的TCP New Reno流相同的吞吐量,同时遭受较低的丢包。这通常对网络有利,因为需要重新发送的数据包更少且浪费的资源更少。然而,通过允许拥塞窗口大小根据所测量出的往返时间的某种变化,可以进一步改善性能,如同使用修改后的拥塞窗口的本发明的示例中所阐述的那样。

诸如TCP New Reno的常规TCP流将逐渐增加其拥塞窗口大小,而不会发生丢包,然后从根本上减少丢包。随着拥塞窗口大小朝着丢包的方向增加,增长的拥塞窗口大小很可能导致网络缓冲器填满,并且往返时间增加。

通过测量往返时间并且设定修改后的拥塞窗口大小(该拥塞窗口大小在往返时间较短时较大,而在往返时间较长时较小),流可以利用在网络缓冲器较空时的优势。即,当往返时间较低时,通过设定较大的拥塞窗口大小,可以有效提高传输速率,而随着网络缓冲器的填充和往返时间的增加,使用较小的拥塞窗口,由此降低传输速率。

与所有流均为常规TCP流时相比,以这种方式控制拥塞窗口大小导致在丢包事件后网络缓冲器填充的较小下降。这是因为修改后的TCP流根据观察到的减少的往返时间,一推断出网络缓冲器填充下降,就提高其传输速率。所得到的高于常规平均网络缓冲器填充会导致平均往返时间增加,这又导致缓冲器溢出事件之间的时间增加,而这意味着在所有争用流中的低平均丢包率。并且通过在溢出时具有较小的拥塞窗口大小,与其它争用流相比,修改后的TCP流不太可能遭受丢包。

图6示出了针对模拟通过与图4相同的网络配置进行将近20分钟传输中的30秒部分的往返时间(RTT)604、缓冲器填充602、TCP New Reno拥塞窗口大小(TCP CWND)600、以及使用修改后的拥塞窗口控件(RTT Aware CWND)的争用流的拥塞窗口大小606,其中,争用流正在根据测量出的往返时间调整其拥塞窗口大小。

再次使用迭代过程设定模拟的参数,以使TCP New Reno流和使用修改后的拥塞窗口的争用TCP流实现大约相同的吞吐量。TCP New Reno流每发送百万个包遭受1141个包丢失,而使用修改后的拥塞窗口的TCP流每传输百万个包遭受735个包丢失。

因此,代替使拥塞窗口大小保持恒定,而是相反地根据测量出的往返时间的值来调整拥塞窗口大小,TCP流不仅可以实现本身的较低丢包,而且还实现了争用标准TCP流的较低丢包。

获知往返时间的TCP流的拥塞窗口大小可以有益地通过以下任何方法进行设定:当往返时间相对短时设定拥塞窗口大小的相对大的值,而当往返时间相对长时设定拥塞窗口大小的相对小的值。

在图6中例示的示例中,修改后的TCP流的拥塞窗口大小通过使用下式(1),根据在往返时间的最小值RTTmin与最大值RTTmax之间的测量出的往返时间的相对值RTTcurrent,在最小值CWNDmin与最大值CWNDmax之间进行线性插值来进行设定:

在模拟中,通过迭代方法发现,拥塞窗口大小的16个包的范围给出了良好的性能,并且范围应从最小43个包到最大59个包,以实现大约等于争用的TCP New Reno流的吞吐量的吞吐量。最小往返时间的值RTTmin和最大往返时间的值RTTmax是使用迭代方法设定的,以使设定的值大约等于随后测量出的值。

已经观察到,如上所述,通过根据往返时间设定拥塞窗口,在如上所述的网络配置上可以减少总的丢包。可以减少丢包的量取决于允许修改后的拥塞窗口改变的范围。随着所述范围增加至最佳量,丢包的减少会增加,并且随着所述范围内的进一步增加,丢包的减少会减小。在上面描述的网络配置的模拟中,当允许修改后的拥塞窗口大小在45个包到53个包之间进行改变(大约为平均值附近的+/-8%)时,已经观察到丢包减少6%,当修改后的拥塞窗口大小可以在43个包到59个包之间进行改变(大约为平均值附近的+/-17%)时,观察到丢包减少12%,而对于修改后的拥塞窗口大小可以进行改变的较大范围,观察到较少量的减少。

随着允许修改后的拥塞窗口大小进行改变的范围增加,平均缓冲器水平随之增加,即,在一组丢包事件之后,缓冲器不会下降很多,这是因为一检测到因缓冲器水平的下降而造成的往返时间的下降,拥塞窗口大小就相应增加。平均缓冲器水平越高导致平均往返时间越长,平均而言,包通过缓冲器需要更长的时间。随着TCP New Reno拥塞窗口的时间增长到缓冲器溢出取决于往返时间的程度,这会导致多组丢包事件之间的时间增加,这是因为该拥塞窗口大小每往返时间按一个包增加,

但是,由于带宽的公平份额仍保持不变(该带宽是正在由相同的两个流共享的相同的瓶颈带宽),因此增加的平均往返时间会导致需要增加的平均拥塞窗口大小,以实现相同的带宽公平份额。因此,随着拥塞窗口大小可以改变的范围增加,对于与TCP New Reno流争用的流,该范围的中心点必须增加,以实现维持相同的平均网络吞吐量所需要的较高平均拥塞窗口大小。

因此,优选使用涉及以下项的迭代方法来选择用于改变拥塞窗口大小的参数(如上式中给出的):测量以给定参数集实现的吞吐量,测量使用的平均拥塞窗口大小,以及测量最小往返时间和最大往返时间。下面,将参照图3的流程图对这种方法进行更详细描述。

图3是概述本发明的示例的步骤的流程图,其中,修改后的拥塞窗口被用于将数据从服务器递送至客户端。在该示例中,数据是作为流传输会话的一部分递送的媒体内容(诸如,一段视频),但是本发明可以应用于其它类型的数据,诸如文件下载。

将参照被称为“第一片段”的内容片段来描述示例的步骤。该第一片段不需要是服务器与客户端之间的流传输会话中的第一片段,并且可以是指作为流传输会话的一部分进行传送的任何片段。片段可以包括一个或更多个连续部分,并且本发明的示例描述了在递送媒体序列的各个片段的一部分之后对拥塞响应进行调整,以在指定的时间间隔内递送所述片段的方法,其中,一部分可以是单个包或多个包。

在步骤300中,客户端108通过向数据服务器104发送请求来请求媒体内容。该内容请求可以是HTTP请求,例如,HTTP GET请求。所请求的内容是由多个片段构成的,其中各个片段皆包括多个数据包,如上所述。可以针对媒体内容的各个片段发出一个请求。

响应于接收到该请求,在步骤302中,数据服务器104开始递送所请求的内容。从第一片段的初始部分或第一部分开始连续地从数据服务器104发送数据包。客户端108可以针对各个所接收到的数据包,通过网络106将确认包发送回服务器。确认包可以由数据服务器104中的递送监测单元218用来确定与相应数据包的递送相关联的往返时间。在内容是媒体内容的该示例中,客户端108一旦接收到足够的内容,就可以开始解码并播出该内容。

在该示例中,各个内容片段皆具有用于通过网络106将片段n递送至客户端108的关联时间间隔ΔTn。本申请人的国际申请WO2014/155031描述了TCP拥塞控制,其中,在递送数据片段期间控制TCP拥塞窗口,以确保在指定的时间间隔内递送该数据片段,并且其中,在递送期间监测丢包,并且其中,将在一个或更多个先前片段的递送期间所测量的丢包用于计算对要被用于递送下一个数据片段的拥塞窗口的约束。

例如,对于内容流传输应用,可以将所述指定的时间间隔设定成相对较短的时间,在该内容流传输应用中,需要在一定时间内递送内容以防止播放停顿。相反地,对于文件下载,如果用户不是迫切地需要文件,那么可以将所述指定的时间间隔设定成相对长的时间。

可以通过客户端来指定用于通过网络106将内容片段递送至客户端108的时间间隔。例如,客户端可以向服务器追加针对内容片段的指示希望递送该片段的时间的请求。另选地,可以通过服务器104来指定用于递送的时间间隔。服务器可以基于以下考虑来指定用于递送的时间间隔:以最小延迟按及时的方式将内容作为整体递送至客户端108。可以将这种类型的内容递送(其中,服务器指定递送内容片段的时间间隔)称为HTTP推送,其中,服务器104被说成是实现HTTP推送机制。

转回至步骤302,可以使用TCP的任何常规实现来控制所述片段的第一部分的递送,这可以包括被称为慢启动的阶段,其中,可以针对所接收到的各个确认包来发送两个包;并且可以包括诸如避免拥塞的其它阶段,其中,在没有发生丢包的时段期间拥塞窗口会增加;但是也可以使用一些其它的初始启动处理。

接下来,在步骤304中,在第一部分的递送期间,由数据服务器104使用从客户端108接收到的确认包,来测量与各个数据包的递送相关联的往返时间(RTT)。

然后,在步骤306中,数据服务器检查以查看是否已经递送了全部被请求的数据。如果已经递送了全部数据,则在步骤322结束处理。如果尚未递送全部数据,则处理转到步骤308。

然后,在步骤308中,数据服务器104使用在步骤304(或者从步骤322(若可用的话))测量的RTT来确定以下RTT:与最新递送的数据包相关联的RTT,RTTcurrent;平均RTT,RTTcentral;低RTT,RTTlow;以及高RTT,RTThigh。RTTcurrent是与最新成功递送的数据包相关联的RTT,所述数据包是该片段中的已经接收到确认包的最新数据包。可以将RTTcentral确定为在步骤304中测量的所有RTT的平均RTT或均值RTT、RTT的中值或者RTTlow与RTThigh之间的指定分数(诸如,中点)。可以将RTTlow确定为来自步骤304的所有RTT中的最小值,并且RTThigh是根据步骤304的所有RTT中的最大值。

然后,在步骤310中,数据服务器104确定所述片段中剩余的尚未被递送的数据的量Dremaining、以及用于递送该剩余数据的可用时间ΔTd。注意,ΔTd实际上等于ΔTn减去自步骤302中开始的递送以来所经过的时间。

在步骤312中,为了确保内容数据片段在最终期限被递送所需要的递送速率Rreq是根据该内容数据片段内的剩余待递送的数据的量Dremaining以及剩余时间间隔ΔTd按照下式(2)来进行计算的。

在步骤314中,通过数据服务器104计算必需拥塞窗口大小CWNDreq,其中,CWNDreq是使用Rreq和RTTcentral在剩余时间间隔ΔTd内递送剩余数据Dremaining所需要的固定拥塞窗口大小(如上参照图5所描述的)。必需拥塞窗口大小CWNDreq是按照下式(3)来进行计算的:

CWNDreq=Rreq×RTTcentral (3)

然而,如上所述,根据测量出的往返时间调整拥塞窗口而不是使该拥塞窗口保持恒定是有益的。因此,通过数据服务器104来设定最大拥塞窗口CWNDmax和最小拥塞窗口CWNDmin。在该示例中,可以将CWNDmax和CWNDmin设定为相对于CWNDreq的百分比偏移量。例如,可以将CWNDmax设定成比CWNDreq高8%,并且可以将CWNDmin设定成比CWNDreq低8%。可以使用其它百分比偏移量,诸如17%。并且该百分比偏移量不需要是以CWNDreq为中心对称的。

然后,在步骤318中,数据服务器104使用式(1),以根据相对于最小值RTTmin和最大值RTTmax测量的往返时间RTTcurrent来计算被阐述为CWNDmin与CWNDmax之间的线性插值的修改后的拥塞窗口大小CWNDmodified

因此,使用上面的方法,随着所递送的包的往返时间增加或减少,修改后的拥塞窗口大小也根据式(1)进行改变。

一旦已经计算出CWNDmodified,就在步骤320中,通过数据服务器104将该CWNDmodified用于递送所述片段中的剩余部分的进一步数据,并且在步骤322中,由数据服务器104使用从客户端108接收到的确认包,来测量与所述进一步数据的各个数据包的递送相关联的RTT。

处理然后转回至步骤306,其中,由数据服务器进行检查以确定是否已经递送了由客户端108请求的全部数据。如果尚未递送所述全部数据,则使用用于计算步骤308至步骤318中的修订参数的、到目前为止已递送的数据(包括来自步骤322的新RTT)来计算经更新后的修改后的拥塞窗口,之后在步骤320中使用所述更新后的修改后的拥塞窗口递送进一步数据等,直到已经递送了全部数据。

已经参照修改后的TCP协议描述了上面的示例,但是本领域技术人员应意识到,本发明同样可以用于修改其它递送协议,诸如QUIC。

已经在服务器通过网络向客户端递送媒体内容的片段的背景下描述了上面的示例。服务器例如可以是源服务器、内容递送网络(CDN)节点或者住宅网关装置。更一般地,本文所描述的服务器的功能可以由用于通过网络递送媒体内容的合适配置的发送器来实现。客户端可以是HTTP自适应比特率流传输客户端。客户端可以适于支持MPEG DASH、HLS、SmoothStreaming或者某一其它自适应比特率流传输协议。更一般地,客户端可以是通过网络接收媒体内容的任何合适配置的接收方。

一般来说,以上针对通信系统的组件描述的功能、方法、技术或组件中的任一者都可以按软件、固件、硬件(例如,固定逻辑电路)或其任何组合来实现。本文所使用的术语“单元”、“检测器”以及“计算器”可以总体上表示软件、固件、硬件或其任何组合。对于软件实现的情况来说,单元、检测器以及计算器表示在处理器上执行时执行指定任务的计算机程序代码或计算机可读指令。本文所描述的算法和方法可以由一个或更多个处理器来执行,所述一个或更多个处理器执行使处理器执行所述算法/方法的代码。计算机程序代码可以存储在非暂时性计算机可读存储介质上。计算机可读存储介质的示例包括:随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪速存储器、硬盘存储器以及可以使用磁、光学以及其它技术来存储指令或其它数据并且可以通过机器访问的其它存储器装置。

申请人在此单独地将本文描述的各个单个特征以及两个或更多个这种特征的任何组合公开到以下程度:能够根据本领域技术人员的公知常识,基于作为整体的本说明书来执行这种特征或组合,而不管这种特征或特征的组合是否解决本文所公开的任何问题,并且不对权利要求的范围进行限制。申请人表示本发明的多个方面可以由任何这种单个特征或特征的组合构成。根据以上描述,对于本领域技术人员将显而易见的是,可以在本发明的范围内进行各种修改。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:无线接入网络的控制器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!