一种分组公平调度方法及设备的制作方法

文档序号:7614298阅读:98来源:国知局
专利名称:一种分组公平调度方法及设备的制作方法
技术领域
本发明属于数据通信领域,尤其涉及IP(Internet Protocol,网络协议)、ATM(Asynchronous Time division multiplexing,异步传输模式)等分组网络通信中的分组公平调度的方法、分组公平调度器及数据通信设备。
背景技术
为了在分组网络,如IP、ATM中提供QoS(Quality of Service,服务质量)保证服务,必须在分组网络设备,如ATM交换机、IP路由器中采取适当的分组公平调度器进行分组公平排队调度,以保证网络的QoS性能。
QoS业务参数包括分组时延、时延抖动、丢失率以及吞吐率等,不同的业务要求不同的QoS参数。分组在网络中的时延可以分为固定时延和排队时延,排队时延主要是确定不同队列的服务顺序,是可变的,PFQ(Packet Fair Queue,分组公平调度)算法就是研究怎样对不同的业务的分组进行排队以满足业务在时延、时延抖动以及吞吐速率方面的要求。
PFQ算法是目前较成熟的调度算法,从90年代提出以来,发展至今,已经形成了一套完整的体系,其基本原理是根据连接的预约带宽,为连接的分组计算一个时标(timestamp),这个时标代表了理论上分组应该被发送的时间,通过对分组时标的比较,确定分组的发送顺序。比较著名的PFQ类算法包括WFQ(Weighted Fair Queueing,加权公平排队)、WF2Q(Worst-case Fair WeightedFair Queueing,最坏情况加权公平排队)、WF2Q+(Worst-Case Fair Weighted FairQueuing Plus,加强最坏情况加权公平排队)、VC(Virtual Clock,虚拟时钟)、shVC(Shaped Virtual Clock,成形虚拟时钟)、SCFQ(Self-Clocked Fair QueueScheduling,自时钟公平队列调度)等。
为了提供良好的QoS服务,网络设备需要支持多级调度,来满足网络中不同的复杂业务流量类型对QoS的不同需求,根据不同业务需求的需要,各级调度可能采用不同的PFQ类算法。
一个典型的PFQ算法的实现过程包括以下几个主要步骤1、各信元/连接(Session)的虚拟结束时标(FinishTimestamp)、虚拟起始时标(StartTimestamp)的计算及存储;2、按一定的准则进行时标比较;3、按时标比较的结果选取信元调度出队;4、更新系统势(Potential)和虚拟结束时标,重新进行下一轮的调度。
PFQ类算法实现的主要难点在于大型网络中存在的连接数、信元数非常巨大,如果按照每条连接、每个信元保存一个时标(一般需要用16-bit以上来表示)来实现,则时标存储、时标比较是一个非常巨大的实现瓶颈,有非常大的存储、计算开销,而导致无法实时实现。
针对上述问题已经有了很多优化方案,如按速率分组(per-rate-grouping)划分速率等级,只为每条连接保留时标,降低了存储空间,只比较每个组(group)的时标,降低了计算开销。更进一步可以用1-bit来代表各个连接的时标,进一步降低了用于存储每连接时标的存储空间,而调度的公平性不变,显著地降低了实现复杂度,从而使得同时进行几百K的流公平调度硬件实现成为可能。
图1示出了现有的分组公平调度过程,步骤S101中,在当前调度接收到上一级调度输出的信元后,要执行步骤S102更新该信元所在的连接的虚拟结束时标,在步骤S103中实时比较系统势与各个虚拟结束时标的相互关系,然后进行系统势更新或者对长期不活跃(idle)的连接的虚拟起始时标、虚拟结束时标进行更新,避免出现连接长期不活跃时,即虚拟结束时标长期停止更新,出现的虚拟结束时标“回卷”现象,这样就难以单纯从时标的大小来判断连接中信元到达的先后顺序而做出正确的调度判决。然后执行步骤S104选取具有最小虚拟结束时标的连接,在步骤S105中将系统势进行更新,执行步骤S106将该具有最小虚拟结束时标的连接的信元调度出队,在该连接的信元调度出队后执行步骤S107更新该连接的虚拟结束时标,然后继续上述步骤进行下一轮调度。
综上所述,在现有技术中,当每条连接被调度一次都需要进行时标更新,计算量较大;同时,调度器是对可能包含无限多或数量很大(比如大于64K)的信元(连接)的流进行调度,时标处理较为复杂。从而导致分组调度效率低,不便于硬件化。

发明内容
本发明的目的在于解决现有技术中存在的分组公平调度过程中连接的时标更新计算量较大,时标处理较为复杂,从而导致分组调度效率低,不便于硬件化的问题。
为了实现发明目的,本发明提供了一种分组公平调度方法,当前调度接收前一级调度的输出结果,选择具有最小虚拟结束时标的连接的信元调度出队,所述连接具有一个虚拟结束时标,当所述前一级调度的输出结果为新入队信元时,所述当前调度更新所述新入队信元所在连接的虚拟结束时标;在所述具有最小虚拟结束时标的连接的信元调度出队后,所述当前调度取消对所述信元出队后的连接的虚拟结束时标的更新。
在所述当前调度更新所述新入队信元所在连接的虚拟结束时标后,如判断所述虚拟结束时标小于系统势,则刷新所述虚拟结束时标至系统势。
所述新入队信元为所述前一级调度再次输出的信元,如果a)在上一个信元调度周期,所述前一级调度输出的信元已经被最终调度出队,或者,b)在上一个信元调度周期,前一级调度的输出为空。
所述当前调度位于分组公平调度的第n级,其中n>1,为分组公平调度的调度级数。
为了更好地实现发明目的,本发明进一步提供了一种分组公平调度器,至少包括第一调度器,用于将调度出队的信元传输给第二调度器;第二调度器,用于接收所述第一调度器的输出结果,将具有最小虚拟结束时标的连接的信元调度出队,其特征在于,所述第二调度器接收到第一调度器输出的新入队信元时,更新所述新入队信元所在连接的虚拟结束时标,并在所述具有最小虚拟结束时标的连接的信元调度出队后,取消对所述信元出队后的连接的虚拟结束时标的更新。
所述第二公平调度器在更新所述新入队信元所在连接的虚拟结束时标后,如判断所述虚拟结束时标小于系统的系统势,则刷新所述虚拟结束时标至系统势。
所述新入队信元为所述第一公平调度器再次输出的信元,如果a)在上一个信元调度周期,所述第一公平调度器输出的信元已经被最终调度出队,或者,b)在上一个信元调度周期,所述第一公平调度器的输出为空。
所述第二公平调度器位于所述分组公平调度器的第n级,其中n>1,为所述分组公平调度器的调度级数。
为了更好地实现发明目的,本发明还提供了一种数据通信设备,至少包括流量管理器,所述流量管理器至少包括分组公平调度器,所述分组公平调度器至少包括第一调度器,用于将调度出队的信元传输给第二调度器;第二调度器,用于接收所述第一调度器的输出结果,将具有最小虚拟结束时标的连接的信元调度出队;所述第二调度器接收到第一调度器输出的新入队信元时,更新所述新入队信元所在连接的虚拟结束时标,并在所述具有最小虚拟结束时标的连接的信元调度出队后,取消对所述信元出队后的连接的虚拟结束时标的更新。
所述第二公平调度器在更新所述新入队信元所在连接的虚拟结束时标后,如判断所述虚拟结束时标小于系统的系统势,则刷新所述虚拟结束时标至系统势。
所述新入队信元为所述第一公平调度器再次输出的信元,如果a)在上一个信元调度周期,所述第一公平调度器输出的信元已经被最终调度出队,或者,b)在上一个信元调度周期,所述第一公平调度器的输出为空。
所述第二公平调度器位于所述分组公平调度器的第n级,其中n>1,为所述分组公平调度器的调度级数。
通过本发明可以显著地减少计算量,简化时标更新操作,既能保持公平调度器的原始理论公平性,又能简化公平调度器的实现,利用本发明实现的分组公平调度器与现有的分组公平调度器在调度的精确度方面保持一致,但实现结构简单,容易硬件化。


图1是现有技术中分组公平调度方法的实现流程图;图2是本发明提供的分组公平调度方法的实现流程图;图3是实现本发明的分组公平调度器的结构示意图;图4是数据交换芯片的通用逻辑结构图;图5是流量管理器的通用原理图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明应用于分组公平调度器的第n级(n>1),当前调度将前一级调度的调度结果视为一个连接,每个连接只包含一个信元,分组公平调度器维护有每个连接的虚拟结束时标,将理论上无限长的连接视作为只包含一个信元的队列,大大简化调度时的时标计算和选取工作。
对于当前调度,在以下两种情况下才进行虚拟结束时标的更新(1)新入队信元入队时在本发明中,如果在上一个信元调度周期,前一级调度输出的信元已经被最终调度出队或者在上一个信元调度周期,前一级公平调度器输出为空,则前一级调度再次输出的信元被认为是一个新入队信元(New Enqueue,或者NewBacklog),则该新入队信元所对应的连接的虚拟结束时标被更新。
(2)当连接的虚拟结束时标小于系统势时如果出现虚拟结束时标小于系统势的情况,则说明该连接长时间处于不活跃状态,而使虚拟结束时标和系统势的比较失去参考意义,此时如果该连接有信元入队,则该连接的虚拟起始时标必然为系统势。当发生有连接的虚拟结束时标小于系统势时,统一把连接的虚拟结束时标刷新至系统势,即保证系统中所有连接的虚拟结束时标总是不小于系统势,从而避免了复杂的系统势处理过程,而且省去计算连接的起始时标。
由此可见,在本发明中,对于当前调度,如果没有接收到前一级调度输出结果,也根据系统势来更新当前连接的虚拟结束时标,保证当前连接的虚拟结束时标总是大于等于系统势,可以避免出现连接长期不活跃情况下出现的时标“回卷”现象,而且可以不用计算连接的虚拟起始时标。
同时,由于当前调度看作每个连接只包含一个信元,则每一次信元调度出队后都认为该连接为空了,则调度结束后不进行虚拟结束时间的更新,这样相对于现有技术的做法在信元出队后需对该信元所在的原连接进行时标更新减少了一次时标更新操作,在连接数很多的时候可以节约较大的计算量。
图2示出了本发明提供的分组公平调度方法的实现流程,步骤S101中,当前调度接收到前一级调度的输出结果,在步骤S201中,当前调度判断接收到的前一级调度的输出结果是否是新入队信元,如果是新入队信元,则执行步骤S102更新该信元所在连接的虚拟结束时标。如果该信元不是新入队信元,则直接执行步骤S105~107选择具有最小虚拟技术时标的连接,并将该连接的信元调度出队。
在步骤S202中,当前调度判断该连接更新后的虚拟结束时标是否小于系统势,在虚拟结束时标小于系统势时,执行步骤S203将该连接的虚拟结束时标刷新至系统势。
执行步骤S104~106,把具有最小虚拟结束时标的连接的信元调度出队后,不再更新入队信元出队后的连接的虚拟结束时标,进行新一轮调度。
本发明可以采用芯片实现,内置于如ATM交换机、IP路由器等数据通信设备中。芯片中包含有分组公平调度器,支持对队列进行多级分组公平调度,其中二级以上的公平调度器都可以单独或者同时采用本发明的分组公平调度方法,实现队列的快速调度。当然,本发明也可以直接应用在如ATM交换机、IP路由器等数据通信设备中。
作为本发明的一个实施例,图3示出了一种分组公平调度器的结构示意图,其中第一级调度分别采用shVC、WFQ、WRR(Weighted Round-Robin,加权循环)等调度算法,第二级调度采用SCFQ调度算法,第三级调度采用PSCH(Priority Schedule,绝对优先级调度)调度算法。不同优先级的连接按照perVOQ(虚拟输出端口队列)或者per service(服务等级)方式进行排队,其中EF代表(Expedited Forwarding,快速转发),AF代表(Assured Forwarding,保证转发),DF代表(Default Forwarding,缺省转发)在Differ Server(区分服务)中具有不同的服务优先级。EF1 Q、AF1 Q[]代表对应不同目的端口的各自优先级的单播队列,MQ代表多播队列。
以下以公平调度器位于分组公平调度器的第二级,调度算法采用SCFQ算法来进行说明,如果公平调度器是位于其它级的调度(第一级调度除外),调度算法可以采用其它种类的PFQ算法,结论是相同的。
SCFQ公平调度器的实现可以描述如下1.时标更新对SCFQ公平调度器而言,每一个第一级调度输出被视为其的一个连接,每个连接只包含一个信元,在SCFQ中维护有每个连接的虚拟结束时标,在新入队信元入队更新连接的虚拟结束时标,在判断连接的虚拟结束时标小于系统势时,进一步将连接的虚拟时标刷新至系统势。
2.最小虚拟结束时标连接的选取SCFQ公平调度器视每一个第一级公平调度器的输出结果为一个连接,为其保留虚拟结束时标,比较并选择具有最小虚拟结束时标的连接作为调度出队的连接。
3.系统势更新对于SCFQ公平调度器而言,更新系统势为当前连接的最小虚拟结束时标。
4.信元调度出队当把具有最小虚结束时标的连接的信元调度出队后,此时该连接可能实际仍有信元在等待调度,在下一个信元调度周期将会进行调度,按照现有的做法应该更新该连接的虚拟结束时标,而在本发明中由于把整个连接当做是只包含有一个信元的队列,信元出队后该连接即为空,不再进行虚拟结束时标的更新操作。
图4示出了利用本发明的分组公平调度器的数据交换设备构成示意图,主要的逻辑功能部件包括PE(Protocol Engine,协议处理引擎)401,主要进行各种协议的识别和处理,如ATM、IP、MPLS(Multiprotocol Label Switching,多协议标签交换)等,处理完成的数据流送TM进行流量处理;TM(Traffic Manager,流量管理器)402,主要用于进行复杂的流量调度、缓存管理等,本发明的分组公平调度器就是在TM402中进行实现,处理完成的数据流送交换网交换到其它的端口、线卡(Line Card)、FIC(Fabric Interface Chip,交换网接口芯片)403或者SwitchingFabric(交换网芯片)404等交换网接口以及大容量交换网,进行大容量数据交换。其中,PE401与TM402之间通过SPI4.2(System Packet Interface Level 4 Phase2,系统信息包接口)协议通信,TM402与FIC403之间通过CSIX(CommonSwitch Interface Consortium,通用交换接口)协议通信,PE401和TM402是组成线卡的主要功能部件,调度性能直接决定设备的性能,尤其在10G以上的高端设备中,简捷、高效的调度算法对设备的实时性能影响很大。
图5示出了应用于IP数据交换的流量管理器的通用原理框图,包括策略器4011、队列管理器4012、调度器4013、统计器4014、整形器4015、网络处理器(Network Processor,NP)4016、存储管理器4017、CTR SRAM(Static RAM,静态随机存取存储器)4018、Host I/F(主机接口)4019、队列表4020、VoQ(Virtual output Queue,虚拟输出队列)4021以及交换接口(Switch)4022,I/F表示接口(Interface),BP表示绑定协议(Bind Protocol),CTR表示点进率(Click Through Rate),其中策略器4011,通过智能化地丢弃分组来防止缓存出现溢出的现象,由此来提高网络的效率;队列管理器4012,负责流量队列的维护;调度器4013,负责确定哪一个非空队列可以被用来传送下一个数据包,利用本发明提供的分组公平调度器进行队列调度;统计器4014,也被称为“计量器”,提供信息以说明分组的发送接收是否符合了SLA(Service Level Agreement,服务水平协议)的要求;整形器4014,对分组进行延迟处理,提供临时的缓存来确保输出的流量可以满足一定的分布要求。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种分组公平调度方法,当前调度接收前一级调度的输出结果,选择具有最小虚拟结束时标的连接的信元调度出队,所述连接具有一个虚拟结束时标,其特征在于,当所述前一级调度的输出结果为新入队信元时,所述当前调度更新所述新入队信元所在连接的虚拟结束时标;在所述具有最小虚拟结束时标的连接的信元调度出队后,所述当前调度取消对所述信元出队后的连接的虚拟结束时标的更新。
2.如权利要求1所述的分组公平调度方法,其特征在于,在所述当前调度更新所述新入队信元所在连接的虚拟结束时标后,如判断所述虚拟结束时标小于系统势,则刷新所述虚拟结束时标至系统势。
3.如权利要求1所述的分组公平调度方法,其特征在于,所述新入队信元为所述前一级调度再次输出的信元,如果a)在上一个信元调度周期,所述前一级调度输出的信元已经被最终调度出队,或者,b)在上一个信元调度周期,前一级调度的输出为空。
4.如权利要求1所述的分组公平调度方法,其特征在于,所述当前调度位于分组公平调度的第n级,其中n>1,为分组公平调度的调度级数。
5.一种分组公平调度器,至少包括第一调度器,用于将调度出队的信元传输给第二调度器;第二调度器,用于接收所述第一调度器的输出结果,将具有最小虚拟结束时标的连接的信元调度出队,其特征在于,所述第二调度器接收到第一调度器输出的新入队信元时,更新所述新入队信元所在连接的虚拟结束时标,并在所述具有最小虚拟结束时标的连接的信元调度出队后,取消对所述信元出队后的连接的虚拟结束时标的更新。
6.如权利要求5所述的分组公平调度器,其特征在于,所述第二公平调度器在更新所述新入队信元所在连接的虚拟结束时标后,如判断所述虚拟结束时标小于系统的系统势,则刷新所述虚拟结束时标至系统势。
7.如权利要求5所述的分组公平调度器,其特征在于,所述新入队信元为所述第一公平调度器再次输出的信元,如果a)在上一个信元调度周期,所述第一公平调度器输出的信元已经被最终调度出队,或者,b)在上一个信元调度周期,所述第一公平调度器的输出为空。
8.如权利要求5所述的分组公平调度器,其特征在于,所述第二公平调度器位于所述分组公平调度器的第n级,其中n>1,为所述分组公平调度器的调度级数。
9.一种数据通信设备,至少包括流量管理器,所述流量管理器至少包括分组公平调度器,所述分组公平调度器至少包括第一调度器,用于将调度出队的信元传输给第二调度器;第二调度器,用于接收所述第一调度器的输出结果,将具有最小虚拟结束时标的连接的信元调度出队,其特征在于,所述第二调度器接收到第一调度器输出的新入队信元时,更新所述新入队信元所在连接的虚拟结束时标,并在所述具有最小虚拟结束时标的连接的信元调度出队后,取消对所述信元出队后的连接的虚拟结束时标的更新。
10.如权利要求9所述的数据通信设备,其特征在于,所述第二公平调度器在更新所述新入队信元所在连接的虚拟结束时标后,如判断所述虚拟结束时标小于系统的系统势,则刷新所述虚拟结束时标至系统势。
11.如权利要求9所述的数据通信设备,其特征在于,所述新入队信元为所述第一公平调度器再次输出的信元,如果a)在上一个信元调度周期,所述第一公平调度器输出的信元已经被最终调度出队,或者,b)在上一个信元调度周期,所述第一公平调度器的输出为空。
12.如权利要求9所述的数据通信设备,其特征在于,所述第二公平调度器位于所述分组公平调度器的第n级,其中n>1,为所述分组公平调度器的调度级数。
全文摘要
本发明适用于数据通信领域,提供了一种分组公平调度方法,当前调度接收前一级调度的输出结果,选择具有最小虚拟结束时标的连接的信元调度出队,所述连接具有一个虚拟结束时标,当所述前一级调度的输出结果为新入队信元时,所述当前调度更新所述新入队信元所在连接的虚拟结束时标;在所述具有最小虚拟结束时标的连接的信元调度出队后,所述当前调度取消对所述信元出队后的连接的虚拟结束时标的更新。本发明简化了连接的时标更新操作,可以显著地减少计算量,简化公平调度器的实现。
文档编号H04L12/56GK1845526SQ20051003408
公开日2006年10月11日 申请日期2005年4月7日 优先权日2005年4月7日
发明者宾兵 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1