CN108848038B - 基于令牌桶的流量管理方法和令牌桶节点 - Google Patents
基于令牌桶的流量管理方法和令牌桶节点 Download PDFInfo
- Publication number
- CN108848038B CN108848038B CN201811003669.0A CN201811003669A CN108848038B CN 108848038 B CN108848038 B CN 108848038B CN 201811003669 A CN201811003669 A CN 201811003669A CN 108848038 B CN108848038 B CN 108848038B
- Authority
- CN
- China
- Prior art keywords
- token bucket
- token
- node
- distributed
- master
- 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
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种基于令牌桶的流量管理方法,用于减少带宽浪费。本申请实施例方法包括:主令牌桶节点与至少两个分布式令牌桶节点建立通信连接,所述主令牌桶节点为局域网中的任一节点,所述分布式令牌桶节点为所述局域网中任一需要流量控制的节点;所述主令牌桶节点按照预设的令牌发放速率生成令牌;所述主令牌桶节点通过所述通信连接将所述令牌发放给所述分布式令牌桶节点。
Description
技术领域
本申请涉及通信领域,特别涉及一种基于令牌桶的流量管理方法,主令牌桶节点和分布式令牌桶节点。
背景技术
令牌桶技术(Token Bucket)是一种常见的流量测量技术,常用于流量的限制和流量的整形,能够对流量的速率和突发进行测量。
为限制局域网网络的出口带宽,可利用令牌桶技术,对出口的流量进行限制。如图1所示,令牌桶由用户设定容量,并按设定的速度向桶中放置令牌,当令牌的数量超出令牌桶的容量的时候,令牌的数量不再增加。当报文由服务器传送至令牌桶节点时,如果令牌桶中有足够的令牌可以用来发送报文,则报文直接通过并继续发送,同时令牌桶中的令牌量按报文的长度做相应的减少;如果令牌桶中的令牌数量不足或为空,则无法得到足够令牌的报文将被丢弃或进行标记,此时令牌桶中的令牌数量不发生变化。
由于现有技术中,采用令牌桶技术对网络出口流量进行限制,网络出口处无法得到足够令牌的报文将被丢弃,若大量报文从节点发出,至设置令牌桶的网络出口节点才被丢弃,对于从服务器至网络出口这段网络带宽资源将造成较大浪费。
发明内容
本申请实施例提供了一种基于令牌桶的流量管理方法,通过设置主令牌桶节点和分布式令牌桶节点,可以减少网络带宽资源浪费。
本申请实施例第一方面提供了一种基于令牌桶的流量管理方法,包括:主令牌桶节点与至少两个分布式令牌桶节点建立通信连接,该主令牌桶节点为局域网中的任一节点,该分布式令牌桶节点为该局域网中任一需要流量控制的节点;该主令牌桶节点按照预设的令牌发放速率生成令牌;该主令牌桶节点根据该分布式令牌桶节点的申请,通过该通信连接将该令牌发放给该分布式令牌桶节点。
为控制局域网中部分节点在网络出口的总带宽,需要建立分布式令牌桶实例,包括在局域网中任一节点部署主令牌桶节点,在局域网中需要流量控制的节点部署分布式令牌桶节点,实例中至少包含两个分布式令牌桶节点,首先,主令牌桶节点需要与所有分布式令牌桶节点建立通信连接,然后,该主令牌桶节点将按照预设的令牌发放速率生成令牌;预设的令牌发放速率由分布式令牌桶实例限制的总带宽确定,当主令牌桶节点接收到分布式令牌桶节点发送的令牌申请,该主令牌桶节点将根据该令牌申请,确定发放的令牌数量,并通过该通信连接将令牌发放给该分布式令牌桶节点,这样分布式令牌桶节点可以根据接收到的令牌发送报文,不会超出网络出口限制的总带宽。
本申请实施例提供的基于令牌桶的流量管理方法,通过主令牌桶节点生成令牌发放给分部署令牌桶节点,可以保证各分布式令牌桶节点不会超出网络出口的总带宽限制。
根据本申请实施例第一方面,本申请实施例第一方面的第一种实施方式中,该主令牌桶节点根据该分布式令牌桶节点的申请,通过该通信连接将该令牌发放给该分布式令牌桶节点之前,该方法还包括:该主令牌桶节点为所有该分布式令牌桶设置对应的令牌发放窗口,该令牌发放窗口用于向对应的该分布式令牌桶发放该令牌,该令牌发放窗口设有最大水线,该令牌发放窗口的令牌数量小于或等于最大水线;该主令牌桶节点向该令牌发放窗口发放该令牌。
本申请实施例提供的基于令牌桶的流量管理方法,主令牌桶节点可以为各个分布式令牌桶节点设置对应的令牌发放窗口,并将生成的令牌存放在各个令牌发放窗口,作为缓冲池,为各个分布式令牌桶储备令牌,优化了令牌发放的过程。
根据本申请实施例第一方面的第一种实施方式,本申请实施例第一方面的第二种实施方式中,该主令牌桶节点根据该分布式令牌桶节点的申请,通过该通信连接将该令牌发放给该分布式令牌桶节点包括:该主令牌桶节点接收该分布式令牌桶节点通过该通信连接发送的令牌申请消息;该主令牌桶节点根据该令牌申请消息将该令牌发放窗口中的该令牌发放给该分布式令牌桶节点,该令牌发放窗口为与该分布式令牌桶节点对应的窗口。
本申请实施例提供的基于令牌桶的流量管理方法,主令牌桶节点为各个分布式令牌桶节点设置了对应的令牌发放窗口,主令牌桶节点收到分布式令牌桶发送的令牌申请消息之后,可以从对应的令牌发放窗口取出令牌发放给分布式令牌桶节点,优化了令牌发放的过程。
根据本申请实施例第一方面的第一种实施方式或本申请实施例第一方面的第二种实施方式,本申请实施例第一方面的第三种实施方式中,该主令牌桶节点向该令牌发放窗口发放该令牌包括:该主令牌桶节点轮询所有该令牌发放窗口并发放该令牌;或者,该主令牌桶节点根据加权循环调度算法WRR向该令牌发放窗口的发放该令牌。
本申请实施例提供的基于令牌桶的流量管理方法,主令牌桶节点可以根据不同的令牌发放规则向各个令牌发放窗口发放令牌,增加了方案实现的多样性。
根据本申请实施例第一方面、本申请实施例第一方面的第一种实施方式至本申请实施例第一方面的第三种实施方式,本申请实施例第一方面的第四种实施方式中,在主令牌桶节点与至少两个分布式令牌桶节点建立通信连接之后,该方法还包括:该主令牌桶节点设置主令牌桶节点参数,该主令牌桶节点参包括桶深和该令牌发放速率,该令牌发放速率根据总带宽确定,该总带宽为所有该分布式令牌桶节点的限制带宽;该主令牌桶节点设置该分布式令牌桶参数,并将该分布式令牌桶参数发送给该分布式令牌桶节点,该分布式令牌桶参数包括该分布式令牌桶节点的桶深和该分布式令牌桶节点的令牌发放速率。
本申请实施例提供的基于令牌桶的流量管理方法,主令牌桶节点可以设置主令牌桶节点参数,还可以统一设置分布式令牌桶节点的参数,实现对各个分布式令牌桶节点的统一管理,以及对总带宽的统一控制。
根据本申请实施例第一方面、本申请实施例第一方面的第一种实施方式至本申请实施例第一方面的第四种实施方式,本申请实施例第一方面的第五种实施方式中,该主令牌桶节点设置单令牌桶,且该分布式令牌桶节点设置单令牌桶;或者,该主令牌桶节点设置双令牌桶,且该分布式令牌桶节点设置双令牌桶。
本申请实施例提供的基于令牌桶的流量管理方法,主令牌桶节点和分布式令牌桶节点可以同为单令牌桶,也可以同为双令牌桶,这样增加了方案实现的多样性。
本申请实施例第二方面提供了一种基于令牌桶的流量管理方法,包括:分布式令牌桶节点与主令牌桶节点建立通信连接,该分布式令牌桶节点为局域网中任一需要流量控制的节点,该主令牌桶节点为该局域网中的任一节点;该分布式令牌桶节点通过该通信连接向该主令牌桶节点发送令牌申请消息;该分布式令牌桶节点通过该通信连接接收该主令牌桶节点发放的令牌。
为控制局域网中部分节点在网络出口的总带宽,需要建立分布式令牌桶实例,包括在局域网中需要流量控制的节点部署分布式令牌桶节点,实例中至少包含两个分布式令牌桶节点,此外,还在局域网中任一节点部署主令牌桶节点。首先,分布式令牌桶节点需要与主令牌桶节点建立通信连接,然后,该分布式令牌桶节点向主令牌桶节点发送令牌申请消息,当主令牌桶节点接收到分布式令牌桶节点发送的令牌申请,该主令牌桶节点可以根据该令牌申请,确定发放的令牌数量,并通过该通信连接将令牌发放给该分布式令牌桶节点,分布式令牌桶节点可以接收到令牌。
本申请实施例提供的基于令牌桶的流量管理方法,分布式令牌桶节点通过主令牌桶节点发放令牌,可以实现主令牌桶节点对流量的集中控制,可以节省网络带宽资源。
根据本申请实施例第一方面,本申请实施例第一方面的第一种实施方式中,该分布式令牌桶节点与主令牌桶节点建立通信连接之后,该方法还包括:该分布式令牌桶节点通过该通信连接接收该主令牌桶节点设置的该分布式令牌桶节点参数,或者,该分布式令牌桶节点设置该分布式令牌桶节点参数,该分布式令牌桶节点参数包括该分布式令牌桶节点的桶深和该分布式令牌桶节点的令牌发放速率。
本申请实施例提供的基于令牌桶的流量管理方法,分布式令牌桶节点可以自己设置分部署令牌桶节点参数,还可以接收由主令牌桶节点统一设置的分布式令牌桶节点的参数,增加了方案实现的多样性。
根据本申请实施例第一方面或本申请实施例第一方面的第一种实施方式,本申请实施例第一方面的第二种实施方式中,该分布式令牌桶节点设置单令牌桶,且该主令牌桶节点设置单令牌桶;或者,该分布式令牌桶节点设置双令牌,且该主令牌桶节点设置双令牌桶。
本申请实施例提供的基于令牌桶的流量管理方法,主令牌桶节点和分布式令牌桶节点可以同为单令牌桶,也可以同为双令牌桶,这样增加了方案实现的多样性。
本申请实施例第三方面提供了一种主令牌桶节点,该主令牌桶节点具有实现上述第一方面中基于令牌桶的流量管理方法的功能。
本申请实施例第四方面提供了一种分布式令牌桶节点,该主令牌桶节点具有实现上述第一方面中基于令牌桶的流量管理方法的功能。
本申请实施例第五方面提供了一种通信设备,该通信设备具有实现上述第一方面中基于令牌桶的流量管理方法的功能。
本申请实施例第六方面提供了一种通信设备,该通信设备具有实现上述第二方面中基于令牌桶的流量管理方法的功能。
本申请实施例第七方面提供了一种计算机程序产品,该计算机程序产品包括计算机程序指令,该计算机程序指令可通过处理器进行加载来实现上述第一方面及其各实现方式中的方法。
本申请实施例第八方面提供了一种计算机程序产品,该计算机程序产品包括计算机程序指令,该计算机程序指令可通过处理器进行加载来实现上述第二方面及其各实现方式中的方法。
本申请实施例第九方面提供了一种计算机可读储存介质,用于储存计算机程序指令,其包含用于执行前述本申请实施例第一方面提供的各实施方式的步骤的程序。
本申请实施例第十方面提供了一种计算机可读储存介质,用于储存计算机程序指令,其包含用于执行前述本申请实施例第二方面提供的各实施方式的步骤的程序。
通过以上实施例可以看出,基于令牌桶的流量管理方法通过部署主令牌桶节点和分布式令牌桶节点,由主令牌桶节点向分布式令牌桶节点发放令牌,可以对各分布式令牌桶节点的出口总带宽进行控制,避免了大量报文到达网络出口时因超出总带宽限制而被丢弃,因此可以节省局域网内的带宽资源。
附图说明
图1为令牌桶技术示意图;
图2为本申请实施例的网络架构图;
图3为本申请实施例中基于令牌桶的流量管理方法的一个实施例示意图;
图4为本申请实施例中基于令牌桶的流量管理方法的另一个实施例示意图;
图5为本申请实施例中基于令牌桶的流量管理方法的另一个实施例示意图;
图6为本申请实施例中基于令牌桶的流量管理方法的一个交互实施例示意图;
图7为本申请实施例中基于令牌桶的流量管理方法的另一个交互实施例示意图;
图8为本申请实施例中主令牌桶节点的一个实施例示意图;
图9为本申请实施例中分布式令牌桶节点的一个实施例示意图;
图10为本申请实施例中主令牌桶节点的另一个实施例示意图;
图11为本申请实施例中分布式令牌桶节点的另一个实施例示意图。
具体实施方式
本申请实施例提供了一种基于令牌桶的流量管理方法,通过设置主令牌桶节点和分布式令牌桶节点,用于统一管理各分布式令牌桶节点的流量,以减少网络带宽资源浪费。
请参阅图2,为本申请实施例的网络架构图。
主令牌桶节点、分布式令牌桶节点和网络节点为局域网中的节点。
其中,分布式令牌桶部署在需要流量控制的节点作为分布式令牌桶节点,局域网中通常包含两个或两个以上的分布式令牌桶节点。分布式令牌桶节点部署的令牌桶可以是单令牌桶,也可以是双令牌桶,此处不做限定。需要说明的是,若分布式令牌桶节点中部署单令牌桶,则主令牌桶节点也部署单令牌桶节点,若分布式令牌桶节点中部署双令牌桶,则主令牌桶节点也部署双令牌桶。
主令牌桶可以部署在局域网中任一节点上作为主令牌桶节点,可以是未部署分布式令牌桶的节点,也可以是部署了分布式令牌桶的节点,此处不做限定。主令牌桶可以是单令牌桶,也可以是双令牌桶,此处不做限定。若主令牌为双令牌桶,则这两个主令牌桶可以集中部署在一个节点上,或者分别部署在两个节点上,此处不做限定。局域网中除了一个主令牌桶节点之外,还可以有一个或多个备份的主令牌桶节点,备份的主令牌桶节点用于主令牌桶节点故障时替代主令牌桶节点工作。
此外,还可以有一个网络节点是局域网中用于连接外部网络的节点。
本申请实施例中,不再需要在网络出口处设置令牌桶限制总带宽。因为主令牌桶节点可以根据网络出口的总带宽限制产生令牌,并将令牌发放给各个分布式令牌桶节点。分布式令牌桶自身并不产生令牌,通过接收主令牌桶节点发放的令牌实现节点的流量控制。
在实际应用中,例如在一个数据中心,常需要限制网络出口总带宽。数据中心中包含多个计算机节点和一个网络节点,计算机节点包含多台虚拟机(virtual machine,VM),VM可以用于处理租户的业务,网络节点则承担网关功能用于连接外部网络。租户若租用多台VM处理业务,通常多台VM将共享总带宽,即对于该租户在数据中心的总带宽通常会加以限制。为限制该租户的总带宽,可以选取任意一个节点,例如一个计算机节点作为主令牌桶节点。需要流量控制的各台VM所在的计算机节点则部署分布式令牌桶,作为分布式令牌桶节点。通过主令牌桶节点控制租户发往外网的总流量,将主令牌桶产生的令牌发放给分布式令牌桶节点,实现对租户使用的各台VM的总带宽的控制。
由于本申请实施例中,通过部署主令牌桶节点和分布式令牌桶节点,可以对各分布式令牌桶节点的出口总带宽进行控制,使得各分布式令牌桶节点发出的报文,不超过出口总带宽,避免了报文到达网络出口时因超出总带宽限制而被丢弃,因此可以节省局域网内的带宽资源。
基于图2的网络架构图,请参阅图3,为本申请实施例中基于令牌桶的流量管理方法的一个实施例示意图。
301、主令牌桶节点与至少两个分布式令牌桶节点建立通信连接;
为构建分布式令牌桶实例,首先,需要在局域网中部署主令牌桶节点和分布式令牌桶节点。然后,主令牌桶节点与各个分布式令牌桶节点建立通信连接,例如可以是TCP连接,也可以是UDP连接,此处不做具体限定。该通信连接用于主令牌桶节点与分布式令牌桶节点之间传递信息。
302、主令牌桶节点按照预设的令牌发放速率生成令牌;
由于需要对分布式令牌桶实例的总带宽进行限制,主令牌桶节点将根据各个分布式令牌桶节点的总带宽值限制值设定主令牌桶节点的令牌发放速率,主令牌桶节点按照该预设的令牌发放速率生成令牌,例如,若主令牌桶节点部署单令牌桶,则根据各节点总带宽值设置向主令牌桶中放置令牌的速率,即承诺信息速率(committed information rate,CIR),用于表示允许的数据传输的平均速度。该令牌发放速率与限制总带宽的数值有关,此处对于令牌发放速率的具体数值不做限定。
303、主令牌桶节点根据该分布式令牌桶节点的申请,通过该通信连接将该令牌发放给该分布式令牌桶节点;
主令牌桶节点中的令牌用于发放给各个分布式令牌桶,主令牌桶节点可以根据预设的规则向分布式令牌桶节点发放令牌,也可以根据分布式令牌桶的申请像分布式令牌桶节点发放令牌,此处不做限定。
分布式令牌桶可以根据实际使用需要向主令牌桶节点申请令牌,具体可以是通过步骤301中建立的通信链路向主令牌桶节点发送令牌申请消息,主令牌桶节点根据分布式令牌桶节点的申请将令牌直接发放给各个分布式令牌桶节点,或者,主令牌桶节点可以设置令牌发放窗口,将发放给分布式令牌桶节点的令牌发放至令牌发放窗口,令牌发放窗口再将令牌发放给分布式令牌桶节点。
本申请实施例中,主令牌桶节点可以通过向分布式令牌桶节点同一发放令牌,实现对各个分布式令牌桶节点的流量控制,进而限制总带宽,避免了报文到达网络出口时因超出总带宽限制而被丢弃,因此可以节省局域网内的带宽资源。
基于图2的网络架构图,请参阅图4,为本申请实施例中基于令牌桶的流量管理方法的另一个实施例示意图。
401、分布式令牌桶节点与主令牌桶节点建立通信连接;
为构建分布式令牌桶实例,首先,需要在局域网中部署主令牌桶节点和分布式令牌桶节点。
分布式令牌桶节点则分别部署在所有需要流量控制的节点上,负责该节点的流量控制。通常,有多个分布式令牌桶节点,例如可以是2个、3个或者6个等,对于分布式令牌桶节点的数量此处不做限定。分布式令牌桶节点设置的分布式令牌桶可以是单令牌桶或者双令牌桶,此处对于分布式令牌桶的类型不做限定。
主令牌桶节点可以选择部署在任意一个节点上,负责统一控制各个分布式令牌桶节点的流量。主令牌桶可以是单令牌桶,也可以是双令牌桶,此处不做限定。若主令牌为双令牌桶,则这两个主令牌桶可以集中部署在一个节点上,或者分别部署在两个节点上,此处不做限定。局域网中除了一个主令牌桶节点之外,还可以有一个或多个备份的主令牌桶节点,备份的主令牌桶节点用于主令牌桶节点故障时替代主令牌桶节点工作。
分布式令牌桶节点需要与主令牌桶节点建立通信连接,例如可以是TCP连接,也可以是UDP连接,此处不做具体限定。该通信连接用于主令牌桶节点与分布式令牌桶节点之间传递信息。
402、分布式令牌桶节点向主令牌桶节点申请令牌;
主令牌桶可以根据分布式令牌桶实例限制的总带宽设定令牌生成速率,生成的令牌可以发放给各个分布式令牌桶节点。
分布式令牌桶可以按照预设的时间间隔和预设的令牌发放速率向主令牌桶节点申请令牌,还可以根据实际情况向主令牌桶节点申请令牌,此处不做具体限定。若令牌桶剩余的空间少于申请令牌数时,则只需申请令牌桶剩余空间的令牌数。分布式令牌桶节点设置的分布式令牌桶可以是单令牌桶或者双令牌桶,此处对于分布式令牌桶的类型不做限定。
403、分布式令牌桶节点接收主令牌桶节点发放的令牌;
分布式令牌桶节点可以接受主令牌桶节点发放的令牌,并放入令牌桶,分布式令牌桶节点可以设置单令牌桶或者双令牌桶,设置双令牌桶的分布式令牌桶节点可以通过一个申请命令向主令牌桶节点为两个令牌桶申请令牌,也可以通过不同的申请命令分别为两个令牌桶申请令牌,此处不做限定。此外,分布式令牌桶节点的两个令牌桶的令牌可以由同一个主令牌桶节点发放或者分别由两个主令牌桶节点发放,具体此处不做限定。
本申请实施例中,由于主令牌桶节点根据限制的出口总带宽生成令牌,而分布式令牌桶节点不能产生令牌,只能向主令牌桶节点申请令牌,因此可以实现主令牌桶节点的统一管控,各分布式令牌桶节点发出的报文,不会超过出口总带宽,避免了报文到达网络出口时因超出总带宽限制而被丢弃,因此可以节省局域网内的带宽资源。
上面分别介绍了主令牌桶节点和分布式令牌桶节点执行该基于令牌桶的流量管理方法的过程,下面将介绍主令牌桶节点和分布式令牌桶节点交互执行该基于令牌桶的流量管理方法的过程。
主令牌桶节点可以通过不同的方式向分布式令牌桶节点发放令牌,一种是通过令牌发放窗口发放,另一种是直接向分布式令牌桶节点发放,下面将分别进行介绍。
一、主令牌桶节点通过令牌发放窗口向分布式令牌桶节点发放令牌。
请参阅图5,为本申请实施例中基于令牌桶的流量管理方法的另一个实施例示意图。
主令牌桶节点与n个分布式令牌桶节点建立通信连接,构建了一个分布式令牌桶实例。主令牌桶和分布式令牌桶可以是单令牌桶,也可以是双令牌桶,此处不做限定,本申请实施例中以主令牌桶和分布式令牌桶均为单令牌桶为例进行说明,主令牌桶节点中设置了n个令牌发放窗口,分别对应于n个分布式令牌桶节点,主令牌桶可以按照预设的令牌生成速率生成令牌,分布式令牌桶节点自身不产生令牌,而是通过向主令牌桶节点发送令牌申请消息,通过对应的令牌发放窗口获取令牌。
在图5提供的分布式令牌桶实例的基础上,请参阅图6,为本申请实施例中基于令牌桶的流量管理方法的一个交互实施例示意图。
601、主令牌桶节点与分布式令牌桶节点建立通信连接;
为构建分布式令牌桶实例,首先,需要在局域网中部署主令牌桶节点和分布式令牌桶节点。通常部署一个主令牌桶节点和至少两个分布式令牌桶节点,分布式令牌桶节点的数量可以是2个、3个或者6个等,对于分布式令牌桶节点的数量此处不做限定。此外,还可以部署一个或多个备份的主令牌桶节点,用于在主令牌桶节点发生故障时代替主令牌桶节点工作。
主令牌桶节点可以选择部署在任意一个节点上,负责统一控制各个分布式令牌桶节点的流量,通常实例中有一个主令牌桶节点工作,此外,还可以有多个主令牌桶节点备份,用于在主令牌桶节点故障时替代主令牌桶节点工作。分布式令牌桶节点分别部署在所有需要流量控制的计算机节点上,分布式令牌桶节点负责该节点的流量控制。分布式令牌桶不产生令牌,而是从主令牌桶节点申请并接收令牌。
首先,主令牌桶节点需要与各个分布式令牌桶节点建立通信连接,例如可以是TCP连接,主令牌桶节点可以通过该连接与分布式令牌桶节点传递信息。
602、主令牌桶节点为所有分布式令牌桶设置对应的令牌发放窗口;
主令牌桶节点为所有分布式令牌桶设置对应的令牌发放窗口,令牌发放窗口用于向对应的分布式令牌桶发放令牌。令牌发放窗口可以设置在主令牌桶节点,也可以设置在分布式令牌桶节点,此处不做限定,本实施例中以令牌发放窗口设置在主令牌桶节点为例进行介绍。
若分布式令牌桶节点部署单令牌桶,则令牌发放窗口数量与分布式令牌桶节点的数量相同,每个令牌发放窗口与一个分布式令牌桶节点相对应;若分布式令牌桶节点部署双令牌桶,则令牌发放窗口的数量为分布式令牌桶节点数量的两倍,每个分布式令牌桶节点对应两个令牌发放窗口,该两个令牌发放窗口分别与双令牌桶相对应。主令牌桶节点可以通过对应参数记录令牌发放窗口与分布式令牌桶节点之间的对应关系,例如可以是分布式令牌桶节点的IP地址,也可以是TCP连接号等可以用于区分不同分布式令牌桶节点的参数,对应参数的具体形式此处不做限定。令牌发放窗口设有最大水线,最大水线是令牌发放窗口中可以包含的最大令牌数量,令牌发放窗口的令牌数量只能小于或等于最大水线。令牌发放窗口还设有发放令牌的计数器,计数器可以记录窗口中可使用的令牌数。分布式令牌桶节点申请令牌后,计数器将扣除发放给分布式令牌桶节点的令牌数量,当计数器为0时,代表已没有令牌可以发放给分布式令牌桶节点;若令牌发放窗口接收到主令牌发放的令牌,则在计数器中累计该数量,当计数器到达水线时,令牌发放窗口已满,不再接受主令牌桶发放的令牌。
603、主令牌桶节点设置主令牌桶节点参数;
主令牌桶节点为主令牌桶设置相关参数,主令牌桶节点参数包括桶深,令牌发放速率和令牌桶发送窗口的最大水线,下面分别进行介绍:
桶深表示令牌桶的容量,即每次突发所允许的最大的流量尺寸,设置的突发流量尺寸必须大于最大的报文长度。若主令牌桶节点部署的令牌桶为单令牌桶,即C桶,桶深参数即为C桶的承诺突发尺寸(committed burst size,CBS);若主令牌桶节点部署的令牌桶为双令牌桶,即C桶和P桶,则主令牌桶节点将为两个令牌桶分别设置CBS和峰值突发尺寸(peak burst size,PBS),PBS表示P桶的容量,即P桶瞬间能够通过的峰值突发流量。
主令牌桶节点还需要为主令牌桶设置令牌发放速率,主令牌桶的令牌发放速率可以根据限制的总带宽的数值设定,例如网络出口对于各个分布式令牌桶节点的总带宽限制为40吉比特每秒(Gbps),则令牌发放速率可设为5兆字节/毫秒(M/ms)。若主令牌桶节点部署的令牌桶为单令牌桶,即C桶,C桶的令牌发放速率即承诺信息速率(committedinformation rate,CIR),CIR用于表示向C桶中发放令牌的速率,即允许的流量的平均速度;若主令牌桶节点部署的令牌桶为双令牌桶,即C桶和P桶,则主令牌桶节点将为两个令牌桶分别设置CIR和峰值信息速率(peak information rate,PIR),PIR用于表示向P桶中发放令牌的速率,即P桶允许传输或转发报文的峰值速率,通常PIR的值应大于CIR。
此外,主令牌桶节点还会设置令牌发送窗口的最大水线,即该窗口能容纳的最大令牌数量,不同的令牌发放窗口的最大水线可以相同也可以不同,此处不做限定。
604、主令牌桶节点设置分布式令牌桶节点参数并发送给分布式令牌桶节点;
主令牌桶节点除了可以为主令牌桶设置相关参数,还可以为各个分布式令牌桶节点设置参数,分布式令牌桶节点参数包括桶深和令牌发放速率,下面分别进行介绍:
桶深表示令牌桶的容量,即每次突发所允许的最大的流量尺寸,设置的突发流量尺寸必须大于最大的报文长度。若分布式令牌桶节点部署的令牌桶为单令牌桶,即C桶,桶深参数即为C桶的承诺突发尺寸(committed burst size,CBS);若分布式令牌桶节点部署的令牌桶为双令牌桶,即C桶和P桶,则分布式令牌桶节点将为两个令牌桶分别设置CBS和峰值突发尺寸(peak burst size,PBS),PBS表示P桶的容量,即P桶瞬间能够通过的峰值突发流量。各个分布式令牌桶节点的桶深可以相同,也可以不同,此处不做限定。
由于分布式令牌桶节点的令牌来源于主令牌桶节点,分布式令牌桶节点自身并不产生令牌。分布式令牌桶节点可以根据自身需要设定令牌发放速率,并根据令牌发放速率向主令牌桶节点申请令牌,分布式令牌桶节点申请的令牌数不应超过分布式令牌桶剩余空间的令牌数。令牌发放速率即主令牌桶节点向分布式令牌桶节点发放令牌的速率,各个分布式令牌桶节点的令牌发放速率可以相同,也可以不同,此处不做限定。若分布式令牌桶节点部署的令牌桶为单令牌桶,即C桶,令牌发放速率即C桶向主令牌桶节点申请令牌的速率,即CIR;若分布式令牌桶节点部署的令牌桶为双令牌桶,即C桶和P桶,则令牌发放速率包括C桶的令牌发放速率CIR和P桶的令牌发放速率PIR。
主令牌桶节点为各个分布式令牌桶节点设置参数之后,可以将分布式令牌桶节点参数发送给分布式令牌桶节点。
需要说明的是,分布式令牌桶节点可以接受主令牌桶节点统一设置并发送的参数,也可以由该分布式令牌桶节点自行设置,因此,步骤604和步骤605可以择一执行,例如,执行步骤604且不执行步骤605,或者执行步骤605且不执行步骤604,此处不做限定。
605、分布式令牌桶节点设置分布式令牌桶节点参数;
分布式令牌桶节点参数包括桶深和令牌发放速率,请参考步骤604中对分布式令牌桶节点桶深和分布式令牌桶节点令牌发放速率的介绍,此处不再赘述。
606、主令牌桶节点按照预设的令牌发放速率生成令牌;
由于需要对分布式令牌桶实例的总带宽进行限制,主令牌桶节点将按照预设的令牌发放速率生成令牌,该令牌发放速率可以根据限制的总带宽的数值设定,例如网络出口对于各个分布式令牌桶节点的总带宽限制为40Gbps,则令牌发放速率可设为5MB/ms),即每毫秒产生5兆字节(MB)的令牌,或者每两毫秒产生10MB的令牌,此处对于产生令牌的时间间隔不做限定。
607、主令牌桶节点向令牌发放窗口发放令牌;
主令牌桶节点的令牌桶中生成的令牌可以发放给令牌发放窗口,主令牌桶节点可以按照预设的令牌发放规则向令牌发放窗口发放令牌,令牌发放的规则例如可以是:
1、逐个轮询:主令牌桶节点分别轮询各个令牌发放窗口,根据窗口的空闲水位,即令牌发放窗口最大水线与该令牌发放窗口当前令牌数量的差值,也即填满该令牌发放窗口所需的令牌数量,取出主令牌桶中的令牌并发放给令牌发放窗口。若主令牌桶中的令牌数量少于窗口空闲水位,则主令牌桶可以先将现有的令牌发放给该令牌发放窗口,并记录填满窗口空闲水位还缺少的令牌数量,待主令牌桶中产生足够的令牌后再发放给该令牌发放窗口;或者主令牌桶可以先暂停发放令牌,待主令牌桶中令牌数量足够填满窗口空闲水位后再发放。这样,主令牌桶依次轮询各个令牌发放窗口,依次对所有发放窗口进行循环发放令牌,轮询的顺序可以是按照分布式令牌桶节点与主令牌桶节点建立通信连接的先后顺序,具体此处不做限定。
2、按照优先级发放:根据各个分布式令牌桶节点的带宽需求设定不同的优先级,利用加权循环调度算法(weighted round robin,WRR),主令牌桶节点按照不同的优先级权重对不同的窗口进行令牌发放,按权重比例发放令牌,具体的权重比例此处不做限定。
主令牌桶节点向各个令牌发放窗口发放令牌的具体规则此处不做限定。
608、分布式令牌桶节点向主令牌桶节点发送令牌申请消息;
分布式令牌桶可以向主令牌桶节点申请令牌,可以是按照预设的时间间隔和预设的令牌发放速率申请令牌,还可以根据实际情况向主令牌桶节点申请令牌,此处不做具体限定。单位时间申请的令牌数与发放的令牌速率一致,若令牌桶剩余的空间少于申请令牌数时,则只需申请令牌桶剩余空间的令牌数。设置双令牌桶的分布式令牌桶节点可以通过一个申请命令向主令牌桶节点为两个令牌桶申请令牌,也可以通过不同的申请命令分别为两个令牌桶申请令牌,具体此处不做限定。主令牌桶节点可以接收分布式令牌桶节点发送的令牌申请。
609、主令牌桶节点向分布式令牌桶节点发放令牌;
主令牌桶节点可以按照令牌发放窗口中的令牌数量和分布式令牌桶节点申请的数量进行令牌发放,例如,若申请的令牌数量小于或等于相应令牌发放窗口的令牌数量,则令牌发放窗口将申请的令牌发放至对应的分布式令牌桶;若申请的令牌数量大于相应令牌发放窗口的令牌数量,则令牌发放窗口可以拒绝令牌申请,不发放令牌,待得到足够的令牌之后再发放,令牌发放窗口也可以先将现有的所有令牌发放给分布式令牌桶,并记录剩余待发放的令牌,待得到令牌之后,再补发给该分布式令牌桶,此处,对于令牌发放窗口向分布式令牌桶发放令牌的具体规则不做限定。
由于本申请实施例中,在局域网中部署了主令牌桶节点和分布式令牌桶节点,主令牌桶节点可以根据出口限制的总带宽生成令牌,并发放给各个分布式令牌桶节点对应的令牌发放窗口,分布式令牌桶节点不能产生令牌,可以向对应的令牌发放窗口申请令牌,因此,可以对各分布式令牌桶节点的出口总带宽进行控制,使得各分布式令牌桶节点发出的报文,不超过出口总带宽,避免了报文到达网络出口时因超出总带宽限制而被丢弃,因此可以节省局域网内的带宽资源。
上面介绍了基于令牌桶的流量管理方法,下面举例进行说明:
假设,数据中心内,租户A租用了5台VM,分别为VM1、VM2、VM3、VM4和VM5,租用的总带宽为40兆比特(Mbps),为限制该租户在数据中心的总带宽,需要应用分布式令牌桶实例进行流量控制。
首先,选取数据中心的任一节点作为主令牌发放节点,在主令牌发放节点上创建一个租户A的分布式令牌桶实例,在VM1、VM2、VM3、VM4和VM5所属的节点分别创建分布式令牌桶节点,并加入到租户A的分布式令牌桶实例中,并为每个分布式令牌桶节点设置令牌发放窗口,分别为窗口1、窗口2、窗口3、窗口4和窗口5。由于总带宽为40Mbps,计算得到主令牌桶节点的令牌发放速率为5千字节每毫秒(KB/ms),可以是主令牌桶按每毫秒5KB向令牌桶发放令牌,桶深设置为60千字节(KB),各个令牌发放窗口的最大水线均设置为5KB。此外,主令牌桶节点根据各分布式令牌桶节点的带宽使用需求,设置分布式令牌桶的令牌发放速率为16Mbps,即2KB/ms,可以是分布式令牌桶每毫秒向主令牌发放节点的窗口申请2KB的令牌,设置桶深为20KB。
***先初始化,然后再发送数据包。假设初始化后,即0ms时,主令牌桶、各个分布式令牌桶和各个令牌发放窗口均装满令牌。
若第1ms,VM1发送了4KB的数据,VM2发了4KB、VM3、VM4和VM5没有发送数据。VM1和VM2的分布式令牌桶节点将按照预设的令牌申请速率向主令牌桶节点申请2KB令牌,VM3、VM4和VM5由于令牌桶装满令牌因此不需申请。窗口1和窗口2的令牌计数变成3KB,窗口3、窗口4和窗口5仍为5K,这时主令牌桶会给窗口1和窗口2分别发放2KB令牌补满窗口。由于取出令牌的速率小于主令牌桶的令牌发放速率,所以主令牌可以被加满。VM1令牌桶和VM2的令牌桶深变成18KB。
若第2ms,VM1、VM2、VM3、VM4、VM5都发送了4KB数据。VM1、VM2、VM3、VM4、VM5的分布式令牌桶向主令牌桶节点申请2KB令牌,主令牌桶节点会从主令牌桶中取10KB来填补令牌窗口,这时主令牌桶只能补充5KB令牌,所以主令牌桶会变成55KB。VM1令牌桶和VM2的令牌桶深变成16KB,VM3令牌桶和VM4的令牌桶深变成18KB。
若第3ms,VM1、VM2、VM3、VM4、VM5都发送了2KB数据。VM1、VM2、VM3、VM4、VM5的分布式令牌桶向主令牌桶节点申请2KB令牌,主令牌桶节点会从主令牌桶中取10KB来填补令牌窗口,这时主令牌桶只能补充5KB令牌,所以主令牌桶会变成50KB。VM1令牌桶和VM2的令牌桶深变成16KB,VM3、VM4和VM5的令牌桶深变成18KB。
若从第3ms之后,VM1、VM2、VM3、VM4、VM5每毫秒都发送2KB数据,直至第13ms之后,主令牌桶中剩下0KB令牌,第14ms时,VM1、VM2、VM3、VM4、VM5的分布式令牌桶向主令牌桶节点申请2KB令牌,窗口1、窗口2、窗口3、窗口4和窗口5分别需要主令牌桶发放2KB令牌,主令牌桶生成5KB令牌,主令牌桶节点从主令牌桶分别填补窗口1和窗口2各2KB令牌之后,窗口3只够填补1K,主令牌桶节点将记录还需给窗口3补发1KB,然后等待令牌桶令牌刷新。这时窗口1至窗口5的令牌数分别为5KB、5KB、4KB、3KB、3KB。
第15ms时,主令牌桶生成5KB令牌,VM1、VM2、VM3、VM4、VM5都发送了2KB数据。VM1、VM2、VM3、VM4、VM5的分布式令牌桶向主令牌桶节点申请2KB令牌,主令牌桶将上一毫秒需要补发给窗口3的1KB放入窗口3,窗口4此时剩余1KB,因此主令牌桶将4KB发放给窗口4,当前令牌窗口为3KB、3KB、3KB、5KB、1KB。可以理解的是,注意为了保证公平性,窗口填补不足时,下一次只补发当初欠缺的令牌数量,而不是最新的欠缺数量,这样可以避免一直在某个窗口添加令牌。
这样第16ms时,这时主令牌桶放入5KB令牌,VM1、VM2、VM3、VM4、VM5都发送了2KB数据。VM1、VM2、VM3、VM4、VM5的分布式令牌桶向主令牌桶发送节点申请2KB令牌,主令牌发放模块会从主令牌桶中取4KB放入VM5令牌窗口后,然后给VM1窗口放入一个令牌后,这时主令牌桶空了,当前令牌窗口为2KB、1KB、1KB、3KB、3KB、3KB。
请参考下列表格:
下表为主令牌桶在各时刻的令牌数据:
下表为窗口1至窗口5在各时刻的令牌数据:
下表为分布式令牌桶1至分布式令牌桶5在各时刻的令牌数据:
依此处理,这样就可以保证每个分布式节点的令牌桶的总带宽与主令牌桶的令牌发放速率一致,VM1至VM5使用的带宽之和不会超出限制的总带宽。
二、主令牌桶节点直接向分布式令牌桶节点发放令牌。
请参阅图7,为本申请实施例中基于令牌桶的流量管理方法的另一个交互实施例示意图。
701、主令牌桶节点与分布式令牌桶节点建立通信连接;
步骤701与图6对应的实施例中步骤601类似,此处不再赘述。
702、主令牌桶节点设置主令牌桶节点参数;
步骤702与图6对应的实施例中步骤603类似,此处不再赘述。
703、主令牌桶节点设置分布式令牌桶节点参数并发送给分布式令牌桶节点;
步骤703与图6对应的实施例中步骤604类似,此处不再赘述。
704、分布式令牌桶节点设置分布式令牌桶节点参数;
步骤704与图6对应的实施例中步骤605类似,此处不再赘述。
705、主令牌桶节点按照预设的令牌发放速率生成令牌
步骤705与图6对应的实施例中步骤606类似,此处不再赘述。
706、分布式令牌桶节点向主令牌桶节点发送令牌申请消息;
步骤706与图6对应的实施例中步骤608类似,此处不再赘述。
707、主令牌桶节点向分布式令牌桶节点发放令牌;
主令牌桶节点可以按照主令牌中的令牌数量和分布式令牌桶节点申请的数量进行令牌发放,例如,若申请的令牌数量小于或等于相应主令牌桶的令牌数量,则主令牌桶将申请的令牌发放至对应的分布式令牌桶;若申请的令牌数量大于相应主令牌桶的令牌数量,则主令牌桶可以暂时不发放令牌,待得到足够的令牌之后再发放,主令牌桶也可以先将现有的所有令牌发放给分布式令牌桶,并记录剩余待发放的令牌,待得到令牌之后,再补发给该分布式令牌桶,此处,对于主令牌桶向分布式令牌桶发放令牌的具体规则不做限定。
当多个分布式令牌桶节点都向主令牌桶节点申请令牌时,主令牌桶节点可以按照一定的规则进行发放,例如,将令牌申请消息放入一个先入先出队列(first input firstoutput,FIFO)进行排队,按照队列中的令牌申请消息顺序向分布式令牌桶发放令牌。
由于本申请实施例中,在局域网中部署了主令牌桶节点和分布式令牌桶节点,主令牌桶节点可以根据出口限制的总带宽生成令牌,并发放给各个分布式令牌桶节点对应的主令牌桶,分布式令牌桶节点不能产生令牌,可以向对应的主令牌桶申请令牌,因此,可以对各分布式令牌桶节点的出口总带宽进行控制,使得各分布式令牌桶节点发出的报文,不超过出口总带宽,避免了报文到达网络出口时因超出总带宽限制而被丢弃,因此可以节省局域网内的带宽资源。
下面对实现基于令牌桶的流量管理方法的装置进行介绍,请参阅图8,本申请实施例中主令牌桶节点的一个实施例示意图。
本申请实施例提供了一种主令牌桶节点,包括:
连接模块801,用于主令牌桶节点与至少两个分布式令牌桶节点建立通信连接,该主令牌桶节点为局域网中的任一节点,该分布式令牌桶节点为该局域网中任一需要流量控制的节点;
生成模块802,用于按照预设的令牌发放速率生成令牌;
发放模块803,用于根据该分布式令牌桶节点的申请,通过该通信连接将该令牌发放给该分布式令牌桶节点。
该主令牌桶节点还包括:
设置模块804,用于在该主令牌桶节点根据该分布式令牌桶节点的申请,通过该通信连接将该令牌发放给该分布式令牌桶节点之前,为所有该分布式令牌桶设置对应的令牌发放窗口,该令牌发放窗口用于向对应的该分布式令牌桶发放该令牌,该令牌发放窗口设有最大水线,该令牌发放窗口的令牌数量小于或等于最大水线;
该发放模块803还用于,向该令牌发放窗口发放该令牌。
该发放模块803具体用于:接收该分布式令牌桶节点通过该通信连接发送的令牌申请消息;根据该令牌申请消息将该令牌发放窗口中的该令牌发放给该分布式令牌桶节点,该令牌发放窗口为与该分布式令牌桶节点对应的窗口。
该发放模块803具体用于:轮询所有该令牌发放窗口并发放该令牌;或者,根据加权循环调度算法WRR向该令牌发放窗口的发放该令牌。
该设置模块804还用于:在主令牌桶节点与至少两个分布式令牌桶节点建立通信连接之后,设置主令牌桶节点参数,该主令牌桶节点参包括桶深和该令牌发放速率,该令牌发放速率根据总带宽确定,该总带宽为所有该分布式令牌桶节点的限制带宽;设置该分布式令牌桶参数,并将该分布式令牌桶参数发送给该分布式令牌桶节点,该分布式令牌桶参数包括该分布式令牌桶节点的桶深和该分布式令牌桶节点的令牌发放速率。
由于本申请实施例提供的主令牌桶节点,通过连接模块801连接局域网中部署的主令牌桶节点和分布式令牌桶节点,由生成模块802生成令牌,并通过发放模块发放给各个分布式令牌桶节点,可以实现对各分布式令牌桶节点出口总带宽的控制,使得各分布式令牌桶节点发出的报文,不超过出口总带宽,避免了报文到达网络出口时因超出总带宽限制而被丢弃,因此可以节省局域网内的带宽资源。此外,还可以包含设置模块804,为分布式令牌桶节点设置分布式令牌桶参数,实现主令牌桶节点对各分布式节点的统一设置。
请参阅图9,本申请实施例中分布式令牌桶节点的一个实施例示意图。
本申请实施例提供了一种分布式令牌桶节点,包括:
连接模块901,用于与主令牌桶节点建立通信连接,该分布式令牌桶节点为局域网中任一需要流量控制的节点,该主令牌桶节点为该局域网中的任一节点;
发送模块902,用于通过该通信连接向该主令牌桶节点发送令牌申请消息;
接收模块903,用于通过该通信连接接收该主令牌桶节点发放的令牌。
该接收模块903还用于:在该分布式令牌桶节点与主令牌桶节点建立通信连接之后,通过该通信连接接收该主令牌桶节点设置的该分布式令牌桶节点参数;
或者,分布式令牌桶节点还包括设置模块904,用于设置该分布式令牌桶节点参数,该分布式令牌桶节点参数包括该分布式令牌桶节点的桶深和该分布式令牌桶节点的令牌发放速率。
由于本申请实施例提供的主令牌桶节点,连接模块901可以与局域网中部署的主令牌桶节点建立连接,通过发送模块902向主令牌桶节点发送令牌申请消息,由接收模块903接收主令牌桶节点发送的令牌,此外,还可以包含设置模块904,分布式令牌桶节点可以设置本分布式令牌桶节点的分布式令牌桶参数。由于分布式令牌桶节点自身不能产生令牌,通过主令牌桶节点的集中控制,可以实现分布式令牌桶节点出口总带宽的控制,使得各分布式令牌桶节点发出的报文,不超过出口总带宽,避免了报文到达网络出口时因超出总带宽限制而被丢弃,因此可以节省局域网内的带宽资源。
本申请实施例中介绍的主令牌桶节点可以为IT、云计算、数据通信等领域的交换机、路由器或数据网关产品,此处不做具体限定。请参阅图10,为本申请实施例中主令牌桶节点的另一个实施例示意图:
该主令牌桶节点1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processing units,CPU)1001(例如,一个或一个以上处理器)和存储器1005,该存储器1005中存储有一个或一个以上的应用程序或数据。
其中,存储器1005可以是易失性存储或持久存储。存储在存储器1005的程序可以包括一个或一个以上模块,每个模块可以包括对主令牌桶节点中的一系列指令操作。更进一步地,中央处理器1001可以设置为与存储器1005通信,在主令牌桶节点1000上执行存储器1005中的一系列指令操作。
主令牌桶节点1000还可以包括一个或一个以上电源1002,一个或一个以上有线或无线网络接口1003,一个或一个以上输入输出接口1004,和/或,一个或一个以上操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本实施例中主令牌桶节点1000中的中央处理器1001所执行的流程与前述图3、图5至图7所示的实施例中描述的方法流程类似,此处不再赘述。
本申请实施例中介绍的分布式令牌桶节点可以为服务器、交换机、路由器或数据网关产品,此处不做具体限定。请参阅图11,为本申请实施例中分布式令牌桶节点的另一个实施例示意图:
该分布式令牌桶节点1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processing units,CPU)1101(例如,一个或一个以上处理器)和存储器1105,该存储器1105中存储有一个或一个以上的应用程序或数据。
其中,存储器1105可以是易失性存储或持久存储。存储在存储器1105的程序可以包括一个或一个以上模块,每个模块可以包括对分布式令牌桶节点中的一系列指令操作。更进一步地,中央处理器1101可以设置为与存储器1105通信,在分布式令牌桶节点1100上执行存储器1105中的一系列指令操作。
分布式令牌桶节点1100还可以包括一个或一个以上电源1102,一个或一个以上有线或无线网络接口1103,一个或一个以上输入输出接口1104,和/或,一个或一个以上操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本实施例中分布式令牌桶节点1100中的中央处理器1101所执行的流程与前述图4至图7所示的实施例中描述的方法流程类似,此处不再赘述。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现前述图3至图7所示的实施例中的方法流程。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质用于储存为前述主令牌桶节点所用的计算机软件指令,其包括用于执行为主令牌桶节点所设计的程序。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质用于储存为前述分布式令牌桶节点所用的计算机软件指令,其包括用于执行为分布式令牌桶节点所设计的程序。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (18)
1.一种基于令牌桶的流量管理方法,其特征在于,包括:
主令牌桶节点与至少两个分布式令牌桶节点建立通信连接,所述主令牌桶节点为局域网中的任一节点,所述分布式令牌桶节点为所述局域网中任一需要流量控制的节点;
所述主令牌桶节点按照预设的令牌发放速率生成令牌;
所述主令牌桶节点根据所述分布式令牌桶节点的申请,通过所述通信连接将所述令牌发放给所述分布式令牌桶节点;
所述主令牌桶节点根据所述分布式令牌桶节点的申请,通过所述通信连接将所述令牌发放给所述分布式令牌桶节点之前,所述方法还包括:
所述主令牌桶节点为所有所述分布式令牌桶节点中每个分布式令牌桶节点分别设置对应的令牌发放窗口,所述令牌发放窗口用于向对应的所述分布式令牌桶节点发放所述令牌,所述令牌发放窗口设有最大水线,所述令牌发放窗口的令牌数量小于或等于最大水线;
所述主令牌桶节点向所述令牌发放窗口发放所述令牌。
2.根据权利要求1所述的方法,其特征在于,所述主令牌桶节点根据所述分布式令牌桶节点的申请,通过所述通信连接将所述令牌发放给所述分布式令牌桶节点包括:
所述主令牌桶节点接收所述分布式令牌桶节点通过所述通信连接发送的令牌申请消息;
所述主令牌桶节点根据所述令牌申请消息将所述令牌发放窗口中的所述令牌发放给所述分布式令牌桶节点,所述令牌发放窗口为与所述分布式令牌桶节点对应的窗口。
3.根据权利要求1或2所述的方法,其特征在于,所述主令牌桶节点向所述令牌发放窗口发放所述令牌包括:
所述主令牌桶节点轮询所有所述令牌发放窗口并发放所述令牌;
或者,所述主令牌桶节点根据加权循环调度算法WRR向所述令牌发放窗口的发放所述令牌。
4.根据权利要求1或2所述的方法,其特征在于,在所述主令牌桶节点与至少两个分布式令牌桶节点建立通信连接之后,所述方法还包括:
所述主令牌桶节点设置主令牌桶节点参数,所述主令牌桶节点参包括桶深和所述令牌发放速率,所述令牌发放速率根据总带宽确定,所述总带宽为所有所述分布式令牌桶节点的限制带宽;
所述主令牌桶节点设置分布式令牌桶节点参数,并将所述分布式令牌桶节点参数发送给所述分布式令牌桶节点,所述分布式令牌桶节点参数包括所述分布式令牌桶节点的桶深和所述分布式令牌桶节点的令牌发放速率。
5.根据权利要求1或2所述的方法,其特征在于,所述主令牌桶节点设置单令牌桶,且所述分布式令牌桶节点设置单令牌桶;
或者,所述主令牌桶节点设置双令牌桶,且所述分布式令牌桶节点设置双令牌桶。
6.一种基于令牌桶的流量管理方法,其特征在于,包括:
分布式令牌桶节点与主令牌桶节点建立通信连接,所述分布式令牌桶节点为局域网中任一需要流量控制的节点,所述主令牌桶节点为所述局域网中的任一节点;
所述分布式令牌桶节点通过所述通信连接向所述主令牌桶节点发送令牌申请消息,所述令牌申请消息用于从主令牌桶节点的令牌发放窗口申请令牌,所述令牌发放窗口用于接收主令牌桶节点发放的令牌,并仅向所述分布式令牌桶节点发放所述令牌;
所述分布式令牌桶节点通过所述通信连接接收所述主令牌桶节点发放的所述令牌。
7.根据权利要求6所述的方法,其特征在于,所述分布式令牌桶节点与主令牌桶节点建立通信连接之后,所述方法还包括:
所述分布式令牌桶节点通过所述通信连接接收所述主令牌桶节点设置的分布式令牌桶节点参数,或者,所述分布式令牌桶节点设置所述分布式令牌桶节点参数,所述分布式令牌桶节点参数包括所述分布式令牌桶节点的桶深和所述分布式令牌桶节点的令牌发放速率。
8.根据权利要求6或7中任一项所述的方法,其特征在于,所述分布式令牌桶节点设置单令牌桶,且所述主令牌桶节点设置单令牌桶;
或者,所述分布式令牌桶节点设置双令牌,且所述主令牌桶节点设置双令牌桶。
9.一种主令牌桶节点,其特征在于,包括:
连接模块,用于主令牌桶节点与至少两个分布式令牌桶节点建立通信连接,所述主令牌桶节点为局域网中的任一节点,所述分布式令牌桶节点为所述局域网中任一需要流量控制的节点;
生成模块,用于按照预设的令牌发放速率生成令牌;
发放模块,用于根据所述分布式令牌桶节点的申请,通过所述通信连接将所述令牌发放给所述分布式令牌桶节点;
所述主令牌桶节点还包括:
设置模块,用于在所述主令牌桶节点根据所述分布式令牌桶节点的申请,通过所述通信连接将所述令牌发放给所述分布式令牌桶节点之前,为所有所述分布式令牌桶节点中每个分布式令牌桶节点分别设置对应的令牌发放窗口,所述令牌发放窗口用于向对应的所述分布式令牌桶节点发放所述令牌,所述令牌发放窗口设有最大水线,所述令牌发放窗口的令牌数量小于或等于最大水线;
所述发放模块还用于,向所述令牌发放窗口发放所述令牌。
10.根据权利要求9所述的主令牌桶节点,其特征在于,所述发放模块具体用于:
接收所述分布式令牌桶节点通过所述通信连接发送的令牌申请消息;
根据所述令牌申请消息将所述令牌发放窗口中的所述令牌发放给所述分布式令牌桶节点,所述令牌发放窗口为与所述分布式令牌桶节点对应的窗口。
11.根据权利要求9或10所述的主令牌桶节点,其特征在于,所述发放模块具体用于:
轮询所有所述令牌发放窗口并发放所述令牌;
或者,根据加权循环调度算法WRR向所述令牌发放窗口的发放所述令牌。
12.根据权利要求9或10所述的主令牌桶节点,其特征在于,所述设置模块还用于:
在主令牌桶节点与至少两个分布式令牌桶节点建立通信连接之后,设置主令牌桶节点参数,所述主令牌桶节点参包括桶深和所述令牌发放速率,所述令牌发放速率根据总带宽确定,所述总带宽为所有所述分布式令牌桶节点的限制带宽;
设置分布式令牌桶节点参数,并将所述分布式令牌桶节点参数发送给所述分布式令牌桶节点,所述分布式令牌桶节点参数包括所述分布式令牌桶节点的桶深和所述分布式令牌桶节点的令牌发放速率。
13.一种分布式令牌桶节点,其特征在于,包括:
连接模块,用于与主令牌桶节点建立通信连接,所述分布式令牌桶节点为局域网中任一需要流量控制的节点,所述主令牌桶节点为所述局域网中的任一节点;
发送模块,用于通过所述通信连接向所述主令牌桶节点发送令牌申请消息,所述令牌申请消息用于从主令牌桶节点的令牌发放窗口申请令牌,所述令牌发放窗口用于接收主令牌桶节点发放的令牌,并仅向所述分布式令牌桶节点发放所述令牌;
接收模块,用于通过所述通信连接接收所述主令牌桶节点发放的令牌。
14.根据权利要求13所述的分布式令牌桶节点,其特征在于,所述接收模块还用于:
在所述分布式令牌桶节点与主令牌桶节点建立通信连接之后,通过所述通信连接接收所述主令牌桶节点设置的分布式令牌桶节点参数;
或者,分布式令牌桶节点还包括设置模块,用于设置所述分布式令牌桶节点参数,所述分布式令牌桶节点参数包括所述分布式令牌桶节点的桶深和所述分布式令牌桶节点的令牌发放速率。
15.一种通信设备,其特征在于,包括:
处理器、存储器、输入输出设备以及总线;
所述处理器、存储器、输入输出设备分别与所述总线相连;
所述存储器用于存储软件指令;
所述处理器用于执行所述指令以执行如下步骤:
与至少两个分布式令牌桶节点建立通信连接,所述通信设备为局域网中的任一节点,所述分布式令牌桶节点为所述局域网中任一需要流量控制的节点;
按照预设的令牌发放速率生成令牌;
所述通信设备为所有所述分布式令牌桶节点中每个分布式令牌桶节点分别设置对应的令牌发放窗口,所述令牌发放窗口用于向对应的所述分布式令牌桶节点发放所述令牌,所述令牌发放窗口设有最大水线,所述令牌发放窗口的令牌数量小于或等于最大水线;
所述通信设备向所述令牌发放窗口发放所述令牌;
根据所述分布式令牌桶节点的申请,通过所述通信连接将所述令牌发放给所述分布式令牌桶节点。
16.一种通信设备,其特征在于,包括:
处理器、存储器、输入输出设备以及总线;
所述处理器、存储器、输入输出设备分别与所述总线相连;
所述存储器用于存储软件指令;
所述处理器用于执行所述指令以执行如下步骤:
与主令牌桶节点建立通信连接,所述通信设备为局域网中任一需要流量控制的节点,所述主令牌桶节点为所述局域网中的任一节点;
通过所述通信连接向所述主令牌桶节点发送令牌申请消息,所述令牌申请消息用于从主令牌桶节点的令牌发放窗口申请令牌,所述令牌发放窗口用于接收主令牌桶节点发放的令牌,并仅向所述通信设备发放所述令牌;
通过所述通信连接接收所述主令牌桶节点发放的令牌。
17.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机上运行时,使得计算机执行如权利要求1至5中任一项所述的方法。
18.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机上运行时,使得计算机执行如权利要求6至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811003669.0A CN108848038B (zh) | 2018-08-30 | 2018-08-30 | 基于令牌桶的流量管理方法和令牌桶节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811003669.0A CN108848038B (zh) | 2018-08-30 | 2018-08-30 | 基于令牌桶的流量管理方法和令牌桶节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108848038A CN108848038A (zh) | 2018-11-20 |
CN108848038B true CN108848038B (zh) | 2021-01-29 |
Family
ID=64188821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811003669.0A Active CN108848038B (zh) | 2018-08-30 | 2018-08-30 | 基于令牌桶的流量管理方法和令牌桶节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108848038B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109714268B (zh) * | 2019-01-23 | 2022-06-07 | 平安科技(深圳)有限公司 | 一种虚拟私有云的流量控制方法及相关装置 |
CN110138756B (zh) | 2019-04-30 | 2021-05-25 | 网宿科技股份有限公司 | 一种限流方法及*** |
CN112995058B (zh) * | 2019-12-13 | 2023-11-24 | 深圳市中兴微电子技术有限公司 | 一种令牌的调整方法及装置 |
CN112328613B (zh) * | 2020-11-04 | 2022-07-22 | 迈普通信技术股份有限公司 | 联机分析处理方法、装置、电子设备及存储介质 |
CN113645150B (zh) * | 2021-06-11 | 2023-06-27 | 天翼云科技有限公司 | 传输速率控制方法、装置、电子设备和可读存储介质 |
CN113938435B (zh) * | 2021-08-30 | 2024-01-16 | 奇安信科技集团股份有限公司 | 数据传输方法、装置、电子设备、存储介质及程序产品 |
CN116582496B (zh) * | 2023-07-13 | 2024-04-19 | 广东睿江云计算股份有限公司 | 令牌桶丢包优化方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101997766A (zh) * | 2009-08-31 | 2011-03-30 | 中兴通讯股份有限公司 | 一种基于优先级的令牌桶限速的方法及*** |
CN102118269A (zh) * | 2011-02-28 | 2011-07-06 | 华为技术有限公司 | 一种令牌发放方法和*** |
CN103188160A (zh) * | 2013-04-18 | 2013-07-03 | 杭州华三通信技术有限公司 | 一种流量控制方法和转发单元 |
CN103326953A (zh) * | 2013-03-28 | 2013-09-25 | 华为技术有限公司 | 一种基于令牌桶的流量限制方法和装置 |
CN107579926A (zh) * | 2017-10-20 | 2018-01-12 | 南京易捷思达软件科技有限公司 | 基于令牌桶算法的Ceph云存储***的QoS设置方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010151496A1 (en) * | 2009-06-22 | 2010-12-29 | Citrix Systems, Inc. | Systems and methods for platform rate limiting |
US9471393B2 (en) * | 2013-06-25 | 2016-10-18 | Amazon Technologies, Inc. | Burst-mode admission control using token buckets |
-
2018
- 2018-08-30 CN CN201811003669.0A patent/CN108848038B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101997766A (zh) * | 2009-08-31 | 2011-03-30 | 中兴通讯股份有限公司 | 一种基于优先级的令牌桶限速的方法及*** |
CN102118269A (zh) * | 2011-02-28 | 2011-07-06 | 华为技术有限公司 | 一种令牌发放方法和*** |
CN103326953A (zh) * | 2013-03-28 | 2013-09-25 | 华为技术有限公司 | 一种基于令牌桶的流量限制方法和装置 |
CN103188160A (zh) * | 2013-04-18 | 2013-07-03 | 杭州华三通信技术有限公司 | 一种流量控制方法和转发单元 |
CN107579926A (zh) * | 2017-10-20 | 2018-01-12 | 南京易捷思达软件科技有限公司 | 基于令牌桶算法的Ceph云存储***的QoS设置方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108848038A (zh) | 2018-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108848038B (zh) | 基于令牌桶的流量管理方法和令牌桶节点 | |
CN111201757B (zh) | 在底层网络上动态配置的网络接入节点虚拟结构 | |
EP3248343B1 (en) | Controlling fair bandwidth allocation efficiently | |
Vattikonda et al. | Practical TDMA for datacenter Ethernet | |
Jang et al. | Silo: Predictable message latency in the cloud | |
US9794185B2 (en) | Bandwidth guarantee and work conservation | |
Popa et al. | FairCloud: Sharing the network in cloud computing | |
Lam et al. | Netshare and stochastic netshare: predictable bandwidth allocation for data centers | |
TWI538453B (zh) | 網路介面控制器、積體電路微晶片、系統及方法 | |
EP2641361B1 (en) | Dynamic queuing and pinning to improve quality of service on uplinks in a virtualized environment | |
CN109361733B (zh) | 服务质量控制方法及装置 | |
US10986025B2 (en) | Weighted random early detection improvements to absorb microbursts | |
EP4006735B1 (en) | Fine grain traffic shaping offload for a network interface card | |
Tariq et al. | QAMO-SDN: QoS aware Multipath TCP for software defined optical networks | |
Shahzad et al. | Reduce VM migration in bandwidth oversubscribed cloud data centres | |
US10819646B2 (en) | Systems and methods for distributing unused bandwidth of metered flows in an envelope based on weights | |
CN111416775B (zh) | 数据接收和发送方法、装置及*** | |
Jang et al. | Silo: Predictable message completion time in the cloud | |
CN115378885B (zh) | 超融合架构下的虚拟机业务网络带宽管理方法及装置 | |
KR20120055947A (ko) | 가입자 인지 플로우별 QoS 제공 방법 및 장치 | |
CN116954874A (zh) | 资源分配方法、装置、设备及存储介质 | |
Bannazadeh et al. | A distributed ethernet traffic shaping system | |
Botero et al. | The bottlenecked virtual network problem in bandwidth allocation for network virtualization | |
CN114448903A (zh) | 一种报文处理方法、装置和通信设备 | |
Wang et al. | Dynamic bandwidth allocation for preventing congestion in data center networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |