首页> 中国专利> 在以太网交换芯片上实现多级调度的方法

在以太网交换芯片上实现多级调度的方法

摘要

本发明提供了一种在以太网交换芯片上实现多级调度的方法,其包括:步骤1,设置每个一级队列的总带宽,以及一级队列中的每个二级队列的保证带宽、非保证带宽、以及同一个一级队列中各个二级队列之间的调度算法;步骤2,读取一级队列和二级队列在一个时刻的实际速率;步骤3,依次计算每个一级队列中各个二级队列的最终速率;步骤4,根据计算出的各个二级队列的最终速率,对实际速率大于最终速率的二级队列进行限速;以及步骤5,等待预定时间,从步骤2开始重新进行调度。因而,能够在限制单个服务商流量的同时,保证其内部不同业务按照预先设定的优先级和调度算法进行独立的区分服务,从而达到了很好的对复杂流量进行管理的效果。

著录项

  • 公开/公告号CN101102275A

    专利类型发明专利

  • 公开/公告日2008-01-09

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN200710123003.4

  • 发明设计人 郭敬立;

    申请日2007-06-25

  • 分类号H04L12/56;H04L12/46;H04L12/02;

  • 代理机构北京康信知识产权代理有限责任公司;

  • 代理人尚志峰

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦

  • 入库时间 2023-12-17 19:32:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-08-04

    授权

    授权

  • 2008-02-27

    实质审查的生效

    实质审查的生效

  • 2008-01-09

    公开

    公开

说明书

技术领域

本发明涉及以太网交换机的质量服务技术,更具体地,涉及一种在以太网交换芯片上实现多级调度的方法。

背景技术

随着网络应用飞速发展,新型业务不断出现,例如,IP语音和视频会议等非传统数据通信业务,能够融合语音、视频、数据的三网合一是网络发展的趋势。对于具有不同网络服务要求的语音、视频和数据应用通信而言,要求IP网络核心具有区分出不同的通信的能力,进而为之提供不同的服务,达到区分服务的目的。QoS(Qualityof Service)服务质量技术的出现便是致力于达到区分服务、保证服务质量的目的。QoS旨在针对各种应用的不同需求,为其提供不同的服务质量。

目前比较流行的Diffserv模型,主要是利用基于二层的COS(IEEE802.1p)字段和基于IP层的DSCP字段来将报文加以区分,给其分配不同的优先级,在网络发生拥塞的时候按照一定的丢弃策略如SP(Strict Priority)调度,WRR(Weighted Round Robin)调度等对不同优先级的报文有选择的进行丢弃,从而提供针对不同业务的服务质量技术。

随着宽带接入技术的进一步发展,单一依靠COS字段或者DSCP字段来实现服务质量显得越来越不能满足运营商的需求。很多时候,运营商是一种出售带宽的角色,利用虚拟局域网等技术,向不同的服务提供商出售带宽;而在同一服务提供商的数据包里,由于还存在着多种业务,其优先级各不相同,这时同样需要进行Diffserv的质量服务,这实际是是要求交换设备提供一种多级队列调度功能,而多数的以太网交换芯片只能做到基于COS值或DSCP值的单级队列调度,难以满足运营商的需求。

另一方面,以太网交换芯片虽然多数提供了限速的功能,通过控制特定流量的速率来达到QoS效果,但是这种功能往往只能对某种特殊特征的数据流进行限速,如图1所示,而难以达到多级限速的效果。

因而,为了解决上述问题,急需一种能够在以太网交换芯片上实现多级调度的方法。

发明内容

为了解决上述问题,本发明提供了一种在以太网交换芯片上实现多级调度的方法,用于在以太网交换芯片上实现复杂的流量管理。

本发明提供了一种在以太网交换芯片上实现多级调度的方法,其包括以下步骤:步骤1,设置每个一级队列的总带宽,以及一级队列中的每个二级队列的保证带宽、非保证带宽、以及同一个一级队列中各二级队列之间的调度算法;步骤2,读取一级队列和二级队列在一个时刻的实际速率;步骤3,依次计算每个一级队列中各个二级队列的最终速率;步骤4,根据计算出的各个二级队列的最终速率,对实际速率大于最终速率的二级队列进行限速;以及步骤5,等待预定时间,从步骤2开始重新进行调度。

在步骤2中,实际速率的读取是由交换芯片所提供的计数器实现的。

在步骤3中,计算包括以下步骤:从总带宽中减去所有二级队列实际流量中未超过保证带宽的部分;根据预先设定的队列调度算法,将剩余带宽分配给各个二级队列以满足各个二级队列的非保证带宽,得到每个二级队列所分配到的实际非保证带宽;以及用每个二级队列的保证带宽加上实际非保证带宽,以得到二级队列的最终速率。

在步骤4中,限速是通过交换芯片的限速功能实现的。

其中,保证带宽是无论网络是否拥塞,交换芯片保证队列最多可达到的出队速率。非保证带宽是队列超出保证带宽的速率所能达到的最大值。二级队列是具有层级关系的至少一个更低级别的队列。

因而,利用上面所提出的方法,能够在普通的交换芯片上实现复杂的流量管理,在多个服务商的业务流通过同一块交换芯片时,能够在限制单个服务商流量的同时,保证其内部不同业务按照预先的设定的优先级和调度算法进行独立的区分服务,从而达到了很好的效果,这是原先仅依靠芯片自有的调度所无法做到的。实际上上面的方法可以进行推广,将所有队列的保证带宽全部设置为0的时候,就可以达到队列之间完全按照优先级来抢占带宽的效果。另一方面,上面的方法是一种二级调度,如果有需求,可以再设置约束,比如两个运行商的业务流总和是一定的,将上面的最终速率计算方法稍加改动,则可以实现更为复杂的三级调度。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1是现有技术中的以太网交换芯片提供的单级调度模式的示意图;

图2是本发明中的以太网交换芯片上实现多级调度模式的示意图;以及

图3是根据本发明的在以太网交换芯片上实现多级调度的方法的流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

本发明所要解决的技术问题是:在以太网交换芯片上实现复杂的流量管理,提出了一种综合利用软硬件资源来实现多级调度的方法。

首先,假设一台交换机上,现在有两个服务提供商同时通过它提供服务,网络运营商出售给服务提供商(SP,service provider)A的带宽为30Mbps,B的带宽为20Mbps。就传统的限速管理方法而言,通常来自不同服务提供商数据流会有不同的特征(比较常见的是利用VLANID来区分),这时候在交换芯片上利用限速的功能,对两种不同特征的流分别限制速率30Mbps和20Mbps,也就可以满足需求。

但是更多时候,用户需求不限于此,由于每个服务提供商自身可能提供多种不同的业务,例如语音,视频和数据等等,通常这些不同业务的优先级也不一样。对于服务提供商B而言,假设语音,视频,数据三种业务优先级从高到低,需要进行SP(严格优先级)调度,现在三种业务流量均为10Mbps,理论上应该只有前两种业务流通过,10Mbps数据业务应该都被丢弃,但是按照传统的限速的效果是不可能这样的,芯片只会从这30Mbps流量中随机的选择20Mbps予以通过。

基于此,本发明采用以下技术方案:将一个端口的物理传输能力划分为几条粗的一级队列,这些一级队列可以对应于不同的服务提供商,他们之间用不同的一级流特征(例如VLANID或者其它数据段)区分开来。在同一一级队列内部,可以再划分出一些细的管道,通常是利用COS值(或者是其它特征,这里称为二级流特征)来进行区分,将各种业务归入不同的二级队列,这里系统能够支持的二级队列的数量由交换芯片的硬件资源来决定,队列之间可以选择不同的调度算法如SP,WRR等。

对于上面的每个二级队列,借鉴ATM交换的QoS思想,引入两个参数,保证带宽和非保证带宽。保证带宽的意义是说无论拥塞与否,交换芯片保证此队列最多能达到的出队速率,非保证带宽的意义是该队列超出保证带宽的那一部分速率所能够达到的最大值,但是这部分带宽是不受保障的,如果发生拥塞,超过保证带宽的流量根据拥塞程度会被丢弃一些甚至是全部。多数以太网交换芯片都有计数功能,利用这个功能可以周期性的对特定特征的流进行计数,测算出所有的二级队列,也就是特定一级队列内部归属不同队列的业务流的速率S0。

根据上面测得的各二级队列实际速率和各个队列带宽参数设置,进行计算,得出在多级调度的情形下该一级队列内各队列最终能够允许通过的速率。计算方法是,首先从该一级队列总带宽里面减掉该队列内所有二级队列保证带宽的总和(这里实际上也约束了同一一级队列内所有二级队列保证带宽的总和不能大于一级队列总带宽,这个约束和保证带宽的实际意义不矛盾),如果一级队列总带宽还有剩余,则剩余带宽在该队列内各个二级队列之间按照预先设定的调度算法来进行计算。对于一个二级队列而言,计算出的理论值S1加上保证带宽,就得到该队列的最终速率S。

利用交换芯片提供的限速功能,结合上面计算得到的各个二级队列的最终速率S,对这些队列(也就是匹配了特定一级和二级特定流特征的业务流)进行限速,也就能够达到多级调度的效果。

图2是本发明中的以太网交换芯片上实现多级调度模式的示意图。如图2所示,假设在一台交换机上有A和B两个服务提供商的业务经过,两个服务商业务流总带宽分别为30Mbps和20Mbps,各有三种业务流1,2,3,优先级从高到低。根据实际需要,设置各种业务流的保证带宽和非保证带宽如下:

    服务商    业务流    保证带宽    (Mbps)    非保证带宽    (Mpbs)    A    1    1    30    2    5    10    3    0    30    B    1    0    20    2    0    20    3    0    20

此处,以队列之间调度算法为严格优先级调度(SP)为例。

利用交换芯片的计数器,对每个二级队列进行周期性的计数以计算速率,在某个时间点,交换芯片测得各二级队列的速率如下:

    服务商    业务流  速率(Mbps)    A    1  10    2  20    3  10    B    1  15    2  10    3  1

首先计算服务商A各二级队列的最终速率,根据上面提出的计算方法,首先从总带宽减掉所有的保证带宽,还剩24Mbps,然后按照优先级,首先业务流1的非保证带宽能够满足到24Mbps,但是流1本身除掉保证之外流量只有9Mbps,因此此时剩余带宽还有15Mbps,分配给流2的非保证带宽10Mbps,剩下的5Mbps则分配给流3。依此类推,可以计算出所有二级队列的最终速率如下:

    服务商    业务流    速率(Mbps)    A    1    10    2    15    3    5    B    1    15    2    5    3    0

根据上面的计算结果,可以在交换芯片上对各个二级队列进行限速,也就达到了这个时刻多级调度的效果,周期性的重复上述操作,就可以达到很好的多级调度效果。

图3是根据本发明的在以太网交换芯片上实现多级调度的方法的流程图。如图3所示,该方法包括以下步骤:

步骤S302,设置每个一级队列的总带宽,以及一级队列中的每个二级队列的保证带宽、非保证带宽、以及同一一级队列中各二级队列之间的调度算法;

步骤S304,读取一级队列和二级队列在一个时刻的实际速率;

步骤S306,依次计算每个一级队列中各个二级队列的最终速率;

步骤S308,根据计算出的各个二级队列的最终速率,对实际速率大于最终速率的二级队列进行限速;以及

步骤S310,等待预定时间,从步骤S304开始重新进行调度。

在步骤S304中,实际速率的读取是由交换芯片所提供的计数器实现的。

在步骤S306中,计算包括以下步骤:从总带宽中减去所有二级队列实际流量中未超过保证带宽的部分;根据预先设定的队列调度算法,将剩余带宽分配给各个二级队列以满足各个二级队列的非保证带宽,得到每个二级队列所分配到的实际非保证带宽;以及用每个二级队列的保证带宽加上实际非保证带宽,以得到二级队列的最终速率。

在步骤S308中,限速是通过交换芯片的限速功能实现的。

其中,保证带宽是无论网络是否拥塞,交换芯片保证队列最多可达到的出队速率。非保证带宽是队列超出保证带宽的速率所能达到的最大值。二级队列是具有层级关系的至少一个更低级别的队列。

因而,应用本发明的方法,在普通的交换芯片上实现复杂的流量管理,在多个服务商的业务流通过同一块交换芯片时,能够在限制单个服务商流量的同时,保证其内部不同业务按照预先的设定的优先级和调度算法进行独立的区分服务,从而达到了很好的效果。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号