本发明属于流量监管技术领域,尤其涉及一种基于严格优先级的流量监管方法、系统及设备。
背景技术:
近些年来,随着互联网规模的不断扩大和网络用户数量的迅速增长,网络流量业务的多样性和速率也得到了极大的发展,不同的流量业务也带来了更高的网络服务质量要求。交换机作为网络接入和转换的基本设备,在能够承载越来越大交换容量的同时,也面临着如何使用更少的资源来满足更高的服务质量要求的问题。流量控制可以使用户以规定合理的速率传输数据,是预防交换网络拥塞,有效提高网络性能的一种高效的方法。对不同优先级的业务实现不同的流量控制,能够更好的满足高优先级业务在网络拥塞时的服务质量。
原有的流量整形所采用的反压控制方法实现了不同设备速率的适配和对流量的控制,但这种流量控制方法会导致传输的数据帧有较大的时延,并不适合传输语音、直播等实时性要求较强的数据,同时还需要针对传输的优先级业务设置队列缓存,才能实现针对输出端口各个优先级业务流的区分,需要消耗较多的缓存资源。
而很多已有的流量监管方法均需要依靠多个令牌桶实现,在只需要区分严格优先级的流量控制场景中,提升了复杂度,额外消耗了资源。
中兴通讯股份有限公司在其申请的专利文献“一种对业务流量进行监管的方法及其装置”(公开号cn101674247b)中公开了一种对业务流量进行监管的方法及其装置。方法包括:针对每一待监管用户配置用户令牌桶实行单流量监管,针对所有待监管用户配置总令牌桶实行总流量监管,且配置总令牌桶的令牌添加速率与所有的用户令牌桶的令牌添加速率之和相关联。当配置总令牌桶的令牌添加速率等于所有的用户令牌桶的令牌添加速率之和,在待监管用户报文到达后,若判断该用户的用户令牌桶内令牌的数量和/或总令牌桶内令牌的数量大于或等于到达的报文的数量,则转发到达的报文;否则丢弃报文。该发明能够在对用户带宽资源进行必要限制的前提下充分利用带宽资源,或公平分配带宽资源。
该方法用于需要区分严格优先级的流量控制场景的不足之处是:
1.需要按照优先级数量设置多个令牌桶,并需要合理设置各个令牌桶的容量和令牌添加速率,资源占用较多,复杂度较高;
2.无法实现严格优先级,即该方法只能按照优先级分配不同带宽,无法实现流量拥塞时高优先级对带宽资源的绝对占用。
通过上述分析,现有技术存在的问题及缺陷为:
(1)原有的流量整形所采用的反压控制方法,会导致传输的数据帧有较大的时延,并不适合传输语音、直播等实时性要求较强的数据,同时还需要针对传输的优先级业务设置队列缓存,才能实现针对输出端口各个优先级业务流的区分,需要消耗较多的缓存资源。
(2)很多已有的流量监管方法均需要依靠多个令牌桶实现,在只需要区分严格优先级的流量控制场景中,提升了复杂度,额外消耗了资源。
(3)现有对业务流量进行监管的方法,需要按照优先级数量设置多个令牌桶,并需要合理设置各个令牌桶的容量和令牌添加速率,资源占用较多,复杂度较高。
(4)现有对业务流量进行监管的方法,无法实现严格优先级,即该方法只能按照优先级分配不同带宽,无法实现流量拥塞时高优先级对带宽资源的绝对占用。
解决以上问题及缺陷的难度为:需要使用更少数量的令牌桶实现对同一输出端口下多优先级业务的监管区分,结构需要尽可能简单,易于实施,同时保证实时业务传输的时延性能。
解决以上问题及缺陷的意义为:通过为单个令牌桶划分多级门限,建立门限与优先级的对应关系,并采用流量监管方式,有利于更容易地实现对海量业务队列的严格优先级区分功能,同时保证高优先级业务的带宽占用和实时业务的时延性能,实现结构简单,且大大减少了资源的消耗。
技术实现要素:
针对现有技术存在的问题,本发明提供了一种基于严格优先级的流量监管方法、系统及设备。
本发明是这样实现的,一种基于严格优先级的流量监管方法,所述基于严格优先级的流量监管方法包括以下步骤:
步骤一,初始化令牌桶算法参数,建立映射表;通过初始化令牌桶算法参数,设置实际需求与相关令牌桶参数的映射关系的操作,建立了符合实际流量控制需求的令牌桶模型,为后续功能正确实施提供了基础保障;
步骤二,更新令牌桶参数,产生业务发送等级;通过更新参数,并根据当前参数产生业务发送等级的操作,更新了令牌桶模型的状态,维持其正常运行,同时为步骤四提供严格优先级和流量监管的判断依据;
步骤三,读取待监管数据帧,提取优先级;通过读取待监管数据帧,并从中提取出优先级的操作,为步骤四提供了判断依据和实际操作对象,同时体现了对流量的优先级区分功能;
步骤四,判断优先级是否不低于业务发送等级;若是,则输出数据帧,若否,则丢弃数据帧。通过判断和具体执行的操作,使用步骤二和步骤三中的条件完成判断,并对步骤三中实际操作对象实施输出或丢弃操作,执行和完成了对实际流量的严格优先级区分的流量监管功能。中若判断优先级不低于业务发送等级,除输出数据帧操作外,还需要更新令牌桶参数中的令牌桶剩余令牌数,即将该参数减去发送数据帧的长度
进一步,步骤一中,所述初始化令牌桶算法参数,建立映射表,包括:
预先设置令牌桶算法规则的各项参数;其中,首先根据需求设置令牌峰值添加速率和最长数据帧长度,然后根据所述最长数据帧长度设置令牌桶最大容量和八个业务发送等级门限数值,八个门限数值各不相等,最大门限数值小于所述令牌桶最大容量,最小不低于所述最长数据帧长度,最后根据所述令牌桶算法规则参数建立令牌添加速率挡位与其他令牌桶参数的映射关系表。
其中,所述令牌桶算法规则的参数至少包括:令牌桶最大容量、各业务发送等级门限、令牌峰值添加速率、最长数据帧长度;
所述令牌桶参数至少包括令牌添加周期、令牌添加数量、令牌周期计数器、令牌桶剩余令牌数、令牌添加速率挡位、令牌更新数量;
所述业务发送等级门限共有8个,门限值各不相等,最大不超过所述令牌桶最大容量,最小不低于所述最长数据帧长度,所述业务发送等级门限按照门限值由低到高分别对应高到低八个业务发送等级8-1;
所述优先级共有8个,按优先级由低到高对应的优先级号分别是0-7。
进一步,步骤二中,所述更新令牌桶参数,产生业务发送等级,包括:
使用所述令牌桶算法规则参数、外部输入信号和所述映射关系表更新所述令牌桶参数;其中,根据所述外部输入信号更新所述令牌添加速率挡位,根据所述令牌添加挡位和所述令牌桶算法规则参数查找所述映射关系表,查找结果用于更新所述令牌添加周期和所述令牌添加数量;根据所述令牌桶算法规则的参数和所述令牌桶参数产生业务发送等级,同时获取待监管的数据帧,并获取所述数据帧的优先级,在确定所述数据帧的所述优先级不低于所述业务发送等级时,允许所述数据帧的传输,并从令牌桶中减去对应所述数据帧长度的令牌数。
进一步,所述使用所述令牌桶算法规则参数、外部输入信号和所述映射关系表更新所述令牌桶参数,包括:
(1)初始化并更新令牌桶,产生业务发送等级;
(2)读取所述数据帧,根据所述业务发送等级判断并发送。
进一步,步骤(1)中,所述初始化并更新令牌桶,产生业务发送等级,包括:
1)根据所述令牌桶算法规则参数的所述令牌桶最大容量初始化所述令牌桶参数的所述令牌桶剩余令牌数,同时归零所述令牌周期计数器;
2)使用所述外部输入信号更新所述令牌添加速率挡位,并根据所述令牌添加速率挡位查找所述映射关系表,更新所述令牌添加数量和所述令牌添加周期;
2)判断所述令牌周期计数器是否达到所述令牌添加周期:
若是,拉高令牌添加使能信号,所述令牌周期计数器归零,执行步骤4);
若否,所述令牌周期计数器加1,执行步骤4);
4)判断所述令牌添加使能信号是否与数据帧长度有效信号同时拉高:
若是,设置所述令牌更新数量为所述令牌桶剩余令牌数加上所述令牌添加数量减去令牌删除数量,执行步骤5),其中所述令牌桶删除数量为数据帧长度;
否则,判断所述令牌添加使能信号是否拉高:
若是,设置所述令牌更新数量为所述令牌桶剩余令牌数与所述令牌添加数量之和,执行步骤5);
否则,判断所述数据帧长度有效信号是否拉高:
若是,设置所述令牌更新数量为所述令牌桶剩余令牌数与令牌删除数量之差,执行步骤5);
否则,设置所述令牌更新数量为所述令牌桶剩余令牌数,执行步骤5);
5)判断所述令牌更新数量是否大于所述令牌桶最大容量:
若是,设置所述令牌更新数量为令牌桶最大容量,更新所述令牌桶剩余令牌数为所述令牌更新数量;
否则,更新所述令牌桶剩余令牌数为所述令牌更新数量;
6)将8个所述业务发送等级门限由高到低依次与所述令牌桶剩余令牌数进行判断,当某个所述业务发送等级门限不高于所述令牌桶剩余令牌数时,设置所述业务发送等级为当前所述门限对应的等级。
进一步,步骤(2)中,所述读取所述数据帧,根据所述业务发送等级判断并发送,包括:
1)读取待监管的所述数据帧,从所述数据帧中提取所述优先级;
2)判断所述优先级是否不低于所述业务发送等级:
若是,执行步骤3);
否则,执行步骤4);
3)继续读取完所述数据帧并将其全部输出到数据总线,同时拉高所述数据帧长度有效信号,设置所述数据帧长度为当前传输所述数据帧的长度;
4)继续读取完所述数据帧但不输出到数据总线。
本发明的另一目的在于提供一种应用所述的基于严格优先级的流量监管方法的基于严格优先级的流量监管系统,所述基于严格优先级的流量监管系统,包括:
初始化模块,用于初始化令牌桶算法参数,建立映射表;
更新模块,用于更新令牌桶参数,产生业务发送等级;
优先级提取模块,用于读取待监管数据帧,提取优先级;
判断模块,用于判断优先级是否不低于业务发送等级;若是,则输出数据帧,若否,则丢弃数据帧。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
初始化令牌桶算法参数,建立映射表;
更新令牌桶参数,产生业务发送等级;
读取待监管数据帧,提取优先级;
判断优先级是否不低于业务发送等级;若是,则输出数据帧,若否,则丢弃数据帧。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
初始化令牌桶算法参数,建立映射表;
更新令牌桶参数,产生业务发送等级;
读取待监管数据帧,提取优先级;
判断优先级是否不低于业务发送等级;若是,则输出数据帧,若否,则丢弃数据帧。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的基于严格优先级的流量监管方法,通过划分多级门限的方式来对应优先级业务,可以根据具体需求实现灵活扩展;采用单令牌桶算法实现,并且不需要额外消耗存储资源来存储数据帧,结构简单,占用资源较少;适用于有严格优先级区分的流量控制场景,可以实现高优先级对带宽的绝对优先权。
本发明可以实现对多个优先级队列流量的严格优先级的流量监管。相比流量整形方法不消耗缓存资源,且能提供较好的时延性能;并且与已有的流量监管方法相比,本发明可以使用单令牌桶实现对同一用户下多优先级业务流量的严格优先级控制,在流量拥堵时优先保障高优先级业务流量的传输,节约了资源消耗。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于严格优先级的流量监管方法流程图。
图2是本发明实施例提供的基于严格优先级的流量监管方法原理图。
图3是本发明实施例提供的基于严格优先级的流量监管系统结构框图;
图中:1、初始化模块;2、更新模块;3、优先级提取模块;4、判断模块。
图4是本发明实施例提供的引入多级门限的令牌桶模型示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种基于严格优先级的流量监管方法、系统及设备,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的基于严格优先级的流量监管方法包括以下步骤:
s101,初始化令牌桶算法参数,建立映射表;
s102,更新令牌桶参数,产生业务发送等级;
s103,读取待监管数据帧,提取优先级;
s104,判断优先级是否不低于业务发送等级;若是,则输出数据帧,若否,则丢弃数据帧。
本发明实施例提供的基于严格优先级的流量监管方法原理图如图2所示。
如图3所示,本发明实施例提供的基于严格优先级的流量监管系统包括:
初始化模1,用于初始化令牌桶算法参数,建立映射表;
更新模块2,用于更新令牌桶参数,产生业务发送等级;
优先级提取模块3,用于读取待监管数据帧,提取优先级;
判断模块4,用于判断优先级是否不低于业务发送等级;若是,则输出数据帧,若否,则丢弃数据帧。
下面结合术语解释对本发明的技术方案作进一步描述。
严格优先级:严格区分不同优先级的算法,在该算法中高优先级比低优先级绝对优先;
流量监管:属于通信技术领域中流量控制方法的一种,将被监管的数据流量中超出一定速率范围的数据分组丢弃,以此来保证该流量不会过度占用网络带宽。
分组交换机:接收数据帧,进行不同端口之间的转发。
数据帧大小64-1518字节。
下面结合实施例对本发明的技术方案作进一步描述。
参照图2,本发明基于严格优先级进行流量监管的具体步骤如下:
(1)预先设置令牌桶算法规则的各项参数,其中,首先根据需求设置令牌峰值添加速率和最长数据帧长度,然后根据所述最长数据帧长度设置令牌桶最大容量和八个业务发送等级门限数值,八个门限数值各不相等,最大门限数值小于所述令牌桶最大容量,最小不低于所述最长数据帧长度,最后根据所述令牌桶算法规则参数建立令牌添加速率挡位与其他令牌桶参数的映射关系表;
(2)使用所述令牌桶算法规则参数、外部输入信号和所述映射关系表更新所述令牌桶参数,其中,根据所述外部输入信号更新所述令牌添加速率挡位,根据所述令牌添加挡位和所述令牌桶算法规则参数查找所述映射关系表,查找结果用于更新所述令牌添加周期和所述令牌添加数量;根据所述令牌桶算法规则的参数和所述令牌桶参数产生业务发送等级,同时获取待监管的数据帧,并获取所述数据帧的优先级,在确定所述数据帧的所述优先级不低于所述业务发送等级时,允许所述数据帧的传输,并从令牌桶中减去对应所述数据帧长度的令牌数。
其中,步骤(1)中,所述令牌桶算法规则的参数至少包括:令牌桶最大容量、各业务发送等级门限、令牌峰值添加速率、最长数据帧长度;
所述令牌桶参数至少包括令牌添加周期、令牌添加数量、令牌周期计数器、令牌桶剩余令牌数、令牌添加速率挡位、令牌更新数量。
所述业务发送等级门限共有8个,门限值各不相等,最大不超过所述令牌桶最大容量,最小不低于所述最长数据帧长度,所述业务发送等级门限按照门限值由低到高分别对应高到低八个业务发送等级8-1;
所述优先级共有8个,按优先级由低到高对应的优先级号分别是0-7。
其中,所述步骤(2)包括如下并行处理的两个步骤:
(1)初始化并更新令牌桶,产生业务发送等级:
(1a)根据所述令牌桶算法规则参数的所述令牌桶最大容量初始化所述令牌桶参数的所述令牌桶剩余令牌数,同时归零所述令牌周期计数器;
(1b)使用所述外部输入信号更新所述令牌添加速率挡位,并根据所述令牌添加速率挡位查找所述映射关系表,更新所述令牌添加数量和所述令牌添加周期;
(1c)判断所述令牌周期计数器是否达到所述令牌添加周期:
若是,拉高令牌添加使能信号,所述令牌周期计数器归零,执行(1d);
若否,所述令牌周期计数器加1,执行(1d);
(1d)判断所述令牌添加使能信号是否与数据帧长度有效信号同时拉高:
若是,设置所述令牌更新数量为所述令牌桶剩余令牌数加上所述令牌添加数量减去令牌删除数量,执行(1e),其中所述令牌桶删除数量为数据帧长度;
否则,判断所述令牌添加使能信号是否拉高:
若是,设置所述令牌更新数量为所述令牌桶剩余令牌数与所述令牌添加数量之和,执行(1e);
否则,判断所述数据帧长度有效信号是否拉高:
若是,设置所述令牌更新数量为所述令牌桶剩余令牌数与令牌删除数量之差,执行(1e);
否则,设置所述令牌更新数量为所述令牌桶剩余令牌数,执行(1e);
(1e)判断所述令牌更新数量是否大于所述令牌桶最大容量:
若是,设置所述令牌更新数量为令牌桶最大容量,更新所述令牌桶剩余令牌数为所述令牌更新数量;
否则,更新所述令牌桶剩余令牌数为所述令牌更新数量;
(1f)将8个所述业务发送等级门限由高到低依次与所述令牌桶剩余令牌数进行判断,当某个所述业务发送等级门限不高于所述令牌桶剩余令牌数时,设置所述业务发送等级为当前所述门限对应的等级;
(2)读取所述数据帧,根据所述业务发送等级判断并发送:
(2a)读取待监管的所述数据帧,从所述数据帧中提取所述优先级;
(2b)判断所述优先级是否不低于所述业务发送等级:
若是,执行(2c);
否则,执行(2d);
(2c)继续读取完所述数据帧并将其全部输出到数据总线,同时拉高所述数据帧长度有效信号,设置所述数据帧长度为当前传输所述数据帧的长度;
(2d)继续读取完所述数据帧但不输出到数据总线。
引入多级门限的令牌桶模型如图4所示。
本发明通过划分多级门限的方式来对应优先级业务,可以根据具体需求实现灵活扩展;采用单令牌桶算法实现,并且不需要额外消耗存储资源来存储数据帧,结构简单,占用资源较少;适用于有严格优先级区分的流量控制场景,可以实现高优先级对带宽的绝对优先权。
本发明可以实现对多个优先级队列流量的严格优先级的流量监管。相比流量整形方法不消耗缓存资源,且能提供较好的时延性能;并且与已有的流量监管方法相比,本发明可以使用单令牌桶实现对同一用户下多优先级业务流量的严格优先级控制,在流量拥堵时优先保障高优先级业务流量的传输,节约了资源消耗。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。