一种分发令牌的方法和装置的制造方法_3

文档序号:9202602阅读:来源:国知局
[0099]在一个实施方式中,该方法还包括:
[0100]设置N个CIR区间(优选地,N个个相邻的CIR区间),其中N为2以上的正整数,其中每个CIR区间具有CIR设定值。优选地,CIR设定值为该CIR区间的最大值或平均值。
[0101]步骤101中基于每个队列的CIR及每个队列的上次令牌分发时间,确定每个队列的本次应分发令牌数包括:基于每个队列的CIR,确定每个队列所处的CIR区间,并基于所确定的CIR区间的CIR设定值及该队列的上次令牌分发时间,确定每个队列的本次应分发令牌数;
[0102]步骤102中基于每个队列的本次应分发令牌数,确定全部队列中的最高优先级队列包括:在属于同一 CIR区间内的队列之间,基于本次应分发令牌数进行排序,并确定每个CIR区间内的最高优先级队列;在各个CIR区间内的最高优先级队列之间,基于本次应分发令牌数进行排序,并确定全部队列中的最高优先级队列。
[0103]图3为本发明第二实施方式的分发令牌的方法流程图。
[0104]如图3所示,该方法包括:
[0105]步骤301:设置N个相邻的CIR区间,其中N为2以上的正整数,并为每个CIR区间设置CIR设定值。
[0106]步骤302:基于每个队列的CIR,确定每个队列所处的CIR区间,并基于所确定的CIR区间的CIR设定值及该队列的上次令牌分发时间,确定每个队列的本次应分发令牌数。
[0107]步骤303:在属于同一 CIR区间内的队列之间,基于本次应分发令牌数进行排序,并确定每个CIR区间内的最高优先级队列。
[0108]步骤304:对各个CIR区间的最高优先级的队列之间,基于本次应分发令牌数进行排序,并确定各个CIR区间内的最高优先级队列。
[0109]步骤305:在各个CIR区间内的最高优先级队列之间,基于本次应分发令牌数进行排序,并基于排序结果确定全部队列中的最高优先级队列。
[0110]下面举出一个具体实例详细描述图3所示流程。
[0111]比如,假定有3个CIR区间,分别为(0,1Μ]、(ΙΜ,ΙΟΜ]和(10Μ, 20Μ],其中IM =100Kbpsο (O, 1Μ]的设定值为IM ; (1Μ, 10Μ]的设定值为1M ; (10Μ, 20Μ]的设定值为20Μ。
[0112]队列一共有12fj$jSL0、Ll、L2、L3、M0、Ml、M2、M3、H0、Hl、H2*H3。LO 的CIR 为 0.5M ;L1 的 CIR 为 0.4M ;L2 的 CIR 为 0.6M ;L3 的 CIR 为 0.8M ;M0 的 CIR 为 2M ;M1 的CIR 为 3M ;M2 的 CIR 为 4M ;M3 的 CIR 为 5M ;H0 的 CIR 为 12M ;H1 的 CIR 为 13M ;H2 的 CIR 为14M ;H3 的 CIR 为 15M。
[0113]可见,H0、H1、H2和 H3 的 CIR 属于区间(10M, 20M] ;M0、M1、M2 和 M3 的 CIR 属于区间(1M, 10M] ;L0、L1、L2 和 L3 的 CIR 属于区间(O, 1M]。
[0114]对于区间(0,1M],分别确定L0、L1、L2和L3的本次应分发令牌数(Add),当前时间为T +.^ 1 current?
[0115]可以得到:
[0116]LO 的 Add』=(T current-Tlast_L0) X IM ;其中 Tlast ui为 LO 上次令牌分发时间。
[0117]LI 的 Add_u= (T ?t_Tlast u) X IM ;其中 Tlast u为 LI 上次令牌分发时间。
[0118]L2 的 AdcU2= (T ?t_Tlast』2) X IM ;其中 Tlast L2为 L2 上次令牌分发时间。
[0119]L3 的 AdcU3= (T ?t_Tlast u) X IM ;其中 Tlast u为 L3 上次令牌分发时间。
[0120]对于区间(1M,10M],分别确定M0、M1、M2和M3的本次应分发令牌数(Add),当前时间为Tammt;可以得到:
[0121]MO 的 Add』。=(T current-TlastJ0) X 1M ;其中 Tlast ui为 MO 上次令牌分发时间。
[0122]Ml 的 Add_M1= (T current-TlastJ1) X 1M ;其中 Tlast u为 Ml 上次令牌分发时间。
[0123]M2 的 AdcU= (T current-TlastJ2) X 1M ;其中 Tlast为 M2 上次令牌分发时间。
[0124]M3 的 Add_M3= (T current-TlastJ3) X 1M ;其中 Tlast u为 M3 上次令牌分发时间。
[0125]对于区间(10M,20M],分别确定HO、Hl、H2和H3的本次应分发令牌数(Add),当前时间为Tam6nt;可以得到:
[0126]HO 的 Add』。=(T current-TlastJo) X20M ;其中 Tlastjc^ MO 上次令牌分发时间。
[0127]Hl 的 Add_m= (T curre?t-Tlast_Hi) X20M ;其中 Tlast m为 Ml 上次令牌分发时间。
[0128]H2 的 Add_H2= (T current-TlastJ2) X20M ;其中 Tlastj2为 M2 上次令牌分发时间。
[0129]H3 的 Add_H3= (T current-TlastJ3) X20M ;其中 Tlast』3为 M3 上次令牌分发时间。
[0130]在上述计算本次应分发令牌数中,基于CIR区间的最大值设置CIR设定值。实际上,还可以基于CIR区间的平均值等其他方式设置CIR设定值,本发明实施方式对此并无限定。
[0131]然后,在属于区间(0,1M]的L0、L1、L2和L3之间,基于本次应分发令牌数进行排序,并基于排序结果确定各个队列在区间(0,1M]内的优先级,假定Ad(Lu^AdcLu)AdcLJAdcU3,那么:L0在区间(0,1M]内具有最高优先级,LI在区间(0,1M]内具有第二优先级,L2在区间(O,1M]内具有第三优先级,L3在区间(O,1M]内具有第四优先级。
[0132]在属于区间(ΙΜ,ΙΟΜ]的MO、Ml、M2和M3之间,基于本次应分发令牌数进行排序,并基于排序结果确定各个队列在区间(1Μ, 10Μ]内的优先级,假定Add_M(l>Add_M1>Add_PAddj,那么:M0在区间(1M,10M]具有最高优先级,Ml在区间(1M,10M]具有第二优先级,M2在区间(1M,10M]具有第三优先级,M3在区间(1M,10M]具有第四优先级。
[0133]在属于区间(10M,20M]的HO、HU H2和H3之间,基于本次应分发令牌数进行排序,并基于排序结果确定各个队列在区间(10M, 20M]内的优先级,假定Add_H(l>Add_H1>Add_H2>Add_H3,那么:H0在区间(10M,20M]具有最高优先级,Hl在区间(10Μ,20Μ]具有第二优先级,Η2在区间(10Μ,20Μ]具有第三优先级,Η3在区间(10Μ,20Μ]具有第四优先级。
[0134]然后,再在各个CIR区间的最高优先级的队列之间(即HO、MO和LO之间),分别基于Η0、Μ0和LO的本次应分发令牌数进行排序,并基于排序结果确定全部队列的最高优先级队列,其中本次应分发令牌数越大的队列具有越高的优先级。比如,假如AdcU分别大于AdcLui以及Add_H(l,则MO为全部队列的最高优先级队列,并在步骤103中为MO分发令牌数Add_MOo再比如,假如AdcLui分别大于Add_M(!以及Add_H(l,则LO为全部队列中的最高优先级队列,并在步骤103中为LO分发令牌数AdcLui。
[0135]基于上述详细说明,本发明实施方式还提出了一种分发令牌的装置,该装置适用于具有多个队列的应用环境。
[0136]图4为本发明分发令牌的装置结构图。
[0137]如图4所示,该装置400包括:
[0138]令牌数计算模块401,用于基于每个队列的CIR及每个队列的上次令牌分发时间,确定每个队列的本次应分发令牌数;
[0139]优先级确定模块402,用于基于每个队列的本次应分发令牌数,确定全部队列中的最尚优先级队列;
[0140]令牌分发模块403,用于基于全部队列中的最高优先级队列的本次应分发令牌数,为全部队列中的最高优先级队列分发令牌。
[0141 ] 在一个实施方式中,该装置400还包括:
[0142]设置模块404,用于确定每个队列的当前可用令牌数,并将当前可用令牌数为非负数的队列设置为不分发令牌;和/或,用于将CIR为零的队列设置为不分发令牌。
[0143]在一个实施方式中,优先级确定模块402,用于设置N个CIR区间,基于每个队列的CIR确定每个队列所处的CIR区间,其中N为2以上的正整数;在属于同一 CIR区间内的队列之间,基于本次应分发令牌数进行排序,并确定每个CIR区间内的最高优先级队列;在各个CIR区间内的最高优先级队列之间,基于本次应分发令牌数进行排
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1