发明内容
本发明提供了一种用于数据通信的方法和/或系统,至少结合一幅附图进行了详细说明,并在权利要求中得到了更完整的阐述。
根据一个方面,一种用于数据通信的方法,包括:
用第一双速率三色计量器trTCM计量第一数据业务流,其中所述第一trTCM的第一令牌桶具有第一令牌容量并且所述第一trTCM的第二令牌桶具有第二令牌容量;
以第一速率向所述第一trTCM的所述第一令牌桶分配令牌并以第二速率向所述第一trTCM的所述第二令牌桶分配令牌;
用第二trTCM计量第二数据业务流,其中所述第二trTCM的第一令牌桶具有第三令牌容量并且所述第二trTCM的第二令牌桶具有第四令牌容量;
以第三速率向所述第二trTCM的所述第一令牌桶分配令牌并以第四速率向所述第二trTCM的所述第二令牌桶分配令牌;
当所述第一trTCM的所述第一令牌桶的令牌计数超过所述第一容量时,将分配给所述第一trTCM的所述第一令牌桶的令牌再分配给所述第二trTCM的所述第一令牌桶;以及
当所述第一trTCM的所述第二令牌桶的令牌计数超过所述第二容量时,将分配给所述第一trTCM的所述第二令牌桶的令牌再分配给所述第二trTCM的所述第二令牌桶。
优选地,分配给所述第一数据业务流的优先级高于所述第二数据业务流。
优选地,所述方法进一步包括:
当所述第二trTCM的所述第一令牌桶的令牌计数超过所述第三容量时,将分配给所述第二trTCM的所述第一令牌桶的令牌再分配给所述第一trTCM的所述第一令牌桶;
当所述第二trTCM的所述第二令牌桶的令牌计数超过所述第四容量时,将分配给所述第二trTCM的所述第二令牌桶的令牌再分配给所述第一trTCM的所述第二令牌桶。
优选地:
将分配给所述第二trTCM的所述第一令牌桶的令牌再分配给所述第一trTCM的所述第一令牌桶包括以下至少一项:
以第三速率将分配给所述第二trTCM的所述第一令牌桶的令牌中的至少一部分进行再分配;以及
将从所述第一trTCM的所述第一令牌桶再分配给所述第二trTCM的所述第一令牌桶的令牌中的至少一部分进行再分配;以及
将分配给所述第二trTCM的所述第二令牌桶的令牌再分配给所述第一trTCM的所述第二令牌桶包括以下至少一项:
以第三速率将分配给所述第二trTCM的所述第二令牌桶的令牌中的至少一部分进行再分配;以及
将从所述第一trTCM的所述第二令牌桶再分配给所述第二trTCM的所述第二令牌桶的令牌中的至少一部分进行再分配。
优选地,所述方法进一步包括:
当所述第二trTCM的所述第一令牌桶的令牌计数超过所述第三容量时,将分配给所述第二trTCM的所述第一令牌桶的令牌再分配给所述第一trTCM的所述第二令牌桶。
优选地,所述方法进一步包括:
当所述第二trTCM的所述第二令牌桶的令牌计数超过所述第四容量时,将分配给所述第二trTCM的所述第二令牌桶的令牌再分配给所述第一trTCM的所述第二令牌桶。
优选地,所述方法进一步包括:
在处理所述第一数据业务流和所述第二数据业务流的同时处理第三数据业务流,所述第三数据业务流的优先级低于所述第一数据业务流而高于所述第二数据业务流;
用第三trTCM计量第三数据业务流,其中所述第三trTCM的第一令牌桶具有第五令牌容量并且所述第三trTCM的第二令牌桶具有第六令牌容量;
以第五速率向所述第三trTCM的所述第一令牌桶分配令牌;
以第六速率向所述第三trTCM的所述第二令牌桶分配令牌;以及
当所述第三trTCM的所述第一令牌桶的令牌计数超过所述第五容量时,将分配给所述第三trTCM的所述第一令牌桶的令牌再分配给所述第三trTCM的所述第二令牌桶。
优选地:
响应第一标志的设置,将分配给所述第一trTCM的所述第一令牌桶的令牌再分配给所述第二trTCM的所述第一令牌桶,其中所述第一标志与所述第一trTCM的所述第一令牌桶相关;
响应第二标志的设置,将分配给所述第一trTCM的所述第二令牌桶的令牌再分配给所述第二trTCM的所述第二令牌桶,其中所述第二标志与所述第一trTCM的所述第二令牌桶相关;以及
响应第三标志的清零和第四标志的设置,将分配给所述第三trTCM的所述第一令牌桶的令牌再分配给所述第三trTCM的所述第二令牌桶,其中所述第三标志与所述第三trTCM的所述第一令牌桶相关并且所述第四标志与所述第三trTCM相关。
优选地,所述方法进一步包括:
在处理所述第一数据业务流和所述第二数据业务流的同时处理第三数据业务流,所述第三数据业务流的优先级低于所述第一数据业务流和所述第二数据业务流;
用第三trTCM计量第三数据业务流,其中所述第三trTCM的第一令牌桶具有第五令牌容量并且所述第三trTCM的第二令牌桶具有第六令牌容量;
以第五速率向所述第三trTCM的所述第一令牌桶分配令牌;
以第六速率向所述第三trTCM的所述第二令牌桶分配令牌;以及
当所述第二trTCM的所述第一令牌桶的令牌计数超过所述第三容量时,将分配给所述第二trTCM的所述第一令牌桶的令牌再分配给所述第三trTCM的所述第一令牌桶;以及
当所述第二trTCM的所述第二令牌桶的令牌计数超过所述第四容量时,将分配给所述第二trTCM的所述第二令牌桶的令牌再分配给所述第三trTCM的所述第二令牌桶。
优选地:
当所述第三trTCM的所述第一令牌桶的令牌计数超过所述第五容量时,将分配给所述第三trTCM的所述第一令牌桶的令牌再分配给所述第一trTCM的所述第一令牌桶;
当所述第三trTCM的所述第二令牌桶的令牌计数超过所述第六容量时,将分配给所述第三trTCM的所述第二令牌桶的令牌再分配给所述第一trTCM的所述第二令牌桶。
优选地:
第一速率包括第一数据业务流的承诺信息速率(CIR);
第二速率包括第一数据业务流的多余信息速率(EIR);
第三速率包括第二数据业务流的承诺信息速率;以及
第四速率包括第二数据业务流的多余信息速率。
优选地,所述方法进一步包括:
与所述第二trTCM的所述第一令牌桶相关的标志清零后,当所述第二trTCM的所述第一令牌桶的令牌计数超出第三容量时,丢弃再分配给所述第二trTCM的所述第一令牌桶的令牌;以及
与所述第二trTCM的所述第二令牌桶相关的标志清零后,当所述第二trTCM的所述第二令牌桶的令牌计数超出第四容量时,丢弃再分配给所述第二trTCM的所述第二令牌桶的令牌。
优选地:
将分配给所述第一trTCM的所述第一令牌桶的令牌再分配给所述第二trTCM的所述第一令牌桶包括根据所述第二trTCM的所述第一令牌桶的索引将分配给所述第一trTCM的所述第一令牌桶的令牌再分配给所述第二trTCM的所述第一令牌桶;以及
将分配给所述第一trTCM的所述第二令牌桶的令牌再分配给所述第二trTCM的所述第二令牌桶包括根据所述第二trTCM的所述第二令牌桶的索引将分配给所述第一trTCM的所述第二令牌桶的令牌再分配给所述第二trTCM的所述第二令牌桶。
根据一个方面,一种网络设备,包括:
用于计量第一数据业务流的第一双速率三色计量器trTCM,所述第一trTCM包括:
具有第一容量的第一令牌桶;以及
具有第二容量的第二令牌桶,
用于计量第二数据业务流的第二trTCM,所述第二trTCM包括:
具有第三容量的第一令牌桶;以及
具有第四容量的第二令牌桶,
其中:
所述第一trTCM的所述第一令牌桶在所述第一trTCM的所述第一令牌桶的令牌计数超过所述第一容量时,将分配给所述第一trTCM的所述第一令牌桶的令牌再分配给所述第二trTCM的所述第一令牌桶;以及
所述第一trTCM的所述第二令牌桶在所述第一trTCM的所述第二令牌桶的令牌计数超过所述第二容量时,将分配给所述第一trTCM的所述第二令牌桶的令牌再分配给所述第二trTCM的所述第二令牌桶。
优选地,所述网络设备进一步包括:
用于计量第三数据业务流的第三trTCM,所述第三trTCM包括:
具有第五容量的第一令牌桶;以及
具有第六容量的第二令牌桶,
其中:
所述第三数据业务流的优先级低于所述第一数据业务流而高于所述第二数据业务流;以及
所述第三trTCM的所述第一令牌桶在所述第三trTCM的所述第一令牌桶的令牌计数超过所述第五容量时,将分配给所述第三trTCM的所述第一令牌桶的令牌再分配给所述第三trTCM的所述第二令牌桶。
优选地,所述第二trTCM的所述第一令牌桶在所述第二trTCM的所述第一令牌桶的令牌计数超过所述第三容量时,将分配给所述第二trTCM的所述第一令牌桶的令牌再分配给所述第一trTCM的所述第二令牌桶。
优选地,所述网络设备进一步包括:
用于计量第三数据业务流的第三trTCM,所述第三trTCM包括:
具有第五容量的第一令牌桶;以及
具有第六容量的第二令牌桶,
其中:
所述第三数据业务流的优先级低于所述第一数据业务流和第二数据业务流;
所述第三trTCM的所述第一令牌桶在所述第三trTCM的所述第一令牌桶的令牌计数超过所述第五容量时,将分配给它的令牌再分配给所述第一trTCM的所述第二令牌桶。
优选地,分配给所述第三trTCM的所述第一令牌桶的所述令牌包括:
由所述第三trTCM分配给所述第三trTCM的所述第一令牌桶的令牌;以及
由一个trTCM的一个令牌桶再分配给所述第三trTCM的所述第一令牌桶的令牌,其中所述一个trTCM用于处理优先级高于所述第三数据业务流并低于所述第一数据业务流的数据业务流。
优选地:
所述第二trTCM的所述第一令牌桶在所述第二trTCM的所述第一令牌桶的令牌计数超过所述第三容量时,将分配给它的令牌再分配给一个trTCM的一个令牌桶,其中所述一个trTCM用于处理优先级高于所述第二数据业务流的数据业务流;以及
所述第二trTCM的所述第二令牌桶在所述第二trTCM的所述第二令牌桶的令牌计数超过所述第四容量时丢弃分配给它的令牌。
根据一个方面,一种网络设备,包括:
用于计量第一数据业务流的第一双速率三色计量器trTCM,所述第一trTCM包括具有第一容量的第一令牌桶和具有第二容量的第二令牌桶;以及
用于计量第二数据业务流的第二trTCM,所述第二trTCM包括第一令牌桶和第二令牌桶,
其中:
所述第一trTCM的所述第一令牌桶在所述第一trTCM的所述第一令牌桶的令牌计数超过所述第一容量时,将分配给它的令牌再分配给所述第二trTCM的所述第一令牌桶;以及
所述第一trTCM的所述第二令牌桶在所述第一trTCM的所述第二令牌桶的令牌计数超过所述第二容量时,将分配给它的令牌再分配给所述第二trTCM的所述第二令牌桶。
具体实施方式
如上所述,在一些应用中,需要以微流来处理数据流,并可以将一定数量的微流合成为一个或多个高带宽的宏流(例如,带宽比单独的微流高)。图1中的表100示出了两种情况,在该情况下,实施带宽分配和共享制度时上述微流/宏流管理是具有优势的。
在表100中,列110表示每个例子的宏流类型,列120表示可以合成宏流的相关微流类型。例如,在行130中,列110中示出的宏流是针对客户的数据业务流,例如单独的网络接入客户。行130列120中示出的可以合成客户宏流的微流是针对客户的单独的业务服务。这些单独的业务服务可以包括声音数据、流式媒体和因特网协议数据以及其它各种可能的业务服务。
在行140列110中,示出的宏流是针对因特网服务供应商(ISP)的数据业务流。在行140列120中,ISP宏流相对应的微流是客户微流。在该实施例中,每个微流可以包括ISP的每个客户各自的数据流量。然后,可以将客户微流合成ISP宏流。
如上所述,可以利用数据队列的分级层次和调度机制来处理微流和宏流,其中每个微流和宏流在专用数据队列中进行处理。这种方法可以在各种数据业务流间实现带宽分配和共享。例如,可以利用这种方法中的分级调度机制来实现带宽分配和共享。但是,如上所述,这种方法实施起来成本过高并且比较困难。
本文提供了在具有有限队列和调度资源的设备中实施基于计量的分级带宽共享的各种实施例,并与分级队列结构(例如,用于处理和路由数据流的网络设备)进行对比。例如,本实施例可以利用具有单个数据队列的网络设备来处理许多微流以及,同样地,宏流或许多宏流,而不是利用每微流和/或宏流的专用数据队列。在其它实施例中,可以使用许多数据队列结构,在每个队列结构中可以处理一个或多个微流和/或宏流。
按照这种方式的分级带宽共享可以通过将数据业务流的计量与数据包(或其它合适的数据格式,例如帧(下文统一称作“数据包”))的标记(例如,颜色标记)以及,在一些实施例中常用的数据包丢弃相结合来实现,这些将在下文中做出详细描述。
在本发明的实施例中,来自每个微流的数据包可以包括有表示与该数据包相关的特定微流的字段(例如在数据包包头)。指出了该数据包的相关微流,就可以针对每个单独的微流分别进行计量和数据包的标记,以实施特定的带宽共享制度而不考虑多个数据流(微流和/或宏流)是否在相同的数据队列结构中进行处理。因为宏流是微流合成的,给定数据包的宏流可以从它的微流标识来确定。
图2是根据本发明一个实施例的用于实施基于计量的分级带宽共享的数据通信设备200的框图。设备200可以是具有有限数据队列资源(例如,数据队列少于正在处理的各个数据流的数量)的网络设备。在设备200中,可以利用调度器214将第一微流集的十个微流MicroFlow(0,0)202……MicroFlow(0,9)204合成第一宏流MacroFlow-0206。如上所述,微流202……204可以在单个数据队列中处理或在许多队列中处理。在设备200中,如上述对MacroFlow-0206的讨论,还可以利用调度器成第二宏流MacroFlow-1220。
在设备200中,还可以进一步利用调度器230将MacroFlow-0206和MacroFlow-1220合成数据流232。在这种情况下,MacroFlow-0206和MacroFlow-1220可以认为是数据业务流232的微流。例如,设备200可以用以下基于微流202、204、216和218描述的类似方式计量和标记MacroFlow-0206和MacroFlow-1220的数据包。同样地,设备200可以用以下基于微流206和220描述的类似方式计量和标计数据流232的数据包。
在设备200中,对微流202……204和216……218以及宏流206和220的可预见带宽分配,可以通过使用结合数据包标记的计量器来实现。例如,每个微流的计量可以通过利用各自的令牌桶计量器(例如,简单单令牌桶计量器和/或双速率三色令牌桶计量器)根据带宽分配和共享制度来确定每个微流是在“额定带宽以内”还是“超出额定带宽”。
在一个实施例中,如图2所示,微流202……204和216……218由单令牌桶计量器208……210和222……224分别计量。在设备200中,计量器208、210、222和224用于确保给每个相应的微流分配至少50Mbps的带宽。需要注意的是,这种带宽分配方式仅仅是为了举例说明,还可以使用其它带宽分配方式。例如,可以给每个微流分配不同的带宽。在设备200中,可以利用一个简单的令牌桶计量器来计量宏流206和220,以确定每个宏流所分配的最大带宽是否超出限额。如下所述,这种方法可以为每个微流分配专用带宽,还可以由微流使用(共享)超出它们专用带宽限额的未使用的宏流带宽,这些将在下文进行详细描述。
在给微流分配数据通信带宽时,一个微流集(例如,微流202……204)分配的带宽总量应该小于或等于包括该微流集的宏流的带宽。例如,在图2中,包含于宏流-0206的十微流中的每一个(202……204)可以分配有带宽50Mbps,而宏流-0206可以具有带宽500Mbps(即50Mbps的十倍)。因此,宏流-0206中的微流202……204分配的带宽总量等于宏流-0206的带宽。
当然,还可以有其它分配方式。例如,宏流-0206可以包括3个微流而不是10个。在这种情况下,3个微流分配的带宽总量可以小于或等于宏流-0206的带宽。例如,在这个例子中,其中一个微流可以分配有250Mbps的带宽,而其它两个微流每个可以分配有125Mbps的带宽。这样,微流带宽的总量就可以等于宏流-0的带宽500Mbps。对于宏流-0206和宏流-1220中各自的微流可以有许多带宽分配方法,上述方法仅仅是为了举例说明。
在设备200中,单令牌桶计量器208……210和222……224可以用于给相应的微流分配“最小”带宽。例如,如果微流(0,0)202(或其它任意微流)的数据包到达的速率等于或低于分配给相应微流的数据速率(例如,50Mbps),单令牌桶计量器208将指出该数据包在额定带宽以内,并且可以利用数据包标识给数据包进行标记,下文将对此进行说明。但是,如果数据包到达的速率大于分配给微流(0,0)的数据带宽,例如,大于50Mbps,根据设备200接收给定数据包时计量器208的状态,基于分配的带宽,至少一部分数据包将被识别为超出额定带宽。标记这些超出额定带宽的数据包。在这种情况下,不是每个数据包都被认作超出额定带宽的,而是只有部分数据包超出额定带宽,与这些数据包相关的微流中的数据流量大于分配给该微流的带宽。即与微流202的50Mbps带宽分配相关的数据包仍然标记为额定带宽以内。
对于单令牌桶计量器208……210和222……224,可以定期给每个桶各自的令牌计数增加令牌(或积分)。增加令牌的速率可以与特定微流分配的带宽相关,例如50Mbps。这个速率可以称作微流的承诺信息速率(CIR)。在一个实施例中,一个给定令牌计数包含的令牌总数是有限的。这个限制值可以称作“令牌桶深”。与令牌桶深相关的令牌计数又可以称作承诺信息大小(CBS),它表示特定微流在该数据通信设备中可以消耗的瞬时带宽。
单一令牌桶计量器208……210和222……224可以根据他们的令牌计数确定相应微流的数据包是否在额定带宽以内。例如,当到达设备200的数据包识别(例如,在帧头)为微流(0,0)202的一部分时,可以检测单令牌桶计量器208以确定是否有正的令牌计数。如果计量器208有正的令牌计数,可以将接收的数据包标记为额定带宽以内,并可以从计量器208的令牌计数中减去与数据包大小相关的令牌的数量。
相反地,如果到达设备200的数据包与微流202相关并且相关的令牌桶计量器208具有零令牌计数或负的令牌计数时,可以将接收到数据包标记为超出额定带宽。对于这个特殊的实施例,在数据包标记为超出额定带宽时,计量器208的令牌计数将不会改为产生一个负的、或进一步负的令牌计数。但是,在其它实施例中,当数据包标记为超出额定带宽时,计量器的令牌计数可以更改(产生一个负的、或进一步负的令牌计数),例如下文所描述的实施例。
在设备200中,尽管利用,例如计量器208……210和222……224给微流分配的专有带宽设定了限制值,但是对于各个微流的最大带宽却没有设置相应的限制值。在这种情况下,可以根据相关宏流分配的带宽以及相关微流的带宽使用量(例如,同一宏流的微流)来限制微流的上限带宽。例如,对于微流202……204,相关的宏流-0206分配的最大带宽是500Mbps,它使用单令牌桶计量器212进行监测,监测方法与微流相同。计量器212可以用于根据它的500Mbps带宽分配量来确定宏流-0是否在额定带宽以内。这种方法可以允许共享未使用的带宽。例如,如果设备200中只有一个微流,微流(0,0)202工作在400Mbps,设备200可以允许将微流200中的所有数据包传送到它们的目的地,因为相关的宏流-0206将保持额定带宽以内(例如,低于它的500Mbps带宽分配量)。
在这种情况下,微流202的一些数据包将被标记为额定带宽以内(例如,与50Mbps带宽分配对应的数据包),而微流202中剩下的数据包将被标记为超出额定带宽(例如,带宽使用量为350Mbps,高于带宽分配量50Mbps的数据包)。在这种情况下,将允许微流202使用宏流206多余的未使用的带宽,以免造成浪费。
在一个实施例中,例如在上述设备200中,微流202中由计量器208确定(以及标记)为超出额定带宽的数据包可以基于宏流计量器212升级为额定带宽以内。在这个例子中,当数据包到达计量器212时,检测计量器以确定是否出现正的令牌计数。因为微流202是唯一的微流通信数据(400Mbps),计量器212中通常会有正的令牌计数。因此,数据包标记可以基于宏流计量器212的状态由超出额定带宽变为额定带宽以内。相应地,对于设备200,只要对应的宏流206和/或220保持额定带宽以内,例如,低于它们的带宽分配量,由微流计量器(例如,208、210、222和224)标记为超出额定带宽的数据包可以由相应的宏流计量器212和226升级为额定带宽以内。
在上述例子中,如果在微流202继续以400Mbps的速率传送数据包时,构成宏流206的剩下的微流开始以50Mbps(它们分配的带宽)的速率传送数据包,宏流计量器212将变为超出额定带宽,并且,在这个例子中,不能继续升级微流202中超出50Mbps带宽分配量的数据包。用这种方法,可以由微流优先使用多余的带宽,尽管使用多余带宽的微流工作在超出它们各自带宽分配量的带宽。另外,这种方法可以确保每个微流无争议地访问它所分配的带宽。
在上述情形中,一组微流同时工作,设备中,例如设备200中的可用数据队列资源将足以处理这种情况下的数据包。例如,设备200中用于处理这种情况的可用数据队列资源量可以是相关微流的每个令牌桶计量器的桶深(即微流令牌桶计量器的CBS)的乘积。
图3是根据本发明一个实施例的用于图2所示设备中的数据包标记的图表300,该数据包标记可以表明额定带宽以内和超出额定带宽的数据包以及升级数据包以便共享未使用的带宽。表300所示的例子可以用于单个数据包以确定该数据包是在额定带宽以内还是超出额定带宽以及,若数据包由微流计量器标记为超出额定带宽,该数据包是否应该升级。
图3所示的数据包标记方法将参照单个数据包进行描述。在表300中,列310表示接收数据包时微流计量器的状态。若接收数据包时微流计量器表明该微流在额定带宽以内(例如,具有正的令牌计数),该数据包标记为“绿”(G)。但是,若接收数据包时微流计量器表明该微流超出额定带宽,该数据包标记为“红”(R)。列310中的标识可以称作微流的“本地色”,这些标识表明微流(例如,基于它的计量器)是否在额定带宽以内。因此,列310中的数据包标识表示相关微流计量器的本地状态。
图3中列320表明接收数据包时宏流计量器的状态并可以称作宏流的本地色。与微流的本地色一样,若接收数据包时宏流计量器表明宏流在额定带宽以内,该数据包标记(本地)为绿“G”。若接收数据包时宏流计量器表明宏流超出额定带宽,该数据包本地标记为红“R”。
图3中列330表明表300中所示的各种情况下数据包的最终颜色。在这个例子中,数据包的最终颜色依赖于上文中详细描述过的它的微流本地色和它的宏流本地色。列340和350分别表明对于图3所示的各种情况下的给定数据包,是否更新(减少令牌计数)微流计量器和宏流计量器。
表300的行360示出了微流计量器和宏流计量器都将数据包标记为“G”的情形,它表示微流和宏流都在额定带宽以内。该数据包的最终颜色标记为“G”。在这种情况下,微流计量器和宏流计量器都将进行更新,例如,从它们的令牌计数中减去与数据包大小相关的令牌数量。
表300的行370示出了数据包由微流计量器标记为“G”、由宏流计量器标记为“R”的情形。尽管宏流计量器表明宏流超出额定带宽,该数据包的最终色还是标记为“G”。这种结果可以确保微流保证过的带宽分配量。因为数据包由微流计量器本地标记为“G”,这表明该微流在额定带宽以内并且该数据包可以进入宏流,而不是被丢弃。在这种情形中,微流计量器和宏流计量器都要进行更新。因为微流计量器在额定带宽以内,数据包到达时令牌计数将是正的。但是,数据包到达时宏流计量器是超出额定带宽的,因为该数据包由宏流计量器本地标记为“R”。因此,在这种情况下更新宏流计量器将导致它变成负的或更负的。对于上述一个微流使用多余带宽而其它多个微流开始以分配的速率发送数据的情形,可以优先使用这种方法。允许宏流计量器的令牌计数变为负的,可以防止宏流计量器在它的令牌计数再次变正以前更新任意数据包。在这种情况下,根据表300的行370所示的方法,允许每个工作的微流以高达它们各自所分配带宽的数据速率进行发送。根据具体的实施例,可以限定宏流计量器的令牌计数能够变负的程度,以防止该宏流计量器的令牌计数到达负无穷。
表300的行380示出了数据包接收到升级的情形。如列310中所示,数据包由微流计量器本地标记为“R”。如列320中所示,接下来数据包由宏流计量器标记为“G”。这表明该单个微流超出额定带宽(例如,微流计量器具有零或负令牌计数),但是宏流在额定带宽以内(例如,宏流计量器具有正计数)。在这个例子中,接下来升级该数据包并将其标记为最终色“G”,表明该数据包应该进入宏流而不是被丢弃。基于最终色丢弃数据包的方法将在下文中进行详细描述。
在表300的行380所示的情形中,不更新微流计量器而更新了宏流计量器。由于升级后的数据包允许由超出额定带宽的微流伺机使用多余带宽,更新超出额定带宽的微流计量器将会对微流使用多余带宽这一举动做出不必要的处罚。例如,允许微流计量器的令牌计数变为负或更负可以防止该微流在其它微流开始发送时访问分配给它的(例如,保证过的)带宽,直到微流计量器的令牌计数通过定期增加令牌而变正。
表300的行390示出了微流和宏流都超出额定带宽的情形。在这种情况下,如列310和320所示,微流和宏流都将该数据包本地标记为“R”。又如列330所示,将导致该数据包的最终色为“R”。此例中,微流计量器和宏流计量器都不进行更新,而且该数据包由于超出额定带宽通常被丢弃,并且由于不能使用宏流中的多余带宽而不能升级。
图4是根据本发明一个实施例的用于在图2所示设备200中利用图3所示数据标识进行数据通信的方法400的流程图。当然,该方法400可以应用于其它任意数据通信设备中,例如图5所示的设备500。对于下面的描述,将参考图4并结合图2和3来描述该方法400。
在方法400的步骤405,接收数据包,该数据包作为第一数据业务流的一部分。数据包可以是,例如,第一微流例如微流202的一部分。在步骤410,确定第一数据业务流的第一业务速率是否小于或等于第一阈值。例如,检测令牌桶计量器208。若计量器208的令牌桶计数是正的,就可以确定第一业务速率小于或等于第一阈值(例如,一个分配的或“保证过的”数据速率)。若计量器208的令牌计数是零或负值,就可以确定第一业务速率大于第一阈值。
在步骤415,若第一业务速率确定为小于或等于第一阈值,可以将数据包标记为第一标识类型,例如,上述作为本地微流色的“G”。在步骤420,若第一业务速率大于第一阈值,可以将数据包标记为第二标识类型,例如,参考图3所述的作为本地微流色的“R”。
方法400进一步包括,在步骤425,接收具有第二业务速率的第二数据业务流,例如第二微流204。在步骤430,可以将第一数据业务流(微流202)与第二数据业务流(微流204)结合以产生第三数据业务流。例如,在图2所示的设备中,可以利用调度器214将微流202和204结合以产生宏流-0206。
在步骤435,若数据包标记为第一标识类型(例如,由微流计量器208本地标记为“G”),可以将该数据包进一步作为第三数据流的一部分,而不考虑第三数据业务流(宏流206)的业务速率。图3所示的表300的行360和370中示出了这种情况。在这种情况下,可以确定本地宏流色,如下所述,以及根据图3所示的表300更新计量器。
在步骤440,可以确定第三数据业务流的第三业务速率是否小于或等于第二阈值(例如,宏流206的带宽上限,此例中是500Mbps)。在设备200中,可以根据宏流计量器212的状态进行确定。若接收数据包时计量器212的令牌计数为正,表明第三业务速率小于或等于第二阈值(例如,宏流206在额定带宽以内)。若计量器212的令牌计数为零或负,表明第三业务速率大于第二阈值(例如,宏流206超出额定带宽)。
在步骤445,若数据包标记为第二标识类型(例如,微流202本地标记为“R”)并且第三业务速率小于或等于第二阈值(例如,宏流206本地标记为“G”),可以将数据包的标识类型由第二标识类型(本地微流色为“R”)改为第一标识类型(最终色“G”)。它表示了表300的行380中的情形,其中,将超出额定带宽的微流中标记为“R”的数据包升级为“G”,以便伺机使用,例如上述设备200中未使用的带宽。另外在步骤445,将升级的数据包作为第三数据流(例如,宏流206)的一部分。
在步骤450,若数据包标记为第二标识类型(例如,微流202本地标记为“R”)并且第三业务速率大于第二阈值(例如,宏流206本地标记为“R”),可以将该数据包丢弃。丢弃数据包的方法有多种。例如,可以在确定该数据包的最终色为“R”时立即丢弃该数据包。可选地,例如,可以将该数据包送入带准入控制的数据队列结构然后由该队列结构丢弃。还存在其它替代方式。例如,若数据队列结构没有出现拥塞,最终色标记为“R”的数据包仍可以存在于数据队列结构中。例如,若数据队列占有率低于“红”阈值,最终色标记为“R”的数据包可以存在。若队列占有率高于红色阈值,该例中的数据包将被丢弃。一个类似功能的阈值可以用于绿色数据包,其中绿色阈值高于红色阈值。作为一个例子,红色阈值可以设置为队列占有率的25%,而绿色阈值可以设置为队列占有率的90%。这种带准入控制的数据队列结构的一个实施例将在下文参考图9进行详细描述。
图5是根据本发明另一个实施例的用于实施基于标记的分级带宽共享的数据通信设备500的框图。设备500在一些方面类似于设备200。例如,利用调度器518将微流集502……504合成第一宏流506。又例如,利用调度器536将第二微流集520……522合成第二宏流524。再利用调度器538将宏流506和524合成数据流540。利用单令牌桶计量器516按照与宏流206相同的方式计量宏流506。同样地,利用单令牌桶计量器534按照与宏流220相同的方式计量宏流524。
在设备500中,利用两个令牌桶计量微流,或利用双令牌桶计量器计量微流。例如,利用第一令牌桶508计量微流502,用于确保微流502能够访问它所分配的(最小的)带宽。还可以利用第二令牌桶510计量微流502,用于确保微流502没有超出上限(最大的)带宽。微流504、520和522可以分别由令牌桶对512/514、526/528和530/532类似进行计量。为了举例说明,将在下面描述微流502的计量过程。
与设备200中的微流202的令牌桶计量器208一样,令牌桶508用于确保微流502能够访问它所分配的“保证过的”带宽。在一个实施例中,可以按照与分配的带宽成比例的速率周期性地增加计量器508的令牌计数,直到桶深,该桶深与微流502的CBS相关。如上文参照计量器208所述的,由令牌桶508计量的分配的带宽可以称作微流502的CIR。
在设备500中,令牌桶510计量微流502使用的超出其CIR并高达其上限值的多余带宽,在此例中为100Mbps。微流502的CIR与它的带宽上限间的差值可以称作多余信息速率(EIR),在此例中为50Mbps(即100Mbps-50Mbps)。在一个实施例中,可以按照与EIR成比例的速率周期性地增加计量器508的令牌计数,直到桶深,该桶深与令牌桶510的多余桶大小相关。因为在设备500中监测了微流的两个速率(例如,CIR和EIR),可以利用下述三色方法对微流进行数据包标记。
图6是根据本发明一个实施例的用于图5所示设备中的数据包标记的图表600。如图6所示的数据包标记解释了对设备500的微流的CIR和EIR的计量。在表600中,列605表明接收数据包时一个微流(例如,双桶)计量器的状态。若接收数据包时令牌桶508表示微流工作在它的CIR(例如,令牌桶508具有正令牌计数),该数据包标记为绿(“G”)。但是,若接收数据包时令牌桶508表示微流超出它的CIR(例如,桶508的令牌计数是零或负值),检测令牌桶510以确定微流502是否工作在它的EIR内(例如,令牌桶510具有正的令牌计数)。若微流工作在它的EIR内,该数据包标记为黄(“Y”)。进一步地,若令牌桶508和510都表示微流502超出EIR(例如,桶508和510的令牌计数都是零或负值),该数据包标记为红(“R”)。
与表300的列310相同,列605中的颜色标识可以称作微流的“本地色”,这些标识表示微流(基于它的双令牌桶)是工作在它的CIR内、还是工作在它的EIR内、或是超出额定带宽。因此,列605中的数据包标识表示相关微流双令牌桶计量器的本地状态。
图6中的列610表示接收数据包时宏流计量器的状态并可以称作宏流本地色。如图3所述,若接收数据包时宏流计量器表示宏流在额定带宽以内,该数据包本地标记为绿“G”。若接收数据包时宏流计量器表示宏流超出额定带宽,该数据包本地标记为红“R”。
图6中的列615表示表600中所示的各种情况下数据包的最终色。在此例中,数据包的最终色可以依赖于它的微流本地色和它的宏流本地色,下面将进行详细描述。列620和625分别表示对于图6所示的各种情况下的给定的数据包,微流CIR桶(例如,令牌桶508)、EIR桶(例如,令牌桶510)和/或宏流计量器(例如,一个令牌桶计量器516)的令牌计数是否被更新。
表600的行630表示接收一个给定的微流数据包时该微流工作在它的CIR内并且相关的宏流工作在额定带宽以内。因此,对于微流,该数据包本地标记为“G”,对于相应的宏流,该数据包本地标记为“G”。在这种情况下,如列615所示,数据包的最终色也是“G”。通常,可以将该数据包发送到它的目的地。但是,在一些实施例中,由于例如出口数据队列结构的拥塞,该数据包仍然会被丢弃。在这种情况下,CIR桶(例如,桶508)和宏流桶(例如,桶516)将要进行更新,或从它们的令牌计数中减去与该数据包的大小相关的令牌数量。
表600的行635表示接收一个给定微流的数据包时该微流工作在它的CIR内且相应宏流的工作值超出额定带宽的情形。相应地,对于微流,该数据包本地标记为“G”,对于相应的宏流,该数据包本地标记为“R”。在这种情况下,如列615所示,由于微流工作在CIR内(例如,等于或低于它的保证过的带宽),该数据包的最终色标记为“G”。如列620和列625所示,承诺的桶和宏流计量器都要进行更新。在这种情况下,宏流计量器的令牌计数将变为负或更负。如上所述,这种结果在一些实施例中是非常需要的,因为它可以确保升级在某段时间是不可用的,在该段时间内,附加的微流开始通信,而其它一个或多个微流的工作超过它们的CIR并使用多余的带宽。如上所述,利用这种方法可以允许每个微流可以到达其CIR。数据包再次不能进行升级直到宏流计量器达到正的令牌计数。
行640表示接收一个给定微流的数据包时该微流工作超出它的CIR但在它的EIR内,并且相应宏流工作在额定带宽以内的情形。这里,对于微流,该数据包本地标记为“Y”,对于相应的宏流,该数据包本地标记为“G”。在这种情况下,该数据包的最终色标记为“G”,或将该数据包升级以允许微流利用宏流多余的带宽。如列620和625所示,多余桶(例如,桶510)和宏流桶(例如令牌桶计量器516)的令牌计数将被更新,即从它们的令牌计数中减去与该数据包大小相关的令牌数量。
行645表示接收一个给定微流的数据包时该微流的工作超出它的CIR但在它的EIR内,并且相应宏流的工作超出额定带宽的情形。这里,对于微流,该数据包本地标记为“Y”,对于相应的宏流,该数据包本地标记为“R”。在这种情况下,由于宏流的工作超出额定带宽,不能进行更新。因此,数据包的最终色标记为“R”并且微流或宏流的令牌桶都不能进行更新。通常,在这种情况下该数据包会被丢弃,尽管在一些实施例中,若下行流不存在拥塞可以将该数据包传送到它的目的地,就如上文所描述并将在下文中作进一步描述的。
行650和655表示微流的工作超出它的EIR和CIR。在行650的情况中,相关的宏流工作在额定带宽以内,而在行655的情况中,相关宏流的工作超出额定带宽。在这些情况下,该数据包的最终色都将标记为“R”,因为该微流的工作超出它的EIR,EIR表示宏流的带宽上限。因此,即使相关的宏流工作在额定带宽以内,本实施例中针对微流本地标记为“R”的数据包不能进行升级。在这些情况下,微流和宏流的令牌桶都不能进行更新。
图7是根据本发明一个实施例的用于图5所示设备中进行数据通信的方法的700的流程图。该方法700可以用于在图5所示设备500中利用图6所示数据标识进行数据通信。当然,该方法700可以应用于其它任意数据通信设备中,而不限于图5和6所示的方法。但是,为了举例说明,该方法700将附带参考图5和6进行描述。
在该方法700的的步骤705,接收数据包,该数据包作为第一数据业务流的一部分。数据包可以是,例如,第一微流例如微流502的一部分。在步骤710,确定第一数据业务流的第一业务速率是否小于或等于第一阈值。例如,检测令牌桶计量器508以确定微流502的工作值是否等于或小于它的CIR。若计量器508的令牌桶计数是正的,就可以确定第一业务速率小于或等于第一阈值(例如,CIR或“保证过的”数据速率)。若计量器508的令牌计数是零或负值,就可以确定第一业务速率大于第一阈值,表明微流的工作超出它的CIR。在步骤715,若第一业务速率确定为小于或等于第一阈值(CIR),可以将数据包标记为第一标识类型,例如,上述作为本地微流色的“G”。
在步骤720,若第一业务速率大于第一阈值(例如,微流502的工作超出它的CIR),接下来要确定第一业务速率是否大于第二阈值(例如,微流的EIR),其中第二阈值(EIR)大于第一阈值(CIR)。若第一业务速率小于或等于第二阈值,可以将数据包标记为第二标识类型,例如,参考图6所述的作为本地微流色的“Y”。但是,若第一业务速率大于第二阈值(EIR),可以将该数据包标记为第三标识类型,例如,参考图6所述的作为本地微流色的“R”。
在该方法700的步骤725,接收具有第二业务速率的第二数据业务流。在步骤730,可以将第一数据业务流与第二数据业务流结合以产生第三数据业务流。当然,第一和第二数据业务流可以简单地相互结合,或可以与附加数据业务流结合以形成第三数据业务流。
在步骤735,若数据包标记为第一标识类型(例如,对于微流本地标记为“G”),可以将该数据包进一步传送到第三数据流。这一操作不需考虑第三业务流(例如,宏流)的状态,因为第一数据业务流(例如,微流)的工作低于第一阈值(例如,在它的CIR内)。图6所示的表600的行630和635中示出了这些情况。
在步骤740,可以确定第三数据业务流的第三业务速率是否小于或等于第三阈值(例如,宏流的带宽限制值)。在步骤745,若数据包标记为第二标识类型(例如,对于微流本地标记为“Y”)并且第三业务速率小于或等于第三阈值(例如,宏流在额定带宽以内),可以将数据包的标识由第二标识类型改为第一标识类型(例如,如表600的行640所示,将该数据包升级并给予最终色“G”)。在这种情况下,可以按照上述方式将该数据包进一步传送到第三数据流。
在步骤750,若数据包标记为第二标识类型(例如,对于微流本地标记为“Y”)并且第三业务速率大于第三阈值(例如,宏流超出额定带宽),可以将该数据包的标识由第二标识类型变为第三标识类型(例如,最终色标记为“R”,因为由于宏流超出额定带宽的状态而不能进行升级)。在这种情况下,将该数据包从第三数据流中丢弃。可选地,可以将该数据包发送给带准入控制的数据队列结构,上文对此进行了描述,下文中还将做进一步描述。
在步骤755,若数据包标记为第三标识类型(例如,对于微流本地标记为“R”),可以将该数据包丢弃,而不考虑第三数据流(例如,宏流)的业务速率。这些例子在上文中参考图6所示的表600的行650和655进行了详细描述。
图8是双速率三色计量器(trTCM)800的框图,trTCM 800用于计量图5所示的设备500中的微流。trTCM 800包括双令牌桶810、数据包标记模块820和计量器更新模块830。双令牌桶810包括CIR桶812和EIR桶814。如上所述,将令牌815按照与相关微流的CIR 816成比例的速率加到CIR桶812中。同样地,将令牌815按照与相关微流的EIR 817成比例的速率加到EIR桶814中。依然如上所述,CIR桶812的令牌计数受CBS 818(例如,CIR桶812的深度)的限制。同样地,EIR桶814的令牌计数受多余信息大小(EBS)810(例如,EIR桶814的深度)的限制。
数据包标记模块820可以根据参考图5-7所述的实施例来标记数据包。另外,计量器更新模块830可以根据参考图5-7所述的实施例来更新CIR桶812和EIR桶814的令牌计数。
图9是根据本发明一个实施例的带准入控制920的数据队列结构900的示意图。在队列结构900中,由准入控制920认可的数据包可以排列在数据队列930中以便发送到它们各自的目的地。
数据队列结构900可以接收数据流910,该数据流910包括标记的数据包,标记过程参考如图3和6所示的进行数据包标记的实施例,或者使用其它任意的数据包标记方法。数据包准入控制920可以仅根据最终色认可或丢弃数据包。在该方法中,任意最终色标记为“R”的数据包都将被丢弃,而任意最终色标记为“G”的数据包将被准许进入数据队列结构900并排列在数据队列930中以便发送到它的最终目的地。
可选地,数据包准入控制920可以根据数据包的最终色和数据队列930的数据占有率来判断数据包是否可以进入数据队列结构900。例如,若最终色为“R”的数据包到达数据包准入控制920,数据包准入控制920可以通过线935确定数据队列中现有的数据量。若数据队列930的占有率低于红色阈值(表示只有很少或没有数据拥塞),数据包准入控制920认可该数据包并将该数据包置于数据队列930中以便发送。相反地,若数据占有率高于红色阈值940,该数据包将被丢弃。同样可以根据队列占有率的绿色阈值950来认可或丢弃绿色数据包,其中绿色阈值950高于红色阈值940。准入控制920不利用阈值、利用两个阈值或只利用一个阈值都可以工作。例如,只利用红色阈值940,所有最终色标记为“G”的数据包都可以进入队列930。
图10是根据本发明另一个实施例的基于计量的分级带宽共享方法1000的流程图,该方法包括利用图9所示的数据队列结构900进行数据包的优先丢弃。值得注意的是,并不属于数据队列结构的优先数据包丢弃器可以选择性地执行准入控制920的数据包准入和丢弃功能。作为另一个选择,可以将数据包丢弃功能实现为数据包标记过程的一部分。另外还存在其它替代方式。
在方法1000的步骤1005,接收数据包,该数据包作为第一数据业务流的一部分。在步骤1010,确定第一数据业务流的第一业务速率是否小于或等于第一阈值(例如,微流的CIR)。在步骤1015,若第一业务速率确定为小于或等于第一阈值,可以将数据包标记为第一标识类型(例如,对于微流本地标记为“G”)。在步骤1020,若第一业务速率大于第一阈值,可以将该数据包标记为第二标识类型(例如,对于微流本地标记为“R”)。
在的步骤1025,接收具有第二业务速率的第二数据业务流。在步骤1030,可以将第一数据业务流与第二数据业务流结合以产生第三数据业务流(例如,宏流)。在步骤1035,可以确定第三数据业务流的第三业务速率是否小于或等于第二阈值(例如,宏流的带宽限制值)。在步骤1040,若数据包标记为第二标识类型(“R”)并且第三业务速率小于或等于第二阈值,可以将数据包的标识由第二标识类型改为第一标识类型(例如,如图3中表300的行380所示,将该数据包升级)。
在步骤1045,将第三数据业务流提供给具有第一准入阈值(例如,红色阈值940)和第二准入阈值(例如,绿色阈值950)的数据队列。在步骤1050,若数据包标记为第二标识类型(“R”)并且数据队列的数据量大于第一准入值(红色阈值),丢弃该数据包。在步骤1055,若数据包标记为第二标识类型(“R”)并且数据队列的数据量小于或等于第一准入阈值(红色阈值),可以将该数据包发送到该数据包的目的地。
在步骤1060,若数据包标记为第一标识类型(“G”)并且数据队列的数据量大于第二准入阈值(绿色阈值),丢弃该数据包。在步骤1065,若数据包标记为第一标识类型(“G”)并且数据队列的数据量小于或等于第二准入阈值(绿色阈值),可以将该数据包发送到它的目的地。
图11是根据本发明另一个实施例的用于实施基于计量的分级带宽共享的数据通信设备1100的框图。设备1100在一些方面与设备500类似。例如,可以利用调度器1118将微流集1102……1104合成第一宏流1106。还可以利用调度器1136将第二微流集1120……1122合成第二宏流1124。再利用调度器1138将宏流1106和1124合成数据流1140。数据流1140是一个包括宏流1106和1124的宏流。
在设备1100中,利用两个令牌桶计量微流,或利用双令牌桶计量器计量微流。例如,利用第一令牌桶1108计量微流1102,用于确保微流1102能够访问它所分配的(最小的)带宽。还可以利用第二令牌桶1110计量微流1102,用于确保微流1102没有超出上限(最大的)带宽。微流1104、1120和1122可以分别由令牌桶对1112/1114、1126/1128和1130/1132类似进行计量。为了举例说明,将在下面描述微流1102的计量过程。
与设备500中的微流502的令牌桶计量器508一样,令牌桶1108用于确保微流1102能够访问它所分配的“保证过的”带宽。在一个实施例中,可以按照与分配的带宽成比例的速率周期性地增加计量器1108的令牌计数,直到桶深,该桶深与微流1102的CBS相关。如上文参照计量器508所述的,由令牌桶1108计量的分配的带宽可以称作微流1102的CIR。
在设备1100中,令牌桶1110计量微流1102使用的超出其CIR并高达其上限值的多余带宽,在此例中为100Mbps。微流1102的CIR与它的带宽上限间的差值可以称作多余信息速率(EIR)。在一个实施例中,可以按照与EIR成比例的速率周期性地增加计量器1108的令牌计数,直到桶深,该桶深与令牌桶1110的多余桶大小相关。因为在设备1100中监测了微流的两个速率(例如,CIR和EIR),可以利用下述三色方法对微流进行数据包标记。
在设备1100中,利用两个令牌桶计量宏流1106或利用双令牌桶计量器1116和1117来计量宏流1106。同样地,可以采用与宏流1106相同的方式来计量宏流1124,即利用两个令牌桶或利用双令牌桶计量器1134和1135。为了举例说明,下文将详细描述利用双令牌桶计量器1116和1117来监测宏流1106的过程。
令牌桶1116用于确保宏流1106能够访问它所分配的“保证过的”带宽。在一个实施例中,可以按照与分配的带宽成比例的速率周期性地增加计量器1116的令牌计数,直到桶深,该桶深与宏流1106的CBS相关。由令牌桶1116计量的所分配的带宽可以称作宏流1106的CIR。
在设备1100中,令牌桶1117计量宏流1106使用的超出其CIR并高达其上限值的多余带宽,在此例中为600Mbps。宏流1106的CIR与它的带宽上限间的差值可以称作多余信息速率(EIR)。在一个实施例中,可以按照与EIR成比例的速率周期性地增加计量器1117的令牌计数,直到桶深,该桶深与令牌桶1117的多余桶大小相关。因为在设备1100中监测了宏流的两个速率(例如,CIR和EIR),可以利用下述三色方法对宏流进行数据包标记。
因为令牌桶计量器1116和1117监测了宏流1106中微流1102……1104的集合,令牌桶计量器1116和1117可以用于确定微流1102……1104合起来是否超出宏流1106的最小(CIR)带宽(例如,500Mbps),还可以确定微流1102……1104合起来是否超出宏流1106的最大(EIR)带宽(例如,600Mbps)。因此,令牌桶计量器1116可以用于确定微流1102……1104的总数据速率没有超出宏流1106的最小带宽(MinBW)阈值。这在图11中作了说明,在该图中,令牌桶计量器1116确定Max(MinBW),例如将各个微流1102……1104的数据速率相加。令牌桶计量器1117可以用于确定微流1102……1104的总数据速率没有超出宏流1106的最大带宽(MaxBW)阈值。宏流1106的MaxBW阈值(用Max(MaxBW)表示)应大于或等于微流1102……1104的最大MaxBW阈值。
图12是根据本发明实施例的用于图11所示设备1110中的数据包标记的图表1200。如图12所示的数据包标记解释了对设备1100的微流的CIR和EIR的计量以及对设备1100的宏流1106和1124的CIR和EIR的计量。
在表1200中,列1205表明接收数据包时一个微流(例如,双桶)计量器的状态。例如,若接收数据包时令牌桶1108表示微流1102工作在它的CIR(例如,令牌桶1108具有正令牌计数),该数据包标记为绿(“G”)。但是,若接收数据包时令牌桶1108表示微流1102的工作超出它的CIR(例如,桶1108的令牌计数是零或负值),检测令牌桶1110以确定微流1102是否工作在它的EIR内(例如,令牌桶1110具有正的令牌计数)。若微流1102工作在它的EIR内,该数据包标记为黄(“Y”)。进一步地,若令牌桶1108和1110都表示微流1102的工作超出EIR(例如,桶1108和1110的令牌计数不是零就是负值),该数据包标记为红(“R”)。
与表600的列605相同,列1205中的颜色标识可以称作微流的“本地色”,这些标识表示微流(例如,基于它的双令牌桶)是工作在它的CIR内、还是工作在它的EIR内、或是超出额定带宽(例如,工作值超出它的EIR)。因此,列1205中的数据包标识表示相关微流双令牌桶计量器的本地状态。
图12中的列1210表示接收数据包时宏流双令牌桶计量器1116和1117的状态并可以称作宏流本地色。举例来说,列1210中针对宏流1106的本地颜色标识的确定方式与列1205所示的针对微流的本地颜色标识的确定方式相同。例如,若接收数据包时令牌桶1116表示宏流1106工作在它的CIR以内(例如,令牌桶1116具有正令牌计数),该数据包本地标记为绿“G”。但是,若接收数据包时令牌桶1116表示宏流1106的工作值超出它的CIR(例如,令牌桶1116的令牌计数为零或负值),检测令牌桶1117以确定宏流1106是否工作在它的EIR以内(例如,令牌桶1117具有正令牌计数)。若宏流工作在它的EIR内,该数据包本地标记为黄(“Y”)。进一步,若令牌桶1116和1117都表示宏流1106的工作超出EIR(例如,桶1116和1117的令牌计数都是零或负值),该数据包本地标记为红(“R”)。
图12中的列1215表示表1200中所示的各种情况下数据包的最终色。在此例中,数据包的最终色可以依赖于它的微流本地色和它的宏流本地色,下面将进行详细描述。列1220和1225分别表示对于图6所示的各种情况下的给定的数据包,微流CIR桶(例如,令牌桶1108)、EIR桶(例如,令牌桶1110)、宏流CIR桶(例如,令牌桶1116)和/或宏流EIR桶(例如,令牌桶1117)的令牌计数是否被更新(例如,令牌计数减少)。
表1200的行1230表示接收一个给定的微流数据包时该微流工作在它的CIR内并且相关的宏流工作在它的CIR内的情形。因此,对于微流,该数据包本地标记为“G”,对于相应的宏流,该数据包本地标记为“G”。在这种情况下,如列1215所示,数据包的最终色也是“G”。通常,可以将该数据包发送到它的目的地。但是,在一些实施例中,由于例如出口数据队列结构的拥塞,该数据包仍然会被丢弃。在这种情况下,对于微流1102,微流CIR(承诺的)桶(例如,桶1108)和宏流CIR(承诺的)桶(例如,桶1116)将要进行更新,或从它们的令牌计数中减去与该数据包的大小相关的令牌数量。
表1200的行1235表示接收一个给定微流的数据包时该微流工作在它的CIR内且相应宏流的工作超出它的CIR但在它的EIR内的情形。相应地,对于微流,该数据包本地标记为“G”,对于相应的宏流,该数据包本地标记为“Y”。在这种情况下,如列1215所示,由于微流工作在CIR内(例如,等于或低于它的保证过的带宽),该数据包的最终色标记为“G”。如列1220和列1225所示,在这种情况下,微流承诺桶和承诺的与特定微流相关的宏流桶都要进行更新。在这种情况下,宏流承诺桶的令牌计数将变为负或更负。如上所述,这种结果在一些实施例中是非常需要的,因为它可以确保升级在某段时间是不可用的,在该段时间内,附加的微流开始通信,而其它一个或多个微流的工作超过它们的CIR并使用多余的带宽。如上所述,利用这种方法可以允许每个微流访问它的CIR。但是,数据包再次不能进行升级直到宏流承诺桶再次达到正的令牌计数。
表1200的行1240表示接收一个给定微流的数据包时该微流工作在它的CIR内且相应宏流的工作超出它的CIR和它的EIR的情形。相应地,对于微流,该数据包本地标记为“G”,对于相应的宏流,该数据包本地标记为“R”。在这种情况下,如列1215所示,由于微流工作在CIR内(例如,等于或低于它的保证过的带宽),该数据包的最终色标记为“G”。如列1220和列1225所示,微流承诺桶和宏流承诺桶都要进行更新。在这种情况下,按上文参考行1235描述的方法,宏流承诺桶的令牌计数将变为负或更负。
行1245表示接收一个给定微流的数据包时该微流的工作超出它的CIR但在它的EIR内,并且相应宏流工作在它的CIR内的情形。在这种情况下,对于微流,该数据包本地标记为“Y”,对于相应的宏流,该数据包本地标记为“G”。在这种情况下,如列1215所示,该数据包的最终色标记为“G”,或将该数据包由“Y”升级为“G”以允许微流利用宏流多余的带宽。如列1220和1225所示,微流多余桶(例如,桶1110)和宏流承诺桶(例如桶1116)的令牌计数将被更新,即从它们的令牌计数中减去与该数据包大小相关的令牌数量。
行1250表示接收一个给定微流的数据包时该微流的工作超出它的CIR但在它的EIR内,并且相应宏流的工作同样超出它的CIR但在它的EIR内的情形。这里,对于微流,该数据包本地标记为“Y”,对于相应的宏流,该数据包本地标记为“Y”。在这种情况下,将对该数据包做进一步处理以确定是将该数据包升级为“G”还是将该数据包降级为“R”。可以根据很多因素来做决定,例如,相关网络设备和/或网络中的下行流拥塞量。
行1255表示接收一个给定微流的数据包时该微流的工作超出它的CIR但在它的EIR内,并且相应宏流的工作超出它的EIR的情形。这里,对于微流,该数据包本地标记为“Y”,对于相应的宏流,该数据包本地标记为“R”。在这种情况下,由于宏流的工作超出它的EIR,不能进行更新。因此,数据包的最终色标记为“R”并且微流或宏流的令牌桶都不能进行更新。通常,在这种情况下该数据包会被丢弃,尽管在一些实施例中,若下行流不存在拥塞可以将该数据包传送到它的目的地,就如上文所描述并将在下文中作进一步描述的。
行1260、1265和1270表示微流的工作超出它的EIR和CIR的情形。在行1260的情况中,相关的宏流工作在它的CIR内。在行1265的情况中,相关宏流的工作超出它的CIR但在它的EIR内。在行1270的情况中,相关宏流的工作也超出它的EIR。在这些情况下,该数据包的最终色都将标记为“R”,因为该微流的工作超出它的EIR,EIR表示微流的带宽上限。因此,即使相关的宏流工作在额定带宽以内(例如,低于它的CIR和/或EIR),本实施例中针对微流本地标记为“R”的数据包不能进行升级。在这些情况下,微流和宏流的令牌桶都不能进行更新。
图13是根据本发明一个实施例的基于计量的分级带宽共享方法1300的流程图。该方法1300可以用于在图11所示设备1100中利用图12所示数据标识进行实施。当然,该方法1300可以应用于其它任意数据通信设备中,而不限于图11和12所示的方法。但是,为了举例说明,该方法1300将附带参考图11和12进行描述。
在该方法1300的的步骤1305,接收数据包,该数据包作为第一数据业务流的一部分。数据包可以是,例如,第一微流例如微流1102的一部分。在步骤1310,确定第一数据业务流的第一业务速率是否小于或等于第一阈值。例如,检测承诺的令牌桶1108以确定微流1102的工作值是否等于或小于它的CIR。若承诺桶1108的令牌桶计数是正的,就可以确定第一业务速率小于或等于第一阈值(例如,CIR或“保证过的”数据速率)。若计量器1108的令牌计数是零或负值,就可以确定第一业务速率大于第一阈值,表明微流的工作值超出它的CIR。在步骤1315,若第一业务速率确定为小于或等于第一阈值(CIR),可以将数据包本地并最终标记为第一标识类型,例如,上述作为本地微流色和最终宏流色的“G”。由承诺桶1108做最终标记,或可选地,由与宏流1106相关的双令牌桶1116和1117中的一个来完成最终标记。
在步骤1320,若第一业务速率大于第一阈值(例如,微流1102的工作值超出它的CIR),接下来要确定第一业务速率是否大于第二阈值(例如,微流的EIR),其中第二阈值(EIR)大于第一阈值(CIR)。若第一业务速率小于或等于第二阈值(但大于CIR),可以将数据包标记为第二标识类型,例如,参考图12所述的作为本地微流色的“Y”。但是,若第一业务速率大于第二阈值(EIR),可以将该数据包标记为第三标识类型(“R”),作为微流1102的本地色以及宏流1106的最终色,方法如上所述。
在该方法1300的步骤1325,接收具有第二业务速率的第二数据业务流。在步骤1330,可以将第一数据业务流与第二数据业务流结合以产生第三数据业务流。当然,第一和第二数据业务流可以简单地相互结合,或可以与附加数据业务流结合以形成第三数据业务流。
在步骤1335,可以确定第三数据业务流的第三业务速率是否小于或等于第三阈值(例如,宏流的最小带宽限制值)。在步骤1340,若数据包标记为第二标识类型(例如,对于微流本地标记为“Y”)并且第三业务速率小于或等于第三阈值(例如,宏流在它的CIR内),可以将数据包最终标记为第一标识类型(例如,如表1200的行1245所示,将该数据包由“Y”升级并给予最终色“G”)。
在步骤1345,若数据包标记为第二标识类型(例如,对于微流1102本地标记为“Y”)并且第三业务速率大于第三阈值(例如,宏流1106的工作值超出它的CIR),接下来要确定第三业务速率是否大于第四阈值(例如,宏流1106的EIR),其中第四阈值(宏流EIR)大于第三阈值(宏流CIR)。若第三业务速率小于或等于第四阈值(小于宏流EIR但大于宏流CIR),可以将数据包标记为第二标识类型(例如,“Y”),例如,上述参考图12描述的例子。但是,若第三业务速率大于第四阈值(宏流EIR),可以将该数据包最终标记为第三标识类型(“R”),作为宏流1106的最终色,方法如上所述。
在步骤1350,若数据包最终标记为第一标识类型(例如,“G”),可以将该数据包进一步传送到与该数据包相关的目的地,例如数据包中的目的地地址所表明的。在步骤1355,若数据包最终标记为第二标识类型(例如,“Y”)和第三标识类型(例如,“R”)其中之一,方法1300可以包括以下一项:(i)处理该数据包以确定是传送还是丢弃该数据包,并根据该决定传送或丢弃该数据包;以及(ii)传送该数据包以确定是保留还是丢弃该数据包。无论是将该数据包传送到它的目的地还是丢弃该数据包的决定都是,至少在部分程度上根据实施该方法的网络和/或网络设备中下行流数据流量的拥塞来做出的。
在图13所示的示范性方法1300中,在数据包本地并最终标记为绿的情况下,传送该数据包至第三数据流可以包括从与第一数据流相关的双令牌桶计量器的承诺信息速率令牌桶的令牌计数中减去与数据包大小相关的量。在这种情况下,传送该数据包还可以包括从与第三数据流相关的双令牌桶计量器的承诺信息速率令牌桶的令牌计数中减去与数据包大小相关的量。
在示范性方法1300中,在数据包本地标记为黄并最终标记为绿的情况下,传送该数据包至第三数据流可以包括从与第一数据流相关的双令牌桶计量器的多余信息速率令牌桶的令牌计数中减去与数据包大小相关的量。在这种情况下,传送该数据包还可以包括从与第三数据流相关的双令牌桶计量器的承诺信息速率令牌桶的令牌计数中减去与数据包大小相关的量。
在示范性方法1300中,在数据包本地并最终标记为黄的情况下,传送该数据包至第三数据流可以包括从与第一数据流相关的双令牌桶计量器的多余信息速率令牌桶的令牌计数中减去与数据包大小相关的量。在这种情况下,传送该数据包还可以包括从与第三数据流相关的双令牌桶计量器的多余信息速率令牌桶的令牌计数中减去与数据包大小相关的量。
基于优先级的分级带宽共享
图14是根据本发明实施例的用于实施基于优先级的分级带宽共享方法的网络设备1400的框图。图15是根据本发明另一个实施例的用于实施基于优先级的分级带宽共享方法的网络设备1500的框图。在各种实施例中,这种基于优先级的带宽共享方法可以替代上述技术实施。在其它实施例中,基于优先级的带宽共享技术可以结合上述技术共同实施。
尽管图14(和图15)中仅示出了一个等级的数据业务流,本文所描述的基于优先级的带宽共享方法可以适用于数据处理设备中的多级分级体系。例如,图14和15中示出的每个输入流可以是来自前一等级的数据流的组合流(例如,每个输入流可以是前一等级的微流合成的宏流)。在该方法中,前一等级也可以利用上述方法以适当的组合实施基于优先级的带宽共享。另外,图14和15所示的各个数据流的组合(例如,包含各个微流的宏流)可以与其它流(例如,其它宏流)同时处理,这些流也可以利用上述技术实施基于优先级的带宽共享,同样地,可以将这些流合成为下一等级的宏流。
进一步地,本文所描述的基于优先级的带宽共享的各种方法的特定安排将以举例说明的方式示出。这些技术可以应用于各种不同的组合和安排,所提供的实施例不用于限制仅以图示及本文所述的特定安排来实施基于优先级的带宽共享。
如图14所示,设备1400说明了基于优先级的带宽共享的一个实施例。在设备1400中,同时处理三个数据业务流FLOW11402、FLOW21404和FLOW31406。如图14所示,FLOW11402的优先级高于FLOW21404且FLOW21404的优先级高于FLOW3。这种安排可以用于对COS队列集实施基于优先级的带宽共享。这种COS队列在上文进行了描述。需要注意的是,设备1400可以同时处理图14所示的流与附加数据流(例如,COS流),并且本文所述的基于优先级的带宽共享技术可以按照任意适当安排平等应用于这些附加流中。
设备1400包括用于计量FLOW11402的第一trTCM,计量方式如上所述。第一trTCM包括具有第一容量(桶深)的第一令牌桶1408,第一容量可以称作FLOW11402的CBS1(承诺的信息大小,如上所述)。第一trTCM还包括具有第二容量的第二令牌桶1410。在本实施例中,第二容量表示FLOW11402的EBS1(多余信息大小,如上所述)。
第一trTCM可以用于给令牌桶1408和1410分配用来计量FLOW11402的令牌。将令牌以速率CIR1(承诺信息速率,如上所述)分配给令牌桶1408并以速率EIR1(多余信息速率,如上所述)分配给令牌桶1410。
包含令牌桶1412和1414的第二trTCM可以用于以类似方式计量FLOW21404。第二trTCM可以将令牌分配给令牌桶1412和1414,但是分配的速率(CIR2和EIR2)可以与第一trTCM分配令牌给它的令牌桶的速率相同或不同。同样地,包含令牌桶1416和1418的第三trTCM可以用于以相同方式计量FLOW31406。第三trTCM可以按速率CIR3和EIR3将令牌分配给令牌桶1416和1418,其中,分配的速率可以与第一和第二trTCM的分配速率相同或不同。
如图14所示,可以在数据业务流FLOW11402、FLOW21404和FLOW31406间按从高优先级流到低优先级流的顺序共享多余的带宽,即当高优先级桶装满(例如,令牌计数达到或大于它们的容量或“桶深”)时,从高优先级令牌桶溢出令牌到低优先级桶。就本发明,从一个令牌桶溢出令牌到另一个又称作再分配令牌。然而,还可以使用除了溢出和再分配以外的表述,例如重新分配、转移、分发以及其它可能的表述。但是,为了清楚并保持一致,本文统一将从一个桶溢出令牌到另一个桶的过程称作再分配。另外,表述“回收”用于描述与低优先级数据业务流相关的令牌桶将多余的令牌退回给与高优先级数据业务流相关的令牌桶。
如图14所示,第一trTCM的令牌桶1408中的令牌可以再分配给第二trTCM的令牌桶1412。当令牌桶1408的令牌计数等于或大于它的容量CBS1时将发生上述再分配,CBS1表示令牌桶1408已满(例如,FLOW11402没有使用它的承诺带宽CIR1分配量)。
在一个实施例中,令牌桶1408(和/或第一trTCM)可以利用索引i1作为指针访问令牌桶1412以便再分配FLOW11402没有使用的多余令牌。索引i1可以是一个固定索引(例如,令牌桶1408与令牌桶1412在多余令牌的再分配上具有固定关系)。可选地,用于令牌再分配的索引i1是可编程的并且令牌桶1408可以用于利用不同索引将多余令牌再分配给设备1400的其它令牌桶。这个例子将参考图15做进一步详细描述。
按照与令牌桶1408相似的方式,令牌桶1410可以用于将多余的令牌再分配给第二trTCM的令牌桶1414。当令牌桶1410的令牌计数等于或大于它的容量EBS1时将发生上述再分配,EBS1表示令牌桶1410已满(例如,FLOW11402没有使用它的多余带宽EIR1分配量)。令牌桶1410可以利用索引i3访问令牌桶1414以便再分配它的多余令牌。与索引i1一样,索引i3可以是一个固定索引或是可编程的并且用作令牌桶1414的指针。
如图14所示,第二trTCM的令牌桶1412和1414还可以用于将多余令牌分别再分配给设备1400的第三trTCM的令牌桶1416和1418。与第一trTCM一样,第二trTCM可以使用固定的或可编程的索引i2和i4作为第三trTCM的令牌桶1416和1418的指针。
如上所述,当令牌从一个令牌桶再分配到另一个时,这些再分配的令牌可以来自不同的资源。第一,从一个令牌桶再分配到另一个的令牌可以是根据它的带宽保证(例如,特定令牌桶的CIR或EIR)定期分配给它的令牌。第二,从一个令牌桶再分配到另一个的令牌可以是从又一个令牌桶再分配来的令牌。在这种情况下,若一个令牌桶是满的并试图再分配令牌给另一个满的令牌桶,接收令牌桶可以再一次将这些令牌再分配给又一个由相关索引表示的令牌桶。
如图14所示,令牌桶1416和1418可以将多余令牌回收到一个与高优先级数据业务流相关的令牌桶。例如,令牌桶1416可以将多余令牌回收到令牌桶1408(例如,用令牌桶1408的指针/索引i0)。同样地,令牌桶1418可以利用相应索引/指针i6将多余令牌回收到令牌桶1410。
如上所述,再分配多余令牌的技术是通过举例来描述的。下面将参考图15进行描述的是,多余令牌可以用其它方式进行再分配(包括令牌的回收),例如从与一个优先级的数据业务流相关的承诺令牌桶到与另一个优先级的数据业务流相关的多余桶。
可以利用调度器1420将FLOW11402、FLOW21404和FLOW31406进行合并,然后由另一个包含令牌桶1422和1424的trTCM对合并的数据业务流进行计量。令牌桶1422可以具有桶深CBSM,CBSM是FLOW11402、FLOW21404和FLOW31406的CBS的总和。令牌以速率CIRM分配给令牌桶1422,CIRM是FLOW11402、FLOW21404和FLOW31406的CIR的总和。同样地,令牌桶1424可以具有桶深EBSM,CBSM是FLOW11402、FLOW21404和FLOW31406的EBS的总和。令牌以速率EIRM分配给令牌桶1422,EIRM是FLOW11402、FLOW21404和FLOW31406的EIR的总和。如上所述,包含FLOW11402、FLOW21404和FLOW31406的合成流可以与其它合成流一起同时进行处理并可以对这些合成流使用基于优先级的带宽共享。
如图14所示,令牌桶1408-1418中的每一个可以具有一个与其相关的模式标志(MF)。相应的MF可以用于表示对于一个具体的令牌桶,基于优先级的带宽共享是否可用。在使用这种MF的实施例中,设置一个令牌桶的MF(分配给它一个二进制值‘1’)可以表示基于优先级的带宽共享对该令牌桶是可用的。在该方法中,接下来,相应的令牌桶可以将令牌再分配(和/或回收)给如上文所述的由固定或可编程指针/索引表示的令牌桶。在设备1400中,将令牌桶1408-1418中的每一个的MF都进行设置(例如,分配一个二进制值‘1’)。因此,基于优先级的带宽共享令牌再分配对于设备1400的令牌桶1408-1418中的每一个都是可用的。
图15是根据本发明另一个实施例的用于实施基于优先级的分级带宽共享方法的网络设备1500的框图。在设备1500中,数据流FLOW11502、FLOW21504和FLOW31506(例如,从最高优先级到最低优先级)、trTCM和相关的令牌桶1508-1518、1522和1524以及调度器1520的安排与图14中相应元件的安排相同,因而其附图标号与1400系列的附图标号相似。为了简洁,这里不再描述设备1500的元件,只描述图15所示的基于优先级的带宽共享技术。
如图15所示,用于处理数据流FLOW21504的第二trTCM的令牌桶1512和1514将它们的MF清零(分配二进制值‘0’),这表示基于优先级的带宽共享对该令牌桶1512和1514不可用。对于设备1500,第二trTCM有另一个与其相关的标志,称作耦合标志(CF)。这个CF可以用在基于城域以太网论坛10.1标准工作的数据处理设备中。如图15所示,当对第二trTCM的CF进行设置后,若第二trTCM的第一令牌桶1512是满的,那么令牌桶1512可以将它的多余令牌溢出给第二trTCM的第二令牌桶1514。这种方法不会再分配令牌给用于计量其它流的数据流量(例如,其它数据流量优先级等级或其它COS)的令牌桶。而且,在该方法中,若令牌桶1514是满的,将从令牌桶1512中溢出的令牌丢弃并且多余的带宽将会浪费。
如图15所示,第一trTCM的令牌桶1508可以用于将多余令牌再分配给第三trTCM的令牌桶1516。对比图14所示的方法,第二trTCM的令牌桶1512和1514将它们的MF清零,表示基于优先级的带宽共享不可用。因此,在这个例子中,当再分配令牌时,令牌桶1508跳过令牌桶1512,将它的多余令牌再分配给第三trTCM的令牌桶1516。类似于上文参考设备1400所述的方法,当再分配令牌给令牌桶1516时,令牌桶1508可以使用一个固定的或可编程的索引/指针。
如图15所示,令牌桶1516(第三trTCM的承诺桶)将多余令牌回收/再分配给令牌桶1510(第一trTCM的多余桶)。同样地,一个固定的或可编程的索引可以用于将多余令牌从令牌桶1516再分配给令牌桶1510。
与令牌桶1508将多余令牌再分配给令牌桶1516的方式相同,令牌桶1510可以将多余令牌再分配给令牌桶1518(第三trTCM的多余桶),而跳过将MF清零的令牌桶1514。
如图15所示,令牌桶1518也将它的MF清零。在这种情况下,当令牌桶1518是满的时,令牌桶1518可以丢弃多余的令牌。令牌桶1518多余的令牌可以是由令牌桶1510再分配给它的令牌或是由第三trTCM根据它的EIR3分配给它的令牌。
上文提到过的基于优先级的带宽共享的特定方法,例如图14和15所示的,是以举例的方式给出的。这些技术可以以很多方式进行修改和组合。因此,实施基于优先级的带宽共享的网络设备及其相关方法的实施例并不受限于上述特定的安排。
图16是根据本发明实施例的基于优先级的带宽共享方法1600的流程图。该方法可以,例如,利用如图14和15所示的设备实施,不过,该方法还可以在其它数据处理设备中实施。方法1600还可以利用参考图14和15所述的技术来实施。为了简洁,这里将不再对这些技术做详细描述,除非它们与该方法的操作相关。
方法1600可以包括,在步骤1605,处理第一数据业务流以及,在步骤1610,用第一双速率三色计量器(trTCM)计量第一数据业务流,其中第一trTCM的第一令牌桶具有第一令牌容量且第一trTCM的第二令牌桶具有第二令牌容量。方法1600还包括,在步骤1615,以第一速率分配令牌给第一trTCM的第一令牌桶以及,在步骤1620,以第二速率分配令牌给第一trTCM的第二令牌桶。
方法1600还可以包括,在步骤1625,在处理第一数据业务流的同时处理第二数据业务流以及,在步骤1630,用第二trTCM计量第二数据业务流,其中,第二trTCM的第一令牌桶具有第三令牌容量并且第二trTCM的第二令牌桶具有第四令牌容量。方法1600还可以包括,在步骤1635,以第三速率分配令牌给第二trTCM的第一令牌桶以及,在步骤1640,以第四速率分配令牌给第二trTCM的第二令牌桶。
方法1600还可以包括,在步骤1645,当第一trTCM的第一令牌桶的令牌计数超出第一容量时,将分配给第一trTCM的第一令牌桶的令牌再分配给第二trTCM的第一令牌桶,例如根据上述基于优先级的带宽共享技术。在步骤1650,方法1600还可以包括当第一trTCM的第二令牌桶的令牌计数超出第二容量时,将分配给第一trTCM的第二令牌桶的令牌再分配给第二trTCM的第二令牌桶,例如根据上述基于优先级的带宽共享技术。
图17-20示出了可以与方法1600结合实施的基于优先级的带宽共享方法1700、1800、1900和2000。与方法1600相同,方法1700、1800、1900和2000可以,例如,利用如图14和15所示的设备实施,不过,这些方法还可以在其它数据处理设备中实施。方法1700、1800、1900和2000还可以利用参考图14和15所述的技术来实施。为了简洁,这里将不再对这些技术做详细描述,除非它们与该方法的操作相关。另外,为了说明,方法1700-2000中的每一种方法将以与方法1600结合实施的方式进行描述,因此,参考方法1600的操作。
方法1700与方法1600结合实施时,可以包括,在步骤1705,当第二trTCM的第一令牌桶的令牌计数超出第三容量时,将分配给第二trTCM的第一令牌桶的令牌再分配给第一trTCM的第一令牌桶。方法1700还可以包括,在步骤1710,当第二trTCM的第二令牌桶的令牌计数超出第四容量时,将分配给第二trTCM的第二令牌桶的令牌再分配给第一trTCM的第二令牌桶。
方法1800与方法1600结合实施时,可以包括,在步骤1805,当第二trTCM的第一令牌桶的令牌计数超出第三容量时,将分配给第二trTCM的第一令牌桶的令牌再分配给第一trTCM的第二令牌桶。方法1800还可以包括,在步骤1810,当第二trTCM的第二令牌桶的令牌计数超出第四容量时,将分配给第二trTCM的第二令牌桶的令牌再分配给第一trTCM的第二令牌桶。
方法1900与方法1600结合实施时,可以包括,在步骤1905,在处理第一数据业务流和第二数据业务流的同时处理第三数据业务流,第三数据业务流的优先级低于第一数据业务流而高于第二数据业务流。方法1900进一步包括,在步骤1910,用第三trTCM计量第三数据业务流,其中,第三trTCM的第一令牌桶具有第五令牌容量并且第三trTCM的第二令牌桶具有第六令牌容量。方法1900进一步包括,在步骤1915,以第五速率分配令牌给第三trTCM的第一令牌桶以及,在步骤1920,以第六速率分配令牌给第三trTCM的第二令牌桶。方法1900还包括,在步骤1925,当第三trTCM的第一令牌桶的令牌计数超出第五容量时,将分配给第三trTCM的第一令牌桶的令牌再分配给第三trTCM的第二令牌桶。
方法2000与方法1600结合实施时,可以包括,在步骤2005,在处理第一数据业务流和第二数据业务流的同时处理第三数据业务流,第三数据业务流的优先级低于第一数据业务流和第二数据业务流以及,在步骤2010,用第三trTCM计量第三数据业务流,其中,第三trTCM的第一令牌桶具有第五令牌容量并且第三trTCM的第二令牌桶具有第六令牌容量。方法2000进一步包括,在步骤2015,以第五速率分配令牌给第三trTCM的第一令牌桶以及,在步骤2020,以第六速率分配令牌给第三trTCM的第二令牌桶。
方法2000还包括,在步骤2025,当第二trTCM的第一令牌桶的令牌计数超出第三容量时,将分配给第二trTCM的第一令牌桶的令牌再分配给第三trTCM的第一令牌桶。方法2000还可以包括,在步骤2030,当第二trTCM的第二令牌桶的令牌计数超出第四容量时,将分配给第二trTCM的第二令牌桶的令牌再分配给第三trTCM的第二令牌桶。
上述各种技术的实施例可以在数字电子电路或计算机硬件、固件、软件或其组合中实施。实施例可以作为计算机程序产品实施,即切实嵌入信息载体的计算机程序,例如,在机器可读存储设备中,由数据处理设备执行,或控制数据处理设备的运行,数据处理设备可以是一个可编程处理器、一个计算机或多个计算机。一个计算机程序,例如上述计算机程序,可以用各种编程语言编写,包括编译的或直译的语言,还可以以任意形式进行调用,包括作为一个独立的程序或作为一个模块、组件、子程序或其它适用于计算机环境的单元。可以调用一个计算机程序在一个或多个计算机上执行,所述多个计算机可以在一个地点或分布在多个地点但通过通信网络互相连接。
由一个或多个执行计算机程序的可编程处理器执行上述方法步骤,通过处理输入数据及生成输出来实现相应功能。还可以由专用逻辑电路来执行上述方法步骤或作为实施设备,专用逻辑电路可以是例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适用于执行计算机程序的处理器包括,举例来说,通用的和专用的微处理器以及任意种类的数字计算机的一个或多个处理器。通常,处理器将从只读存储器或随机存储器或两者中接收指令和数据。计算机的元素可以包括至少一个用于执行指令的处理器和一个或多个用于存储指令及数据的存储设备。通常,计算机还可以包括或协同连接到一个或多个用于存储数据的大容量存储设备,以便从该设备接收数据、或向该设备发送数据、或与该设备进行数据的收发,该设备可以是,例如,磁盘、磁光盘或光盘。适用于嵌入计算机程序、指令和数据的信息载体包括各种形式的非易失性存储器,包括,例如半导体存储设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内置硬盘或移动硬盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或纳入专用逻辑电路。
为了提供与用户的交流,可以在具有显示设备,例如显像管(CRT)或液晶显示器(LCD)的计算机上实施这些实施例,以便向用户显示信息,该计算机还可以具有键盘和指向设备,例如鼠标或轨迹球,用户可以通过这些向计算机提供输入。还可以使用其它设备来提供与用户的交流;例如,提供给用户的轨迹球可以是任意形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且,来自用户的输入可以以任意形式接收,包括声音、语言或触觉输入。
可以在一个计算机系统中实施这些实施例,该计算机系统包括一个后端组件,例如,数据服务器,或者该计算机系统包括一个中间件组件,例如,应用服务器,或者该计算机系统包括一个前端组件,例如具有图形化用户界面或网络浏览器的客户端计算机,用户可以通过它使用实施例,或者该计算机系统包括这些后端、中间件或前端组件的任意组合。这些组件可以通过电子数据通信的任意形式或媒介连接,例如,通信网络。通信网络的例子包括局域网(LAN)和广域网(WAN),例如,因特网。
虽然本发明是通过具体实施例进行说明的,本领域技术人员还可以对本发明进行各种修改、替换、变化或等效处理。因此,应当理解,本发明的权利要求覆盖了落入本发明实施例的精神范围内的所有这些修改和变化。