用于在交换机中分配带宽的方法和设备的制作方法

文档序号:7656604阅读:355来源:国知局
专利名称:用于在交换机中分配带宽的方法和设备的制作方法
技术领域
本发明涉及一种用于在交换机或路由器中分配带宽的方法和设备。本发明尤其涉及一种用于在指向输出端口并且在各种业务类和流中接收的数据业务中分配带宽的调度程序和相关算法。带宽调度程序可以位于输出序列之前,使得能早期丢弃分组和有效使用输出缓冲存储器。该算法包括在记录可接受业务的计数器和变量上运行的逻辑规则以实现带宽分配。该算法能实现加权分配以及短期和长期公平性。
背景技术
论文Andrós Rócz,Góbor Fodor.Zolt ón Tur ónyiWeighted FairEarly Packet Discard at an ATM Switch Output Port,0-7803-55420-6/991999 IEEE公开了有关在ATM交换机中的公平性和带宽利用的类似观点。预定的加权共享与数据流相关。一种算法试图为长时间平均的数据流提供这种带宽共享。然而,该论文没有论及在带宽和等待时间(latency)调度中调度程序的划分以及本发明的许多其他方面。

发明内容
本发明的一个目的是将调度程序划分为两部分,即带宽调度程序和等待时间调度程序。带宽调度是在分组到达输出队列之前执行的。符合丢弃条件的分组被提前阻塞。因此,不再需要区别流和/或业务流以便分配带宽,而且输出队列可单独用于等待时间优先级。
本发明的这些和其他目的是通过本发明实现的,本发明提供了一种用于在包括交换结构的交换机中进行带宽调度的方法和设备。根据第一个实施例,带宽调度程序位于输出队列之前,而且该方法包括从所述交换结构接收数据流;使所述数据流经历所述带宽调度程序中的判决算法,导致所述数据流被转发或中断(接受或丢弃)。所述数据流最好包括可识别的数据分组,而且所述带宽调度程序中的判决算法致使所述数据分组被接受或被丢弃。
根据另外的实施例,运行下述多个逻辑规则和操作,包括对每个端口的最大可接受带宽设置极限(BWPmax),使一个虚拟队列与每个端口相联系,而且依据端口队列长度设置标志;对每个业务类的最大可接受带宽设置极限(BWTCmax),使一个虚拟队列与每个业务类相联系,而且依据业务类队列长度设置标志;根据Max-Min算法分配带宽;保证每个业务类的带宽可达极限(BWTCmin);使一个加权(WTC)与每个业务类相联系,这样该算法就能自动将某些业务类按优先顺序排列;对于每个业务类,积累(backlogging)计数器(BL)记录相对于其他业务类有多少分组被接受,以便如果以前空闲的业务类变得活跃,则通过分配更多带宽给这个业务类来补偿该业务类;如果一个业务类特别主动或活跃,则其放弃一部分其接受的带宽。
根据另一实施例,带宽调度程序位于输出队列之后。
本发明的一个优点是,带宽分配更为容易,导致缓冲区需求更小而且缓冲区使用的变动更小。而且本算法完全独立于每个端口的输出队列数,而类似加权轮询(Weighted Round Robin)和加权公平排队(Weighted Fair Queuing)的算法则需要尽可能多的队列。


下面参考附图描述本发明,其中图1是现有技术的调度程序框图,图2是根据本发明的分立调度程序体系结构的框图,图3是根据现有技术的Max-Min算法的带宽分配图,图4是根据本发明使用积累和施舍(charity)计数器的可接受带宽图,图5是与图4相关的积累计数器的图解,图6是与图4相关的经历(experienced)带宽图,以及图7是在不同级别的业务分层结构图;
具体实施例方式
一般来说,调度程序的任务是转发或丢弃从交换结构接收的业务到输出端口和相应的输出链路。已经引入服务质量的概念以定义交换机操作的质量。可以考虑服务质量的四个不同特征。首先是等待时间,即数据流通过设备所经历的延迟。第二是抖动,或等待时间变化。第三是带宽分配,而第四是损失概率。本发明主要涉及带宽分配。
在图1中示出了具有组合的等待时间和带宽调度程序的现有技术体系结构。业务被交换结构交换并在可能均具有多个队列的端口分配。调度程序位于输出队列之后。这种调度程序的实例有轮询(RoundRobin)、加权轮询和加权公平排队。在此,队列用于分隔不同的流和/或业务类以便调度程序能够区分它们。这种类型的体系结构使用类似去尾(tail-drop)或外推(push-out)的通用技术来丢弃分组。
图2示出了根据本发明的调度程序体系结构。主要区别在于调度程序分为两个部分,带宽调度程序和等待时间调度程序。带宽调度在分组到达输出队列之前执行。符合丢弃条件的分组被提前阻塞。因此,不再需要区分流和/或业务流以便分配带宽,而且输出队列可单独用于等待时间优先权。这样做的一个优点是带宽分配更为容易,致使对缓冲区的需求更小而且缓冲区使用的变动更小。而且本算法完全独立于每个端口的输出队列数,而类似加权轮询和加权公平排队的算法需要尽可能多的队列。
任何等待时间调度程序都能与根据本发明的带宽调度程序协同工作,而且提出严格的优先权。
本发明的另一方面是带宽调度程序算法。该算法旨在于每个端口的业务类和流之间公平分配带宽。该算法考虑了许多因素,如每个流的带宽需求,以及下面将要详细描述的短期和长期公平性。这种算法是通用的,理论上可以位于输出端口之前或者之后。
公平带宽分配可以通过许多不同方式实现。公平性也具有不同定义,而且能通过各种方式测量。公平性可定义为分配的带宽等于所需带宽之和除以所需带宽。这可通过若干种轮询方案实现。然而,在本发明中优选Max-Min算法。从该算法的名称指示,这种算法使最小流最大化。如果所有流都同样受益于增长带宽则该算法被认为是最公平的算法。
图3示意了Max-Min算法。如果其基本概念是带宽相同即效用相同,那么最公平的方式是找到极限l,贡献小于l的所有流经历无损耗。提供更多业务的流仅得到等于l的带宽,而不管它们提供了多少带宽。从图中可看出,为所有流定义公平共享。由于公平共享不是为所有流使用,因此在公平共享分配后剩余多余带宽。这种多余带宽在提供的业务多于公平共享的流上分配,直到极限1。提供多于极限l的业务的流使这部分业务阻塞。
本发明提出了Max-Min算法的进一步扩展首先,所有流不是等同的。每个流与一个加权相联系,以便根据每个流的权分配带宽。最好每个业务类有一个加权,而且业务类内的流被等同对待。
第二,保证某些流的带宽。换言之,除非流超出了保证的带宽极限才会丢失数据分组。
第三,某些流被限制到某一带宽最大值。最大化的流决不应得到超过其极限的带宽,即使线路将处于利用不足的状态。
第四,在流之间引入短期公平性。如果流是突发性的,即发送的分组超出可接受带宽,在短时间周期内应该接受这种情况以使调度灵活。其他流在未来将得到补偿。
第五,在流之间还引入长期公平性。如果一个流在一段时间内活跃,那么将迫使其将某些可接受带宽让给其他流作为“施舍(charity)”。如果一个流在一个时间周期内保持寂静,那么在将来可借助累积的施舍补偿它,这样就能为该流分配比其他竞争的流更多的带宽。然而,该时间周期应该是有限的,而且累积的补偿量也应该是有限的。
下面详细描述该算法的实现。
带宽调度程序通常接收一个数据流。该数据流可以根据不同协议,如TCP(传输控制协议)和UDP(用户数据报协议),组成信元或数据分组。本申请中的术语数据分组和类似术语旨在包含任何种类的数据实体。使用术语流也很实用,术语流在不同情况下能具有不同含义。如果使用例如TCP/IP,那么该流可以是应用流(源和目的地的地址和端口)或主机流(仅为源和目的地的地址)。假设可关于下面的类别根据流身份分类每个流。
业务在相应的端口上分配。这种分配是直接的,但通常运营商对每个端口的最大可接受带宽施加限制。
每个端口可提供多个业务类。所有流被划分为类。一个类通常基于某些网络协议和/或网络主机,但是对于本发明来说类可以基于任何标准。这些类必须充分分离,而且本发明并不必对所有类都能实现。业务类内的所有流是等同的。如果不合乎需要,业务类必须被分裂为两个或多个类。
在理论上,应用流是调度程序处理的最小单元。然而,由于应用流的数量很大,而且似乎以高速增长,本发明提出借助哈什函数将应用流组合为哈什组集合,它在本申请中通过定义称为流组(flowgroup)。哈什函数是静止的,而且是以属于一个流的所有分组总是必须被映射到同一流组的方式确定的。如果使用流组,本发明并不区分流组内的流。
本发明的物理实现驻留于程序中,该程序存储在输出队列之前或之后的调度程序中。该程序包含算法,用以定义在常量、配置参数以及各种变量和计数器上运行的逻辑规则。输入的数据流存储在缓冲区中,而该算法在该数据流的某一部分上运行,例如各个数据分组的信头。所提取的信息或信头通过该算法处理,其结果是该数据流被转发或中断,或在数据分组的情况下,分组被接受或丢弃。各个计数器记录对每个业务类和流组可接受的业务。而且以固定间隔更新变量和计数器。下面参考该算法的各个部分详细描述该过程。
多个参数和变量用于实现本算法。下表中列出了这些参数和变量,表示变量的分层序列,以及用于增大、减小和更新变量的规则。配置参数

BWPmax 每个端口的最大带宽;BWTCmax 每个业务类的最大带宽;BWTCmin 每个业务类的最小带宽;WTC 每个业务类的加权。端口计数器和变量

VQLP 每个端口的虚拟队列长度;TCPmax 每个端口的最大业务类变量;BLPmax 每个端口的最大积累变量;CH 每个端口的施舍计数器。业务类计数器和变量

TC 业务类计数器;FGmax每个业务类的最大流组变量;BL 每个业务类的积累计数器;VQLTC每个业务类的虚拟队列长度。流组计数器

FG流组计数器。
为示意本发明,假设数据流到达携带有关流身份的信息的分组。每个端口接收该数据流的相应部分。调度程序用于借助配置参数BWPmax(每个端口的最大带宽)限制每个端口的可接受带宽量。为记录每个端口的可接受带宽,实施虚拟队列。换言之,当端口接受一个分组时,计数器VQLP(该端口的虚拟队列长度)增大该分组长度。通过减去配置参数BWPmax在每个时间单位更新或刷新计数器VQLP,自动维持该极限。如果虚拟队列变得太长(VQLP>常量),则将丢弃分组。
如上所述,每个端口通常也接受各种业务类的业务。每个业务类具有虚拟队列长度计数器TC以记录在每个业务类的可接受带宽。对所讨论的端口,在等同于业务类计数器的最大值的值处设置变量TCPmax,以记录具有最高值的业务类计数器。当业务类接受一个分组时,计数器TC增大该分组长度。而且通过减去配置参数BWTCmin在每个时间单位更新或刷新计数器TC(参见下述描述)。公平性可通过各种方式定义。在本发明中,公平性是作为差值或比值计算的。因此,具有差值TCPmax-TC<常量,例如128kB的业务类被认为是公平的,而更忙的类则被认为是不公平的。或者,具有比值TC/TCPmax<常量,例如0.75的业务类被认为是公平的,而更忙的类则被认为是不公平的。如果业务类是公平的,则可接受所提供的分组。如果虚拟队列变得太长(TC>常量),则丢弃不公平的分组。对于最活跃的业务类(TC=TCPmax),当虚拟队列更短时丢弃所提供的分组。通过这种方式,计数器TC有助于实现业务类的基本算法Max-Min。
每个流组也拥有虚拟队列计数器FG,以记录有多少分组被接受。每个业务类具有变量FGmax,它设置为等于属于这个业务类的计数器FG的最大值。具有差值FGmax-FG<常量,例如128kB的流组被认为是公平的,而更忙的流组则被认为是不公平的。或者,具有比值FG/FGmax<常量,例如0.75的流组被认为是公平的,而更忙的流组则被认为是不公平的。对于最活跃的流组(FG=FGmax),当虚拟队列更短时丢弃所提供的分组。通过这种方式,计数器FG有助于实现流组的基本算法Max-Min。
本发明涉及具有上述加法的Max-Min算法的进一步扩展。这些加法并行工作而且相互独立。不是所有加法都必须实现,而是可以通过各种方式组合。
为使某些业务类相比其他业务类具有优先权,使每个业务类与权相联系。配置参数WTC(加权业务类)在初始化调度程序时设置。当分组被接受时,以加权方式增大相应的计数器以便该算法自动使某些业务类列入优先。因此,当业务类接受分组时,计数器TC增大该分组长度与权WTC的乘积。当然,通过设置所有权WTC为单位(1)可使该权函数失效。
每个业务类可与保证带宽相关。配置参数BWTCmin(最小业务类带宽)在初始化调度程序时设置。如果所讨论的业务类提供的带宽小于保证带宽,那么它将总是被接受。当然,所有业务类的保证带宽的总量必须小于或等于端口最大带宽BWPmax。
通过减去配置参数BWTCmin与权WTC的乘积在每个时间单位更新或刷新计数器TC。这将计算出权和保证带宽。这种减法导致这种业务类的BWTCmin之下的所有业务将被接受。如果计数器TC变得大于BWTCmin,则该业务将与其他流等同竞争。
每个业务类可以有一个相关的最大带宽。配置参数BWTCmax(最大业务类带宽)在初始化调度程序时设置。这个参数限制了在业务类中的可接受业务量,而与现有的剩余容量无关。另一虚拟队列借助计数可接受分组数的计数器VQLTC(每个业务类的虚拟队列长度)与每个业务类相联系。通过减去配置参数BWTCmax在每个时间单位更新或刷新计数器VQLTC。因此,能自动保持该极限。如果虚拟队列变得太长(VQLTC>常量可能加上对不同分组尺寸留出的容差常量),分组将被拒绝。
为提供突发业务但在短时间内仍以公平方式分配带宽,对每个业务类引入计数器以记录一个业务类相对于属于同一端口的其他业务类的可接受业务量。这种计数器称为积累计数器BL。而且,一个变量BLPmax(端口最大积累)对每个端口的业务类存储积累计数器的最大值。具有差值BLPmax-BL<常量,例如128kB的业务类被认为是公平的,而更忙的业务类则被认为是不公平的。具有比值BL/BLPmax<常量,例如0.75的业务类被认为是公平的,而更忙的业务类则被认为是不公平的。当业务类接受分组时,计数器BL增大该分组长度与权WTC的乘积。通过减去配置参数BWTCmin与加权WTC的乘积在每个时间单位更新或刷新计数器BL。通过这种方式,计数器BL有帮于实现基本Max-Min算法与计数器TC和FG。这种计数器BL与短期公平性的概念相关,但积累计数器BL对权函数也很重要。
如果某段时间业务类空闲,则在活跃的流之间分配多余带宽,当空闲的流再次变得活跃时,则通过分配更多带宽给这个流来补偿它。另一方面,不应允许目前活跃的类独占该链路以实现这种分配。这应是一个缓慢过程,给予静止的类更多带宽直到这些流再次被同等对待。另一方面,如果一个业务类特别活跃或主动,它应将其部分可接受带宽让出作为“施舍”。这些情形都与长期公平性的概念相关。这个特征与每个端口(以及附加级别,如果有的话)的计数器CH(施舍)相关。在一个端口之下的所有级别使用同一个计数器,而在一个级别(端口,如果没有附加级别)之下的所有业务类也使用一个计数器。当在具有最大可接受带宽的业务类中接受分组时,换言之,变量TC等于TCPmax,分组可被丢弃,如果对于其他标准(根据队列长度)来说这并非不公平的话。接着,将计数器CH增大可接受分组长度的可配置部分(+分组长度×给定系数)。增大其他业务类计数器(TC和BL),就好象分组被接受一样。另一方面,当分组被计数器TC≠TCPmax的其他一个业务类发送时,而且当根据其他逻辑规则确定要丢弃该分组时,该业务类可使用施舍函数以迫使该分组被接受。接着,将端口的施舍计数器CH减小该分组长度与相应业务类(或下一级别)的权的乘积-分组长度×WTC(-分组长度×WAL)。类似地,对于附加级别,将施舍计数器CHAL减小该分组长度与相应业务类的权的乘积-分组长度×WTC。因此,施舍计数器CH的值将改变并反映出一个业务类(或下一级别)是否比其他业务类活跃的多。如果这些业务类差不多,那么,施舍计数器最好应缓慢衰减。因此,通过乘以衰减因子,例如15/16,在每个时间单位更新或刷新计数器CH。
图4是总可接受带宽的第一个图解,而图5是两个流A和B的积累计数器图解。每当接受一个分组时积累计数器增大,例如如图4所示。积累计数器被限制为固定值,例如±128kB。如果一个流的积累计数器到达了上限,那么属于这个端口的所有计数器减小以便保持该内部差值。如果一个流的积累计数器到达下限,则这个计数器保持在该下限(但其他计数器不受影响)。通过这种方式只记住了最近的过去,因此术语短期公平性。现在,我们拥有两个变量(积累计数器和施舍计数器)测量在两个不同时间范围的公平性。
两个流A和B一直到T1都是活跃的。它们在所有方面都认为是等同的,而且为交换机提供相同量的带宽。在T1和T2之间只有流A是活跃的,而流B是空闲的。T2之后,这两个流再次活跃。
图4和图5这两个图共用同一个时间轴。这两个流一直到T1都具有相同的带宽和积累计数器。由于流B在T1变得空闲,只有流A的计数器增大一直到T2。应指出,积累计数器有上限而不是持续增大,所有流都减小它们的积累计数器。而且应指出,积累计数器也有下限,即图5中的最小积累。由于流A是最活跃的流而且丢弃了一些分组,所以该端口的施舍计数器CH也增大。当流A和B都提供带宽时,只接受积累计数器BL最小的流。在T2,流B再次变得活跃,而且对于短周期T2-T3,流B的所有业务被接受,同时流B的积累计数器增大。一旦这些积累计数器相同它们再次共享带宽。
在T3和T4之间,流A和流B的可接受带宽不同。直到它们相互匹配时流A才让出其小部分带宽给流B。现在该端口的施舍计数器CH因流A丢弃某些分组而增大,并因流B接受某些分组而降低。T4之后,它们再次等同地共享线路。图6是这两个流所经历的带宽。所有这些图都有稍微间断的时间轴以便显示实际图形。T2和T3间隔很近(短期公平性),而T3和T4间隔要远得多(长期公平性)。
上面指出,每当分组被接受时,每个涉及的计数器根据上述表格增大。计数器不必受限制,但为所有计数器设置上限很实用,以便将计数器的尺寸保持在适当值。为反映所有计数器之间在所有时刻的关系以及防止溢出,当类别中的其中一个计数器接近上限时,所有计数器都必须减小。因此,当一组中的计数器(例如一个端口下的所有TC计数器)到达接近物理尺寸的极限时,要从该组中的所有计数器减去一个常量。
该操作还关于时间重复。每个时间单位用相应的参数刷新这些变量。即,从相应的变量中减去这些参数以指示已过去某一时间量,以及已经发送出去某一业务量。
运行所有算法使得标志得以设置。迄今还未判断是接受还是丢弃分组,因此现在是使用所有这些标志的时候了。下面列出了判断顺序的例子。当进行判断时增大相应的计数器而且对下一分组重复这些算法。
1)如果端口被切断,则丢弃。否则2)如果允许流组而且流组公平,则接受。否则3)如果队列(VQLP,VQLTC)比“DiscardWanted”(=想要的最大长度)要长,则丢弃。否则4)如果允许流组而且队列(VQLP,VQLTC)比“DiscardPreferred”(=优选最大长度)要长,而且是最活跃的流组,则丢弃。否则5)如果允许业务类而且业务类公平,则接受。否则6)如果队列(VQLP,VQLTC)比“DiscardPreferred”(=优选最大长度)要长,则丢弃。否则7)接受。
下面是在借助本发明实现的一组业务类中进行带宽分配的结果实例。为方便起见,以百分比测量带宽。

上述类示意如果一个类提供的带宽小于保证带宽,则全部通过(类B)。
如果一个类提供的带宽超过其最大带宽,则不被接受(类H)。
如果存在竞争的话(类F和G),具有完全相同的输入业务的两个类根据它们的加权接收带宽。与表中的权值成反比分配带宽。
对具有最小和最大带宽以及加权的类的一般带宽计算为B=min(提供的带宽,BWTCmax,BWTCmin+WTC/∑WTC×BWspare)(表中没有示出流组之间的分配。)根据本发明的方法和设备可以扩展到更多级别。也可附加任何数量的级别。图7示出了这种例子。物理连接通常为若干用户共享。该连接可以是具有多个端口的海外电缆或链路。一个端口可以例如租用给一个或若干个位于级别1的电信运营商,图中只示出了一个运营商。在每个级别只示出了一个实例。这个运营商也可拥有多个客户,为每个客户提供特定的业务共享。这些客户位于级别2。客户也想通过使某些用户具有优先权来控制业务。这是在级别3实现的。在级别3以下,可以如前所述分为业务类、流组以及应用流等普通级别。
在每个级别,可利用配置参数控制业务,这些配置参数包括上面描述的最大带宽、最小带宽和权。配置参数由控制所讨论的特定级别的组织设置,如果需要的话,可能是下面的级别。
附加级别插到业务类级别之上。下面用一个附加级别描述了一个例子,这个例子中的表格列举了配置参数和相应的计数器以及变量。应理解的是,该端口是以上述连接业务类的相同方式连接附加级别的。当然,这些计数器和变量必须用附加级别的相应计数器和变量替代。
类似地,业务类如同前述连接端口一样向上连接该附加级别。在此,计数器和变量具有与以前相同的名称,但所具有的绝对值必须改变以考虑该附加级别,因为实际上其他业务类集合也并列位于同一级别。对流组级别和流级别来说也是一样。
如果附加了更多级别,则必须进行相应的替代。然而,这很直接在此不再详细描述。
配置参数

BWPmax 每个端口的最大带宽;BWALmax每个附加级别的最大带宽;BWALmin每个附加级别的最小带宽;WAL每个附加级别的权;BWTCmax每个业务类的最大带宽;BWTCmin每个业务类的最小带宽;WTC 每个业务类的权。端口计数器和变量

VQLP每个端口的虚拟队列长度;ALPmax 每个端口的最大附加级别;BLPmax每个端口的最大积累变量;CHP 在这个端口下的所有附加级别的施舍计数器。附加级别计数器和变量

AL 附加级别计数器;TCmax 每个附加级别的最大业务类变量;BLAL 每个附加级别的积累计数器;VQLAL每个附加级别的虚拟队列长度;CHAL 这个附加级别之下的所有业务类的施舍计数器。业务类计数器和变量

TC 业务类计数器;FGmax每个业务类的最大流组变量;BLTC 每个业务类的积累计数器;VQLTC每个业务类的虚拟队列长度流组计数器

FG流组计数器。
上面讨论的实施例仅仅是示意本发明。在硬件、软件和其他实施例上的物理实现可由本领域的技术人员设计而不偏离下面的权利要求书的精神和范围。
权利要求
1.一种用于在包含交换结构的交换机中进行带宽调度的方法,带宽调度程序位于输出队列之前,该方法包括步骤从所述交换结构接收数据流;使该数据流经历所述带宽调度程序中的判决算法,致使该数据流被转发或中断(接受或丢弃)。
2.根据权利要求1用于带宽调度的方法,其中所述数据流包括可识别的数据分组;将每个数据分组经历所述带宽调度程序中的判决算法,使得该数据分组被接受或丢弃。
3.根据权利要求2用于带宽调度的方法,其中每个分组包含有关其流身份的信息,即端口(号)和业务类。
4.根据权利要求3用于带宽调度的方法,其中对每个端口的最大可接受带宽设置极限(BWPmax)。
5.根据权利要求4用于带宽调度的方法,其中借助计数器VQLP(端口的虚拟队列长度)使一个虚拟队列与每个端口相联系,而且对每个接受分组增大计数器VQLP该分组长度,并通过在每个时间单位减去配置参数BWPmax(每个端口的最大可接受带宽),对计数器VQLP进行更新。
6.根据权利要求5用于带宽调度的方法,其中如果计数器VQLP<常量,则设置一个标志作为在判断接受或丢弃分组时该算法所使用的值。
7.根据权利要求4用于带宽调度的方法,其中对每个业务类的最大可接受带宽设置极限(BWTCmax)。
8.根据权利要求7用于带宽调度的方法,其中借助计数器VQLTC(每个业务类的虚拟队列长度)使一个虚拟队列与每个业务类相联系,而且对每个接受分组增大计数器VQLTC该分组长度,并通过减去配置参数BWTCmax在每个时间单位对计数器VQLTC进行更新。
9.根据权利要求8用于带宽调度的方法,其中如果计数器VQLTC<常量,则设置一个标志作为在判断接受或丢弃分组时该算法所使用的值。
10.根据权利要求3用于带宽调度的方法,其中当业务类接受分组时计数器TC(业务类)增大该分组长度,而且设置变量TCPmax(业务类端口最大值)为等于所述端口的TC计数器的最大值,其中对于TC和TCPmax之间的关系满足标准的业务类,设置一个标志作为在判断接受或丢弃分组时该算法所使用的值,从而根据Max-Min算法分配带宽。
11.根据权利要求10用于带宽调度的方法,其中TC和TCPmax之间的标准为差值TCPmax-TC<常量。
12.根据权利要求10用于带宽调度的方法,其中TC和TCPmax之间的标准为比值TC/TCPmax<常量。
13.根据权利要求3用于带宽调度的方法,其中保证每个业务类的带宽可达极限(BWTCmin)。
14.根据权利要求13用于带宽调度的方法,其中当业务类接受分组时计数器TC(业务类)增大该分组长度,并且通过减去配置参数BWTCmin(每个业务类的最小带宽)在每个时间单位对计数器TC进行更新。
15.根据权利要求10用于带宽调度的方法,其中使一个加权WTC(加权业务类)与每个业务类相联系,以便该算法能自动使某些业务类具有优先权。
16.根据权利要求15用于带宽调度的方法,其中当业务类接受分组时,计数器TC(业务类)增大该分组长度与配置参数WTC(加权业务类)的乘积,并且通过减去配置参数BWTCmin(每个业务类的最小带宽)与配置参数WTC的乘积在每个时间单位刷新计数器TC。
17.根据权利要求3用于带宽调度的方法,其中对每个业务类,计数器BL(积累)记录相对于其他业务类有多少分组被接受,以便如果之前空闲的业务类变得活跃,则通过分配更多带宽给该业务类来补偿该业务类。
18.根据权利要求17用于带宽调度的方法,其中变量BLPmax(端口积累最大值)存储每个端口的业务类的积累计数器的最大值,而且对于BL和BLPmax之间的关系满足标准的业务类,设置一个标志作为在判断接受或丢弃分组时该算法所使用的值。
19.根据权利要求18用于带宽调度的方法,其中BL和BLPmax之间的标准为差值BLPmax-BL<常量。
20.根据权利要求18用于带宽调度的方法,其中BL和BLPmax之间的标准为比值BL/BLPmax<常量。
21.根据权利要求18用于带宽调度的方法,其中当业务类接受分组时,BL计数器增大该分组长度与配置参数WTC(加权业务类)的乘积,而且所述计数器BL被限制到固定的上限值和固定的下限值,如果业务类的一个积累计数器到达该上限,则减小所有其他计数器以便保持该内部差值,而如果流的一个积累计数器到达下限,则该计数器保持在下限,而且通过减去配置参数BWTCmin(每个业务类的最小带宽)与配置参数WTC的乘积在每个时间单位刷新计数器BL。
22.根据权利要求3用于带宽调度的方法,其中如果一个业务类特别活跃或主动,则迫使它放弃一部分其接受的带宽。
23.根据权利要求22用于带宽调度的方法,其中当在具有最大可接受带宽(TC=TCPmax)的业务类接受分组时,施舍函数迫使该分组被丢弃而且施舍计数器(CH)增大该可接受分组长度的可配置部分(+分组长度×给定因子),而在其他一个业务类拒绝分组时,施舍函数迫使该分组被接受,而且施舍计数器(CH)减小该分组长度与相应业务类的权的乘积(-分组长度×WTC),并通过乘以衰减因子在每个时间单位刷新计数器(CH)。
24.根据权利要求3用于带宽调度的方法,其中对每个端口的最大可接受带宽设置极限(BWPmax),使一个虚拟队列与每个端口相联系,而且依据端口队列长度设置标志;对每个业务类的最大可接受带宽设置极限(BWTCmax),使一个虚拟队列与每个业务类相联系,而且依据业务类队列长度设置标志;根据Max-Min算法分配带宽;保证每个业务类的带宽可达极限(BWTCmin);使加权(WTC)与每个业务类相联系,这样该算法就能自动使某些业务类具有优先权;对于每个业务类,积累计数器(BL)记录相对于其他业务类有多少分组被接受,以便如果以前空闲的业务类变得活跃,则通过分配更多带宽给这个业务类来补偿它;如果一个业务类特别活跃或主动,则放弃一部分其接受的带宽。
25.根据权利要求24用于带宽调度的方法,其中在端口级别和业务类级别之间插入附加级别,所述附加级别连接端口级别作为业务类,而且连接业务级别作为端口。
26.根据权利要求3用于带宽调度的方法,其中借助哈什函数将流组合到一起成为一个流组集合。
27.根据权利要求26用于带宽调度的方法,其中当流组接受分组时,计数器FG(流组)增大该分组长度,并设置变量FGmax(流组最大值)为等于所述业务类的FG计数器的最大值,而且其中对于FG和FGmax之间的关系满足标准的流组,设置一个标志作为在判断接受或丢弃分组时该算法所使用的值,从而根据Max-Min算法分配带宽。
28.根据权利要求27用于带宽调度的方法,其中FG和FGmax之间的标准为差值FGmax-FG<常量。
29.根据权利要求27用于带宽调度的方法,其中FG和FGmax之间的标准为比值FG/FGmax<常量。
30.根据权利要求27用于带宽调度的方法,其中对每个端口的最大可接受带宽设置极限(BWPmax),使一个虚拟队列与每个端口相联系,而且依据端口队列长度设置标志;对每个业务类的最大可接受带宽设置极限(BWTCmax),使一个虚拟队列与每个业务类相联系,而且依据业务类队列长度设置标志;保证每个业务类的带宽可达极限(BWTCmin);使加权(WTC)与每个业务类相联系,这样该算法就能自动使某些业务类具有优先权;对于每个业务类,积累计数器(BL)记录相对于其他业务类有多少分组被接受,以便如果以前空闲的业务类变得活跃,则通过分配更多带宽给这个业务类来补偿它;如果一个业务类特别活跃或主动,则放弃其部分可接受带宽。
31.根据权利要求30用于带宽调度的方法,其中在端口级别和业务类级别之间插入附加级别,所述附加级别连接端口级别作为业务类,而且连接业务类级别作为端口。
32.根据权利要求6、9、10、14、16、21或23用于带宽调度的方法,其中借助哈什函数将流组合到一起成为一个流组集合,当流组接受分组时计数器FG(流组)增大该分组长度,并设置变量FGmax(流组最大值)为等于所述业务类的FG计数器的最大值,而且其中对于FG和FGmax之间的关系满足标准的流组,设置一个标志为在判断接受或丢弃分组时该算法所使用的值,从而根据Max-Min算法分配带宽。
33.根据权利要求31用于带宽调度的方法,其中FG和FGmax之间的标准为差值FGmax-FG<常量。
34.根据权利要求31用于带宽调度的方法,其中FG和FGmax之间的标准为比值FG/FGmax<常量。
35.根据权利要求30用于带宽调度的方法,其中该算法逻辑设置的标志用于包括下述的判决顺序如果端口被切断,则丢弃,否则;如果允许流组而且流组公平,则接受,否则;如果队列(VQLP,VQLTC)比“DiscardWanted”(=想要的最大长度)要长,则丢弃,否则;如果允许流组而且队列(VQLP,VQLTC)比“DiscardPreferred”(=优选最大长度)要长,而且是最活跃的流组,则丢弃,否则;如果允许业务类而且业务类公平,则接受,否则;如果队列(VQLP,VQLTC)比“DiscardPreferred”(=优选最大长度)要长,则丢弃,否则;接受。
36.一种用于在包含交换结构的交换机中进行带宽调度的方法,带宽调度程序位于输出队列之后,该方法包括步骤从所述交换结构接收包含可识别的数据分组的数据流;使每个数据分组经历所述带宽调度程序中的判决算法,致使该数据分组被接受或丢弃,其中对每个端口的最大可接受带宽设置极限(BWPmax),而且通过计数器VQLP(端口的虚拟队列长度)使一个虚拟队列与每个端口相联系,以及对每个接受分组增大计算器VQLP该分组长度,并通过在每个时间单位减去配置参数BWPmax(每个端口的最大可接受带宽)对计数器VQLP进行刷新。
37.根据权利要求36用于带宽调度的方法,其中依据端口队列长度设置标志;对每个业务类的最大可接受带宽设置极限(BWTCmax),使一个虚拟队列与每个业务类相联系,而且依据业务类队列长度设置标志;保证每个业务类的带宽可达极限(BWTCmin);使加权(WTC)与每个业务类相联系,这样该算法就能自动使某些业务类具有优先权;对于每个业务类,积累计数器(BL)记录相对于其他业务类有多少分组被接受,以便如果以前空闲的业务类变得活跃,则通过分配更多带宽给这个业务类来补偿它;如果一个业务类特别活跃或主动,则放弃其部分可接受带宽。
38.根据权利要求37用于带宽调度的方法,其中在端口级别和业务类级别之间插入附加级别,所述附加级别连接端口级别作为业务类,而且连接业务类级别作为端口。
39.一种用于在包含交换结构的交换机中进行带宽调度的设备,带宽调度程序位于输出队列之前,该设备包括用于从所述交换结构接收数据流的装置;用于使该数据流经历所述带宽调度程序中的判决算法,致使该数据流被转发或中断(接受或丢弃)的装置。
40.根据权利要求39用于带宽调度的设备,其中所述数据流包括可识别的数据分组;而且该设备还包括用于使每个数据分组经历所述带宽调度程序中的判决算法,致使该数据分组被接受或拒绝的装置。
41.根据权利要求40用于带宽调度的设备,其中每个分组包含有关其流身份的信息,即端口(号)和业务类。
42.根据权利要求41用于带宽调度的设备,其中对每个端口的最大可接受带宽设置极限(BWPmax)。
43.根据权利要求42用于带宽调度的设备,其中借助计数器VQLP(端口的虚拟队列长度)使一个虚拟队列与每个端口相联系,而且对每个接受分组增大计数器VQLP该分组长度,并通过在每个时间单位减去配置参数BWPmax(每个端口的最大可接受带宽)对计数器VQLP进行更新。
44.根据权利要求43用于带宽调度的设备,其中如果计数器VQLP<常量,则设置一个标志为在判断接受或丢弃分组时该算法所使用的值。
45.根据权利要求42用于带宽调度的设备,其中对每个业务类的最大可接受带宽设置极限(BWTCmax)。
46.根据权利要求45用于带宽调度的设备,其中借助计数器VQLTC(每个业务类的虚拟队列长度)使一个虚拟队列与每个业务类相联系,而且对每个接受分组增大计数器VQLTC该分组长度,并通过减去配置参数BWTCmax在每个时间单位对计数器VQLTC进行更新。
47.根据权利要求46用于带宽调度的设备,其中如果计数器VQLTC<常量,则设置一个标志作为在判断接受或丢弃分组时该算法所使用的值。
48.根据权利要求41用于带宽调度的设备,其中当业务类接受分组时计数器TC(业务类)增大该分组长度,而且设置变量TCPmax(业务类端口最大值)为等于所述端口的TC计数器的最大值,其中对于TC和TCPmax之间的关系满足标准的业务类,设置一个标志作为在判断接受或丢弃分组时该算法所使用的值,从而根据Max-Min算法分配带宽。
49.根据权利要求48用于带宽调度的设备,其中TC和TCPmax之间的标准为差值TCPmax-TC<常量。
50.根据权利要求48用于带宽调度的设备,其中TC和TCPmax之间的标准为比值TC/TCPmax<常量。
51.根据权利要求41用于带宽调度的设备,其中保证每个业务类的带宽可达极限(BWTCmin)。
52.根据权利要求51用于带宽调度的设备,其中当业务类接受分组时计数器TC(业务类)增大该分组长度,并且通过减去配置参数BWTCmin(每个业务类的最小带宽)在每个时间单位对计数器TC进行更新。
53.根据权利要求48用于带宽调度的设备,其中使一个加权WTC(加权业务类)与每个业务类相联系,以便该算法能自动使某些业务类具有优先权。
54.根据权利要求53用于带宽调度的设备,其中当业务类接受分组时,计数器TC(业务类)增大该分组长度与配置参数WTC(加权业务类)的乘积,并且通过减去配置参数BWTCmin(每个业务类的最小带宽)与配置参数WTC的乘积在每个时间单位刷新计数器TC。
55.根据权利要求41用于带宽调度的设备,其中对每个业务类,计数器BL(积累)记录相对于其他业务类有多少分组被接受,以便如果之前空闲的业务类变得活跃,则通过分配更多带宽给该业务类来补偿它。
56.根据权利要求55用于带宽调度的设备,其中变量BLPmax(端口积累最大值)存储每个端口的业务类的积累计数器的最大值,而且对于BL和BLPmax之间的关系满足标准的业务类,设置一个标志为在判断接受或丢弃分组时该算法所使用的值。
57.根据权利要求56用于带宽调度的设备,其中BL和BLPmax之间的标准为差值BLPmax-BL<常量。
58.根据权利要求56用于带宽调度的设备,其中BL和BLPmax之间的标准为比值BL/BLPmax<常量。
59.根据权利要求55用于带宽调度的设备,其中当业务类接受分组时,BL计数器增大该分组长度与配置参数WTC(加权业务类)的乘积,而且所述计数器BL被限制到固定的上限值和固定的下限值,如果业务类的一个积累计数器到达该上限,则减小所有其他计数器以便保持该内部差值,而如果流的一个积累计数器到达下限,则该计数器将保持在下限,而且通过减去配置参数BWTCmin(每个业务类的最小带宽)与配置参数WTC的乘积在每个时间单位刷新计数器BL。
60.根据权利要求41用于带宽调度的设备,其中如果一个业务类特别活跃或主动,则迫使它放弃其部分可接受带宽。
61.根据权利要求60用于带宽调度的设备,其中当在具有最大可接受带宽(TC=TCPmax)的业务类接受分组时,施舍函数迫使该分组被丢弃而且施舍计数器(CH)增大该可接受分组长度的可配置部分(+分组长度×给定因子),而在其他一个业务类拒绝分组时,施舍函数迫使该分组被接受,而且施舍计数器(CH)减小该分组长度与相应业务类的权的乘积(-分组长度×WTC),并通过乘以衰减因子在每个时间单位刷新计数器(CH)。
62.根据权利要求41用于带宽调度的设备,其中对每个端口的最大可接受带宽设置极限(BWPmax),使一个虚拟队列与每个端口相联系,而且依据端口队列长度设置标志;对每个业务类的最大可接受带宽设置极限(BWTCmax),使一个虚拟队列与每个业务类相联系,而且依据业务类队列长度设置标志;根据Max-Min算法分配带宽;保证每个业务类的带宽可达极限(BWTCmin);使加权(WTC)与每个业务类相联系,这样该算法就能自动使某些业务类具有优先权;对于每个业务类,积累计数器(BL)记录相对于其他业务类有多少分组被接受,以便如果以前空闲的业务类变得活跃,则通过分配更多带宽给这个业务类来补偿它;如果一个业务类特别活跃或主动,则放弃其部分可接受带宽。
63.根据权利要求62用于带宽调度的设备,其中在端口级别和业务类级别之间插入附加级别,所述附加级别连接端口级别作为业务类,而且连接业务级别作为端口。
64.根据权利要求41用于带宽调度的设备,其中借助哈什函数将流组合到一起成为一个流组集合。
65.根据权利要求64用于带宽调度的设备,其中当流组接受分组时,计数器FG(流组)增大该分组长度,并设置变量FGmax(流组最大值)为等于所述业务类的FG计数器的最大值,而且其中对于FG和FGmax之间的关系满足标准的流组,设置一个标志为在判断接受或丢弃分组时该算法所使用的值,从而根据Max-Min算法分配带宽。
66.根据权利要求65用于带宽调度的设备,其中FG和FGmax之间的标准为差值FGmax-FG<常量。
67.根据权利要求65用于带宽调度的设备,其中FG和FGmax之间的标准为比值FG/FGmax<常量。
68.根据权利要求65用于带宽调度的设备,其中对每个端口的最大可接受带宽设置极限(BWPmax),使一个虚拟队列与每个端口相联系,而且依据端口队列长度设置标志;对每个业务类的最大可接受带宽设置极限(BWTCmax),使一个虚拟队列与每个业务类相联系,而且依据业务类队列长度设置标志;保证每个业务类的带宽可达极限(BWTCmin);使加权(WTC)与每个业务类相联系,这样该算法就能自动使某些业务类具有优先权;对于每个业务类,积累计数器(BL)记录相对于其他业务类有多少分组被接受,以便如果以前空闲的业务类变得活跃,则通过分配更多带宽给这个业务类来补偿它;如果一个业务类特别活跃或主动,则放弃其部分可接受带宽。
69.根据权利要求68用于带宽调度的设备,其中在端口级别和业务类级别之间插入附加级别,所述附加级别连接端口级别作为业务类,而且连接业务类级别作为端口。
70.根据权利要求44、47、50、52、54、59或61用于带宽调度的设备,其中借助哈什函数将流组合到一起成为一个流组集合,当流组接受分组时计数器FG(流组)增大该分组长度,并设置变量FGmax(流组最大值)为等于所述业务类的FG计数器的最大值,而且其中对于FG和FGmax之间的关系满足标准的流组,设置一个标志为在判断接受或丢弃分组时该算法所使用的值,从而根据Max-Min算法分配带宽。
71.根据权利要求70用于带宽调度的设备,其中FG和FGmax之间的标准为差值FGmax-FG<常量。
72.根据权利要求70用于带宽调度的设备,其中FG和FGmax之间的标准为比值FG/FGmax<常量。
73.根据权利要求68用于带宽调度的设备,其中该算法逻辑设置的标志用于包括下述的判决顺序如果端口被切断,则丢弃,否则;如果允许流组而且流组公平,则接受,否则;如果队列(VQLP,VQLTC)比“DiscardWanted”(=想要的最大长度)要长,则丢弃,否则;如果允许流组而且队列(VQLP,VQLTC)比“DiscardPreferred”(=优选最大长度)要长,而且是最活跃的流组,则丢弃,否则;如果允许业务类而且业务类公平,则接受,否则;如果队列(VQLP,VQLTC)比“DiscardPreferred”(=优选最大长度)要长,则丢弃,否则;接受。
74.一种用于在包含交换结构的交换机中进行带宽调度的设备,带宽调度程序位于输出队列之后,该设备包括用于从所述交换结构接收包含可识别的数据分组的数据流的装置;用于使每个数据分组经历所述带宽调度程序中的判决算法,致使该数据分组被接受或丢弃的装置,其中对每个端口的最大可接受带宽设置极限(BWPmax),而且通过计数器VQLP(端口的虚拟队列长度)使一个虚拟队列与每个端口相联系,以及对每个接受分组增大计算器VQLP该分组长度,并通过每个时间单位减去配置参数BWPmax(每个端口的最大可接受带宽)对计数器VQLP进行刷新。
75.根据权利要求74用于带宽调度的设备,其中依据端口队列长度设置标志;对每个业务类的最大可接受带宽设置极限(BWTCmax),使一个虚拟队列与每个业务类相联系,而且依据业务类队列长度设置标志;保证每个业务类的带宽可达极限(BWTCmin);使加权(WTC)与每个业务类相联系,这样该算法就能自动使某些业务类具有优先权;对于每个业务类,积累计数器(BL)记录相对于其他业务类有多少分组被接受,以便如果以前空闲的业务类变得活跃,则通过分配更多带宽给这个业务类来补偿它;如果一个业务类特别活跃或主动,则放弃一部分其接受的带宽。
76.根据权利要求75用于带宽调度的设备,其中在端口级别和业务类级别之间插入附加级别,所述附加级别连接端口级别作为业务类,而且连接业务类级别作为端口。
全文摘要
本发明涉及一种用于在交换机或路由器中分配带宽的方法和设备,本发明尤其涉及用于在指向输出端口并在各种业务类和流中接收的数据业务中分配带宽的调度程序和相关算法。交换机包括交换结构。带宽调度程序最后位于输出队列之前,该方法包括从交换结构接收数据流;使该数据流经历带宽调度程序中的判决算法,致使该数据流被转发或中断(接受或丢弃)。该数据流最好包括可识别的数据分组,而且带宽调度程序中的判决算法使该数据分组被接受或丢弃。带宽调度程序也可位于输出队列之前,使得早期丢弃分组和有效使用输出缓冲存储器。该算法包括在记录可接受业务的计数器和变量上运行的逻辑规则以实现带宽分配。该算法能实现加权分配以及短期和长期公平性。
文档编号H04L12/56GK1428054SQ0180914
公开日2003年7月2日 申请日期2001年4月4日 优先权日2000年4月10日
发明者尤尔夫·阿尔福斯, 安德森·法恩, 彼得·图福维森 申请人:转换中心股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1