CN109714268B - 一种虚拟私有云的流量控制方法及相关装置 - Google Patents
一种虚拟私有云的流量控制方法及相关装置 Download PDFInfo
- Publication number
- CN109714268B CN109714268B CN201910063220.1A CN201910063220A CN109714268B CN 109714268 B CN109714268 B CN 109714268B CN 201910063220 A CN201910063220 A CN 201910063220A CN 109714268 B CN109714268 B CN 109714268B
- Authority
- CN
- China
- Prior art keywords
- data packet
- tokens
- sub
- token
- token bucket
- 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
-
- 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/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
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为本发明实施例中虚拟私有云的结构示意图;
图6为本发明实施例中一种分布式网关发送数据包的示意图;
图7为本发明实施例中另一种分布式网关发送数据包的示意图;
图8为本发明实施例提供的一种虚拟私有云的流量控制装置的示意图;
图9为本发明实施例涉及的硬件运行环境的电子设备结构示意图。
具体实施方式
本发明实施例提供的虚拟私有云的流量控制方法及相关装置,以期使得虚拟私有云的流量控制更精确。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明的实施例中,虚拟私有云包括控制器和分布式网关,虚拟私有云的控制器中设置总令牌桶,虚拟私有云的分布式网关中设置分令牌桶。
首先参见图1,图1为本发明的一个实施例提供的一种虚拟私有云的流量控制方法的流程图。其中,如图1所示,本发明的一个实施例提供的一种虚拟私有云的流量控制方法可以包括:
101、当所述分布式网关发送数据包时,获取所述分布式网关发送数据包的大小。
可选的,当所述分布式网关发送数据包时,先对所述数据包的权限进行验证,即在获取所述数据包的大小之前,所述分布式网关获取所述数据包的源地址和目标地址,然后所述分布式网关根据所述数据包的源地址和目标地址确认所述分布式网关有将所述数据包发送到所述数据包的目标地址的权限。
102、向所述控制器发送流量请求,当所述流量请求携带下发令牌指令时,所述流量请求用于指示所述控制器按照所述虚拟私有云设置的平均发送速率将所述总令牌桶中的令牌下发到所述分令牌桶中。
其中,控制器中的总令牌桶以固定速率源源不断产生令牌,固定速率为虚拟私有云设置的平均发送速率,而且总令牌桶的容量是有限的,如果令牌不被消耗或者被消耗的速度小于产生的速度,那么总令牌桶中的令牌会不断增多,直到把总令牌桶填满,后面再产生的令牌就会从总令牌桶中溢出,最后总令牌桶中的令牌数与总令牌桶的容量保持一致。
分布式网关中的分令牌桶不会产生令牌,如果分布式网关要发送数据包,那么需要总令牌桶将令牌下发到分令牌桶中,如果分令牌桶中有足够的令牌,那么允许发送数据包,如果分令牌桶中没有足够的令牌,则不允许发送数据包,不同大小的数据包消耗的令牌数量也不一样,数据包越大,需要消耗的令牌数量越多,而且当分布式网关发送数据包时,需要从分令牌桶中删除与数据包的大小对应数量的令牌,将数据包发送到网络。
当控制器接收到分布式网关发送的流量请求,该流量请求携带下发令牌指令时,控制器按照虚拟私有云设置的平均发送速率将总令牌桶中的令牌下发到分布式网关的分令牌桶中,这样分布式网关可以通过消耗分令牌桶中的令牌发送数据包。
103、获取所述分令牌桶中的第一令牌数量。
其中,分令牌桶中不会产生令牌,分令牌桶中的令牌是由总令牌桶以固定速率下发的,而且分令牌桶的容量也是有限的,在发送数据包之前,分布式网关获取分令牌桶中的第一令牌数量,才能判断是发送数据包还是丢弃数据包。
104、判断所述数据包的大小是否比所述第一令牌数量小。
由于分布式网关发送数据包时需要消耗与数据包的大小对应数量的令牌,所以发送数据包之前,需要先判断数据包的大小与分令牌桶中的令牌数量的关系。
105、当所述数据包的大小比所述第一令牌数量小时,通过所述分令牌桶中的令牌发送所述数据包。
106、从所述分令牌桶中删除与所述数据包的大小对应数量的令牌。
107、当所述数据包的大小比所述第一令牌数量大时,丢弃所述数据包。
可选的,当数据包的大小比第一令牌数量大时,分布式网关不直接丢弃数据包,而是将数据包存储在待发送队列中,经过一段时间后,再次获取分令牌桶中令牌数量,当数据包的大小比再次获取的分令牌桶中的令牌数量小时,发送存储在待发送队列中的数据包,并且从分令牌桶中删除与数据包的大小对应数量的令牌。
参见图2,图2为本发明的另一个实施例提供的另一种虚拟私有云的流量控制方法的流程图。其中,如图2所示,本发明的另一个实施例提供的另一种虚拟私有云的流量控制方法可以包括:
201、当分布式网关发送数据包时,分布式网关对数据包的权限进行验证。
当分布式网关发送数据包时,分布式网关先对数据包的权限进行验证,具体为分布式网关获取数据包的源地址和目标地址,然后分布式网关根据数据包的源地址和目标地址确认分布式网关有将数据包发送到数据包的目标地址的权限。
202、分布式网关获取数据包的大小。
203、分布式网关向控制器发送流量请求,当流量请求携带下发令牌指令时,控制器按照虚拟私有云设置的平均发送速率将总令牌桶中的令牌下发到分令牌桶中。
其中,控制器中的总令牌桶以固定速率源源不断产生令牌,固定速率为虚拟私有云设置的平均发送速率,而且总令牌桶的容量是有限的,如果令牌不被消耗或者被消耗的速度小于产生的速度,那么总令牌桶中的令牌会不断增多,直到把总令牌桶填满,后面再产生的令牌就会从总令牌桶中溢出,最后总令牌桶中的令牌数与总令牌桶的容量保持一致。
分布式网关中的分令牌桶不会产生令牌,如果分布式网关要发送数据包,那么需要总令牌桶将令牌下发到分令牌桶中,如果分令牌桶中有足够的令牌,那么允许发送数据包,如果分令牌桶中没有足够的令牌,则不允许发送数据包,不同大小的数据包消耗的令牌数量也不一样,数据包越大,需要消耗的令牌数量越多,而且当分布式网关发送数据包时,需要从分令牌桶中删除与数据包的大小对应数量的令牌,将数据包发送到网络。
当控制器接收到分布式网关发送的流量请求,该流量请求携带下发令牌指令时,控制器按照虚拟私有云设置的平均发送速率将总令牌桶中的令牌下发到分布式网关的分令牌桶中,这样分布式网关可以通过消耗分令牌桶中的令牌发送数据包。
204、分布式网关获取分令牌桶中的第一令牌数量。
其中,分令牌桶中不会产生令牌,分令牌桶中的令牌是由总令牌桶以固定速率下发的,而且分令牌桶的容量也是有限的,在发送数据包之前,分布式网关获取分令牌桶中的第一令牌数量,才能判断是发送数据包还是丢弃数据包。
205、判断数据包的大小是否比第一令牌数量小。
由于分布式网关发送数据包时需要消耗与数据包的大小对应数量的令牌,所以发送数据包之前,需要先判断数据包的大小与分令牌桶中的令牌数量的关系。
206、当数据包的大小比第一令牌数量大时,分布式网关将数据包存储在待发送队列中。
当数据包的大小比第一令牌数量大时,分布式网关不直接丢弃数据包,而是将数据包存储在待发送队列中,等待分令牌桶中有足够的令牌再发送该数据包。
或者,还可以继续发送数据包,但是需要对数据包做特殊标记,数据包发送到网络上后,如果网络过载或者拥塞,那么将有特殊标记的数据包丢弃。
207、经过第一预设时间后,分布式网关获取分令牌桶中的第二令牌数量。
由于控制器按照虚拟私有云设置的平均发送速率将总令牌桶中的令牌下发到分令牌桶中,所以经过第一预设时间后,有可能分令牌桶中已经有足够数据包发送的令牌,所以分布式网关获取分令牌桶中的第二令牌数量。
208、当数据包的大小比第二令牌数量小时,分布式网关通过分令牌桶中的令牌发送存储在待发送队列中的数据包。
209、分布式网关从分令牌桶中删除与数据包的大小对应数量的令牌。
参见图3,图3为本发明的另一个实施例提供的另一种虚拟私有云的流量控制方法的流程图。其中,如图3所示,本发明的另一个实施例提供的另一种虚拟私有云的流量控制方法可以包括:
301、当分布式网关发送数据包时,获取分布式网关发送数据包的大小。
可选的,当分布式网关发送数据包时,先对数据包的权限进行验证,即在获取数据包的大小之前,分布式网关获取数据包的源地址和目标地址,然后分布式网关根据数据包的源地址和目标地址确认分布式网关有将数据包发送到数据包的目标地址的权限。
302、向控制器发送流量请求,当流量请求携带数据包的大小时,流量请求用于指示控制器获取总令牌桶中的第三令牌数量。
其中,控制器中的总令牌桶以固定速率源源不断产生令牌,固定速率为虚拟私有云设置的平均发送速率,而且总令牌桶的容量是有限的,如果令牌不被消耗或者被消耗的速度小于产生的速度,那么总令牌桶中的令牌会不断增多,直到把总令牌桶填满,后面再产生的令牌就会从总令牌桶中溢出,最后总令牌桶中的令牌数与总令牌桶的容量保持一致。
分布式网关中的分令牌桶不会产生令牌,如果分布式网关要发送数据包,那么需要总令牌桶将令牌下发到分令牌桶中,如果分令牌桶中有足够的令牌,那么允许发送数据包,如果分令牌桶中没有足够的令牌,则不允许发送数据包,不同大小的数据包消耗的令牌数量也不一样,数据包越大,需要消耗的令牌数量越多,而且当分布式网关发送数据包时,需要从分令牌桶中删除与数据包的大小对应数量的令牌,将数据包发送到网络。
当控制器接收到分布式网关发送的流量请求,该流量请求携带数据包的大小时,控制器获取总令牌桶中的第三令牌数量。
303、判断数据包的大小是否比第三令牌数量小。
由于分布式网关发送数据包时需要消耗与数据包的大小对应数量的令牌,所以发送数据包之前,需要先判断数据包的大小与分令牌桶中的令牌数量的关系。
304、当数据包的大小比第三令牌数量小时,将总令牌桶中的令牌下发到分令牌桶中。
其中,将总令牌桶中的令牌下发到分令牌桶中包括:
将总令牌桶中与数据包的大小对应数量的令牌全部下发到分令牌桶中,例如数据包的大小为K个字节,那么将总令牌桶中的K个令牌全部下发到分令牌桶中。
或者,先将总令牌桶中与数据包的大小对应数量的Q%的令牌下发到分令牌桶中,其中,Q为小于100的正整数,再将总令牌桶中与数据包的大小对应数量的(100-Q)%的令牌下发到分令牌桶中,例如,数据包的大小为100个字节,当Q为70时,先将总令牌桶中的70个令牌下发到分令牌桶中,再将总令牌桶中的30个令牌下发到分令牌桶中。这样,分布式网关可以先使用70个令牌发送数据包的前70个字节,一边发送的时候总令牌桶再将剩余的30个令牌下发到分令牌桶中,这样可以缩短将总令牌桶中的令牌下发到分令牌桶的时间。
305、通过分令牌桶中的令牌发送数据包。
306、从分令牌桶中删除与数据包的大小对应数量的令牌。
307、当数据包的大小比第三令牌数量大时,向分布式网关发送丢弃指令,丢弃指令用于指示分布式网关丢弃数据包。
参见图4,图4为本发明的另一个实施例提供的另一种虚拟私有云的流量控制方法的流程图。其中,如图4所示,本发明的另一个实施例提供的另一种虚拟私有云的流量控制方法可以包括:
401、当分布式网关发送数据包时,获取分布式网关发送数据包的大小。
可选的,当分布式网关发送数据包时,先对数据包的权限进行验证,即在获取数据包的大小之前,分布式网关获取数据包的源地址和目标地址,然后分布式网关根据数据包的源地址和目标地址确认分布式网关有将数据包发送到数据包的目标地址的权限。
402、向所述控制器发送流量请求,当流量请求携带数据包的大小时,流量请求用于指示控制器获取总令牌桶中的第三令牌数量。
其中,控制器中的总令牌桶以固定速率源源不断产生令牌,固定速率为虚拟私有云设置的平均发送速率,而且总令牌桶的容量是有限的,如果令牌不被消耗或者被消耗的速度小于产生的速度,那么总令牌桶中的令牌会不断增多,直到把总令牌桶填满,后面再产生的令牌就会从总令牌桶中溢出,最后总令牌桶中的令牌数与总令牌桶的容量保持一致。
分布式网关中的分令牌桶不会产生令牌,如果分布式网关要发送数据包,那么需要总令牌桶将令牌下发到分令牌桶中,如果分令牌桶中有足够的令牌,那么允许发送数据包,如果分令牌桶中没有足够的令牌,则不允许发送数据包,不同大小的数据包消耗的令牌数量也不一样,数据包越大,需要消耗的令牌数量越多,而且当分布式网关发送数据包时,需要从分令牌桶中删除与数据包的大小对应数量的令牌,将数据包发送到网络。
当控制器接收到分布式网关发送的流量请求,该流量请求携带数据包的大小时,控制器获取总令牌桶中的第三令牌数量。
403、判断数据包的大小是否比第三令牌数量小。
由于分布式网关发送数据包时需要消耗与数据包的大小对应数量的令牌,所以发送数据包之前,需要先判断数据包的大小与分令牌桶中的令牌数量的关系。
404、当数据包的大小比第三令牌数量大时,向分布式网关发送等待指令,等待指令用于指示分布式网关将数据包存储在待发送队列中。
405、经过第二预设时间后,获取总令牌桶中的第四令牌数量。
由于总令牌桶以固定速率源源不断产生令牌,所以经过第二预设挤时间后,有可能总令牌桶中已经有足够下发到分令牌桶的令牌。
406、当数据包的大小比第四令牌数量小时,将总令牌桶中的令牌下发到分令牌桶中。
其中,将总令牌桶中的令牌下发到分令牌桶中包括:
将总令牌桶中与数据包的大小对应数量的令牌全部下发到分令牌桶中,例如数据包的大小为K个字节,那么将总令牌桶中的K个令牌全部下发到分令牌桶中。
或者,先将总令牌桶中与数据包的大小对应数量的Q%的令牌下发到分令牌桶中,其中,Q为小于100的正整数,再将总令牌桶中与数据包的大小对应数量的(100-Q)%的令牌下发到分令牌桶中,例如,数据包的大小为100个字节,当Q为70时,先将总令牌桶中的70个令牌下发到分令牌桶中,再将总令牌桶中的30个令牌下发到分令牌桶中。这样,分布式网关可以先使用70个令牌发送数据包的前70个字节,一边发送的时候总令牌桶再将剩余的30个令牌下发到分令牌桶中,这样可以缩短将总令牌桶中的令牌下发到分令牌桶的时间。
407、通过分令牌桶中的令牌发送存储在待发送队列中的数据包。
408、从分令牌桶中删除与数据包的大小对应数量的令牌。
参见图8,图8为本发明的另一个实施例提供的一种虚拟私有云的流量控制装置的示意图。其中,如图8所示,本发明的另一个实施例提供的一种虚拟私有云的流量控制装置可以包括:
第一获取模块801,用于当所述分布式网关发送数据包时,获取所述分布式网关发送数据包的大小。
第一发送模块802,用于向所述控制器发送流量请求,当所述流量请求携带下发令牌指令时,所述流量请求用于指示所述控制器按照所述虚拟私有云设置的平均发送速率将所述总令牌桶中的令牌下发到所述分令牌桶中。
第二获取模块803,用于获取所述分令牌桶中的第一令牌数量。
判断模块804,用于判断所述数据包的大小是否比所述第一令牌数量小。
第二发送模块805,用于当所述数据包的大小比所述第一令牌数量小时,通过所述分令牌桶中的令牌发送所述数据包。
删除模块806,用于从所述分令牌桶中删除与所述数据包的大小对应数量的令牌。
丢弃模块807,用于当所述数据包的大小比所述第一令牌数量大时,丢弃所述数据包。
本发明虚拟私有云的流量控制装置的具体实施例与上述虚拟私有云的流量控制方法的各实施例基本相同,在此不做赘述。
参见图9,图9为本发明的实施例涉及的硬件运行环境的电子设备结构示意图。其中,如图9所示,本发明的实施例涉及的硬件运行环境的电子设备可以包括:
处理器901,例如CPU。
存储器902,可选的,存储器可以为高速RAM存储器,也可以是稳定的存储器,例如磁盘存储器。
通信接口903,用于实现处理器901和存储器902之间的连接通信。
本领域技术人员可以理解,图9中示出的虚拟私有云的流量控制电子设备的结构并不构成对虚拟私有云的流量控制电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图9所示,存储器902中可以包括操作***、网络通信模块以及虚拟私有云的流量控制程序。操作***是管理和控制虚拟私有云的流量控制电子设备硬件和软件资源的程序,支持虚拟私有云的流量控制程序以及其他软件或程序的运行。网络通信模块用于实现存储器902内部各组件之间的通信,以及与虚拟私有云的流量控制电子设备中其他硬件和软件之间通信。
在图9所示的虚拟私有云的流量控制电子设备中,处理器901用于执行存储器902中存储的虚拟私有云的流量控制程序,实现以下步骤:
当所述分布式网关发送数据包时,获取所述分布式网关发送数据包的大小。
向所述控制器发送流量请求,当所述流量请求携带下发令牌指令时,所述流量请求用于指示所述控制器按照所述虚拟私有云设置的平均发送速率将所述总令牌桶中的令牌下发到所述分令牌桶中。
获取所述分令牌桶中的第一令牌数量。
判断所述数据包的大小是否比所述第一令牌数量小。
当所述数据包的大小比所述第一令牌数量小时,通过所述分令牌桶中的令牌发送所述数据包。
从所述分令牌桶中删除与所述数据包的大小对应数量的令牌。
当所述数据包的大小比所述第一令牌数量大时,丢弃所述数据包。
可选的,在获取所述分布式网关发送数据包的大小的步骤之前,处理器901用于执行存储器902中存储的虚拟私有云的流量控制程序,实现以下步骤:
获取所述数据包的源地址和目标地址。
根据所述数据包的源地址和所述数据包的目标地址确认所述分布式网关有将所述数据包发送到所述数据包的目标地址的权限。
进一步地,处理器901还用于执行存储器902中存储的虚拟私有云的流量控制程序,实现以下步骤:
当所述数据包的大小比所述第一令牌数量大时,将所述数据包存储在待发送队列中。
经过第一预设时间后,获取所述分令牌桶中的第二令牌数量。
当所述数据包的大小比所述第二令牌数量小时,通过所述分令牌桶中的令牌发送存储在所述待发送队列中的所述数据包。
从所述分令牌桶中删除与所述数据包的大小对应数量的令牌。
进一步地,处理器901还用于执行存储器902中存储的虚拟私有云的流量控制程序,实现以下步骤:
当所述流量请求携带所述数据包的大小时,所述流量请求用于指示所述控制器获取所述总令牌桶中的第三令牌数量。
判断所述数据包的大小是否比所述第三令牌数量小。
当所述数据包的大小比所述第三令牌数量小时,将所述总令牌桶中的令牌下发到所述分令牌桶中。
通过所述分令牌桶中的令牌发送所述数据包。
从所述分令牌桶中删除与所述数据包的大小对应数量的令牌。
当所述数据包的大小比所述第三令牌数量大时,向所述分布式网关发送丢弃指令,所述丢弃指令用于指示所述分布式网关丢弃所述数据包。
可选的,在将所述总令牌桶中的令牌下发到所述分令牌桶中的步骤中,处理器901用于执行存储器902中存储的虚拟私有云的流量控制程序,实现以下步骤:
将所述总令牌桶中与所述数据包的大小对应数量的令牌全部下发到所述分令牌桶中。
或者,先将所述总令牌桶中与所述数据包的大小对应数量的Q%的令牌下发到所述分令牌桶中,其中,Q为小于100的正整数。
再将所述总令牌桶中与所述数据包的大小对应数量的(100-Q)%的令牌下发到所述分令牌桶中。
进一步地,处理器901还用于执行存储器902中存储的虚拟私有云的流量控制程序,实现以下步骤:
当所述数据包的大小比所述第三令牌数量大时,向所述分布式网关发送等待指令,所述等待指令用于指示所述分布式网关将所述数据包存储在所述待发送队列中。
经过第二预设时间后,获取所述总令牌桶中的第四令牌数。
当所述数据包的大小比所述第四令牌数量小时,将所述总令牌桶中的令牌下发到所述分令牌桶中。
通过所述分令牌桶中的令牌发送所述数据包。
从所述分令牌桶中删除与所述数据包的大小对应数量的令牌。
进一步地,所述虚拟私有云中有N个分布式网关,所述N个分布式网关中设置N个分令牌桶,其中,所述N个分布式网关与所述N个分令牌桶一一对应,N为正整数,所述N个分布式网关中有M个分布式网关发送数据包,M为不大于N的正整数,处理器901还用于执行存储器902中存储的虚拟私有云的流量控制程序,实现以下步骤:
S1:获取所述M个分布式网关中的第i个网关发送的数据包的大小,其中,i是初始值为1的正整数。
S2:向所述控制器发送流量请求,其中,所述流量请求用于指示所述控制器按照预设速率将所述总令牌桶中的令牌下发到所述M个分布式网关中的第i个网关中的分令牌桶,其中,所述预设速率为所述虚拟私有云设置的平均发送速率与(1/M)的乘积。
S3:获取所述M个分布式网关中的第i个网关中的分令牌桶中的令牌数量。
S4:当所述M个分布式网关中的第i个网关发送的数据包的大小比所述M个分布式网关中的第i个网关中的分令牌桶中的令牌数量小时,通过所述M个分布式网关中的第i个网关中的分令牌桶中的令牌发送所述数据包,从所述M个分布式网关中的第i个网关中的分令牌桶中删除与所述数据包的大小对应数量的令牌。
S5:当所述M个分布式网关中的第i个网关发送的数据包的大小比所述M个分布式网关中的第i个网关中的分令牌桶中的令牌数量大时,丢弃所述数据包。
S6:将(i+1)的值赋给i,当i不大于M时,执行步骤S1。
还需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种虚拟私有云的流量控制方法,其特征在于,所述虚拟私有云的控制器中设置总令牌桶,所述虚拟私有云的分布式网关中设置分令牌桶,包括:
当所述分布式网关发送数据包时,获取所述分布式网关发送数据包的大小;
向所述控制器发送流量请求,当所述流量请求携带下发令牌指令以及所述数据包的大小时,所述流量请求用于指示所述控制器按照所述虚拟私有云设置的平均发送速率将所述总令牌桶中的令牌下发到所述分令牌桶中以及指示所述控制器获取所述总令牌桶中的第三令牌数量;
判断所述数据包的大小是否比所述第三令牌数量小;
当所述数据包的大小比所述第三令牌数量小时,先将所述总令牌桶中与所述数据包的大小对应数量的Q%的令牌下发到所述分令牌桶中,其中,Q为小于100的正整数;再将所述总令牌桶中与所述数据包的大小对应数量的(100-Q)%的令牌下发到所述分令牌桶中;
获取所述分令牌桶中的第一令牌数量;
判断所述数据包的大小是否比所述第一令牌数量小;
当所述数据包的大小比所述第一令牌数量小时,通过所述分令牌桶中的令牌发送所述数据包;
从所述分令牌桶中删除与所述数据包的大小对应数量的令牌;
当所述数据包的大小比所述第一令牌数量大时,丢弃所述数据包。
2.根据权利要求1所述的方法,其特征在于,获取所述分布式网关发送数据包的大小之前,包括:
获取所述数据包的源地址和目标地址;
根据所述数据包的源地址和所述数据包的目标地址确认所述分布式网关有将所述数据包发送到所述数据包的目标地址的权限。
3.根据权利要求2所述的方法,其特征在于,还包括:
当所述数据包的大小比所述第一令牌数量大时,将所述数据包存储在待发送队列中;
经过第一预设时间后,获取所述分令牌桶中的第二令牌数量;
当所述数据包的大小比所述第二令牌数量小时,通过所述分令牌桶中的令牌发送存储在所述待发送队列中的所述数据包;
从所述分令牌桶中删除与所述数据包的大小对应数量的令牌。
4.根据权利要求1所述的方法,其特征在于,还包括:
当所述数据包的大小比所述第三令牌数量大时,向所述分布式网关发送丢弃指令,所述丢弃指令用于指示所述分布式网关丢弃所述数据包。
5.根据权利要求1所述的方法,其特征在于,还包括:
当所述数据包的大小比所述第三令牌数量大时,向所述分布式网关发送等待指令,所述等待指令用于指示所述分布式网关将所述数据包存储在待发送队列中;
经过第二预设时间后,获取所述总令牌桶中的第四令牌数量;
当所述数据包的大小比所述第四令牌数量小时,将所述总令牌桶中的令牌下发到所述分令牌桶中;
通过所述分令牌桶中的令牌发送所述数据包;
从所述分令牌桶中删除与所述数据包的大小对应数量的令牌。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述虚拟私有云中有N个分布式网关,所述N个分布式网关中设置N个分令牌桶,其中,所述N个分布式网关与所述N个分令牌桶一一对应,N为正整数,所述N个分布式网关中有M个分布式网关发送数据包,M为不大于N的正整数,还包括以下步骤:
S1:获取所述M个分布式网关中的第i个网关发送的数据包的大小,其中,i是初始值为1的正整数;
S2:向所述控制器发送流量请求,其中,所述流量请求用于指示所述控制器按照预设速率将所述总令牌桶中的令牌下发到所述M个分布式网关中的第i个网关中的分令牌桶,其中,所述预设速率为所述虚拟私有云设置的平均发送速率与(1/M)的乘积;
S3:获取所述M个分布式网关中的第i个网关中的分令牌桶中的令牌数量;
S4:当所述M个分布式网关中的第i个网关发送的数据包的大小比所述M个分布式网关中的第i个网关中的分令牌桶中的令牌数量小时,通过所述M个分布式网关中的第i个网关中的分令牌桶中的令牌发送所述数据包,从所述M个分布式网关中的第i个网关中的分令牌桶中删除与所述数据包的大小对应数量的令牌;
S5:当所述M个分布式网关中的第i个网关发送的数据包的大小比所述M个分布式网关中的第i个网关中的分令牌桶中的令牌数量大时,丢弃所述数据包;
S6:将(i+1)的值赋给i,当i不大于M时,执行步骤S1。
7.一种虚拟私有云的流量控制装置,其特征在于,所述虚拟私有云的控制器中设置总令牌桶,所述虚拟私有云的分布式网关中设置分令牌桶,所述装置包括:
第一获取模块,用于当所述分布式网关发送数据包时,获取所述分布式网关发送数据包的大小;
第一发送模块,用于向所述控制器发送流量请求,当所述流量请求携带下发令牌指令以及所述数据包的大小时,所述流量请求用于指示所述控制器按照所述虚拟私有云设置的平均发送速率将所述总令牌桶中的令牌下发到所述分令牌桶中以及指示所述控制器获取所述总令牌桶中的第三令牌数量;
判断模块,用于判断所述数据包的大小是否比所述第三令牌数量小;
所述第一发送模块,还用于当所述数据包的大小比所述第三令牌数量小时,先将所述总令牌桶中与所述数据包的大小对应数量的Q%的令牌下发到所述分令牌桶中,其中,Q为小于100的正整数;再将所述总令牌桶中与所述数据包的大小对应数量的(100-Q)%的令牌下发到所述分令牌桶中;
第二获取模块,用于获取所述分令牌桶中的第一令牌数量;
所述判断模块,用于判断所述数据包的大小是否比所述第一令牌数量小;
第二发送模块,用于当所述数据包的大小比所述第一令牌数量小时,通过所述分令牌桶中的令牌发送所述数据包;
删除模块,用于从所述分令牌桶中删除与所述数据包的大小对应数量的令牌;
丢弃模块,用于当所述数据包的大小比所述第一令牌数量大时,丢弃所述数据包。
8.一种虚拟私有云的流量控制电子设备,其特征在于,所述电子设备包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行权利要求1至6任一项方法中的步骤的指令。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被所述处理器执行,以实现权利要求1至6任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910063220.1A CN109714268B (zh) | 2019-01-23 | 2019-01-23 | 一种虚拟私有云的流量控制方法及相关装置 |
PCT/CN2019/117922 WO2020151324A1 (zh) | 2019-01-23 | 2019-11-13 | 一种虚拟私有云的流量控制方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910063220.1A CN109714268B (zh) | 2019-01-23 | 2019-01-23 | 一种虚拟私有云的流量控制方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109714268A CN109714268A (zh) | 2019-05-03 |
CN109714268B true CN109714268B (zh) | 2022-06-07 |
Family
ID=66262813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910063220.1A Active CN109714268B (zh) | 2019-01-23 | 2019-01-23 | 一种虚拟私有云的流量控制方法及相关装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109714268B (zh) |
WO (1) | WO2020151324A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109714268B (zh) * | 2019-01-23 | 2022-06-07 | 平安科技(深圳)有限公司 | 一种虚拟私有云的流量控制方法及相关装置 |
CN110213173B (zh) * | 2019-06-06 | 2023-03-24 | 北京百度网讯科技有限公司 | 流量控制方法及装置、***、服务器、计算机可读介质 |
CN110380986B (zh) * | 2019-07-23 | 2022-05-10 | 中南民族大学 | 基于Zuul的流量限制方法、装置、设备及存储介质 |
CN110417678A (zh) * | 2019-08-08 | 2019-11-05 | 浪潮云信息技术有限公司 | 一种应用程序接口限流的方法及装置 |
CN111158878B (zh) * | 2019-12-30 | 2023-08-29 | 北京三快在线科技有限公司 | 资源转移请求线程控制方法、装置及存储介质 |
CN114095444B (zh) * | 2020-07-15 | 2023-11-10 | 中移物联网有限公司 | 限流方法、装置及电子设备 |
CN115277575B (zh) * | 2021-04-29 | 2023-09-05 | ***通信集团浙江有限公司 | 令牌桶控制方法、装置以及存储介质 |
CN114374652B (zh) * | 2022-01-11 | 2024-01-16 | 同方有云(北京)科技有限公司 | 热磁存储和蓝光存储之间的数据传输限速方法及装置 |
CN114915596B (zh) * | 2022-05-10 | 2024-06-14 | 北京奇艺世纪科技有限公司 | 数据发送方法、装置、设备及存储介质 |
CN115396377B (zh) * | 2022-07-29 | 2024-03-12 | 天翼云科技有限公司 | 对象存储的服务质量优化方法、装置、设备及存储介质 |
CN115314441A (zh) * | 2022-08-02 | 2022-11-08 | 支付宝实验室(新加坡)有限公司 | 分布式集群的限流方法、装置和电子设备 |
CN116233010A (zh) * | 2023-03-09 | 2023-06-06 | 北京百度网讯科技有限公司 | 流量控制方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227410A (zh) * | 2008-02-03 | 2008-07-23 | 杭州华三通信技术有限公司 | 流量监管方法及流量监管设备 |
CN102377641A (zh) * | 2010-08-11 | 2012-03-14 | 高通创锐讯通讯科技(上海)有限公司 | 令牌桶算法的实现方法 |
WO2016201943A1 (zh) * | 2015-06-16 | 2016-12-22 | 中兴通讯股份有限公司 | 一种报文流量的监管方法、装置及移动通信网关 |
CN108848038A (zh) * | 2018-08-30 | 2018-11-20 | 华为技术有限公司 | 基于令牌桶的流量管理方法和令牌桶节点 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9219654B2 (en) * | 2010-06-25 | 2015-12-22 | Cox Communications, Inc. | Preloading token buckets for dynamically implementing speed increases |
CN103763208B (zh) * | 2014-01-29 | 2017-08-29 | 华为技术有限公司 | 数据流量限制方法及装置 |
CN108650192B (zh) * | 2018-04-28 | 2022-04-01 | 国网福建省电力有限公司 | 一种基于令牌桶优化算法的流量控制方法 |
CN109714268B (zh) * | 2019-01-23 | 2022-06-07 | 平安科技(深圳)有限公司 | 一种虚拟私有云的流量控制方法及相关装置 |
-
2019
- 2019-01-23 CN CN201910063220.1A patent/CN109714268B/zh active Active
- 2019-11-13 WO PCT/CN2019/117922 patent/WO2020151324A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227410A (zh) * | 2008-02-03 | 2008-07-23 | 杭州华三通信技术有限公司 | 流量监管方法及流量监管设备 |
CN102377641A (zh) * | 2010-08-11 | 2012-03-14 | 高通创锐讯通讯科技(上海)有限公司 | 令牌桶算法的实现方法 |
WO2016201943A1 (zh) * | 2015-06-16 | 2016-12-22 | 中兴通讯股份有限公司 | 一种报文流量的监管方法、装置及移动通信网关 |
CN108848038A (zh) * | 2018-08-30 | 2018-11-20 | 华为技术有限公司 | 基于令牌桶的流量管理方法和令牌桶节点 |
Also Published As
Publication number | Publication date |
---|---|
CN109714268A (zh) | 2019-05-03 |
WO2020151324A1 (zh) | 2020-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109714268B (zh) | 一种虚拟私有云的流量控制方法及相关装置 | |
EP3629554A1 (en) | Method, apparatus, and system for load balancing of service chain | |
CN109412958B (zh) | 数据中心的拥塞控制方法和装置 | |
US10439901B2 (en) | Messaging queue spinning engine | |
US7911958B2 (en) | Token bucket with variable token value | |
JP6542866B2 (ja) | リアルタイムライブ環境でのバッファに基づく帯域幅測定および適応的データ送信のための方法およびシステム | |
US9509620B2 (en) | Deadline-aware network protocol | |
CN105656800A (zh) | 一种传输报文的方法及装置 | |
KR101448413B1 (ko) | Atca-기반 장비에서 통신 트래픽을 스케줄링하기 위한 방법 및 장치 | |
CN114650277B (zh) | 一种文件传输的控制方法及装置 | |
US9413672B2 (en) | Flow control for network packets from applications in electronic devices | |
JP2007013449A (ja) | シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置 | |
CN111897659B (zh) | 业务处理频率的控制方法、***、装置、电子设备 | |
CN112866985A (zh) | 流量控制方法、资源下载方法、装置、设备和存储介质 | |
JP5783632B2 (ja) | ネットワークトラヒック制御装置、制御方法、およびプログラム | |
CN115277676B (zh) | 基于负载均衡器的文件传输控制方法、装置、设备及介质 | |
CN114070798B (zh) | 一种报文传输方法、装置及设备 | |
US20220210091A1 (en) | Bandwidth management and configuration method for cloud service, and related apparatus | |
CN115022245A (zh) | 一种数据传输的方法、相关装置、设备以及存储介质 | |
KR102128015B1 (ko) | 네트워크 스위칭 장치 및 이를 이용한 마킹 수행 방법 | |
CN107888540B (zh) | 一种网络防攻击方法及网络设备 | |
WO2021098190A1 (zh) | 时延保证方法、***及装置、计算设备、存储介质 | |
CN116633864B (zh) | 一种基于云计算平台的流量调度方法 | |
CN115987901A (zh) | 报文发送方法、装置、设备及存储介质 | |
US10516619B2 (en) | TCP window sizing |
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 |