CN101023455A - 使用排队控制和单向延迟测量实现网络拥塞控制的方法和设备 - Google Patents
使用排队控制和单向延迟测量实现网络拥塞控制的方法和设备 Download PDFInfo
- Publication number
- CN101023455A CN101023455A CN 200580031105 CN200580031105A CN101023455A CN 101023455 A CN101023455 A CN 101023455A CN 200580031105 CN200580031105 CN 200580031105 CN 200580031105 A CN200580031105 A CN 200580031105A CN 101023455 A CN101023455 A CN 101023455A
- Authority
- CN
- China
- Prior art keywords
- value
- network
- queueing delay
- delay
- congestion control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种拥塞控制方案,其是一种基于延迟的方案,该基于延迟的方案包括可伸缩的队列长度和单向排队延迟测量以减少网络拥塞。队列长度是由队列控制、可伸缩的效用函数、动态α校正和/或随机化的α校正来管理的。单向排队延迟是通过使用各种估计接收器时钟周期的方法对反向排队延迟管理进行测量来实现的。各实施例包括使用单取样和多取样周期来估计接收器时钟周期。本系统包括检测路由变化的方法。
Description
相关申请的交叉引用
【0001】本申请要求如下申请的优先权:
2004年8月30日提交的、名称为“Methods to Improve Delay BasedTCP”的待决美国临时专利申请第60/605,458号(在此将其全部并入本文作为参考);2004年8月19日提交的、名称为“Fast TCP QueueControl”的待决美国临时专利申请号第60/602,987号(在此将其全部并入本文作为参考);以及2004年8月17日提交的、名称为“Methodfor Measuring One-Way Delay Changes for TCP/IP Networks”的待决美国临时专利申请号60/602,111(在此将其全部并入本文作为参考)。
技术领域
【0002】本发明涉及网络领域以及用于拥塞控制的方法和设备。
【0003】本专利文件公开的各部分包含受版权保护的材料。版权所有人不反对任何人在本专利文件或专利公开出现于专利商标局文件或档案中时对其进行拓制,但在别的方面保留所有权利。
背景技术
【0004】计算机网络允许一台或多台计算机之间的通信。所述网络包括局域网(LAN)、广域网(WAN)、因特网、无线网络和混合装置网络(mixed device network)等。当消息源和目的地的数目和消息流量大于网络能够有效处理的量时,有效使用网络的一个限制是网络拥塞。在现有技术中,这样的拥塞问题是通过实施拥塞控制来处理的。
【0005】拥塞控制是一种在竞争用户之中共享网络资源的分布式算法。其用于这样的情形中,尽管资源的可用性和竞争用户集会随时间不可预测地改变,但仍期望有效共享。在现有技术中已经通过使用反馈控制解决了这些约束、不可预测的供求和有效操作。反馈控制(也被称为“闭环”控制)包括使用一些度量以确定对系统的动态和典型地实时调整,从而提供最优结果。这样的系统是不同于通常所说的“开环”控制系统,在“开环”控制系统中不存在反馈(例如,烹饪一只火鸡而不使用肉温计是开环,而使用肉温计是闭环反馈系统)。
【0006】在该现有技术方法中,发送源响应它们路径中的拥塞从而动态地改变它们的速率。使用反馈控制作为拥塞控制的网络的一个例子是因特网(在涉及数据传送的源计算机和目的计算机中使用传输控制协议(TCP))。注意,虽然我们是针对因特网进行讨论,但本申请同样可应用于其他网络。
【0007】在当前TCP中的拥塞控制算法(亦被称为“Reno”),开发于1988年并自此经历了若干次变化。当前研究预言随着带宽延迟积持续增长,TCP Reno最终将变成性能瓶颈。换句话说,随着网络(因特网)继续提供更高的带宽和性能,恰恰正是用于处理拥塞的控制系统将导致网络使用效率低下。下列四个难点就是造成TCP Reno在具有很大带宽延迟积的网络中的性能低下的原因。
1.在分组层,每一往返时间(RTT)线性增加一个分组过于缓慢,并且每一丢失事件的倍增减少过于激烈。当前方案使用该″缓慢加速/快速减速″的方法来实现分组流量控制,而其在高带宽系统中不是有效的。
2.在数据流层,保持很大的平均拥塞窗口要求非常小的平衡丢失概率,并且在现有技术系统中保持如此小的丢失概率是不实际的。
3.在分组层,振荡是不可避免的,这是因为TCP使用二进制拥塞信号(分组丢失)。
4.在数据流层,动态特性是不稳定的,从而导致严重的振荡,所述振荡只有通过对分组丢失概率的准确估计和对数据流动态特性的稳定设计才能减少。当前系统未考虑对分组丢失足够准确的估计。
发明内容
【0008】本发明提供了一种拥塞控制方案,其是一种基于延迟的方案且包括可伸缩的队列长度和单向排队延迟测量以减少网络拥塞。队列长度是由队列控制、可伸缩的效用函数、动态α校正(tuning)和/或随机化的α校正来管理的。单向排队延迟是通过使用各种估计接收器时钟周期的方法对反向排队延迟管理进行测量来实现的。实施例包括使用单取样和多取样周期来估计接收器时钟周期。本系统包括检测路由变化的方法。
附图说明
【0009】图1是说明本发明中排队控制实施例的流程图。
【0010】图2是说明动态α校正的实施例的流程图。
【0011】图3是说明随机化的α校正的实施例的流程图。
【0012】图4是说明BDQ计算的实施例的流程图。
【0013】图5A说明在ACK发送和接收时间的接收器和发送器时钟值的时序图。
【0014】图5B是说明来自取样的接收器时钟周期的上界和下界的时序图。
【0015】图6是说明本发明的一个实施例中拥塞丢失事件检测的流程图。
【0016】图7是说明本发明一个实施例的自适应算法的流程图。
【0017】图8是说明本发明中的路由变化检测实施例的流程图。
【0018】图9是说明本发明中的α校正实施例的流程图。
具体实施方式
【0019】现描述一种用于拥塞控制的方法和设备。在下面的描述中,陈述了许多细节以提供对本发明更详尽的描述。然而,对本领域技术人员来说明显的是,本发明可在没有这些具体细节的情况下被实施。在其他实例中,众所周知的特征未被详细描述以免对本发明不必要地模糊。
【0020】本发明是一种基于延迟的模型,并且事实上使用排队延迟作为拥塞度量,从而提供与先有技术基于丢失的系统相比的优点。其中一个优点是排队延迟与丢失概率相比可被更准确地估计。这是因为在具有很大带宽延迟积的网络中的分组丢失在TCP Reno及其变量下是偶发事件(概率在10-7量级或更小),以及丢失取样与排队延迟取样相比提供较粗略的信息。诚然,延迟的测量是有噪声的,正如丢失概率的测量。因此,本发明的另一个优点是排队延迟的每个测量提供多比特信息,而为了过滤噪声,分组丢失(不论分组是否丢失)的每个测量仅提供一比特信息。这使基于方程的实现将网络稳定在稳定状态变得容易,所述稳定状态具有达到目标的公平性和高利用率。另外,排队延迟的动态特性提供关于网络容量的缩放。当网络容量按比例扩大时,其帮助维持稳定性。一种基于延迟的方案在2004年6月14日提交的名称为“Method and Apparatus for Network Congestion Control”的美国专利申请第10/868,564号中被描述,所述美国专利申请第10/868,564号被转让给本发明的受让人并在此将其全部并入本文作为参考。在引用的和合并的专利申请中描述的技术在这里被称为“基于延迟的TCP”。
【0021】本发明提出缓冲器溢出条件和排队延迟测量技术。首先,缓冲器溢出条件被论述。
【0022】如上述引用的申请中所记录的,用于确定连接的平衡状态的参数中的一个是α。在平衡中,各连接将全部α个分组保存在中级路由器缓冲器中。在一个实施例中,在吉比特网络上α被设置为200以克服有噪声的延迟测量,以使单条数据流可充分地利用一条未被共享的高速链路。然而,当多条高容积数据流试图共享一条链路时,在数据流达到平衡之前缓冲器溢出就可能发生。当存在N条数据流时,那么就需要数量为Nα的存储器以提供必要的缓冲。然而,网络上可利用的缓冲存储器的数量并不总能足够满足这一需求。当缓冲器大小缺乏时,就会导致溢出发生和分组丢失。
【0023】本发明提出许多方法,所述方法用于在缓冲器容量太小或数据流数目太大时处理缓冲器溢出。这些技术包括排队控制、可伸缩的效用函数、动态α校正、随机化的α校正和基于方程的α校正。
【0024】α校正确保在具有变动的(或许未知的)缓冲器限制的网络中,基于延迟的TCP数据流将具有高利用率和极少的分组丢失。例如,在一些情况中,网络可能不具有充足的缓冲以支持大量基于延迟的TCP数据流。如果没有α校正,所有基于延迟的TCP数据流将遭受连续的分组丢失。α校正可以帮助每个基于延迟的TCP选择一个适当的α值并使网络达到平衡。
排队控制
【0025】基于延迟的TCP具有参数α,该参数是在平衡下排在沿途每个瓶颈路由器的其本身分组的总数(在一数据流路径中可能存在一个以上瓶颈路由器)。排队控制技术使得基于延迟的TCP使用较小的α值并同时在对抗有噪声的延迟测量中是健壮的。数学上地,排队的分组数目由平衡条件表示:
排队的分组数目=x·q=α
其中x是获得的吞吐量,q是测量的往返排队延迟。因此,α值决定平衡排队延迟q。实际上,必须选择足够大的α以使由此引起的排队延迟q高于延迟测量中的噪声级。例如,典型地我们选择一个α值,以使当在网络中存在单条数据流时排队延迟至少为5ms(毫秒)。
【0026】然而,当共享同一网络的数据流的数目很大时,很大的α可导致一个问题。因为α是容纳来自基于延迟的TCP数据流分组以避免分组丢失所必需的最小的缓冲量,当存在N个数据流时,所述数据流被i=1,2,...,N标记,具有参数αi,那么总的缓冲需求量是
在具体情况下,所有的数据流使用相同的参数值,也就是,对于所有I=1,...,N,都有αi=α,那么
【0027】根据该方程,需要很小的α以使缓冲需求量随着N缓慢增长。
【0028】因此,在此可能存在一个两难问题,在延迟测量中抵抗噪声的健壮性需要很大的α,而最小化网络缓冲需求量则需要很小的α。排队控制是一项调和这些冲突目标的技术。
【0029】在描述一个排队控制实施例中,我们假定所有的数据流都具有相同的参数值,也就是,对于所有的i,αi=α。图1是说明本发明中排队控制方案实施例的流程图。
【0030】本发明的一个实施例将如上所描述的平衡条件修改为:
x·(q-q0)=α
其中q0是我们希望维持在各端到端路径上的最小排队延迟(例如5ms),以使其对于延迟测量中的误差的是强健的或鲁棒的(步骤101)。超过q0,每个基于延迟的TCP连接将贡献α个分组。通过包含最小延迟q0,我们能因此选择很小的α,以使缓冲需求量Nα随着N缓慢增长。例如,可选定一个α以产生小至0.5ms的排队延迟,甚至对于吉比特网络来说(与5ms相比)。为更清楚地看到,注意对于具有容量c的单条链路,所述单条链路由具有共同参数α的N=1条数据流共享,吞吐量x=c/N。因此根据上面所描述的平衡条件,排队延迟由下式给出:
测量的排队延迟=q=q0+Nα/c(步骤104)
【0031】通过包含最小延迟q0,即使我们在步骤102选择很小的α(且甚至当N=1时),测量的排队延迟q与噪声级相比仍是足够大的。当存在N(数值巨大)条数据流时,总的缓冲量是:
网络缓冲需求量=Nxq=cq0+Nα(步骤103)
【0032】因此,很小的α使得缓冲需求量随N缓慢增长(以招致非零的最小缓冲需求量cq0为代价)。
【0033】总之,根据步骤104,我们看到排队延迟将总是包括至少最小排队延迟q0,而不管数据流的数目N。如果我们选定q0,例如5ms,那么缓冲器需要容纳排队延迟常量5ms(不依赖N)加上Nα。因为q0已提供对延迟测量中噪声的抗扰性,α可以选择很小的值,从而使得缓冲需求量随N缓慢增长(根据步骤103)。因此,在网络内给定固定的缓冲器大小,该排队控制技术允许很大数目的并行的基于延迟的TCP数据流。在步骤105,确定选定的α为数据流数目N是否形成足够的缓冲器大小,例如,通过观察整个链路利用率和分组丢失的不存在。如果是,那么排队控制在步骤107中实现。如果不是,在步骤103中选择另一α值。
【0034】当在时间k的排队延迟是qk时,一种基于延迟的TCP窗口更新算法为:
这里wk和wk+1分别是时间k和k+1的窗口大小,并且d是传输延迟或baseRTT(测量到的最小往返时间)。采用排队控制,窗口更新算法变为:
【0035】新的平衡可被解释为每个基于延迟的TCP经历修改的baseRTT测量,所述修改的baseRTT测量与真实baseRTT相比被提高q0。可以显示,虽然在baseRTT测量中存在误差,基于延迟的TCP算法仍解决了效用最大化问题。
可伸缩的效用函数
【0036】第二种技术概括了对排队控制修改基于延迟的TCP效用函数的观察资料。该实施例修改了效用函数,从而导致对任意多个α值,缓冲器需求量随着一条链路上的路径数目N而受控或减缓增长。考虑平衡条件
q=u(x)
其中u(x)是边际效用函数。那么用于N条共享容量为c=Nx的单条链路的相同数据流的平衡积压量(backlog)是
B(N)=Nxq=cu(x)=cu(c/N)
【0037】因为u是递减函数,整个积压量B(N)随着N而增长,但是我们可选择u以控制u(c/N)随N的增长。一种基于延迟的TCP方案具有u(x)=α/x,因此B(N)=αN,其与N成线性。为减小B(N)随N的增长率,我们可选择
其中
是峰值率,β是针对具体环境可被校正的正常量。那么
【0038】相比B(N)随着N增加的线性增长而言,这导致较慢的对数增长。可伸缩的效用函数的一个优点是,其可使用多个β值并仍能控制缓冲器溢出。例如,如果我们取β=5ms,那么cβ就是可容纳5ms队列的缓冲器容量。注意,B(N)随着N对数地增长。
【0039】一旦选定可伸缩的边际效用函数u(x),窗口调整可采用如下形式:
wk+1=wk+γ(u(xk)-qk)
【0040】应该注意到,除了对数函数以外的其他函数u(x)均可被用于获得B(N)随N的缓慢增长。实际上,u(x)可以是任意具有亚线性递减率的正递减函数。其中一个此类例子是:
其中
是峰值率。那么,
也就是,B(N)象
一样增长,而不是随着N线性增长。最后,可将前一节所描述的排队控制技术和上面所描述的可伸缩的效用函数技术结合起来以防止缓冲器溢出。例如,将u(x)=α/x与排队控制技术结合,我们可获得新的边际效用函数u(x)=α/x+q0。对于该方法,缓冲需求量为
B(N)=cu(c/N)=cq0+αN
由于
缓冲需求量是
因此,使用最小排队延迟q0,我们可选择得很小的β,并且B(N)的增长将会在cβlogN量级上。尽管在这使用了对数函数,其他函数也可作为代替被使用而不偏离本发明的范围和精神。例如,可使用平方根函数。
动态α校正
【0041】该技术试图在慢时间尺度上,以分布式方式动态地调节α。图2的流程图说明了该技术的一个实施例。取代排队控制,该实施例使用分组丢失作为信号(步骤201),从而在各主机中控制α。对于每个被主机观察到的拥塞丢失事件(例如在每个RTT中至少8个或cwnd/10个分组丢失的突发)(步骤202),该算法将α减小一定量(步骤203),该减小量与其当前值成比例(乘性减少,或MD)。在每个控制间隔中,该算法增加α一定值(加性增加或AI)(步骤204)。换言之,响应该技术的实施例(被称为AIMD),α被缓慢增加而被快速减少。在实践中,α被调整到预先指定的范围内,且每次调整的大小都有上限。
【0042】AIMD方法用于在基于丢失的算法中的控制拥塞窗口。这里,其用于在基于延迟的算法中校正α。使用该技术可在没有全局协作的情况下获得公平和效率。
【0043】现有技术的基于丢失的拥塞控制算法遭受分组丢失中的噪声。在高速长距离网络和无线网络中这变得非常显著。这些算法通过减小拥塞窗口来对分组丢失作出反应。在随机的分组丢失占支配地位的情形中,这些算法持续减小拥塞窗口从而不良地工作着,而随机的分组丢失应该不需要这种变化。
【0044】取代使用分组丢失作为拥塞信号,该实施例试图使用拥塞丢失时间作为校正α的信号。拥塞丢失事件被定义为一种事件,其中分组由于拥塞而丢失。相反,随机的分组丢失是一种事件,其中分组由于随机的链路错误及其他非拥塞作用而丢失。TCP拥塞控制算法应仅对拥塞丢失事件作出反应。根据测量,多个分组丢失通常出现在拥塞丢失事件中。单个分组丢失通常出现在随机丢失事件中。本发明使用某些参数来确定拥塞丢失事件。
【0045】P=8分组:拥塞丢失事件检测的阈值。如果在一个窗口中存在P或P以上个分组丢失,该检测算法假定分组丢失是由于拥塞。P应该是正整数。
counter:用于记录在当前窗口中检测到的分组丢失(非负整数)的计数器。
cwnd:拥塞窗口(根据该拥塞控制算法,其是该算法的输入变量)
【0046】参数P可以是拥塞窗口cwnd的线性函数。就是说,P=cwnd/k,其中,例如k≥100。那意味着分组丢失事件仅当每k个分组中有一个丢失时才被检测为拥塞丢失事件。这样的变化在无线网络的连接中可能是有用的,在那里随机的丢失概率可能是很高的。
【0047】图6是说明本发明的拥塞丢失事件检测的一个实施例的操作的流程图。在步骤601,系统被初始化且计数器被设置为0。在判定块602确定是否已检测到分组丢失。如果不是,系统返回检查分组丢失。如果是,在步骤603计数器增加(例如加1)。
【0048】在判定块604确定计数器是否超过阈值。在所描述的实施例(举例说明)中,计数器被检查其值是否大于{cwnd/10,P}。如果不是,系统循环回到步骤602.如果是,在步骤605拥塞事件被触发。在判定块606确定当前RTT是否结束。如果不是,系统返回到步骤602。如果是,在步骤601计数器被重置为0。
自适应算法
【0049】本发明的一个实施例提供了一种控制α值的自适应算法。该算法包含下列具有建议值的参数:
T=20(sec(秒)):常规控制间隔。其应该大于最大的RTT;
A=1(分组):各控制间隔的α值增量。其应该是正整数;
B=1/8:每个拥塞丢失事件的α递减部分。其应该在(0,1)内;
β=1/2:用于每个控制间隔的α递减部分的上界。其应该在(B,1)和(0,1)内。
α=8:α的下界(实施例)。其应该是正整数;
current_time:本地计算机的实时,其是该算法的输入变量;
next_update_time:下一常规控制事件的时间;
last_alpha:正好在最后的常规控制事件之后的α值。
【0050】图7是说明该实施例的自适应算法的流程图。该算法作出的不同反应取决于ACK(确认)或拥塞丢失事件是否已发生。系统初始化next_update_time=current_time+T以及last_alpha=α。对于在步骤701接收到的ACK,系统在判定块702做检查以观察当前时间是否大于下一更新时间。如果不是,系统等待下一ACK。如果是,就更新参数。在步骤704next_update_time增加T且将α设置为α+A。在判定块705,检查α以观察其是否超过上界值
。如果是,α在步骤706被设置等于
如果不是,last_alpha值在步骤707被设置等于新的α值。从该算法的操作可以看到,只要一直接收到ACK信号α值就缓慢增长,直到α值的上界。
【0051】当拥塞事件在步骤708发生时,通过设置α=(1-β)*α来减小α值。在步骤710该值被检查以观察其是否小于(1-β)*last_alpha。如果是,那么α值在步骤711被设置等于(1-β)*last_alpha。如果判定块710是假,或在步骤711之后,在判定块712检查α值以观察其是否小于α值的下界。如果是,那么α值就被设置为下界α值
α。如果不是,前进到结束714。
路由变化检测
【0052】基于延迟的TCP通过从往返时间(RTT)减去往返传输延迟(pRTT)来测量往返排队延迟,并且往返传输延迟被当作最小观测到的RTT。当数据流变化到一条新的具有较长传输延迟的路径时,RTT的增加将会被解释为拥塞而不是路由变化,从而导致吞吐量的减小。在这种路由变化之前,当α增加时,由于增加的排队延迟,所以RTT应该增加。在这种路由变化之后,由于队列是空的,所以RTT将不会增加。因此,如果对于多个控制间隔,
接近于0,那么很可能已发生路由变化。在一个实施例中,系统使用1/G,其中G是该数据流获得的吞吐量,由cwnd/minRTT近似,作为
的阈值。
路由变化检测算法
【0053】本发明的一个实施例包括一种用于检测路由变化的算法。该实施例的参数和变量包括:
参数
变量
minRTT:在分组的最后一个窗口中观测到的所有RTT的最小值。根据拥塞控制算法,其是输入变量。
cwnd:分组的最后一个窗口的拥塞窗口。根据拥塞控制算法,其是输入变量。
last.alpha:
小于1/G的当前顺序间隔的第一个间隔中的α值。【0054】图8是本发明中路由变化检测实施例的流程图。初始化设置rc_count=0,last_rtt=minRTT以及last_alpha=α。对于每个控制间隔T(步骤801),确定是否存在拥塞丢失事件(步骤802)。如果是,在步骤807重新初始化。如果不是,在步骤803确定是否存在((α-last_alpha)/(minRTT-lasts_RTT))≤(cwnd/minRTT)。如果是,在步骤807重新初始化。如果不是,那么在步骤804增加rc_count(例如,加1)。在步骤805,做检查以观察rc_count是否超过rc_threshold。如果是,在步骤806将pRTT设置等于minRTT并在步骤807重新初始化。
随机化α校正
【0055】自适应的α校正的优点是其灵活性。一个缺点是AIMD总是在慢时间标度上装满队列。一项补充技术是在预先确定的数值集之中随机化α的选择。如果缓冲器足够大,该技术不会装满队列,但公平性较难控制。随机化从长远来看是用来统计地实现公平性,其在图3中被描述。
【0056】例如,分别为大约10Mbps(兆比特每秒),100Mbps以及1Gbps(吉比特每秒)的路径选择三个值α=8,20,200分组。如果数据流在最后一个更新间隔上达到的吞吐量(步骤301)与对应当前α值的吞吐量区域(步骤302)不同,其将增加或减少其α值到下一级别(步骤304)。否则α值保持相同(步骤303)。例如,当α=200分组且所达到的吞吐量是9Mbps时,那么α被减小到下一级别α=20分组。
【0057】为防止具有较大α值的数据流独占资源而损害了具有较小α值的数据流,每一数据流,在大时间标度上,随机地且独立地初始化α值(步骤305),并应用如上算法重新配置其α值。
基于方程的α校正
【0058】基于延迟的TCP中的基于方程的α校正的一个目的是均衡两个拥塞反馈值,即端到端排队延迟q和丢失概率p,采用将q和p的函数驱动(drive)到预先确定的目标的形式,例如,将q/p/K驱动到平衡中的一个常量。因为准确地获取丢失概率可能是很难的,所以在一个实施例中,大小为S的环形缓冲区被用于保存丢失历史记录。系统查看最后S个间隔以及确定在S个间隔中丢失的分组的总数目,并用S个间隔中丢失的分组的总数目除以S个间隔中发送的分组的总数目。该值表示丢失概率并用作p。
【0059】在很多情况中,基于延迟的TCP将联同基于丢失的拥塞控制协议(例如,Reno)一起被用在网络上。本发明以这样一种方法选择K以使基于延迟的协议和基于丢失的协议两者都具有合理的吞吐量。K值可在大型实验数据集的基础上被脱机地计算出来。可被本发明使用的K值的例子是10。
【0060】在一个实施例中,α校正算法仅可在每个基于延迟的TCP发送器上实现,并且其迭代地计算平衡q和p,并通过动态地更新基于延迟的TCP拥塞控制算法中的α参数从而周密地将比率q/p朝着K的方向驱动,而不会导致其自身吞吐量以及整个系统的不稳定。当存在分组丢失从而产生非零的丢失概率时,α校正算法被激活。在具有所有基于延迟的TCP数据流的良好供应的网络中,只要存在容纳α总数的充足的缓冲,α校正将不会被激活,并且平衡和没有α校正的情况一样。该算法在图9中被说明。初始条件为η0=1且初始α值为alpha_0。周期地在时间t,在步骤901计算qt和pt。在步骤902计算λt=qt/pt/K(其中pt是非零的)在步骤903计算ηt=f(η(t-1),λt)。在步骤904计算新的α值αt=ηt*α0。当λt增加时新的αt值将会增加。同样地,当λt减小时,新的αt值将会减小。理论上λt可在0到无穷大之间变化,而其实际范围取决于α的初始值以及α的上界和下界。
【0061】函数f在ηt的当前值η(t-1)和λ的基础上计算出新的平均值ηt。任何合理的指数移动平均函数都可用作f。
【0062】在一个实施例中,执行浮点运算可能是不可能的或不需要的。因此,浮点运算通过使用具有有限精度的整数来近似。整数数据类型越大,浮点近似就越准确。本发明可使用浮点运算来实施。
【0063】为防止α的激增,我们基于当前α值对α的增长施加约束,例如上面所描述的AIMD方案。如在此描述的其他实施例所记录的,较低的α阈值可在下面建立,α将不会超出该阈值。
单向排队延迟测量
【0064】在上面所描述的基于延迟的方案中,延迟测量是基于往返延迟(RTT)实现的。这导致来自前向路径和反向路径的延迟被合并以确定排队延迟并应用拥塞控制纠正措施。如果RTT延迟很高,就假定发生了拥塞并且分组速率减小。在一些情况中这可能是不需要的。例如,如果前向路径不是拥塞的,而返回路径是拥塞的,那么RTT延迟将会提示发生了拥塞并且前向路径将被减小,即使其不需要被减小。忽略反向路径拥塞将会更合适,这是因为前向和反向路径在它们各自延迟中可能不是对称的。本发明提供了一种测量和减去反向排队延迟的方法,以使只有前向延迟被用于改变拥塞窗口大小以达到平衡。
【0065】为不受反向路径上拥塞的影响,本发明的一个实施例包括一种技术以测量反向路径上的排队延迟并将其从RTT测量中减去以获得前向排队延迟,所述前向排队延迟然后被用于确定窗口大小。在一个实施例中,当分组被发送时在发送器TCP引擎将时间戳加在分组上,当其被接收时在接收器TCP引擎加上时间戳。这些时间戳之间的差表示前向路径延迟。因为发送器和接收器时钟不是同步的且可能使用不同的时钟周期来产生它们的时间戳这样就产生了一个难点。
反向排队延迟测量
【0066】反向排队延迟(BQD)测量算法要求发送器具有周期为p1的时钟且接收器具有周期为p2的时钟,以使p1≤p2。p2时钟被接收器RFC1323时间戳周期固定,且发送器周期p1仅被发送器测量时间的能力限制。下面的算法提供了直到一个源时钟周期p1之内测量BQD的方法。准确的测量是在速率为1/p2下实现的。当该算法允许端主机时钟去同步的时候,为实现准确测量相位应该是稳定的。在一个实施例中,我们假定p2是已知的,且在另一个实施例中我们提出一种估计p2的方法。
已知的接收器时钟周期
【0067】图4是说明当接收器时钟周期已知时用于计算BQD的实施例的流程图。在步骤401,接收器时钟周期被确定。在步骤402,在接收器时钟改变之后进行取样ACK。BQD的过高估值和过低估值在步骤403被计算出来。在步骤404,使用在步骤403中产生的过高估值和过低估值确定BQD。在步骤405,从总的排队延迟中减去BQD以产生前向排队延迟FQD。在步骤406,FQD被用于计算适当的拥塞控制响应。
【0068】图5说明了下面描述中的所提到的接收器和发送器时钟信号的一些时序关系。第j个传送的分组的总的反向路径延迟是反向传输延迟dBP和反向排队延迟dBQj之和
dBj=dBP+dBQj (1)
【0069】设是t0j分组j的传送时间。第j个输出分组在时间t1j在目的地主机被接收,并且接收器立即发送ACK,ACK在时间t2j到达发送器。第k个接收到的分组的确认具有的时间戳的值为
【0070】当第j个确认到达时,发送器时钟具有的值为:
其中e是两个端主机时间戳时钟之间的偏移。让我们用来自分组j和k的信息定义两个时间测量之间的差:
上式展开为
其中
【0071】我们可使用(5)通过适当地选择分组j和k以消除尽可能多的其他项,从而估计传输延迟以及接收器和发送器之间的偏移。我们假定
是整数。当k=j,使用到达时间和属于同一分组的接收机时间戳计算CBjk,并且(5)简化为
【0072】注意,当k被选定为接收器时钟增加之后发送的第一个确认(步骤402)时,最后一项可被最小化。设
C Bk为在第k个分组确认的到达时间的所有CBkk测量中的最小值
C Bk=CBkk≤CBu i≤k (7)
【0073】注意,精确地对
C Bk的下界取样的条件是在接收器时钟增加时发送确认,并且不存在反向排队延迟且
该值被如下最小值限制
其仅包括时钟偏移和反向传输延迟。我们假定我们确实已取样到CBKK的最小值。如果我们选择k作为接收器时钟增加后的第一个分组,使用(6)和(8)可构造BQD的过高估值,其中Ak=Ak-1+1,
并且由第二项引入的误差将总会导致过高估值。
【0074】为获得BQD的过低估值(步骤403),我们选择j作为在周期Aj中发送的最后一个确认以及k作为下一周期Ak发送的第一个确认,即k=j+1且Ak=Aj+1。在该情况中(5)可简化为
【0075】注意,通过选择最后一个确认,我们将由最后两项引起的误差最小化。我们可将BQD的过低估值写作
D BQk=CBjk-
C Bk (12)
其中k=j+1且Ak=Aj+1.再次,如果p1很小,那么
D BQk近似为
并且由最后项引入的误差导致过低估值。
【0076】注意,如果最小值8被取样到,而且在接收器时钟增加之前的最后一个确认和接收器时钟增加之后的第一个确认之间的间隙很小,t1j-t1k→0,并且发送器时钟周期很小,p1→0,那么过低估值和过高估值逼近反向排队延迟
D BQk→dBQk (14)
【0077】可使用多种不同方式根据过低估值和过高估值来计算单个BQD估值。其中一个实施例是一种方法,该方法对不同ACK时间间隔都是健壮的。注意,过低估值和过高估值可依赖ACK的发送时间而变化。如果在接收器时钟增加之后的一段时间不存在ACK,那么过高估值可能会具有错误,类似地如果在增加之前的最后一个ACK不是立即在增加之前,那么过低估值可能会具有错误。在ACK时间间隔不可靠的环境中,我们可将BQD估计为一个值,该值符合若干过低估值和过高估值的最紧界限。这种BQD估值
为
接收器时钟周期估计—单周期取样
【0078】本发明包括用于根据接收器时钟周期的单取样确定p2的实施例。用该方法为BQD测量确定p2可能太不准确。然而,该方法可用于确定p2的量值,并然后从已知的保守估值表中选择一个估值,所述保守估值表与使用该周期的所有操作系统兼容。
【0079】如图5B的时序图所示,如果接收器时钟增加之前和之后的ACK发送时间分别已知为t1(j-1)和t1j,并且下一时钟增加之前和之后的ACK发送时间分别已知为t1(k-1)和t1k,那么接收器时钟周期的下界和上界可被计算出来。在该实施例中,发送器不知道ACK的发送时间,而仅知道t2j,第j个分组ACK的到达时间,在此t2j=t1j+dBj。因此,如果我们使用ACK到达时间去估计时钟周期,那么排队延迟中的变化同样会对周期界限估计中加入噪声。使用在时钟增加之前和之后到达的ACK,我们可计算出周期下界的估值
P 2k=t2(k-1)-t2j=t1(k-1)-t1j+(dBQ(k-1)-dBQj) (17)
以及上界
【0080】因此,我们从单周期的测量得到的接收器时钟的知识可能会受到ACK分组的时间间隔以及每个ACK经历的排队延迟中的差异的限制。
接收器时钟周期估计平均多取样
【0081】我们可通过在多个周期上平均时钟周期测量来处理单取样技术的准确度问题。定义用于构造周期估值的平均运算符
在此X(j)是直到时间t2j的所有取样的集合,取样Xi在时间t2取得,且N(s,e)是周期s<t2i<e内的取样数目。设t2(j)为在第j个ACK到达时的所有ACK到达时间的集合,并设A(j)为与每个在t2(j)到达的ACK联合的所有接收器时间戳的集合。
【0082】一种估计接收器周期的可行方式是将从连接开始和最近的分组划分为两个区域,并计算在这两个区域之间的相对接收器时钟平均增量的发送器时钟平均增量
【0083】如果我们设φj=mod(t1j,p2),那么我们可将(18)分为p2加上由于ACK传输间(inter-transmission)时间而产生的误差项和由于排队延迟变化而产生的误差项
其中
且
【0084】如果最大的反向排队延迟是dBQmax,那么注意在(22)和(23)中分子分别被p2和dBQmax限制。因此当t1j→∞时,r(0,t2j/2,t2j/2,t1j)→0且e(0,t2j/2,t2j/2,t1j)→0且
这意味着
最终将收敛到p2,而不管ACK传送时间分布或排队延迟改变。
【0085】在有限估计周期上,考虑在周期估计中的最坏情况的误差。周期估计的下界和上界可被计算出来。当最大队列长度和最大Φ的区域后面跟有Φ=0的最小队列长度区域时,最大的正周期误差就会出现。周期估计上界是
【0086】当Φ=0的最小队列长度区域后面跟有具有最大Φ的最大队列长度区域时,最大的负周期误差就会出现。周期下界是
【0087】可通过只选择接收器时钟增加之后的第一个分组来减少由于r(s1,e1,s2,e2)项而产生的估计误差,以使取样A(j)和t2(j)的集合仅包含Aj=Aj-1+1分组。如果可获得关于两个区域之间的排队延迟差的信息,那么由于e(s1,e1,s2,e2)项而产生的估计误差也可被减少。
具有BQD检测的基于延迟的TCP
【0088】一旦BQD被确定,其可被合并入基于延迟的TCP算法。回想对于qdelay>0和
的基于延迟的TCP窗口控制定律为
在平衡(26)中给出
其提示平衡源速率取决于α以及前向和反向队列
X(DBQ+DFQ)=α (28)
【0089】我们通过将BQD估计加入baseRTT估计中,从而将BQD测量并入基于延迟的TCP控制定律,以使baseRTT′=baseRTT+DBQ。通过使用baseRTT′而不是baseRTT可修改平衡性质,以使源速率不再取决于反向队列和
X·DFQ=α (29)
【0090】因此,只有前向排队延迟被用于确定用于拥塞控制的窗口和α调整。
Claims (23)
1.一种用于网络中拥塞控制的方法,包括:
确定最小排队延迟q0;
定义平衡条件,所述平衡条件包括所述最小排队延迟q0;
选择满足所述平衡条件的α值。
2.根据权利要求1所述的方法,其中所述网络是TCP网络。
3.根据权利要求2所述的方法,其中所述拥塞控制是一种基于延迟的TCP拥塞控制方案。
4.根据权利要求1所述的方法,其中q=q0+Nα/c,其中N是在所述网络上的业务流的数目,q是所述网络上的延迟,且c是所述网络的容量。
5.一种用于网络中拥塞控制的方法,包括:
检测所述网络中的分组丢失;
确定所述分组丢失是否超过阈值;
当所述分组丢失未超过所述阈值时增加α值;
当所述分组丢失超过所述阈值时减少所述α值。
6.根据权利要求5所述的方法,其中所述α值被加性地增加、乘性地减少。
7.根据权利要求5所述的方法,其中所述阈值表示拥塞丢失。
8.根据权利要求5所述的方法,其中所述阈值大于或等于8。
9.一种用于网络中拥塞控制的方法,包括:
确定所述网络的吞吐量;
确定当前α值是否与所述吞吐量相联系;
当所述当前α值与所述吞吐量不对应时,增加α值。
10.根据权利要求9所述的方法,其进一步包括从多个可能的α值中随机地指定α值的步骤。
11.根据权利要求10所述的方法,其中所述随机地指定α值的步骤发生在预先确定的时限之后。
12.一种用于网络上拥塞控制的方法,包括:
确定在所述网络上发送的消息的前向排队延迟(FQD);
使用FQD调整所述网络的所述排队延迟。
13.根据权利要求12所述的方法,其中所述确定所述前向排队延迟的步骤包括:
确定往返时间(RTT)延迟;
确定反向排队延迟(BQD);
从RTT延迟中减去BQD以确定FQD。
14.根据权利要求13所述的方法,其中确定BQD包括:
确定接收器时钟周期p2;
在接收器时钟变化之后,对确认(ACK)进行取样;
基于p2和ACK计算BQD。
15.一种用于网络上拥塞控制的方法,包括:
定义积压量平衡条件,其包括效用函数u(x)和数据流的数目N;
定义u(x)以使当N增加时,所述积压量以较低速率增加。
16.根据权利要求15所述的方法,其中u(x)是通过可调常量β来修改的。
17.根据权利要求16述的方法,其中
,且其中
是峰值率。
18.根据权利要求17述的方法,进一步包括最小排队延迟q0,以使
19.一种用于在网络上进行拥塞控制的方法,包括:
计算平衡丢失概率p;
计算平衡排队延迟q;
朝着预先确定的目标值驱动p和q的函数。
20.根据权利要求19述的方法,其中计算p包括用间隔S中丢失的分组的数目除以在间隔S期间发送的分组的总数目。
21.根据权利要求19述的方法,其中均衡p和q是通过更新α值将比率q/p朝值K方向驱动来实现的。
22.根据权利要求21所述的方法,其中更新所述α值是通过如下步骤实现的:
计算pt和qt;
产生λt值=qt/pt/K;
计算值ηt=f(η(t-1),λt);
产生新的αt值=ηt*α0。
23.一种在网络中检测路由变化的方法,包括:
将α值增加Δα;
在增加所述α值后,确定往返时间的变化(ΔRTT);
当ΔRTT/Δα接近零时,将路由变化定义为发生。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60211104P | 2004-08-17 | 2004-08-17 | |
US60/602,111 | 2004-08-17 | ||
US60/602,987 | 2004-08-19 | ||
US60/605,458 | 2004-08-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101023455A true CN101023455A (zh) | 2007-08-22 |
Family
ID=38710433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200580031105 Pending CN101023455A (zh) | 2004-08-17 | 2005-08-17 | 使用排队控制和单向延迟测量实现网络拥塞控制的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101023455A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404208A (zh) * | 2011-11-11 | 2012-04-04 | 中国科学院软件研究所 | 一种稳定高效的互联网拥塞控制方法 |
CN102835126A (zh) * | 2011-02-16 | 2012-12-19 | 索尼公司 | 传送终端和传送方法 |
CN102904829A (zh) * | 2012-10-19 | 2013-01-30 | 广东石油化工学院 | 基于历史连接信息的单边加速fast tcp改进算法 |
CN104601393A (zh) * | 2013-10-30 | 2015-05-06 | 三星Sds株式会社 | 排队延迟估计方法及装置 |
CN110661723A (zh) * | 2018-06-29 | 2020-01-07 | 华为技术有限公司 | 一种数据传输方法、计算设备、网络设备及数据传输系统 |
CN115208828A (zh) * | 2019-05-17 | 2022-10-18 | 思想系统公司 | 速率优化的拥塞管理 |
CN116112446A (zh) * | 2022-11-30 | 2023-05-12 | 重庆紫光华山智安科技有限公司 | 基于消息队列的延时反馈方法、计算机设备和存储介质 |
-
2005
- 2005-08-17 CN CN 200580031105 patent/CN101023455A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102835126A (zh) * | 2011-02-16 | 2012-12-19 | 索尼公司 | 传送终端和传送方法 |
CN102404208A (zh) * | 2011-11-11 | 2012-04-04 | 中国科学院软件研究所 | 一种稳定高效的互联网拥塞控制方法 |
CN102404208B (zh) * | 2011-11-11 | 2014-07-02 | 中国科学院软件研究所 | 一种互联网拥塞控制方法 |
CN102904829A (zh) * | 2012-10-19 | 2013-01-30 | 广东石油化工学院 | 基于历史连接信息的单边加速fast tcp改进算法 |
CN104601393A (zh) * | 2013-10-30 | 2015-05-06 | 三星Sds株式会社 | 排队延迟估计方法及装置 |
CN104601393B (zh) * | 2013-10-30 | 2018-05-29 | 三星Sds株式会社 | 排队延迟估计方法及装置 |
CN110661723A (zh) * | 2018-06-29 | 2020-01-07 | 华为技术有限公司 | 一种数据传输方法、计算设备、网络设备及数据传输系统 |
CN110661723B (zh) * | 2018-06-29 | 2023-08-22 | 华为技术有限公司 | 一种数据传输方法、计算设备、网络设备及数据传输系统 |
US11799790B2 (en) | 2018-06-29 | 2023-10-24 | Huawei Techologies Co., Ltd. | Data transmission method, computing device, network device, and data transmission system |
CN115208828A (zh) * | 2019-05-17 | 2022-10-18 | 思想系统公司 | 速率优化的拥塞管理 |
CN116112446A (zh) * | 2022-11-30 | 2023-05-12 | 重庆紫光华山智安科技有限公司 | 基于消息队列的延时反馈方法、计算机设备和存储介质 |
CN116112446B (zh) * | 2022-11-30 | 2024-06-07 | 重庆紫光华山智安科技有限公司 | 基于消息队列的延时反馈方法、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3139533C (en) | Rate-optimized congestion management | |
EP2374245B1 (en) | Controlling packet transmission using bandwidth estimation | |
CN101272290B (zh) | Ip网络中路径拥塞状态的测量方法和测量装置 | |
US7693052B2 (en) | Method and apparatus for network congestion control using queue control and one-way delay measurements | |
US9001663B2 (en) | Communication transport optimized for data center environment | |
CN101499957B (zh) | 一种多径负载均衡的实现方法和数据转发装置 | |
CN101023455A (zh) | 使用排队控制和单向延迟测量实现网络拥塞控制的方法和设备 | |
US10637788B2 (en) | Stability of delay-based congestion control in a computer network using an alpha-beta filter and round-trip-time predictor | |
Weigle et al. | Delay-based early congestion detection and adaptation in TCP: impact on web performance | |
US8315164B2 (en) | Controlling packet transmission | |
JP2006279730A (ja) | 輻輳制御方法および送信装置および受信装置 | |
CN101175031A (zh) | 一种基于二阶最优模型和自适应计算的路由器主动队列管理方法 | |
Fares et al. | A new algorithm for controlling a buffer with time-varying arrival rate | |
CN116266826A (zh) | 一种分布式机器学习的网络优化系统、方法及电子设备 | |
Hong et al. | Self-tuning utility-based controller for end-to-end congestion in the Internet | |
Jagannathan | End to end congestion control in high-speed networks | |
Luong et al. | Bandwidth sharing scheme of end-to-end congestion control protocols | |
Zhang et al. | Max-min fair rate allocation for VCP in multi-bottleneck networks | |
Adams | Infinitesimal perturbation analysis for active queue management | |
Dst et al. | TCP/AQM Congestion Control | |
Sitharaman | Nonlinear continuous feedback controllers | |
GB2360669A (en) | Improvements in or relating to internet access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |