CN103326953B - 一种基于令牌桶的流量限制方法和装置 - Google Patents
一种基于令牌桶的流量限制方法和装置 Download PDFInfo
- Publication number
- CN103326953B CN103326953B CN201310102927.1A CN201310102927A CN103326953B CN 103326953 B CN103326953 B CN 103326953B CN 201310102927 A CN201310102927 A CN 201310102927A CN 103326953 B CN103326953 B CN 103326953B
- Authority
- CN
- China
- Prior art keywords
- token
- token bucket
- described message
- bucket
- message
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/215—Flow control; Congestion control using token-bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种基于令牌桶的流量限制方法,包括:接收到报文时,触发填充所述报文对应的调度节点下令牌桶集合中每个令牌桶的填充操作,其中,所述令牌桶集合中至少包括两个令牌桶;根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳,确定所述令牌桶集合中每个令牌桶填充的令牌数;若所述报文对应的令牌桶中的令牌数超过所述报文的长度,则允许所述报文通过所述调度节点,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。采用本发明,可有效减少流量限制装置存储资源的占用和减低硬件成本。
Description
技术领域
本发明涉及通信领域,尤其涉及基于令牌桶的流量限制方法和装置。
背景技术
在数据通信网络中,流量模型大多属于突发模式,因此需要采取一些限制网络流量的方法来避免突发流量给网络带来的诸多问题,比如网络拥塞。常见的流量限制方式是基于令牌桶的方式。常见的令牌桶管理技术主要有两种:定时填桶机制和事件填桶机制。针对事件填桶机制,是当发生令牌桶消耗事件时才触发令牌桶填充令牌的操作,根据令牌桶中的令牌数和报文的长度比较来限制流量。对于通信网络,流量限制装置下面的调度节点往往数目众多,且每个调度节点设臵有若干令牌桶,导致令牌桶数目巨大。采用现有技术的方案,每个令牌桶时件戳一般采用片内存储器进行存储,且为每个令牌桶分配一个时戳,这样占用了大量的片内存储器资源,更加大了硬件成本。
发明内容
本发明实施例所要解决的技术问题在于,提供一种基于令牌桶的流量限制方法和装置。可有效地解决现有技术中减少存储资源的占用过多和硬件成本高的问题。
为了解决上述技术问题,本发明第一方面提供了一种基于令牌桶的流量限制方法,包括:
接收到报文时,触发填充所述报文对应的调度节点下令牌桶集合中每个令牌桶的填充操作,其中,所述令牌桶集合中至少包括两个令牌桶;
根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳,确定所述令牌桶集合中每个令牌桶填充的令牌数,并根据确认得到所述令牌数向所述令牌桶集合中的每个令牌桶填充令牌;
若所述报文对应的令牌桶中的令牌数超过所述报文的长度,则允许所述报文通过所述调度节点,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。
在第一种可能的实现方式中,还包括:
若所述报文对应的令牌桶中的令牌数未超过所述报文的长度,则不允许所述报文通过所述调度节点。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳,确定所述令牌桶集合中每个令牌桶填充的令牌数的步骤具体包括:
根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳计算出时间间隔;
根据所述时间间隔和预臵的令牌填充速率确定所述令牌桶集合中每个令牌桶填充的令牌数。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳,确定所述令牌桶集合中每个令牌桶填充的令牌数的步骤之后,还包括:
若所述报文对应的令牌桶填充的令牌数和原有的令牌数之和大于所述报文对应的令牌桶的桶高,则向所述报文对应的令牌桶中填充令牌,直至所述报文对应的令牌桶等于所述报文对应的令牌桶的桶高,并大于所述桶高的令牌丢弃。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳,确定所述令牌桶集合中每个令牌桶填充的令牌数的步骤之后,还包括:
将接收到所述报文的时刻作为所述令牌桶集合每个令牌桶共享的新时间戳。
结合第一方面至第一方面的第四种可能的实现方式中的任一种,在第五种可能的实现方式中,所述若所述报文对应的令牌桶中的令牌数超过所述报文的长度,则允许所述报文通过所述调度节点,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数的步骤具体包括:
获取所述报文的长度和所述报文对应的令牌桶中原有的令牌数;
根据所述报文对应的令牌桶填充的令牌数和所述报文对应的令牌桶中原有的令牌数计算所述报文对应的令牌桶中现有的令牌数;
判断所述报文对应的令牌桶中现有的令牌数是否大于所述报文的长度,若为是,则确定所述报文对应的令牌桶中现有的令牌数超过所述报文的长度,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。
本发明第二方面提供了一种基于令牌桶的流量限制装置,包括:
报文触发模块,用于接收到报文时,触发填充所述报文对应的调度节点下令牌桶集合中每个令牌桶的填充操作,其中,所述令牌桶集合中至少包括两个令牌桶;
令牌填充模块,用于根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳,确定所述令牌桶集合中每个令牌桶填充的令牌数,并根据确认得到所述令牌数向所述令牌桶集合中的每个令牌桶填充令牌;
流量调节模块,用于若所述报文对应的令牌桶中的令牌数超过所述报文的长度,则允许所述报文通过所述调度节点,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。
在第一种可能的实现方式中,还包括:
流量限制模块,用于若所述报文对应的令牌桶中的令牌数未超过所述报文的长度,则不允许所述报文通过所述调度节点。
结合第二方面的第一种可能的实现方式中,在第二种可能的实现方式中,所述令牌填充模块包括:
时间间隔计算单元,用于根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳计算出时间间隔;
填充数确定单元,用于根据所述时间间隔和预臵的令牌填充速率确定所述令牌桶集合中每个令牌桶填充的令牌数。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,还包括:
填充限制模块,用于若所述报文对应的令牌桶填充的令牌数和原有的令牌数之和大于所述报文对应的令牌桶的桶高,则向所述报文对应的令牌桶中填充令牌,直至所述报文对应的令牌桶等于所述报文对应的令牌桶的桶高,并大于所述桶高的令牌丢弃。
结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,还包括:
时间戳维护模块,用于清除所述令牌桶集合中每个令牌桶共享的原时间戳;及将接收到所述报文的时刻作为所述令牌桶集合每个令牌桶共享的新时间戳。
结合第二方面至第二方面的第四种可能的实现方式中的任一种,在第五种可能的实现方式中,所述流量限制模块包括:
获取单元,用于获取所述报文的长度和所述报文对应的令牌桶中原有的令牌数;
计算单元,用于根据所述报文对应的令牌桶填充的令牌数和所述报文对应的令牌桶中原有的令牌数计算所述报文对应的令牌桶中现有的令牌数;
调节单元,用于判断所述报文对应的令牌桶中现有的令牌数是否大于所述报文的长度,若为是,则确定所述报文对应的令牌桶中现有的令牌数超过所述报文的长度,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。
实施本发明实施例,具有如下有益效果:
通过接收到报文触发填充令牌桶的操作,同时根据调度节点下包括的若干个令牌桶共享的时间戳和本次报文到来的时刻确定每个令牌桶的令牌填充数量,这样每个调度节点下的若干个令牌桶只保存配臵一个时间戳,跟现有方案的每个令牌桶都分别配臵一个时间戳相比,能有效地节省流量限制装置的存储空间,节省硬件的成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种基于令牌桶的流量限制方法的流程示意图;
图2是本发明实施例的一种基于令牌桶的流量限制方法的另一流程示意图;
图3是本发明实施例的一种基于令牌桶的流量限制装置的结构示意图;
图4是本发明实施例的一种基于令牌桶的流量限制装置的另一结构示意图;
图5是图4中令牌填充模块的结构示意图;
图6是图4中流量限制模块的结构示意图;
图7是本发明实施例的一种基于令牌桶的流量限制装置的又一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为本发明实施例的一种基于令牌桶的流量限制方法的流程示意图,该方法包括:
步骤101、接收到报文时,触发填充调度节点下令牌桶集合中每个令牌桶的填充操作。
具体的,流量限制装置是部署在网络中对通过该装置的流量按照预定的策略进行限制的装置,以避免该网络的流量出现过载而导致网络崩溃。本实施例中采用的事件触发填充令牌桶的机制,流量限制装置下面包括若干个调度节点,每个调度节点中又包括若干个令牌桶,每个令牌桶对应一条网络支路,每个令牌桶用于对自身对应的支路上通过的报文的流量进行控制。报文经过流量限制装置下的某一个调度节点时,流量限制装置执行填充该调度节点下的令牌桶集合中每个令牌桶的填充操作,令牌桶集合中至少包括两个令牌桶。
步骤102、根据接收到的所述报文的时刻和所述令牌桶集合中共享的时间戳,确定所述令牌桶集合中每个令牌桶填充的令牌数,并根据确认得到所述令牌数向所述令牌桶集合中的每个令牌桶填充令牌。
具体的,令牌桶集合中每个令牌桶共享的时间戳为上一次接收到报文的时刻。在本发明实施中,可以根据当前接收到所述报文的时刻和上一次接收到报文的时刻确定两次填充操作的时间间隔,从而流量限制装置根据预先配臵的令牌填充速率和该时间间隔确定出令牌桶集合中每个令牌桶填充的令牌数,并根据确认得到所述令牌数向所述令牌桶集合中的每个令牌桶填充令牌。
步骤103、若所述报文对应的令牌桶中的令牌数超过所述报文的长度,则允许所述报文通过所述调度节点,并从所述报文对应的令牌桶中减去与所述报文的长度对应对应的令牌数。
具体的,所述报文对应的令牌桶中的令牌数为该令牌桶中原有的令牌数和步骤102中填充的令牌数的相加结果,判断报文的长度是否小于所述报文对应的令牌桶中的令牌数,若为是,则允许所述报文通过所述调度节点,同时所述报文对应的令牌桶中需要消耗与所述报文的长度对应的令牌数。
实施本发明的实施例,通过接收到报文触发填充令牌桶的操作,同时根据调度节点下包括的若干个令牌桶共享的时间戳和本次报文到来的时刻确定每个令牌桶的令牌填充数量,这样每个调度节点下的若干个令牌桶只保存配臵一个时间戳,跟现有方案的每个令牌桶都分别配臵一个时间戳相比,能有效地节省流量限制装置的存储空间,节省硬件的成本,特别是在流量限制装置下的调度节点数量众多且每个调度节点分布有若干令牌桶的情况下,节省成本的效果十分明显。
参见图2,为本发明实施例的一种基于令牌桶的流量限制方法的另一流程示意图,该方法包括:
步骤201、接收到报文时,触发填充所述报文对应的调度节点下令牌桶集合中每个令牌桶的填充操作。
具体的,流量限制装置是部署在网络中对通过该装置的流量按照预定的策略进行限制的装置,以避免该网络的流量出现过载而导致网络崩溃。本实施例中采用的事件触发填充令牌桶的机制,假设流量限制装置下面包括4个调度节点,分别为调度节点A、调度节点B、调度节点C和调度节点D,每个调度节点中又包括1个令牌桶集合,令牌桶集合中至少包括两个令牌桶,假设调度节点下的令牌桶集合中的令牌桶的数量为4个,分别记为A{a1,a2,a3,a4},B{b1,b2,b3,b4},C{c1,c2,c3,c4}和D{d1,d2,d3,d4},每个令牌桶对应一条网络支路,每个令牌桶用于对自身对应的支路上通过的报文的流量进行控制。假设报文经过流量限制装置下的A调度节点下的令牌桶集合中的a1令牌桶时,流量限制装置执行填充调度节点A的令牌桶集合中每个令牌桶,即a1,a2,a3和a4令牌桶,的填充操作。
步骤202、根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳计算出时间间隔。
在本发明实施例中,所述时间戳用于记录所述报文对应的调度节点的上一次报文的到达时间,或者上一次令牌桶填充时间。
具体的,假设接收到报文的时刻记为CurrentTime,令牌桶集合共享的时间戳记为LastTime,则时间间隔所述时间间隔△T=CurrentTime-LastTime。
步骤203、根据所述时间间隔和预臵的令牌填充速率确定所述令牌桶集合中每个令牌桶填充的令牌数。
具体的,假设预臵的令牌填充速率记为Rate,根据步骤202计算出来的时间间隔,则令牌桶集合中每个令牌桶填充的令牌数记为TokenAddition=Rate*△T。如步骤201的例子,则调度节点A中的令牌桶集合A{a1,a2,a3,a4}每个令牌桶填充的令牌数为TokenAddition=Rate*△T。
本实施例中,调度节点下的令牌桶集合中的令牌桶共享时间戳,能有效的节省流量限制装置的存储空间,节省硬件的成本,同时不影响该调度节点的流量调节功能。假定流量限制装置内部有512K个调度节点,每个调度节点有4个令牌桶,每个调度节点下令牌桶的时间戳位宽20bit,则消耗的存储资源为512K*4*20bit=40960Kbit=40Mbit。采用本发明的实施例,每个调度节点有4个令牌桶共享一个时间戳,其消耗的片内存储资源为512K*1*20bit=10240Kbit=10Mbit,调度节点下令牌桶共享时间戳后,可节省30Mbit的存储资源,降低成本十分显著。
步骤204、若所述报文对应的令牌桶填充的令牌数和原有的令牌数之和大于所述报文对应的令牌桶的桶高,则向所述报文对应的令牌桶中填充令牌,直至所述报文对应的令牌桶等于所述报文对应的令牌桶的桶高,并将剩余的令牌丢弃。
在本发明实施例中,
具体的,步骤201的例子中,假设令牌桶a1的桶高为H,令牌桶a1中原有的令牌数记为OldToken,则令牌桶a1填充的令牌数与令牌桶a1原有的令牌数之和为TokenAddition+OldToken,令牌桶a1中现有的令牌数记为NewToken,若TokenAddition+OldToken≥H,则NewToken=H,即把大于桶高的令牌丢弃,若TokenAddition+OldToken<H,则NewToken=TokenAddition+OldToken。对于令牌桶集合中的其他令牌桶同样也采用这种方法来限制令牌桶中的令牌数。
步骤205、将接收到所述报文的时刻作为所述令牌桶集合中每个令牌桶共享的新时间戳。
具体的,假设接收到报文的时刻记为CurrentTime,令牌桶集合共享的原时间戳记为LastTime,则流量限制装置清除保存的LastTime的值,将CurrentTime的值作为所述令牌桶集合中每个令牌桶共享的新时间戳。
步骤206、判断所述报文对应的令牌桶中的令牌数是否超过所述报文的长度,若为是,则执行步骤207,若为否,则执行步骤208。
具体的,假设报文的长度为M,报文对应的令牌桶为a1,a1中的令牌数记为NewToken,判断NewToken是否大于M,若为是,则执行步骤207,若为否,则执行步骤208。
步骤207、允许所述报文通过所述调度节点,并从所述报文对应的令牌桶中减去与所述报文长度对应的令牌数。
具体的,流量限制装置允许该报文通过调度节点,且所述报文对应的令牌桶的令牌数更新为NewToken-M。
步骤208、不允许所述报文通过所述调度节点。
实施本发明的实施例,通过接收到报文触发填充令牌桶的操作,同时根据调度节点下包括的若干个令牌桶共享的时间戳和本次报文到来的时刻确定每个令牌桶的令牌填充数量,这样每个调度节点下的若干个令牌桶只保存配臵一个时间戳,跟现有方案的每个令牌桶都分别配臵一个时间戳相比,能有效地节省流量限制装置的存储空间,节省硬件的成本,特别是在流量限制装置下的调度节点数量众多且每个调度节点分布有若干令牌桶的情况下,节省成本的效果十分明显。
参见图3,为本发明实施例的一种基于令牌桶的流量限制装置的结构示意图,以下简称流量限制装置,包括:
报文触发模块11,用于接收到报文时,触发填充所述报文对应的调度节点下令牌桶集合中每个令牌桶的填充操作,其中,所述令牌桶集合中至少包括两个令牌桶。
具体的,流量限制装置是部署在网络中对通过该装置的流量按照预定的策略进行限制的装置,以避免该网络的流量出现过载而导致网络崩溃。本实施例中采用的事件触发填充令牌桶的机制,流量限制装置下面包括若干个调度节点,每个调度节点中又包括若干个令牌桶,每个令牌桶对应一条网络支路,每个令牌桶用于对自身对应的支路上通过的报文的流量进行控制。报文触发模块11接收到经过某一个调度节点的报文时,执行填充该调度节点下的令牌桶集合中每个令牌桶的填充操作,令牌桶集合中至少包括两个令牌桶。
令牌填充模块12,用于根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳,确定所述令牌桶集合中每个令牌桶填充的令牌数,并根据确认得到所述令牌数向所述令牌桶集合中的每个令牌桶填充令牌。
具体的,令牌桶集合中每个令牌桶共享的时间戳为上一次接收到报文的时刻,令牌填充模块12根据当前接收到所述报文的时刻和上一次接收到报文的时刻确定两次填充操作的时间间隔,且根据预先配臵的令牌填充速率和该时间间隔确定出令牌桶集合中每个令牌桶填充的令牌数。
流量调节模块13,用于若所述报文对应的令牌桶中的令牌数超过所述报文的长度,则允许所述报文通过所述调度节点,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。
具体的,所述报文对应的令牌桶中的令牌数为该令牌桶中原有的令牌数和令牌填充模块12中填充的令牌数的相加结果,流量调节模块13判断报文的长度是否小于所述报文对应的令牌桶中的令牌数,若为是,则允许所述报文通过所述调度节点,同时所述报文对应的令牌桶中需要消耗与所述报文的长度对应的令牌数。
实施本发明的实施例,通过接收到报文触发填充令牌桶的操作,同时根据调度节点下包括的若干个令牌桶共享的时间戳和本次报文到来的时刻确定每个令牌桶的令牌填充数量,这样每个调度节点下的若干个令牌桶只保存配臵一个时间戳,跟现有方案的每个令牌桶都分别配臵一个时间戳相比,能有效地节省流量限制装置的存储空间,节省硬件的成本,特别是在流量限制装置下的调度节点数量众多且每个调度节点分布有若干令牌桶的情况下,节省成本的效果十分明显。
进一步的,参见图4-图6,为本发明实施例的一种基于令牌桶的流量限制装置的另一结构示意图,除包括报文触发模块11、令牌填充模块12和流量限制模块13之外,还包括:
流量限制模块14,用于若所述报文对应的令牌桶中的令牌数未超过所述报文的长度,则不允许所述报文通过所述调度节点。
填充限制模块15,用于若所述报文对应的令牌桶填充的令牌数和原有的令牌数之和大于所述报文对应的令牌桶的桶高,则向所述报文对应的令牌桶中填充令牌,直至所述报文对应的令牌桶等于所述报文对应的令牌桶的桶高,并大于所述桶高的令牌丢弃。
具体的,步骤201的例子中,假设令牌桶a1的桶高为H,令牌桶a1中原有的令牌数记为OldToken,则令牌桶a1填充的令牌数与令牌桶a1原有的令牌数之和为TokenAddition+OldToken,令牌桶a1中现有的令牌数记为NewToken,填充限制模块15判断是否满足TokenAddition+OldToken≥H的条件,若为是则NewToken=H,即把大于桶高的令牌丢弃,否则NewToken=TokenAddition+OldToken。对于令牌桶集合中的其他令牌桶同样也采用这种方法来限制令牌桶中的令牌数。
时间戳维护模块16,用于将接收到所述报文的时刻作为所述令牌桶集合每个令牌桶共享的新时间戳。
所述时间戳维护模块16中维护有时间戳,所述时间戳用于记录每个调度节点的上一次报文的到达时间或者上一次令牌桶填充时间。
具体的,假设接收到报文的时刻记为CurrentTime,CurrentTime表示当前报文到达的时间或当前令牌桶填充时间;令牌桶集合共享的原时间戳记为LastTime,LastTime表示上一次报文的到达时间或上一次令牌桶填充时间。时间戳维护模块16清除LastTime的值,并将CurrentTime的值作为所述令牌桶集合中每个令牌桶共享的新时间戳。
其中,令牌填充模块12包括:
时间间隔计算单元121,用于根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳计算出时间间隔。
填充数确定单元122,用于根据所述时间间隔和预臵的令牌填充速率确定所述令牌桶集合中每个令牌桶填充的令牌数。
流量限制模块13包括:
获取单元131,用于获取所述报文的长度和所述报文对应的令牌桶中原有的令牌数;
计算单元132,用于根据所述报文对应的令牌桶填充的令牌数和所述报文对应的令牌桶中原有的令牌数计算所述报文对应的令牌桶中现有的令牌数;
调节单元133,用于判断所述报文对应的令牌桶中现有的令牌数是否大于所述报文的长度,若为是,则确定所述报文对应的令牌桶中现有的令牌数超过所述报文的长度,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。
实施本发明的实施例,通过接收到报文触发填充令牌桶的操作,同时根据调度节点下包括的若干个令牌桶共享的时间戳和本次报文到来的时刻确定每个令牌桶的令牌填充数量,这样每个调度节点下的若干个令牌桶只保存配臵一个时间戳,跟现有方案的每个令牌桶都分别配臵一个时间戳相比,能有效地节省流量限制装置的存储空间,节省硬件的成本,特别是在流量限制装置下的调度节点数量众多且每个调度节点分布有若干令牌桶的情况下,节省成本的效果十分明显。
参见图7,为本发明实施例的一种基于令牌桶的流量限制装置的又一结构示意图,包括处理器61、存储器62、输入装置63和输出装置64,流量限制装置1中的处理器61的数量可以是一个或多个,图7以一个处理器为例。本发明的一些实施例中,处理器61、存储器62、输入装置63和输出装置64可通过总线或其他方式连接,图7中以总线连接为例。
其中,存储器62中存储一组程序代码,且处理器61用于调用存储器62中存储的程序代码,用于执行以下操作:
接收到报文时,触发填充所述报文对应的调度节点下令牌桶集合中每个令牌桶的填充操作,其中,所述令牌桶集合中至少包括两个令牌桶;
根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳,确定所述令牌桶集合中每个令牌桶填充的令牌数,并根据确认得到所述令牌数向所述令牌桶集合中的每个令牌桶填充令牌;
若所述报文对应的令牌桶中的令牌数超过所述报文的长度,则允许所述报文通过所述调度节点,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。
进一步的,在本发明的一些实施例中,处理器61还用于执行:
若所述报文对应的令牌桶中的令牌数未超过所述报文的长度,则不允许所述报文通过所述调度节点。
在本发明的一些实施例中,处理器61用于执行:
根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳计算出时间间隔;
根据所述时间间隔和预臵的令牌填充速率确定所述令牌桶集合中每个令牌桶填充的令牌数。
在本发明的一些实施例中,处理器61还用于执行:
若所述报文对应的令牌桶填充的令牌数和原有的令牌数之和大于所述报文对应的令牌桶的桶高,则向所述报文对应的令牌桶中填充令牌,直至所述报文对应的令牌桶等于所述报文对应的令牌桶的桶高,并大于所述桶高的令牌丢弃。
在本发明的一些实施例中,处理器61用于执行:
将接收到所述报文的时刻作为所述令牌桶集合每个令牌桶共享的新时间戳。
在本发明的一些实施例中,处理器61用于执行:
获取所述报文的长度和所述报文对应的令牌桶中原有的令牌数;
根据所述报文对应的令牌桶填充的令牌数和所述报文对应的令牌桶中原有的令牌数计算所述报文对应的令牌桶中现有的令牌数;
判断所述报文对应的令牌桶中现有的令牌数是否大于所述报文的长度,若为是,则确定所述报文对应的令牌桶中现有的令牌数超过所述报文的长度,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。
实施本发明的实施例,通过接收到报文触发填充令牌桶的操作,同时根据调度节点下包括的若干个令牌桶共享的时间戳和本次报文到来的时刻确定每个令牌桶的令牌填充数量,这样每个调度节点下的若干个令牌桶只保存配臵一个时间戳,跟现有方案的每个令牌桶都分别配臵一个时间戳相比,能有效地节省流量限制装置的存储空间,节省硬件的成本,特别是在流量限制装置下的调度节点数量众多且每个调度节点分布有若干令牌桶的情况下,节省成本的效果十分明显。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种基于令牌桶的流量限制方法,其特征在于,包括:
接收到报文时,触发填充所述报文对应的调度节点下令牌桶集合中每个令牌桶的填充操作,其中,所述令牌桶集合中至少包括两个令牌桶;
根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳计算出时间间隔,以及将所述时间间隔乘以预置的令牌填充速率得到所述令牌桶集合中每个令牌桶填充的令牌数,并根据确认得到所述令牌数向所述令牌桶集合中的每个令牌桶填充令牌;其中,所述令牌桶集合共享的时间戳为上一次接收到报文的时刻或上一次令牌桶填充时间;
若所述报文对应的令牌桶中的令牌数超过所述报文的长度,则允许所述报文通过所述调度节点,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。
2.如权利要求1所述的方法,其特征在于,还包括:
若所述报文对应的令牌桶中的令牌数未超过所述报文的长度,则不允许所述报文通过所述调度节点。
3.如权利要求1所述的方法,其特征在于,所述确定所述令牌桶集合中每个令牌桶填充的令牌数的步骤之后,还包括:
若所述报文对应的令牌桶填充的令牌数和原有的令牌数之和大于所述报文对应的令牌桶的桶高,则向所述报文对应的令牌桶中填充令牌,直至所述报文对应的令牌桶等于所述报文对应的令牌桶的桶高。
4.如权利要求1所述的方法,其特征在于,所述确定所述令牌桶集合中每个令牌桶填充的令牌数的步骤之后,还包括:
将接收到所述报文的时刻作为所述令牌桶集合每个令牌桶共享的新时间戳。
5.如权利要求1-4任一项所述的方法,其特征在于,所述若所述报文对应的令牌桶中的令牌数超过所述报文的长度,则允许所述报文通过所述调度节点,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数的步骤具体包括:
获取所述报文的长度和所述报文对应的令牌桶中原有的令牌数;
根据所述报文对应的令牌桶填充的令牌数和所述报文对应的令牌桶中原有的令牌数计算所述报文对应的令牌桶中现有的令牌数;
判断所述报文对应的令牌桶中现有的令牌数是否大于所述报文的长度,若为是,则确定所述报文对应的令牌桶中现有的令牌数超过所述报文的长度,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。
6.一种基于令牌桶的流量限制装置,其特征在于,包括:
报文触发模块,用于接收到报文时,触发填充所述报文对应的调度节点下令牌桶集合中每个令牌桶的填充操作,其中,所述令牌桶集合中至少包括两个令牌桶;
令牌填充模块,用于根据接收到所述报文的时刻和所述令牌桶集合共享的时间戳计算出时间间隔,以及将所述时间间隔乘以预置的令牌填充速率得到所述令牌桶集合中每个令牌桶填充的令牌数,并根据确认得到所述令牌数向所述令牌桶集合中的每个令牌桶填充令牌;其中,所述令牌桶集合共享的时间戳为上一次接收到报文的时刻或上一次令牌桶填充时间;
流量调节模块,用于若所述报文对应的令牌桶中的令牌数超过所述报文的长度,则允许所述报文通过所述调度节点,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。
7.如权利要求6所述的装置,其特征在于,还包括:
流量限制模块,用于若所述报文对应的令牌桶中的令牌数未超过所述报文的长度,则不允许所述报文通过所述调度节点。
8.如权利要求6所述的装置,其特征在于,还包括:
填充限制模块,用于若所述报文对应的令牌桶填充的令牌数和原有的令牌数之和大于所述报文对应的令牌桶的桶高,则向所述报文对应的令牌桶中填充令牌,直至所述报文对应的令牌桶等于所述报文对应的令牌桶的桶高。
9.如权利要求6所述的装置,其特征在于,还包括:
时间戳维护模块,用于将接收到所述报文的时刻作为所述令牌桶集合每个令牌桶共享的新时间戳。
10.如权利要求6-9任一项所述的装置,其特征在于,所述流量限制模块包括:
获取单元,用于获取所述报文的长度和所述报文对应的令牌桶中原有的令牌数;
计算单元,用于根据所述报文对应的令牌桶填充的令牌数和所述报文对应的令牌桶中原有的令牌数计算所述报文对应的令牌桶中现有的令牌数;
调节单元,用于判断所述报文对应的令牌桶中现有的令牌数是否大于所述报文的长度,若为是,则确定所述报文对应的令牌桶中现有的令牌数超过所述报文的长度,并从所述报文对应的令牌桶中减去与所述报文的长度对应的令牌数。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310102927.1A CN103326953B (zh) | 2013-03-28 | 2013-03-28 | 一种基于令牌桶的流量限制方法和装置 |
US14/229,499 US9363184B2 (en) | 2013-03-28 | 2014-03-28 | Token bucket-based traffic limiting method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310102927.1A CN103326953B (zh) | 2013-03-28 | 2013-03-28 | 一种基于令牌桶的流量限制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103326953A CN103326953A (zh) | 2013-09-25 |
CN103326953B true CN103326953B (zh) | 2016-06-29 |
Family
ID=49195492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310102927.1A Active CN103326953B (zh) | 2013-03-28 | 2013-03-28 | 一种基于令牌桶的流量限制方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9363184B2 (zh) |
CN (1) | CN103326953B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10949458B2 (en) | 2009-05-29 | 2021-03-16 | Inscape Data, Inc. | System and method for improving work load management in ACR television monitoring system |
US9071868B2 (en) | 2009-05-29 | 2015-06-30 | Cognitive Networks, Inc. | Systems and methods for improving server and client performance in fingerprint ACR systems |
US9449090B2 (en) * | 2009-05-29 | 2016-09-20 | Vizio Inscape Technologies, Llc | Systems and methods for addressing a media database using distance associative hashing |
US10116972B2 (en) | 2009-05-29 | 2018-10-30 | Inscape Data, Inc. | Methods for identifying video segments and displaying option to view from an alternative source and/or on an alternative device |
US8595781B2 (en) | 2009-05-29 | 2013-11-26 | Cognitive Media Networks, Inc. | Methods for identifying video segments and displaying contextual targeted content on a connected television |
JP4964995B1 (ja) * | 2011-06-13 | 2012-07-04 | 株式会社エンジニア | 鋏 |
US9955192B2 (en) | 2013-12-23 | 2018-04-24 | Inscape Data, Inc. | Monitoring individual viewing of television events using tracking pixels and cookies |
CN104734989B (zh) * | 2013-12-23 | 2018-09-14 | 腾讯数码(天津)有限公司 | 基于令牌桶的数据传输流量调度方法及其系统 |
CN103763208B (zh) * | 2014-01-29 | 2017-08-29 | 华为技术有限公司 | 数据流量限制方法及装置 |
CN103997467B (zh) * | 2014-05-20 | 2017-11-14 | 深圳市共进电子股份有限公司 | 一种数据流随机公平分享带宽的方法及装置 |
CA2973740C (en) | 2015-01-30 | 2021-06-08 | Inscape Data, Inc. | Methods for identifying video segments and displaying option to view from an alternative source and/or on an alternative device |
EP4375952A3 (en) | 2015-04-17 | 2024-06-19 | Inscape Data, Inc. | Systems and methods for reducing data density in large datasets |
CA3216076A1 (en) | 2015-07-16 | 2017-01-19 | Inscape Data, Inc. | Detection of common media segments |
BR112018000801A2 (pt) | 2015-07-16 | 2018-09-04 | Inscape Data Inc | sistema, e método |
US10080062B2 (en) | 2015-07-16 | 2018-09-18 | Inscape Data, Inc. | Optimizing media fingerprint retention to improve system resource utilization |
CN106411773B (zh) * | 2016-08-29 | 2018-10-23 | 武汉微创光电股份有限公司 | 基于令牌桶的视频传输中的流量整形方法及系统 |
CN106980687B (zh) * | 2017-03-31 | 2020-05-22 | 北京奇艺世纪科技有限公司 | 一种资源下载系统、方法及爬虫下载系统 |
KR102690528B1 (ko) | 2017-04-06 | 2024-07-30 | 인스케이프 데이터, 인코포레이티드 | 미디어 시청 데이터를 사용하여 디바이스 맵의 정확도를 향상시키는 시스템 및 방법 |
US11038819B2 (en) * | 2017-06-29 | 2021-06-15 | Intel Corporation | Technologies for extracting extrinsic entropy for workload distribution |
CN109379302B (zh) * | 2017-08-08 | 2022-01-11 | 深圳市中兴微电子技术有限公司 | 一种实现令牌处理的方法及装置 |
CN107959635B (zh) * | 2017-11-23 | 2021-04-30 | 郑州云海信息技术有限公司 | 一种基于令牌桶算法的iops控制方法及装置 |
CN108768572B (zh) * | 2018-04-13 | 2019-11-08 | 烽火通信科技股份有限公司 | 一种基于令牌的时间戳生成系统及方法 |
CN108848038B (zh) * | 2018-08-30 | 2021-01-29 | 华为技术有限公司 | 基于令牌桶的流量管理方法和令牌桶节点 |
CN110912834A (zh) * | 2019-12-09 | 2020-03-24 | 昆高新芯微电子(江苏)有限公司 | 一种基于令牌桶算法的流量控制方法 |
CN112367270B (zh) * | 2020-10-30 | 2023-01-10 | 锐捷网络股份有限公司 | 一种报文发送的方法和设备 |
CN114915596B (zh) * | 2022-05-10 | 2024-06-14 | 北京奇艺世纪科技有限公司 | 数据发送方法、装置、设备及存储介质 |
CN115622945A (zh) * | 2022-09-15 | 2023-01-17 | 新华三信息安全技术有限公司 | 一种报文处理方法及装置 |
CN118138537B (zh) * | 2024-04-10 | 2024-09-10 | 南京金阵微电子技术有限公司 | 流量整形填桶处理方法、控制模块、网络芯片和设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2317701A1 (en) * | 2009-10-28 | 2011-05-04 | Broadcom Corporation | Priority-based hierarchical bandwidth sharing |
CN102970238A (zh) * | 2012-11-22 | 2013-03-13 | 华为技术有限公司 | 一种流量控制的方法和设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7599287B2 (en) * | 2002-11-15 | 2009-10-06 | Cisco Technology, Inc. | Tokens in token buckets maintained among primary and secondary storages |
US8320240B2 (en) * | 2004-11-30 | 2012-11-27 | Broadcom Corporation | Rate limiting and minimum and maximum shaping in a network device |
US8077611B2 (en) * | 2006-07-27 | 2011-12-13 | Cisco Technology, Inc. | Multilevel coupled policer |
EP2550775A4 (en) * | 2010-03-22 | 2013-11-06 | Freescale Semiconductor Inc | APPARATUS FOR MANAGING TOKEN BUCKET AND METHOD FOR MANAGING BUCKET BUCKET |
-
2013
- 2013-03-28 CN CN201310102927.1A patent/CN103326953B/zh active Active
-
2014
- 2014-03-28 US US14/229,499 patent/US9363184B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2317701A1 (en) * | 2009-10-28 | 2011-05-04 | Broadcom Corporation | Priority-based hierarchical bandwidth sharing |
CN102970238A (zh) * | 2012-11-22 | 2013-03-13 | 华为技术有限公司 | 一种流量控制的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103326953A (zh) | 2013-09-25 |
US9363184B2 (en) | 2016-06-07 |
US20140293794A1 (en) | 2014-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103326953B (zh) | 一种基于令牌桶的流量限制方法和装置 | |
CN109343965A (zh) | 资源调整方法、装置、云平台和服务器 | |
CN108632365A (zh) | 服务资源调整方法、相关装置和设备 | |
CN107404443A (zh) | 队列缓存资源控制方法及装置、服务器及存储介质 | |
CN102420776B (zh) | 动态调整入口资源分配阈值的方法及系统 | |
US9274588B2 (en) | Method and apparatus for reducing chip power consumption | |
CN105580407A (zh) | 一种网络资源部署方法和设备 | |
CN104104735A (zh) | 利用空闲带宽进行数据备份的方法及系统 | |
CN112650575B (zh) | 资源调度方法、装置和云端服务系统 | |
CN106470084A (zh) | 分布式存储系统及其时间戳的实现方法 | |
CN109491788A (zh) | 一种虚拟化平台负载均衡实现方法及装置 | |
CN113992594A (zh) | 流量控制方法、装置、电子设备和计算机可读存储介质 | |
CN107203422A (zh) | 一种面向高性能计算云平台的作业调度方法 | |
CN106412039A (zh) | 一种分布式存储的网络集成的方法及系统 | |
CN103795640A (zh) | 一种流量监管方法和装置 | |
CN109246210A (zh) | 物联网通信方法与装置 | |
CN106453127A (zh) | 一种令牌处理方法和装置 | |
CN104426796A (zh) | 一种路由器的拥塞避免方法及装置 | |
CN103248622A (zh) | 一种自动伸缩的在线视频服务质量保障方法及系统 | |
CN110380982A (zh) | 一种流量控制方法及相关装置 | |
CN109213701A (zh) | 共享io板的外设的控制方法、系统、设备及存储介质 | |
CN108183840A (zh) | 交换机性能的验证方法、装置和实现装置 | |
CN115562617B (zh) | 一种fifo存储器的深度设置方法、系统及电子设备 | |
CN106528286A (zh) | 一种实现定时器的方法和装置 | |
JP5314646B2 (ja) | ネットワーク設計システム、ネットワーク設計方法およびネットワーク設計装置 |
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 |