1.本发明涉及数据网络领域,尤其涉及网络中的流量限速技术。
背景技术:
2.在经典令牌桶算法中,有一个用来装令牌的令牌桶,每隔单位时间,产生一个令牌放人桶中,令牌桶装满后,新产生的令牌将被丟弃。制定一个确定的令牌数定义为分组,分组能否被发送出去是根据令牌桶中令牌数量的多少来决定的,当桶中的令牌数大于分组的长度时就可以发送分组,假设分组的长度为l,每发送一个分组,则令牌桶中的令牌数目将减少l。当令牌桶中的令牌数减少到0时,停止发送数据,此时新到达的分组将在缓冲区中等待或被溢出。通常,在令牌桶算法中,令牌产生的速率是固定的,令牌桶的容量也是固定的,其参数根据具体的应用环境和需要来设置相应的值。由于令牌产生速率和令牌桶桶深不能改变,缺乏灵活性,因此,出现了对令牌桶算法进行修改的相应算法,有的算法中令牌产生速率根据具体环境的变化而变化,有的算法中令牌桶桶深也可进行改变。这样占用了大量的片内存储器资源,更加大了硬件成本。
技术实现要素:
3.本发明实施例所要解决的技术问题在于,提供一种基于优先级的令牌桶限速方法和系统,客服现有技术中存在的用令牌桶方法限速时,高低优先级无区别的问题和缺陷,提供一种基于优先级的令牌桶限速方法。
4.为了解决上述技术问题,本发明提供一种基于优先级的令牌桶限速方法,包括:根据流量的属性配置流量限制参数,包括限制值,逐个递减的各级令牌桶深,并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和;接收到流量以后,计算将要添加的令牌数;当判断到不用进行优先级限制,则将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前流量进行限制;以及当判断到要进行优先级限制,对于流量优先级数与限制级数相同的流量,同时将要添加的令牌数添加进最高级令牌桶及当前流量级数所对应的令牌桶中,利用当前流量级数所对应的令牌桶对当前流量进行限制;为了解决上述技术问题,本发明还提供了一种基于优先级的令牌桶限速的装置,包括:第一判断模块,用于判断是否需要进行优先级限制;第一处理模块,用于在所述第一判断模块判断到不用进行优先级限制时,将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前流量进行限制;第二判断模块,用于在所述第一判断模块判断到要进行优先级限制时,判断流量优先级数与限制级数是否相同;第二处理模块,用于在所述第一判断模块判断到要进行优先级限制,并且所述第二判断模块判断到流量优先级数与限制级数相同后,将要添加的令牌数添加进最高级令牌桶及当前流量级数所对应的令牌桶中,利用当前流量级数所对应的令牌桶对当前流量进行限
制;第三处理模块,用于在所述第一判断模块判断到要进行优先级限制,并且所述第二判断模块判断到流量优先级数与限制级数不同后,将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前流量进行限制。
5.本方法与当前技术相比,提供一种可基于优先级的令牌桶限速方法,使得不同的流量在同一限速条件下有着不同的丢弃概率,即高优先级在网络拥塞情况下能够快速通过,低优先级的流量具有较高的丢弃概率,避免了当前技术在应用令牌桶限速时,网络拥塞情况下高级别的流量被随机丢弃的问题,达到了限速的效果,节省了网络资源,同时提高了网络的服务质量。
附图说明
6.图1是令牌桶限速示意图。
具体实施方式
7.本发明的主要思想是设置不同限速级数的令牌桶深,当接收到的当前报文的级数与将要限速的级数相同时,用与限速的级数相对应的令牌桶对当前报文进行限速处理;当接收到的当前报文的级数与将要限速的级数不同时,利用最高级的令牌桶对当前报文进行限速处理。具体来说,包括以下步骤:配置报文的限速参数,包括限速值,逐个递减的各级令牌桶深,并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和;接收到报文以后,计算将要添加的令牌数;判断是否需要进行优先级限速,如果不用进行优先级限速,则将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前报文进行限速;如果判断到要进行优先级限速,则进一步判断报文的优先级数,对于报文优先级数与限速级数相同的报文,同时将要添加的令牌数添加进最高级令牌桶及当前报文级数所对应的令牌桶中,利用当前报文级数所对应的令牌桶对当前报文进行限速,之后同时更新最高级令牌桶和当前报文级数所对应的令牌桶中的令牌数。
8.对于报文优先级数与限速级数不同的报文,则将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前报文进行限速;并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和。
9.进一步地,利用当前流量级数所对应的令牌桶对当前流量进行限制的步骤之后,还包括:更新最高级令牌桶和当前流量级数所对应的令牌桶中的令牌数。
10.进一步地,利用最高级令牌桶对当前流量进行限制的步骤之后,还包括:令最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和。
11.进一步地,令牌桶大小不等量,便于应对不同流量请求的消耗。
12.进一步地,流量的属性是指不同的流量来自不同的源或者用户。进一步地,逐个递减的各级令牌桶深,包括总令牌桶深和低优先级令牌桶深,相应的, 当接收一低优先级流量,判断到需要对其进行低优先级限制,则根据流量的属性获取流量
的限制参数,所述参数包括:限制值、总令牌桶深、低优先级令牌桶深。
13.根据获取的限制值,以及上一流量至当前流量的时间差,计算出需要添加的令牌数;将计算的添加的令牌数分别添加进低优先级令牌桶和总桶中,获得当前可用的令牌数;将当前低优先级桶中的令牌数与当前流量长度进行比较,如果令牌数多于当前流量长度,则转发该当前流量,否则视为丢弃当前流量。
14.进一步地,当接收到一非低优先级流量,判断到需要对其进行低优先级限制,则根据流量的属性获取流量的限制参数,所述参数包括:限制值、总令牌桶深、低优先级令牌桶深;根据获取的限制值,以及上一流量至当前流量的时间差,计算出需要添加的令牌数;将所述需要添加的令牌数只添加进总令牌桶中,获得当前可用的令牌数;将当前总令牌桶中的令牌数与当前流量长度进行比较,如果令牌数多于当前流量长度,则转发该当前流量,否则视为丢弃当前流量。
15.进一步地,更新总令牌桶中的令牌数,若当前流量丢弃,总桶中的令牌数即为添加后的可用令牌数,当添加后的令牌数大于令牌桶深,则将令牌桶的深度更新为桶深,当当前流量通过,则令牌桶中的令牌数为添加后的令牌数与当前流量长度之差。
16.进一步地,当判断到总令牌桶中的令牌数小于低优先级桶中的令牌数,则更新低优先级桶的令牌数与总令牌桶中的令牌数相等。
17.进一步地,一种基于优先级的令牌桶限制的装置,其特征在于,包括:第一判断模块,用于判断是否需要进行优先级限制;第一处理模块,用于在所述第一判断模块判断到不用进行优先级限制时,将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前流量进行限制;第二判断模块,用于在所述第一判断模块判断到要进行优先级限制时,判断流量优先级数与限制级数是否相同;第二处理模块,用于在所述第一判断模块判断到要进行优先级限制,并且所述第二判断模块判断到流量优先级数与限制级数相同后,将要添加的令牌数添加进最高级令牌桶及当前流量级数所对应的令牌桶中,利用当前流量级数所对应的令牌桶对当前流量进行限制;第三处理模块,用于在所述第一判断模块判断到要进行优先级限制,并且所述第二判断模块判断到流量优先级数与限制级数不同后,将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前流量进行限制。
18.本发明提供的方法可以根据用户的需求扩展优先级的数目,只要遵照一个原则,最高优先级桶深配置不小于其余次优先级桶深配置的总和,在更新令牌数存储情况时同样遵循这个规则,即低优先级桶中的令牌数不得超过高一级令牌桶的令牌数;这样,利用本方法提供的限速说明,即可达到多级优先级的限速,提高流量速度。
19.以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所做的等同变化,仍属于本发明所涵盖的范围。
技术特征:
1.一种基于优先级的令牌桶流量限制方法,其特征在于,包括:根据流量的属性配置流量限制参数,包括限制值,逐个递减的各级令牌桶深,并保证最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和;接收到流量以后,计算将要添加的令牌数;当判断到不用进行优先级限制,则将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前流量进行限制;以及当判断到要进行优先级限制,对于流量优先级数与限制级数相同的流量,同时将要添加的令牌数添加进最高级令牌桶及当前流量级数所对应的令牌桶中,利用当前流量级数所对应的令牌桶对当前流量进行限制。2.根据权利要求1所述的方法,其特征在于,所述利用当前流量级数所对应的令牌桶对当前流量进行限制的步骤之后,还包括:更新最高级令牌桶和当前流量级数所对应的令牌桶中的令牌数。3.根据权利要求1所述的方法,其特征在于,利用最高级令牌桶对当前流量进行限制的步骤之后,还包括:令最高级令牌桶中的令牌数大于等于其余各级令牌桶中的令牌数之和。4.根据权利要求1所述的方法,其特征在于,所述令牌桶大小不等量,便于应对不同流量请求的消耗。5.根据权利要求1所述的方法,其特征在于,所述流量的属性是指不同的流量来自不同的源或者用户。6.根据权利要求1所述的方法,其特征在于,所述逐个递减的各级令牌桶深,包括总令牌桶深和低优先级令牌桶深,相应的, 当接收一低优先级流量,判断到需要对其进行低优先级限制,则根据流量的属性获取流量的限制参数,所述参数包括:限制值、总令牌桶深、低优先级令牌桶深;根据获取的限制值,以及上一流量至当前流量的时间差,计算出需要添加的令牌数;将计算的添加的令牌数分别添加进低优先级令牌桶和总桶中,获得当前可用的令牌数;将当前低优先级桶中的令牌数与当前流量长度进行比较,如果令牌数多于当前流量长度,则转发该当前流量,否则视为丢弃当前流量。7.根据权利要求6所述的方法,其特征在于,当接收到一非低优先级流量,判断到需要对其进行低优先级限制,则根据流量的属性获取流量的限制参数,所述参数包括:限制值、总令牌桶深、低优先级令牌桶深;根据获取的限制值,以及上一流量至当前流量的时间差,计算出需要添加的令牌数;将所述需要添加的令牌数只添加进总令牌桶中,获得当前可用的令牌数;将当前总令牌桶中的令牌数与当前流量长度进行比较,如果令牌数多于当前流量长度,则转发该当前流量,否则视为丢弃当前流量。8.根据权利要求7所述的方法,其特征在于,更新总令牌桶中的令牌数,若当前流量丢弃,总桶中的令牌数即为添加后的可用令牌数,当添加后的令牌数大于令牌桶深,则将令牌桶的深度更新为桶深,当当前流量通过,则令牌桶中的令牌数为添加后的令牌数与当前流量长度之差。9.根据权利要求8所述的方法,其特征在于,当判断到总令牌桶中的令牌数小于低优先
级桶中的令牌数,则更新低优先级桶的令牌数与总令牌桶中的令牌数相等。10.一种基于优先级的令牌桶限制的装置,其特征在于,包括:第一判断模块,用于判断是否需要进行优先级限制;第一处理模块,用于在所述第一判断模块判断到不用进行优先级限制时,将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前流量进行限制;第二判断模块,用于在所述第一判断模块判断到要进行优先级限制时,判断流量优先级数与限制级数是否相同;第二处理模块,用于在所述第一判断模块判断到要进行优先级限制,并且所述第二判断模块判断到流量优先级数与限制级数相同后,将要添加的令牌数添加进最高级令牌桶及当前流量级数所对应的令牌桶中,利用当前流量级数所对应的令牌桶对当前流量进行限制;第三处理模块,用于在所述第一判断模块判断到要进行优先级限制,并且所述第二判断模块判断到流量优先级数与限制级数不同后,将要添加的令牌数添加进最高级令牌桶中,利用最高级令牌桶对当前流量进行限制。
技术总结
一种基于优先权的令牌桶流量限制方法。本发明公开了一种基于优先级的令牌桶限速的方法及系统,包括:设置不同限速级数的令牌桶深,当接收到的当前报文的级数与将要限速的级数相同时,用与限速的级数相对应的令牌桶对当前报文进行限速处理;当接收到的当前报文的级数与将要限速的级数不同时,利用最高级的令牌桶对当前报文进行限速处理。客服现有技术中存在的用令牌桶方法限速时,高低优先级无区别的问题和缺陷,提供一种基于优先级的令牌桶限速方法。法。法。
技术研发人员:孙明聪 刘锋
受保护的技术使用者:福州慧美丰科技有限公司
技术研发日:2020.11.23
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-21035.html