合计带宽控制的方法和系统的制作方法

文档序号:7939886阅读:268来源:国知局
专利名称:合计带宽控制的方法和系统的制作方法
合计带宽控制的方法和系统
背景技术
有许多种期望对通过网络传送数据的特定进程组所使用的带宽量进行限制的情 况。例如,通常对于限制经过(traverse)网络中的一个或多个段的特定用户进程的带宽使 用,以便为共享相同网络段集合的其他用户进程保留网络资源感兴趣。还期望限制服务器 和客户端的特定集合之间的进程组的合计带宽(aggregate bandwidth),使得在服务器面 前的剩余带宽资源可以由与相同服务器组连接的其他用户进程使用。在下文中,提供虚拟 链路控制系统以实现上述合计带宽控制的功能。


图1是示出了利用已经插入了虚拟链路的公共网络路径的多个进程的图;图2示出了虚拟链路控制器和速率控制机制的示例实现方式;图3示出了用于利用虚拟带宽控制方案的示例服务器配置。
具体实施例方式这里描述了驻留在相同或不同计算机中独立执行的进程组可以用以限制通过网 络传送数据的带宽合计量的方法和系统,其中,这些进程可以包括经过网络中的一个或多 个公共段、或沿着特定网络路径的所有段的数据传送的集合。这样的带宽限制例如可以用 于确保沿着共享网络段的一些剩余容量可以由同样经过那些段的其他进程来使用。为了提 供合计带宽控制,通过集成到每个进程中的虚拟链路控制器来实现虚拟链路。虚拟链路控 制器彼此通过网络或在计算机内进行通信。虚拟链路是对具有某一吞吐量的物理链路进 行模拟的软件结构。因此吞吐量可以被指定为,代表要由进程组使用的期望最大带宽的某 个值q。图1示出了通过网络100 (虚线框)传送数据并经过公共网络段100-1、100-2和 100-3的N个进程Pi至PN的示例配置。所示的虚拟链路101介于网络100之内,对有限容 量的物理链路进行模拟。共享的段100-1、100-2、100-3可以例如由进程&至PN以及其他 进程来共享,并期望保留沿着这些段的一些剩余带宽由那些其他进程使用。为了实现虚拟链路,每个进程的虚拟链路控制器彼此进行通信以确定通过虚拟链 路流到或流自进程组的数据业务的总量。虚拟链路控制器可以根据每个进程发送的间歇广 播来确定通过虚拟链路的业务,其中广播向每个其他进程发信号通知由该进程传送的数据 量。这样的广播例如可以包含在某时间段传送的数据量,或者可以表示已经传送的一些指 定数据量。为了快速且精确地确定业务传递的量,可以将虚拟链路控制器布置于彼此接近 的位置,使得在对由特定虚拟链路控制器发送的广播消息的处理之后,很快所有控制器可 以收听到该消息。在简要情况下,例如,可以将虚拟链路控制器以及其主进程布置在单个 计算机上并共同实现虚拟链路。在另一配置中,可以将这些进程布置在跨过连接网络的不 同节点上,作为例如公共局域网络上的计算机节点集合、或通过公共网络背板(backplane) 集成在一起的服务器节点集合。虚拟链路控制器使用收集的业务信息来更新虚拟队列,该虚拟队列对有限带宽的物理链路中由缓冲器保持的排队进行模拟。然而,由于虚拟队列仅是代表将在物理链路中 排队的数据量的数字,因而实际上不对数据进行排队。无论何时虚拟链路上的业务超过链 路容量Cl,便以类似于实际队列在物理链路的缓冲器中将会被填充的方式,以等于该差值 的速率来利用数据填充虚拟队列。相反地,当业务在链路容量之下时,以等于链路容量和总 业务流率之间的差值的速率来使虚拟队列为空,直到在虚拟队列中不再有数据为止。当系 统进行稳定时,虚拟队列中的数据量应当保持在最大虚拟队列大小9_之下的某固定水平 上,该最大虚拟队列大小Q_指示总数据业务速率等于虚拟链路容量Cl。因此虚拟队列中 的数据量是虚拟链路上的业务流过使用或欠使用预期带宽限制Cl所到程度的指示,并可以 用作并入到每个进程中的速率控制机制调整其数据传送速率的反馈信号。速率控制机制可 以基于一个或多个虚拟队列参数来控制进程传送数据的速率,这些参数如虚拟队列中数据 的绝对量Q(t)、相应虚拟排队延迟q(t)(其中,(q(t) [(^(。/(^、和/或指示虚拟排队的 量接近最大虚拟队列大小Q_的程度的虚拟队列的相对占用率Q(t)/Qmax。在图2中示出了进程内通过执行顺序步骤而实现的虚拟链路控制器和速率控制 机制的示例。在步骤S1,进程以预定速率x(t)来传送数据。在步骤S2,进程向组中的其他 进程广播其已经传送的数据量的指示。在步骤S3,接收来自其他进程的类似广播并将其排 列成表,使得在步骤S4可以计算虚拟链路之上的总业务速率y(t)。在步骤S5,基于总业 务速率,对虚拟队列中的数据量进行更新。在步骤S6,根据反映如虚拟排队延迟本身、虚拟 队列中的数据量等虚拟排队量参数、和/或反映如虚拟队列中数据量与最大虚拟队列大小 的比值等虚拟队列的相对占有率参数,来调整预定数据传送速率x(t)。然后进程返回步骤 S1,来继续以速率x(t)传送数据。如上所述的虚拟链路带宽控制方案可以在利用允许基于某些形式的排队延迟信 息来调整其总数据传送速率的任何数据传送协议的进程中实现。特别适合于虚拟链路控 制方案的实现方式的协议的示例是在如于2005年12月23日提交的美国专利申请序列号 No. 11/317,663中描述的FASP协议,并通过引用合并于此。FASP协议根据针对数据分组的 测量往返时间导出实际排队延迟。该导出的延迟代表FASP发送数据分组所沿的网络链路 在所有物理链路处产生的排队延迟的总量,并用作FASP中的速率控制方案用于调整数据 传送速率的输入参数。协议随着队列延迟的减小而增加数据传送速率,反之亦然。通过使 数据传送速率的调整基于排队延迟而非分组超时,FASP协议例如能够在频繁发生数据丢失 的情况下更有效地利用网络。为了实现虚拟链路带宽控制方案,可以对FASP协议的速率控 制机制进行修改,以使用由虚拟链路控制器提供的虚拟排队延迟或实际测量的排队延迟和 虚拟排队延迟的组合。虚拟链路控制和FASP可以共同形成具有高可配置性的端对端、应用层带宽控制 解决方案。由虚拟链路控制实施的带宽上限(bandwidthcap)可以是双向的,并可以通过配 置文件或来其他软件模块的命令在运行中进行调整。每个FASP会话保持其自身的虚拟链 路控制器并单独计算其速率。通过消除集中控制点,虚拟链路设计避免单一故障点,并将 分发的控制嵌入到应用协议中。这将虚拟链路带宽控制方案与其他形式的主动队列管理 (AQM)方案进行区分,主动队列管理(AQM)方案通常在例如网络路由器中的集中战略点处 实现。图3是示出了执行通过公共网络路径302与客户端组303进行通信的进程的服务器 组301的示例。每个服务器进程保持其自身的FASP对话以及虚拟链路控制器。每个虚拟链路控制器不断地管理其内部虚拟队列,该内部虚拟队列为相应FASP对话提供必要的延 迟信息以执行动态速率更新。尽管是独立速率更新行为,但共享公共虚拟链路的FASP对话 能够经由交换输入/输出业务信息来联合地实施预定带宽上限。除了 FASP,基于某种形式的排队延迟信息来调整其进程的速率的任何速率控制机 制可以与虚拟链路控制方案组合来实现合计带宽上限。代替仅依赖于已获知的排队延迟 信息,速率控制机制还可以使用排队延迟和虚拟排队延迟的组合来调整其主进程的传送速 率。在一个实施例中,单个进程的速率控制机制基于虚拟排队延迟和从由其进程收集的往 返延迟测量中导出排队延迟的组合来调整其数据传送速率。例如,可以在周期T的结束处 将数据传送速率x(t)更新为<formula>formula see original document page 6</formula>
其中,q(t)是虚拟链路控制器通知的虚拟排队延迟的量,qf(t)是速率控制机制测 量的排队延迟的量,K是某常量,并且a ^x(t) (q(t)+qf(t))的定位点(setpoint) 0在这 种情况下,x(t)q(t)获得虚拟队列中存在的排队量,并且x(t)qf(t)代表沿着进程所穿过的 网络路径的物理链路保持的队列中的排队量。它们之和X(t)(q(t)+qf(t))是在由进程访 问的所有队列(物理和虚拟)处累积的总数据量。通过将该数据量与定位点a进行比较, 速率控制机制在下个周期x (t+T)上下调整传送速率。具体地,如果x(t)超过特定链路的 容量,其可以是虚拟链路或物理链路之一,则链路处的排队延迟将增长并提高排队延迟的 总量(q(t)+qf(t))。一旦(q(t)+qf(t))变得大到其与x(t)的乘积超过定位点a,则速率 控制机制将使进程将其传送速率降低为避免进一步使链路拥塞的度量。可以将虚拟链路的容量Cl选为小于共享网络段的链路容量的值,以便保留针对其 他用户的那些段上的带宽。在这种情况下,虚拟链路容量将限制合计传送速率,因而在那些 共享网络段内的物理链路处将不会累积排队。在该上下文中,速率控制机制因此可以仅响 应虚拟排队延迟。在一个实施例中,单个进程的速率控制机制以如下方式来调整其数据传 送速率尝试以恒定水平保持添加到虚拟队列中的数据量。例如,可以以周期T将数据传送 速率x(t)更新如下<formula>formula see original document page 6</formula>其中,q(t)是虚拟排队延迟,从而x(t)q(t)是进程添加到虚拟队列中的数据量, K是某常量,并且a是x(t)(q(t)的定位点。在该实施例中,随着虚拟排队延迟的减小或 增加,每个进程传送数据的速率相应地增加或减小。选择定位点a和虚拟队列的最大大小 Q_,使得当组中所有进程以它们最大速率传送数据时,在0和Q_之间占用虚拟队列,其中 每个进程将相等的数据量添加到虚拟队列中。随着特定进程的数据传送速率的减小,虚拟 排队延迟减小以允许其他进程增加它们的数据传送速率,以便使它们各自的队列添加量保 持恒定。在另一实施例中,队列添加定位点a是根据虚拟队列中存在的数据量来动态调 整的,使得当虚拟队列为空时增加定位点,反之亦然。如下更详细所述,这种队列添加定位 点的动态调谐还可以产生虚拟链路的改进的平衡和稳定属性。可以经由定位点调整函数 f(Q(t),Q_),基于虚拟排队的当前量Q(t)和最大虚拟队列大小Q_来调整队列添加定位 点a。在一个实施例中,定位点调整函数简单地是相对占有率Q(t)/Q_自身的函数。具体 地,定位点调整函数可以被定义为Q(t)/Qmax的非递增函数,当Q(t)/Q_从0增加直到其超过1时,定位点调整函数在1到0之间变化。这种函数的示例是f(Q(t),Qmax) = [(l-Q(t)/ Q_) +]k,其中,k是某正数,“+”将任何负数映射为零。速率控制机制然后以周期T将每个进 程的数据传送速率x(t)调整为X (t+T) = x (t) +K (f (Q (t),Qmax) a -x (t) q (t))通过队列添加定位点a和定位点调整函数f(Q(t),Q_)的适当规定,如果没有其 他进程正在传送数据,则单个进程将几乎利用所有虚拟链路的带宽,并将随着传送数据的 其他进程的数目的增加,积极减小其带宽利用。具体地,在系统进行稳定时的平衡时刻,单 独进程添加到队列中的数据量x(t)q(t)与目标队列定位点f(Q(t),Q_) a精确匹配,使得 速率控制机制始终对等于先前速率x(t)的新速率x(t+T)进行计算。在平衡状态中,这可 以通过管理进程的传送速率所经历的虚拟排队延迟和队列目标定位点f(Q*,Q_) a 之间的关系的以下方程来反应x*q* = f(Q*,QmJ a由于组中的每个进程通过向组中的所有进程分配相同的a而经历平衡状态下相 同的虚拟排队延迟q*,因而每个单独进程将具有相同的目标队列定位点,并因此在稳定的 系统中达到相同的传送速率。随着组中进程数N的增加,每个进程将获得总虚拟链路Cl的 均等(公平)共享,即为Cl/N。根据另一透视图,通过适当选择定位点调整函数f(Q(t),Q_)作为Q(t)的非递增 函数,稳定的虚拟队列中的虚拟排队量Q*随着进程总数的增加而增加,使得以匹配其传送 速率X*的递减步幅的方式向每个进程提供递减的目标队列定位点f (Q*,Q_) a。尽管是递 增的趋势,但无论在组中存在多少进程,总虚拟排队(延迟)的量仍被限制在与最大虚拟队 列大小Q_相关的有限值之下。例如,当f(Q(t),Q_) = [(l-Q(t)/Q_)+]k时,平衡状态下 虚拟队列中的数据量Q*随着N向Q_增加,以便与单独进程的减小传送速率匹配,即,Cl/N。 然而,Q*仅将逐渐接近Q_,但是将不会超过Q_,这是由于无论N变得多大,传送速率始终 大于零。将虚拟排队的总量限制在Q_之下在进程数目N随时间变化的情况下,减少了系 统中虚拟排队延迟的可能振荡范围。如前所述,由于速率控制机制,进程的传送速率根据虚 拟排队延迟的量而上下变化。因此,降低虚拟排队延迟的振荡范围还有助于在动态设置中 平滑掉单独进程的传送速率。已经结合上述具体实施例描述了本发明。应当认识到,还可以以被认为是有利的 方式来对那些实施例进行组合。同样,对于本领域技术人员而言,许多备选方案、变型以及 修改将是显而易见的。其他这样的备选方案、变型以及修改意在落于所附权利要求的范围 内。
权利要求
一种系统,包括虚拟链路控制器,被并入根据特定协议在网络中的一个或多个公共段上传送数据的独立执行软件进程组中的每个进程中,其中,所述虚拟链路控制器被配置为确定由进程组在网络段上所传送的数据的合计业务速率,并实现所述进程传送数据所通过的虚拟链路,其中,所述虚拟链路包括相应地根据所述合计业务速率大于特定带宽限制cl还是小于特定带宽限制cl来填充或清空的虚拟队列;以及速率控制机制,被并入每个进程中,所述速率控制机制被配置为,基于反映数据填充所述虚拟队列的程度的一个或多个虚拟队列参数来调整进程的数据传送速率x(t)。
2.根据权利要求1所述的系统,其中,所述虚拟链路控制器被配置为根据每个进程发 送的间歇广播来确定通过所述虚拟链路的业务,其中广播向每个其他进程发信号通知由该 进程传送的数据量。
3.根据权利要求1或2所述的系统,其中,所述一个或多个虚拟队列参数包括如下计算 的虚拟排队延迟q(t)q(t) = Q(t)/Cl其中,Q(t)是虚拟队列中出现的数据量。
4.根据权利要求1至3中任一项所述的系统,其中,一个或多个虚拟队列参数包括反 映虚拟队列中存在的数据量Q(t)和最大虚拟队列大小Qmax之间的差值的度量。
5.根据权利要求1至4中任一项所述的系统,其中,并入每个进程中的速率控制机制基 于虚拟排队延迟和由进程借助于对传送数据所经过的网络路径的采样所测量的排队延迟 的组合,来调整进程的数据传送速率。
6.根据权利要求1至5中任一项所述的系统,其中,速率控制机制在周期T的结束处, 将每个进程的数据传送速率x(t)周期性地调整如下χ (t+T) = χ (t) +K ( α -X (t) q (t))其中,q(t)是虚拟排队延迟,因而x(t)q(t)是进程添加到虚拟队列中的数据量,K是某 常量,以及α是针对x(t)q(t)的定位点。
7.根据权利要求1至6中任一项所述的系统,其中,速率控制机制在周期T的结束处, 将每个进程的数据传送速率x(t)周期性地调整如下χ (t+T) = χ (t) +K (f (Q (t),Qmax) α -χ (t) q (t))其中,q(t)是虚拟排队延迟,因而x(t)q(t)是进程添加到虚拟队列中的数据量,K是某 常量,α是针对x(t)q(t)的定位点,Qmax是最大虚拟队列大小,以及f(Q(t),Qmax)是随虚拟 队列中的数据量Q(t)非递增的定位点调整函数。
8.根据权利要求7所述的系统,其中,定位点调整函数f(Q(t),Qmax)是相对占有率 Q(t)/Qfflax的非递增函数,并具有如下形式<formula>formula see original document page 2</formula>其中,k是某整数
9.根据权利要求7所述的系统,其中,指定队列添加定位点α和定位点调整函数 f (Q (t),Qfflax),使得如果没有其他进程正在传送数据,则组中的单个进程将利用虚拟链路上 的所有带宽,以及当组中的多个进程存在并正最大限度地传送数据时,多个进程中的每一 个将获得虚拟链路容量的均等共享。
10.一种方法,包括执行根据特定协议在网络中的一个或多个公共段上传送数据的独立软件进程组;对并入该组的每个进程中的虚拟链路控制器进行操作,其中,所述虚拟链路控制器确 定由所述进程组在网络段上所传送的数据的合计业务速率,并实现所述进程传送数据所通 过的虚拟链路,其中,所述虚拟链路包括相应地根据合计业务速率大于特定带宽限制C1还 是小于特定带宽限制C1来填充或清空的虚拟队列;以及对并入每个进程中的速率控制机制进行操作,所述速率控制机制基于反映数据填充所 述虚拟队列的程度的一个或多个虚拟队列参数来调整进程的数据传送速率x(t)。
11.根据权利要求10所述的方法,其中,所述网络段包含网络中由所述进程组的业务、 以及来自作为非所述组中的成员的其他进程的业务所共享的一个或多个通信链路。
12.根据权利要求10或11所述的方法,其中,所述虚拟链路控制器被并入运行在单一 计算机节点上的进程。
13.根据权利要求10或11所述的方法,其中,所述虚拟链路控制器被并入运行在位于 公共局域网络上的一个或多个不同计算机节点上的进程,或通过共享背板集成在一起。
14.根据权利要求10至13中任一项所述的方法,其中,所述虚拟链路控制器根据每个 进程发送的间歇广播来确定通过所述虚拟链路的业务,其中广播向每个其他进程发信号通 知由该进程传送的数据量。
15.根据权利要求10至14中任一项所述的方法,其中,一个或多个虚拟队列参数包括 如下计算的虚拟排队延迟q(t)<formula>formula see original document page 3</formula>其中,Q(t)是存在于虚拟队列中的数据量。
全文摘要
本发明描述了一种虚拟链路带宽控制方案,该方案是用于实现分布式或协同带宽控制的基于软件的机制。该方案可以与利用排队延迟作为针对数据传送的速率控制方案的一部分的数据传送协议无缝地集成在一起,并允许多个进程自我限制它们的传送速度,使得合计速率稳定在物理瓶颈容量之下的预配置水平。
文档编号H04L12/56GK101803304SQ200880105499
公开日2010年8月11日 申请日期2008年9月3日 优先权日2007年9月4日
发明者瑟本·斯慕, 米歇尔·克里斯丁·马森, 许颖 申请人:奥斯佩拉股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1