CN101378364A - 广域网出口调度方法及单元 - Google Patents
广域网出口调度方法及单元 Download PDFInfo
- Publication number
- CN101378364A CN101378364A CNA2008102233072A CN200810223307A CN101378364A CN 101378364 A CN101378364 A CN 101378364A CN A2008102233072 A CNA2008102233072 A CN A2008102233072A CN 200810223307 A CN200810223307 A CN 200810223307A CN 101378364 A CN101378364 A CN 101378364A
- Authority
- CN
- China
- Prior art keywords
- bandwidth
- wan
- passage
- message
- dequeue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了广域网出口调度方法及单元。方法包括:在第一调度单元内设置出队列,并针对每个WAN出口内的每个通道,统计发往该通道的、已入所述出队列的报文长度,当第一调度单元接收报文时,判断该报文的WAN出口和出通道对应的已入所述出队列的报文长度统计值是否小于该出通道的带宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列。本发明提高了WAN出口调度的精确性。
Description
技术领域
本发明涉及接口适配技术领域,具体涉及一种广域网(WAN,Wide AreaNetwork)出口调度方法及单元。
背景技术
在数据通信领域中,特别是在以因特网协议(IP,Internet Protocol)路由或交换为核心的路由器和交换机领域,往往需要实现WAN口的接入适配。在传统的中低端路由器,往往采用外围元件扩展接口(PCI,PeripheralComponent Interface)或其它中央处理单元(CPU,Central Processing Unit)架构完成对WAN的接入处理。而随着处理带宽的不断提高,在高端交换机和高端路由器设计中,越来越多的采用硬件完成对WAN口的适配,实现分布式处理,如采用专用集成电路(ASIC,Application Specific IntegratedCircuit)或现场可编程门阵列(FPGA,Field Programmable Gate Array)来适配各自的处理模块。
WAN口的一个重要特点是通道化。这样,在一些用FPGA实现WAN接口适配的过程中,片间需要实现大规格数量的通道化出口调度处理。由于接口帧适配芯片缺少大规格的通道缓存,需要提供一种WAN接口调度适配方法。
高端交换机或高端路由器基本模型如图1所示,在WAN出口侧,IP报文经过下行包处理和包调度之后,送给FPGA,FPGA完成帧适配包括:接口适配、报文格式适配。同时,由于IP流量管理(TM,Traffic Management)调度策略与WAN TM调度策略的差异、通道化带宽以及接口的流控特性,FPGA需要完成对WAN通道的出口调度,以防止通道间相互影响,实现通道线速转发。
图2给出了在应用场景一下WAN出接口片间互连实现的架构图,图3给出了在应用场景二下WAN TM如:ATM TM的接口适配架构图,如图2、3所示,WAN出口由两片芯片组成,FPGA 1为IP包处理(PP)和TM的一部分,其涉及的逻辑部分为WAN口的出口队列调度处理,该逻辑往往在高端设备的接口处理板;FPGA 2为帧适配模块或者WAN TM模块的一部分,其涉及的逻辑部分为接口的适配处理,该逻辑往往在出接口子卡实现,以适配不同的WAN接口。这样在系统设计中往往就涉及到两芯片互相适配的问题,特别是在出端口通道化较多的情况下,如何实现芯片间的出口大规格通道调度是一个问题。
图4为现有方案的WAN口适配逻辑实现框图,如图4所示,该方案在FPGA 1和FPGA 2均不实现调度和缓存,而通过FPGA 1中的约定访问速率(CAR,Committed Access Rate)模块实现流量监管,CAR模块根据各WAN出口通道的带宽定时刷新自身为各通道设置的令牌桶的令牌数,对于每个通道而言,只有在通道的令牌桶中有令牌时,才允许发往该通道的报文入队列;否则,拒绝发往该通道的报文入队列。
现有方案的缺点如下:
CAR模块是采用定时刷新机制保证带宽的,若在两次定时刷新时刻之间,某个通道的带宽由空闲变为拥塞,则CAR模块无法得知,此时,只要当前该通道的令牌桶中仍然有令牌,CAR模块就会作出继续向该通道发送流量的决定,这样,不仅会导致流量传输失败,也会浪费系统资源;另外,各个CAR通道的总带宽会超过出口带宽,由于CAR模块之后的出口队列采用单一队列,不再有调度,则要求队列的长度要足够深来满足各个通道满带宽的需要,否则需要考虑出口队列满对CAR模块的影响。即便采用多级CAR的方案也很难规避通道间的相互影响。
发明内容
本发明提供WAN出口调度方法及单元,以提高WAN出口调度的精确性。
本发明的技术方案是这样实现的:
一种WAN出口调度方法,应用在包含第一调度单元和第二调度单元的WAN出口中,在第一调度单元内设置出队列;该方法包括:
针对每个WAN出口内的每个通道,第一调度单元统计发往该通道的、已入所述出队列的报文长度;
第一调度单元接收报文,确定该报文的WAN出口和出通道,判断该WAN出口和出通道对应的已入所述出队列的报文长度统计值是否小于该出通道的带宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列。
所述出队列长度等于所有WAN出口的带宽阈值之和。
所述在第一调度单元内设置出队列之前进一步包括:
计算所有WAN出口的最大带宽/粒度、所有WAN出口的最小带宽粒度、所有WAN出口内所有通道的最大带宽/粒度、所有WAN出口内所有通道的最小带宽/粒度的最大公约数;
对于每个WAN出口,计算该WAN出口的带宽/粒度与所述最大公约数的商值,计算该商值与预设大于1系数的乘积,得到该WAN出口的带宽阈值;
对于每个WAN出口内的每个可保证带宽的通道,计算该通道的带宽/粒度与所述最大公约数的商值,计算该商值与预设大于1系数的乘积,得到该可保证带宽通道的带宽阈值。
所述WAN出口内包含不可保证带宽通道;
所述得到该可保证带宽通道的带宽阈值之后进一步包括:
计算该WAN出口的带宽阈值与该WAN出口内所有可保证带宽通道的带宽阈值和的差值,得到该WAN出口内所有不可保证带宽通道的共用带宽阈值。
当所述WAN出口为非固定时隙端口时,
所述方法进一步包括:每当WAN出口内有通道使能,则返回执行计算该通道的带宽/粒度与所述最大公约数的商值的动作。
所述在第一调度单元内设置出队列为:在第一调度单元内设置一个出队列;
或者,当所述通道具有优先级时,
所述在第一调度单元内设置出队列为:在第一调度单元内设置数目与通道的优先级数相同的出队列,且每个出队列分别与优先级与该出队列优先级相同的所有通道对应。
当所述通道具有优先级时,所述在第一调度单元内设置数目与优先级数相同的出队列进一步包括:在第二调度单元内设置数目与通道的优先级数相同的入队列;
所述方法进一步包括:确定要发送报文,从第一调度单元的出队列取出报文,将报文发送给第二调度单元的入队列,该入队列和出队列的优先级相同。
一种WAN出口调度单元,包括:
出队列设置模块,设置出队列;
通道报文长度统计模块,针对每个WAN出口内的每个通道,计算发往该通道的、已入所述出队列的报文长度统计值;
队列调度模块,接收报文,确定该报文的WAN出口和出通道,从通道报文长度统计模块获取该WAN出口和出通道对应的已入所述出队列的报文长度统计值,若该统计值小于该出通道的带宽阈值,允许报文入所述出队列;否则,拒绝报文入所述出队列。
所述通道报文长度统计模块包括:
第一统计模块,针对每个WAN出口内的每个可保证带宽通道,计算发往该通道的、已入所述出队列的第一报文长度统计值;
第二统计模块,针对每个WAN出口内的所有不可保证带宽通道,计算发往该WAN出口内所有不可保证带宽通道的、已入所述出队列的第二报文长度统计值;
所述队列调度模块包括:
通道类型判断模块,接收报文,确定该报文的WAN出口和出通道,判断该出通道是否为可保证带宽通道,若是,从第一统计模块获取第一报文长度统计值发送给调度模块;否则,从第二统计模块获取第二报文长度统计值发送给调度模块;
调度模块,判断第一报文长度统计值是否小于报文对应的出通道的带宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列;和/或,
判断第二报文长度统计值是否小于报文对应的WAN出口内所有不可保证带宽通道的共用带宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列。
所述调度单元进一步包括:
带宽基准确定模块,计算所有WAN出口的最大带宽/粒度、所有WAN出口的最小带宽粒度、所有WAN出口内所有通道的最大带宽/粒度、所有WAN出口内所有通道的最小带宽/粒度的最大公约数,将该最大公约数输出到端口带宽阈值计算模块;
端口带宽阈值计算模块,对于每个WAN出口,计算该端口的带宽/粒度与该接收到的最大公约数的商值,计算该商值与预设大于1系数的乘积,得到该WAN出口的带宽阈值,将各WAN出口的带宽阈值输出到出队列设置模块;
且,所述出队列设置模块将出队列长度设置为所有WAN出口的带宽阈值之和。
所述调度单元进一步包括:
第一通道带宽阈值计算模块,接收带宽基准确定模块发来的最大公约数,计算每个可保证带宽通道的带宽/粒度与该最大公约数的商值,计算该商值与预设大于1系数的乘积,得到该通道的带宽阈值,将各可保证带宽通道的带宽阈值输出到队列调度模块,
且,当所述队列调度模块收到的报文对应的出通道为可保证带宽通道时,若从通道报文长度统计模块获取的统计值小于该可保证带宽通道的带宽阈值,则允许报文入所述出队列。
所述调度单元进一步包括:
第二通道带宽阈值计算模块,接收端口带宽阈值计算模块发来的各包含不可保证带宽通道的WAN出口的带宽阈值,接收第一通道带宽阈值计算模块发来的各包含不可保证带宽通道的WAN出口内各可保证带宽通道的带宽阈值,对于每个包含不可保证带宽通道的WAN出口,计算该WAN出口的带宽阈值与所有可保证带宽通道的带宽阈值和的差值,将该差值作为该WAN出口的所有不可保证带宽通道的共用带宽阈值发送给队列调度模块,
且,当所述队列调度模块收到的报文的出通道为不可保证带宽通道时,从通道报文长度统计模块获取的统计值为发往该报文的WAN出口内所有不可保证带宽通道的已入所述出队列的报文长度统计值,且若该统计值小于该WAN出口的所有不可保证带宽通道的共用带宽阈值,则允许报文入所述出队列。
所述出队列设置模块包括:
优先级数接收模块,接收所有WAN出口的所有通道的优先级数,将该优先级数输入到设置模块,
设置模块,设置数目与优先级数相同的出队列,且每个出队列分别与优先级与该出队列优先级相同的所有通道对应。
所述调度单元为FPGA或ASIC。
与现有技术相比,本发明根据每个通道的带宽阈值来控制每个通道的流量,只有在发往通道的已入队列的报文长度小于该通道的带宽阈值时,才允许新报文入队列,避免了流量传输失败,从而提高了WAN出口调度的精确性,且保证了每个通道的带宽都不会出现拥塞现象,从而减少了系统资源的浪费;
另外,本发明实施例中,根据所有WAN出口的带宽阈值之和来设置出队列长度,从而无需设置过深的出队列,节省了资源。
附图说明
图1为高端交换机或高端路由器基本模型图;
图2为在应用场景一下WAN出接口片间互连实现的架构图;
图3为在应用场景二下WAN TM的接口适配架构图;
图4为现有方案的WAN口适配逻辑实现框图;
图5为本发明实施例提供的计算WAN出口及通道的带宽阈值的流程图;
图6为本发明实施例一提供的进行WAN出口调度的流程图;
图7为本发明实施例二提供的进行WAN出口调度的流程图;
图8为本发明实施例提供的WAN出口调度单元的组成图一;
图9为本发明实施例提供的通道报文长度统计模块和队列调度模块的结构示意图;
图10为本发明实施例提供的WAN出口调度单元的组成图二;
图11为本发明实施例提供的出队列设置模块的结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明的核心思想是:FPGA 1设置出队列,FPGA 1分别对发往每个通道的已入该出队列的报文长度进行统计,若发往某个通道的已入该出队列的报文长度小于该通道的带宽阈值,则允许报文入该出队列;否则,拒绝报文入该出队列。
在本发明实施例中,出队列的长度是由所有WAN出口的带宽阈值之和决定的,因此,首先要计算每个WAN出口的带宽阈值,同时要计算WAN出口下各通道的带宽阈值,以便设置每个通道可允许的最大报文长度。
以下对计算WAN出口及通道的带宽阈值的过程,以及根据WAN出口的带宽阈值设置出队列并根据通道带宽阈值进行WAN出口调度的过程分别进行说明。
图5为本发明实施例提供的计算WAN出口及通道的带宽阈值的流程图,如图5所示,其具体步骤如下:
步骤501:计算各个WAN出口的带宽/粒度,在所有WAN出口的带宽/粒度中,选择最大带宽/粒度和最小带宽/粒度。
粒度为最小带宽单位,如64Kbps等,带宽/粒度为每秒最多转发的粒度单位的数量。
步骤502:对于每个WAN出口,计算该WAN出口内各通道的带宽/粒度。
若WAN出口为固定时隙端口如:CE1端口,则时隙即等同于通道,计算每个通道的带宽/粒度时所使用的带宽即为每个时隙的带宽。
若WAN出口为ATM PVC端口,由于端口内可包括:恒定比特率(CBR,Constant Bit Rate)、可变比特率(VBR,Variable Bit Rate)、未定比特率(UBR,Unspecified Bit Rate)等通道,其中,CBR、VBR通道为可保证带宽通道,UBR通道为不可保证带宽通道,本步骤中只需计算CBR、VBR通道的带宽/粒度,其中,CBR、VBR通道在计算带宽/粒度时所使用的带宽不同,分别如下:
1、对于CBR通道,可采用该通道的突发带宽;
2、对于VBR通道,可采用该通道的平均带宽。
步骤503:在所有WAN出口内的所有通道的带宽/粒度中,选择最大带宽/粒度和最小带宽/粒度。
步骤504:计算所有WAN出口的最大带宽/粒度、所有WAN出口的最小带宽粒度、所有WAN出口内的所有通道的最大带宽/粒度、所有WAN出口内的所有通道的最小带宽/粒度的最大公约数BW0。
步骤505:对于每个WAN出口,通过以下公式计算各WAN出口的带宽阈值:
BWPjth=(BWPj/BW0)*a (1)
其中,BWPjth为第j个WAN出口的带宽阈值,BWPj为第j个WAN出口的带宽/粒度,j为正整数,a为预设正整数,且a>1,通常取a=2或3。
步骤506:对于每个WAN出口内每个可保证带宽的通道,通过以下公式计算各通道的带宽阈值:
BWIjkth=(BWIjk/BW0)*a (2)
其中,BWIjkth为第j个WAN出口内第k个可保证带宽的通道的带宽阈值,BWIjk为第j个WAN出口内第k个可保证带宽的通道的带宽/粒度,k=1、2、...、Kj,Kj为第j个WAN出口内可保证带宽的通道的数目,a为预设正整数,且a>1,通常取a=2或3。
步骤507:对于每个WAN出口内的不可保证带宽的通道,通过以下公式计算各WAN出口内所有不可保证带宽通道的共用带宽阈值:
对于固定时隙的WAN出口如:CE1端口,该端口内的通道都是可保证带宽的;而对于非固定时隙的WAN出口如:ATM PVC端口,该端口内不仅包括可保证带宽的通道如:CBR、VBR通道,还包括不可保证带宽的通道如:UBR通道。所有不可保证带宽的通道共享共用带宽,因此本步骤中需要计算WAN出口内所有不可保证带宽通道的共用带宽阈值。
步骤508:将各个WAN出口的带宽阈值BWPjth,每个WAN出口内各个可保证带宽通道的带宽阈值BWIjkth、每个WAN出口内所有不可保证带宽通道的共用带宽阈值BWIjXth配置在FPGA 1上。
若WAN出口为固定时隙端口,则不存在不可保证带宽通道的共用带宽阈值,只需在FPGA1上配置各个WAN出口的带宽阈值,每个WAN出口内各个可保证带宽通道的带宽阈值。
需要说明的是,对于非固定时隙的WAN出口例如:ATM PVC端口,由于其通道数是变化的,每当有通道使能且该通道为可保证带宽通道时,就需要执行步骤506来得到该通道的带宽阈值,然后执行步骤507来更新该WAN出口内所有不可保证带宽通道的共用带宽阈值,并将该使能的通道的带宽阈值配置到FPGA 1上,同时以更新的该WAN出口内所有不可保证带宽通道的共用带宽阈值更新FPGA 1上该WAN出口内所有不可保证带宽通道的共用带宽阈值。
图6为本发明实施例一提供的根据WAN出口的带宽阈值设置出队列并根据通道带宽阈值进行WAN出口调度的流程图,如图6所示,其具体步骤如下:
步骤601:FPGA 1在自身设置一个出队列,该出队列长度等于所有WAN出口的带宽阈值之和。
可见,WAN出口的带宽阈值之和是设置出队列长度的基准,在实际应用中,也可在该基准之前、之后一定范围内选择一个值作为出队列的长度。
步骤602:FPGA 1为每个WAN出口内的每个可保证带宽的通道设置一个入队列报文长度统计值CIjk,为每个WAN出口内所有不可保证带宽的通道设置一个入队列报文长度统计值CIjX,并初始化CIjk=0,CIjX=0,其中,k=1、2、...、Kj,Kj为第j个WAN出口内可保证带宽的通道数目。
步骤603:FPGA 1收到一个报文,从报文中获取该报文的WAN出口号j和出通道号。
步骤604:FPGA 1判断出通道是否为可保证带宽通道,若是,执行步骤605;否则,执行步骤607。
步骤605:FPGA 1判断出通道对应的CIjk是否满足:CIjk<BWIjkth,若是,执行步骤606;否则,执行步骤609。
步骤606:FPGA 1将报文入该出队列,且将CIjk加上该报文的长度,转至步骤610。
步骤607:FPGA 1判断WAN出口对应的CIjX是否满足:CIjX<BWIjXth,若是,执行步骤608;否则,执行步骤609。
步骤608:FPGA 1将报文入该出队列,且将CIjX加上该报文的长度,转至步骤610。
步骤609:FPGA 1拒绝报文入该出队列。
FPGA 1可将报文丢弃或者反压至前级芯片。
步骤610:FPGA 1要发送报文,确定报文的WAN出口号j和出通道号。
步骤611:FPGA 1判断报文的出通道是否为可保证带宽通道,若是,执行步骤612;否则,执行步骤613。
步骤612:FPGA 1将报文发送给FPGA2,同时,将WAN出口和出通道对应的CIjk减去该报文长度,本流程结束。
步骤613:FPGA 1将报文发送给FPGA 2,同时,将WAN出口对应的CIjX减去该报文长度。
若WAN出口为固定时隙端口,则可不执行步骤604、607、608以及步骤611、613。
由于在FPGA 1处已经实现了流量的可靠调度,因此,本发明中,对FPGA 2的缓存不作要求,FPGA2提供入队列即可。
图6所示实施例中未考虑到各通道的优先级要求,即默认所有通道的优先级相同,而在实际应用中,WAN出口中的通道可能具有多个优先级,以下给出考虑通道的优先级要求的实施例:
图7为本发明实施例二提供的根据WAN出口的带宽阈值设置出队列并根据通道带宽阈值进行WAN出口调度的流程图,如图7所示,其具体步骤如下:
步骤701:FPGA 1根据通道的优先级要求,在自身为每个优先级设置一个出队列,每个出队列的长度等于所有WAN出口的带宽阈值之和;同时,FPGA 2根据通道的优先级要求,在自身为每个优先级设置一个入队列。
入队列的长度不限。
若所有WAN出口的通道共分M个优先级,则FPGA 1设置M个出队列。FPGA 2设置M个入队列,M为正整数。
步骤702:对于每个出队列,FPGA 1为与该出队列的优先级对应的每个可保证带宽的通道设置一个入队列报文长度统计值CImjk,为与该出队列的优先级对应的每个WAN出口内所有不可保证带宽的通道设置一个入队列报文长度统计值CImjX,并初始化CImjk=0,CImjX=0,其中,m为出队列号,出队列号等于出队列的优先级号,j为WAN出口号,k为通道号。
一般地,同一WAN出口内的所有不可保证带宽的通道的优先级是相同的,此时,只需为该WAN出口内的所有不可保证带宽的通道共同设置一个CImjX即可。
步骤703:FPGA 1收到一个报文,从报文中获取该报文的WAN出口号j和出通道号。
步骤704:FPGA 1确定该出通道的优先级号m,从而确定该优先级对应的出队列号为m。
步骤705:FPGA 1判断该出通道是否为可保证带宽通道,若是,执行步骤706;否则,执行步骤708。
步骤706:FPGA1判断该出通道对应的CImjk是否满足:CImjk<BWIjkth,若是,执行步骤707;否则,执行步骤710。
步骤707:FPGA 1将报文入该出队列,且将CImjk加上该报文的长度,转至步骤711。
步骤708:FPGA 1判断该WAN出口对应的CImjX是否满足:CImjX<BWIjXth,若是,执行步骤709;否则,执行步骤710。
步骤709:FPGA 1将报文入该出队列,且将CImjX加上该报文的长度,转至步骤711。
步骤710:FPGA 1拒绝报文入该出队列。
步骤711:FPGA 1要发送报文,确定报文的WAN出口号j和出通道号。
FPGA 1在发送报文前,会按照各出队列的优先级的从高到低,轮询各出队列,优先选择高优先级出队列中的报文发送。
步骤712:FPGA 1确定该出通道的优先级号m,从而确定该报文对应的出队列号为m。
步骤713:FPGA 1判断报文的出通道是否为可保证带宽通道,若是,执行步骤714;否则,执行步骤715。
步骤714:FPGA 1将报文发送给FPGA 2的入队列m,同时,将出队列m中与WAN出口j和出通道k对应的CImjk减去该报文长度,本流程结束。
步骤715:FPGA 1将报文发送给FPGA 2的入队列m,同时,将出队列m中与WAN出口j对应的CImjX减去该报文长度。
图8为本发明实施例提供的WAN出口调度单元的组成图一,如图8所示,其主要包括:出队列设置模块81、通道报文长度统计模块82和队列调度模块83,其中:
出队列设置模块81:设置出队列。
通道报文长度统计模块82:针对每个WAN出口内的每个通道,计算发往该通道的、已入所述出队列的报文长度统计值。
队列调度模块83:接收报文,确定该报文的WAN出口和出通道,从通道报文长度统计模块82获取该WAN出口和出通道对应的已入所述出队列的报文长度统计值,若该统计值小于该出通道的带宽阈值,允许报文入出队列设置模块81设置的出队列;否则,拒绝报文入所述出队列。
如图9所示,通道报文长度统计模块82可包括:第一统计模块821和第二统计模块822,其中:
第一统计模块821:针对每个WAN出口内的每个可保证带宽通道,计算发往该通道的、已入所述出队列的第一报文长度统计值。
第二统计模块822:针对每个WAN出口内的所有不可保证带宽通道,计算发往该WAN出口内所有不可保证带宽通道的、已入所述出队列的第二报文长度统计值。
同时,队列调度模块83可包括:通道类型判断模块831和调度模块832,其中:
通道类型判断模块831:接收报文,确定该报文的WAN出口和出通道,判断该出通道是否为可保证带宽通道,若是,从第一统计模块821获取第一报文长度统计值发送给调度模块;否则,从第二统计模块822获取第二报文长度统计值发送给调度模块832。
调度模块832:判断第一报文长度统计值是否小于报文对应的出通道的带宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列;和/或,
判断第二报文长度统计值是否小于报文对应的WAN出口内所有不可保证带宽通道的共用带宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列。
如图10所示,在实际应用中,WAN出口调度单元还可包括:
带宽基准确定模块84:计算所有WAN出口的最大带宽/粒度、所有WAN出口的最小带宽粒度、所有WAN出口内所有通道的最大带宽/粒度、所有WAN出口内所有通道的最小带宽/粒度的最大公约数,将该最大公约数输出到端口带宽阈值计算模块85。
端口带宽阈值计算模块85:对于每个WAN出口,计算该端口的带宽/粒度与该接收到的最大公约数的商值,计算该商值与预设大于1系数的乘积,得到该WAN出口的带宽阈值,将各WAN出口的带宽阈值输出到出队列设置模块81。
且,所述出队列设置模块81将出队列长度设置为所有WAN出口的带宽阈值之和。
第一通道带宽阈值计算模块86:接收带宽基准确定模块84发来的最大公约数,计算每个可保证带宽通道的带宽/粒度与该最大公约数的商值,计算该商值与预设大于1系数的乘积,得到该通道的带宽阈值,将各可保证带宽通道的带宽阈值输出到队列调度模块83。
且,当所述队列调度模块83收到的报文对应的出通道为可保证带宽通道时,若从通道报文长度统计模块82获取的统计值小于该可保证带宽通道的带宽阈值,则允许报文入所述出队列。
第二通道带宽阈值计算模块87:接收端口带宽阈值计算模块85发来的各包含不可保证带宽通道的WAN出口的带宽阈值,接收第一通道带宽阈值计算模块86发来的各包含不可保证带宽通道的WAN出口内各可保证带宽通道的带宽阈值,对于每个包含不可保证带宽通道的WAN出口,计算该WAN出口的带宽阈值与所有可保证带宽通道的带宽阈值和的差值,将该差值作为该WAN出口的所有不可保证带宽通道的共用带宽阈值发送给队列调度模块83。
且,当所述队列调度模块83收到的报文的出通道为不可保证带宽通道时,从通道报文长度统计模块82获取的统计值为发往该报文的WAN出口内所有不可保证带宽通道的已入所述出队列的报文长度统计值,且若该统计值小于该WAN出口的所有不可保证带宽通道的共用带宽阈值,则允许报文入所述出队列。
如图11所示,出队列设置模块81可包括:优先级数接收模块811和设置模块812,其中:
优先级数接收模块811:接收外部输入的所有WAN出口的所有通道的优先级数,将该优先级数输入到设置模块。
设置模块812:设置数目与优先级数相同的出队列,每个出队列长度等于所有WAN出口的带宽之和,且每个出队列分别与优先级与该出队列优先级相同的所有通道对应。
需要指出的是,本发明实施例中的FPGA也可以由其它芯片代替,例如:可由专用集成电路(ASIC,Application Specific Integrated Circuit)代替。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1、一种广域网WAN出口调度方法,应用在包含第一调度单元和第二调度单元的WAN出口中,其特征在于,在第一调度单元内设置出队列;该方法包括:
针对每个WAN出口内的每个通道,第一调度单元统计发往该通道的、已入所述出队列的报文长度;
第一调度单元接收报文,确定该报文的WAN出口和出通道,判断该WAN出口和出通道对应的已入所述出队列的报文长度统计值是否小于该出通道的带宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列。
2、如权利要求1所述的方法,其特征在于,所述出队列长度等于所有WAN出口的带宽阈值之和。
3、如权利要求1或2所述的方法,其特征在于,所述在第一调度单元内设置出队列之前进一步包括:
计算所有WAN出口的最大带宽/粒度、所有WAN出口的最小带宽粒度、所有WAN出口内所有通道的最大带宽/粒度、所有WAN出口内所有通道的最小带宽/粒度的最大公约数;
对于每个WAN出口,计算该WAN出口的带宽/粒度与所述最大公约数的商值,计算该商值与预设大于1系数的乘积,得到该WAN出口的带宽阈值;
对于每个WAN出口内的每个可保证带宽的通道,计算该通道的带宽/粒度与所述最大公约数的商值,计算该商值与预设大于1系数的乘积,得到该可保证带宽通道的带宽阈值。
4、如权利要求3所述的方法,其特征在于,所述WAN出口内包含不可保证带宽通道;
所述得到该可保证带宽通道的带宽阈值之后进一步包括:
计算该WAN出口的带宽阈值与该WAN出口内所有可保证带宽通道的带宽阈值和的差值,得到该WAN出口内所有不可保证带宽通道的共用带宽阈值。
5、如权利要求3所述的方法,其特征在于,当所述WAN出口为非固定时隙端口时,
所述方法进一步包括:每当WAN出口内有通道使能,则返回执行计算该通道的带宽/粒度与所述最大公约数的商值的动作。
6、如权利要求1或2所述的方法,其特征在于,所述在第一调度单元内设置出队列为:在第一调度单元内设置一个出队列;
或者,当所述通道具有优先级时,
所述在第一调度单元内设置出队列为:在第一调度单元内设置数目与通道的优先级数相同的出队列,且每个出队列分别与优先级与该出队列优先级相同的所有通道对应。
7、如权利要求6所述的方法,其特征在于,当所述通道具有优先级时,所述在第一调度单元内设置数目与优先级数相同的出队列进一步包括:在第二调度单元内设置数目与通道的优先级数相同的入队列;
所述方法进一步包括:确定要发送报文,从第一调度单元的出队列取出报文,将报文发送给第二调度单元的入队列,该入队列和出队列的优先级相同。
8、一种广域网WAN出口调度单元,其特征在于,包括:
出队列设置模块,设置出队列;
通道报文长度统计模块,针对每个WAN出口内的每个通道,计算发往该通道的、已入所述出队列的报文长度统计值;
队列调度模块,接收报文,确定该报文的WAN出口和出通道,从通道报文长度统计模块获取该WAN出口和出通道对应的已入所述出队列的报文长度统计值,若该统计值小于该出通道的带宽阈值,允许报文入所述出队列;否则,拒绝报文入所述出队列。
9、如权利要求8所述的调度单元,其特征在于,所述通道报文长度统计模块包括:
第一统计模块,针对每个WAN出口内的每个可保证带宽通道,计算发往该通道的、已入所述出队列的第一报文长度统计值;
第二统计模块,针对每个WAN出口内的所有不可保证带宽通道,计算发往该WAN出口内所有不可保证带宽通道的、已入所述出队列的第二报文长度统计值;
所述队列调度模块包括:
通道类型判断模块,接收报文,确定该报文的WAN出口和出通道,判断该出通道是否为可保证带宽通道,若是,从第一统计模块获取第一报文长度统计值发送给调度模块;否则,从第二统计模块获取第二报文长度统计值发送给调度模块;
调度模块,判断第一报文长度统计值是否小于报文对应的出通道的带宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列;和/或,
判断第二报文长度统计值是否小于报文对应的WAN出口内所有不可保证带宽通道的共用带宽阈值,若是,允许报文入所述出队列;否则,拒绝报文入所述出队列。
10、如权利要求8所述的调度单元,其特征在于,所述调度单元进一步包括:
带宽基准确定模块,计算所有WAN出口的最大带宽/粒度、所有WAN出口的最小带宽粒度、所有WAN出口内所有通道的最大带宽/粒度、所有WAN出口内所有通道的最小带宽/粒度的最大公约数,将该最大公约数输出到端口带宽阈值计算模块;
端口带宽阈值计算模块,对于每个WAN出口,计算该端口的带宽/粒度与该接收到的最大公约数的商值,计算该商值与预设大于1系数的乘积,得到该WAN出口的带宽阈值,将各WAN出口的带宽阈值输出到出队列设置模块;
且,所述出队列设置模块将出队列长度设置为所有WAN出口的带宽阈值之和。
11、如权利要求10所述的调度单元,其特征在于,所述调度单元进一步包括:
第一通道带宽阈值计算模块,接收带宽基准确定模块发来的最大公约数,计算每个可保证带宽通道的带宽/粒度与该最大公约数的商值,计算该商值与预设大于1系数的乘积,得到该通道的带宽阈值,将各可保证带宽通道的带宽阈值输出到队列调度模块,
且,当所述队列调度模块收到的报文对应的出通道为可保证带宽通道时,若从通道报文长度统计模块获取的统计值小于该可保证带宽通道的带宽阈值,则允许报文入所述出队列。
12、如权利要求10所述的调度单元,其特征在于,所述调度单元进一步包括:
第二通道带宽阈值计算模块,接收端口带宽阈值计算模块发来的各包含不可保证带宽通道的WAN出口的带宽阈值,接收第一通道带宽阈值计算模块发来的各包含不可保证带宽通道的WAN出口内各可保证带宽通道的带宽阈值,对于每个包含不可保证带宽通道的WAN出口,计算该WAN出口的带宽阈值与所有可保证带宽通道的带宽阈值和的差值,将该差值作为该WAN出口的所有不可保证带宽通道的共用带宽阈值发送给队列调度模块,
且,当所述队列调度模块收到的报文的出通道为不可保证带宽通道时,从通道报文长度统计模块获取的统计值为发往该报文的WAN出口内所有不可保证带宽通道的已入所述出队列的报文长度统计值,且若该统计值小于该WAN出口的所有不可保证带宽通道的共用带宽阈值,则允许报文入所述出队列。
13、如权利要求8所述的调度单元,其特征在于,所述出队列设置模块包括:
优先级数接收模块,接收所有WAN出口的所有通道的优先级数,将该优先级数输入到设置模块,
设置模块,设置数目与优先级数相同的出队列,且每个出队列分别与优先级与该出队列优先级相同的所有通道对应。
14、如权利要求8至13任一所述的调度单元,其特征在于,所述调度单元为现场可编程门阵列FPGA或专用集成电路ASIC。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102233072A CN101378364B (zh) | 2008-09-25 | 2008-09-25 | 广域网出口调度方法及单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102233072A CN101378364B (zh) | 2008-09-25 | 2008-09-25 | 广域网出口调度方法及单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101378364A true CN101378364A (zh) | 2009-03-04 |
CN101378364B CN101378364B (zh) | 2011-01-19 |
Family
ID=40421714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102233072A Active CN101378364B (zh) | 2008-09-25 | 2008-09-25 | 广域网出口调度方法及单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101378364B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904823A (zh) * | 2012-10-23 | 2013-01-30 | 大连梯耐德网络技术有限公司 | 一种基于存储器的多用户多业务的精确流量控制方法 |
WO2016107375A1 (zh) * | 2014-12-30 | 2016-07-07 | 华为技术有限公司 | 一种报文转发方法和装置 |
CN106713172A (zh) * | 2015-11-16 | 2017-05-24 | 华为数字技术(苏州)有限公司 | 一种调度报文的方法和装置 |
CN108040019A (zh) * | 2017-12-21 | 2018-05-15 | 杭州迪普科技股份有限公司 | 报文转发的方法及装置 |
WO2023174081A1 (zh) * | 2022-03-16 | 2023-09-21 | 华为技术有限公司 | 一种队列调度的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7280547B2 (en) * | 2002-12-16 | 2007-10-09 | Microsoft Corporation | Dynamic WAN port detection |
CN100591024C (zh) * | 2004-07-30 | 2010-02-17 | 神州亿品科技有限公司 | 移动接入控制器和移动局域与广域网及其接入方法 |
CN100440800C (zh) * | 2005-11-30 | 2008-12-03 | 中兴通讯股份有限公司 | 一种实现城域网wan端口trunk保护的方法 |
-
2008
- 2008-09-25 CN CN2008102233072A patent/CN101378364B/zh active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904823A (zh) * | 2012-10-23 | 2013-01-30 | 大连梯耐德网络技术有限公司 | 一种基于存储器的多用户多业务的精确流量控制方法 |
CN102904823B (zh) * | 2012-10-23 | 2016-01-20 | 大连梯耐德网络技术有限公司 | 一种基于存储器的多用户多业务的精确流量控制方法 |
WO2016107375A1 (zh) * | 2014-12-30 | 2016-07-07 | 华为技术有限公司 | 一种报文转发方法和装置 |
CN108259355A (zh) * | 2014-12-30 | 2018-07-06 | 华为技术有限公司 | 一种报文转发方法和装置 |
US10298495B2 (en) | 2014-12-30 | 2019-05-21 | Huawei Technologies Co., Ltd. | Packet forwarding method and apparatus |
CN106713172A (zh) * | 2015-11-16 | 2017-05-24 | 华为数字技术(苏州)有限公司 | 一种调度报文的方法和装置 |
CN106713172B (zh) * | 2015-11-16 | 2019-06-18 | 华为数字技术(苏州)有限公司 | 一种调度报文的方法和装置 |
CN108040019A (zh) * | 2017-12-21 | 2018-05-15 | 杭州迪普科技股份有限公司 | 报文转发的方法及装置 |
WO2023174081A1 (zh) * | 2022-03-16 | 2023-09-21 | 华为技术有限公司 | 一种队列调度的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101378364B (zh) | 2011-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7027457B1 (en) | Method and apparatus for providing differentiated Quality-of-Service guarantees in scalable packet switches | |
EP0920235B1 (en) | Congestion management in a multi-port shared memory switch | |
EP1013049B1 (en) | Packet network | |
EP1328094B1 (en) | Weighted credit-based arbitration using credit history | |
US20020161914A1 (en) | Method and arrangement for congestion control in packet networks | |
US20130039178A1 (en) | Scheduling under congestion with traffic load-based scaling | |
CN101217495A (zh) | 用于t-mpls网络环境下的流量监控方法和装置 | |
US20030198183A1 (en) | Monitoring traffic in packet networks using the sliding window procedure with subwindows | |
CA2595983A1 (en) | Packet forwarding | |
CN101803313A (zh) | 用于提供拥塞信息的方法和装置 | |
CN101378364B (zh) | 广域网出口调度方法及单元 | |
US20050276219A1 (en) | Routing of data packet traffic to a common destination egress queue from a plurality of subscribers each contracting for respective bandwidth of data flow, a method of and apparatus for fairly sharing excess bandwidth and packet dropping amongst the subscribers and with the granularity of contracted traffic flow | |
US20090086634A1 (en) | Method and system for packet rate shaping | |
US7522624B2 (en) | Scalable and QoS aware flow control | |
Soni et al. | Optimizing network calculus for switched ethernet network with deficit round robin | |
Bauer et al. | Worst-case backlog evaluation of avionics switched ethernet networks with the trajectory approach | |
Aweya et al. | Multi-level active queue management with dynamic thresholds | |
WO2022135202A1 (zh) | 业务流的调度方法、装置及系统 | |
US20090073878A1 (en) | Usage based queuing with accounting for wireless access points | |
JP2946462B1 (ja) | パケット・スケジューリング制御方法 | |
WO2022022222A1 (zh) | 发送数据包的方法及网络设备 | |
Al-Khasib et al. | Mini round robin: an enhanced frame-based scheduling algorithm for multimedia networks | |
Hua et al. | Scheduling scheme with fairness and adaptation in the joint allocation of heterogeneous resources | |
JP2002185459A (ja) | 帯域制御装置及びその方法 | |
Liang | A Markov chain model for the RIO algorithm in Differentiated Services networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |