首页> 中国专利> 一种限速方法、限速控制节点和限速设备

一种限速方法、限速控制节点和限速设备

摘要

本文公布一种限速方法、限速控制节点和限速设备,该限速方法包括:限速控制节点获取带宽包的流量;限速控制节点根据获得的带宽包的流量分别确定每个限速设备上带宽包在下一周期内的流量比例;限速控制节点将确定出的带宽包在下一周期内的流量比例发送给与其对应的限速设备;每个限速设备根据接收到的带宽包在下一周期内流量比例确定带宽包在下一周期的令牌桶的令牌数。本申请实施例实现了对限速设备上的流量的动态分配,提升了用户体验。

著录项

  • 公开/公告号CN107347198A

    专利类型发明专利

  • 公开/公告日2017-11-14

    原文格式PDF

  • 申请/专利号CN201610294840.2

  • 发明设计人 张宇;

    申请日2016-05-05

  • 分类号H04W28/10(20090101);

  • 代理机构11262 北京安信方达知识产权代理有限公司;

  • 代理人韩辉峰;李丹

  • 地址 100085 北京市海淀区小营西路33号3F02室

  • 入库时间 2023-06-19 03:41:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-19

    授权

    授权

  • 2017-12-08

    实质审查的生效 IPC(主分类):H04W28/10 申请日:20160505

    实质审查的生效

  • 2017-11-14

    公开

    公开

说明书

技术领域

本发明涉及移动通信技术,尤指一种限速方法、限速控制节点和限速设备。

背景技术

服务质量(Quality of service,Qos)和限速功能是在交换机和防火墙等网络设备上的常见功能,主要实现方法是通过队列缓冲区(buffer)缓存数据包、按照优先级实现服务质量保证、通过令牌桶限制单位时间内可通过的数据长度来实现限速。

当前在云计算网络中的限速方式包括多是采用集群部署的方式,多台限速设备配置相同,同时工作,互相不通信,由于各个限速设备的配置一致,因此各个限速设备上的流量无法动态分配,用户体验不好。

发明内容

本申请提供了一种限速方法、限速控制节点和限速设备,能够实现对限速设备上的流量的动态分配,提升用户体验。

为了达到本申请目的,本申请提供了一种限速方法,包括:

限速控制节点获取带宽包的流量;

限速控制节点根据获得的带宽包的流量分别确定每个限速设备上带宽包在下一周期内的流量比例;

限速控制节点将确定出的带宽包在下一周期内的流量比例发送给与其对应的限速设备;

每个限速设备根据接收到的带宽包在下一周期内流量比例确定带宽包在下一周期的令牌桶的令牌数。

可选地,所述限速控制节点周期性获取带宽包的流量。

可选地,所述限速控制节点获取带宽包的流量包括:

所述限速控制节点向每个限速设备发送获取带宽包在当前周期内的流量的请求;

所述每个限速设备根据接收到的来自所述限速控制节点的请求,统计自身带宽包在当前周期内的流量并将统计出的所述带宽包在当前周期内的流量发送给所述限速控制节点。

可选地,所述分别确定每个限速设备上带宽包在下一周期内的流量比例包括:

限速控制节点计算同一带宽包在当前周期内的流量总和;

分别计算每个限速设备上的该带宽包在当前周期内的流量与该带宽包在当前周期内的流量总和的比值;

将每个比值作为与之对应的限速设备上该带宽包在下一周期内的流量比例。

可选地,所述每个限速设备根据接收到的带宽包在下一周期内流量比例确定带宽包在下一周期的令牌桶的令牌数包括:

所述每个限速设备获取带宽包的总带宽并计算接收到所述带宽包的下一周期内的流量比例的第一时刻和当前周期内的流量比例的第二时刻之间的时间差值;

所述限速设备根据获得的带宽包的总带宽、计算出的时间差值和接收到的该带宽包在当前周期内的流量比例确定所述带宽包在下一周期的令牌桶的令牌数。

可选地,所述限速设备根据以下公式确定所述带宽包在下一周期的令牌桶的令牌数:

Tokeni=bwi×intervali×ratioi

其中,Token是标号是i的带宽包在下一周期的令牌桶的令牌数,bwi是标号是i的带宽包的总带宽,intervali是标号是i的带宽包的第一时刻和第二时刻之间的时间差值,ratioi是标号是i的带宽包在当前周期内的流量比例。

可选地,所述限速控制节点包括一个主限速控制节点和一个备用限速控制节点;

当所述主限速控制节点宕机时,所述备用限速控制节点接管所述主限速控制节点的工作。

本申请还提供了一种限速控制节点,包括:第一接收模块、第一确定模块和第一发送模块;其中,

第一接收模块,用于获取带宽包的流量;

第一确定模块,用于根据获得的带宽包的流量分别确定每个限速设备上带宽包在下一周期内的流量比例;

第一发送模块,用于将确定出的带宽包在下一周期内的流量比例发送给与其对应的限速设备。

可选地,所述第一接收模块,具体用于周期性获取带宽包的流量。

可选地,所述第一发送模块,还用于向每个所述限速设备发送获取带宽包在当前周期内的流量的请求;相应地,

所述第一接收模块,具体用于接收每个所述限速设备统计出的自身带宽包在当前周期内的流量。

可选地,所述第一确定模块,具体用于:

计算同一带宽包在当前周期内的流量总和;

分别计算每个所述限速设备上的该带宽包在当前周期内的流量与该带宽包在当前周期内的流量总和的比值;

将每个比值作为与之对应的所述限速设备上该带宽包在下一周期内的流量比例。

可选地,所述限速控制节点与一个或多个所述限速设备连接。

本申请还提供了一种限速设备,包括:第二接收模块和第二确定模块;其中,

第二接收模块,用于接收来自限速控制节点的自身所属的限速设备上带宽包在下一周期内流量比例;

第二确定模块,用于根据接收到的带宽包在下一周期内流量比例确定带宽包在下一周期的令牌桶的令牌数。

可选地,所述第二确定模块,具体用于:

获取带宽包的总带宽并计算接收到所述带宽包的下一周期内的流量比例的第一时刻和当前周期内的流量比例的第二时刻之间的时间差值;

根据获得的带宽包的总带宽、计算出的时间差值和接收到的该带宽包在当前周期内的流量比例确定所述带宽包在下一周期的令牌桶的令牌数。

可选地,该限速设备还包括统计模块和第二发送模块;此时,

所述第二接收模块,还用于当接收到来自所述限速控制节点的请求,通知所述统计模块;相应地,

所述统计模块,用于接收到来自所述第二接收模块的通知,统计自身所属的限速设备上带宽包在当前周期内的流量;相应地,

所述第二发送模块,用于将统计出的带宽包在当前周期内的流量发送给所述限速控制节点。

本申请实施例包括:限速控制节点获取带宽包的流量;限速控制节点根据获得的带宽包的流量分别确定每个限速设备上带宽包在下一周期内的流量比例;限速控制节点将确定出的带宽包在下一周期内的流量比例发送给与其对应的限速设备;每个限速设备根据接收到的带宽包在下一周期内流量比例确定带宽包在下一周期的令牌桶的令牌数。本申请实施例实现了对限速设备上的流量的动态分配,提升了用户体验。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明限速方法的流程图;

图2为本发明限速设备的集群部署的示意图;

图3为本发明主备限速控制节点的示意图;

图4为本发明限速控制节点的结构示意图;

图5为本发明限速设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

申请人发现,针对互联网协议(ip,internet protocol)的限速,一种实现方式是:可以在单台限速设备上进行配置,高可用性靠主备切换的方式来实现。平时由主限速设备工作,当主限速设备宕机时,切换到备用限速设备,这种限速方式,无法进行线性扩展,从而无法支持高吞吐和大量用户使用,且运维成本高,主备之间需要进行配置同步,资源利用率也不高,适合流量较小,用户较少的情况,不适用于云计算的场景里;另一种实现方式是集群式,即多台限速设备的配置相同,并且同时工作,互相不通信,这种方式存在以下缺点:由于各个限速设备配置一致,各个限速设备上的流量无法动态分配,会造成限速精度差,申请人认为可以通过改变上下联交换机的散列(hash)策略,将同一个弹性ip(elastic ip,eip)所有进出流量配置到同台一限速设备上,从而可以实现高精度限速,但是这样做会导致网络配置的异构,造成限速设备之间流量不均匀,会导致限速设备因为过载而宕机无法工作,同时无法支持共享带宽的特性。

图1为本发明限速方法的流程图,如图1所示,包括:

步骤101:限速控制节点获取带宽包的流量。

其中,限速控制节点定义为可以与每个限速设备进行通信的节点(如部署的程序等);其中,带宽包定义为支持一个或多个ip共用的字节数,假如某个用户家的宽带是10兆比特每秒(Mbps),那么10M带宽就是带宽包的带宽,可以有一个或多个ip共享这10M带宽一起上网,其中,10Mbps表示每秒能通过的流量是10M比特(bit)。

其中,同一带宽包的流量可以来自于一个限速设备或者是多个限速设备。

其中,步骤101具体包括:

限速控制节点向每个限速设备发送获取带宽包在当前周期内的流量的请求;

每个限速设备根据接收到的来自限速控制节点的请求,统计自身带宽包在当前周期内的流量并将统计出的带宽包在当前周期内的流量发送给限速控制节点。

可选地,限速控制节点可以周期性获取带宽包的流量,或者限速控制节点可以根据外部指令获取带宽包的流量。其中,外部指令包括限速控制节点的管理员手动录入的指令。

步骤102:限速控制节点根据获得的带宽包的流量分别确定每个限速设备上带宽包在下一周期内的流量比例。

其中,步骤102具体包括:

限速控制节点计算同一带宽包在当前周期内的流量总和;

分别计算每个限速设备上的该带宽包在当前周期内的流量与该带宽包在当前周期内的流量总和的比值;

将每个比值作为与之对应的限速设备上该带宽包在下一周期内的流量比例。

举例说明,假设有3个限速设备分别为限速设备1、限速设备2和限速设备3,对于带宽包1来说,限速设备1上带宽包1在当前周期内的流量是2M,限速设备2上带宽包1在当前周期内的流量是1M,限速设备3上带宽包1在当前周期内的流量是4M,则带宽包1在当前周期内的流量总和是1M+2M+4M=7M,限速设备1上带宽包1在下一周期内的流量比例是(1M/7M)=1/7,限速设备2上带宽包1在下一周期内的流量比例是(2M/7M)=2/7,限速设备2上带宽包1在下一周期内的流量比例是(4M/7M)=4/7。

可选地,该方法之前还包括:每个限速设备为自身每个带宽包预留预设比例的流量。其中,本领域技术人员可以根据实际情况设定预设比例,如预设比例可以设置为每个带宽包自身的总带宽(在一个周期内的流量总和)的十分之一(其中,十即是限速设备的个数)。需要说明的是,由于带宽包中的流量可以在任何时刻到达任何一个限速设备,因此即使上一周期该限速设备上没有该带宽包的流量,在当前周期,也需要在该限速设备上为该带宽包预留一定的流量(带宽),保证该带宽包的新建连接的通过。

步骤103:限速控制节点将确定出的带宽包在下一周期内的流量比例发送给与其对应的限速设备。

接上例,限速控制节点将带宽包的1/7发送给限速设备1,将带宽包的2/7发送给限速设备2,将带宽包的4/7发送给限速设备3.

步骤104:每个限速设备根据接收到的带宽包在下一周期内流量比例确定带宽包在下一周期的令牌桶的令牌数。

在步骤103之后在步骤104之前,该方法还包括:当每个限速设备接收到带宽包在下一周期内流量比例时,记录接收到的带宽包在下一周期内流量比例的时刻。

其中,步骤104具体包括:

每个限速设备获取带宽包的总带宽并计算接收到该带宽包的下一周期内的流量比例的第一时刻和当前周期内的流量比例的第二时刻之间的时间差值;

限速设备根据获得的带宽包的总带宽、计算出的时间差值和接收到的该带宽包在当前周期内的流量比例确定该带宽包在下一周期的令牌桶的令牌数。

其中,限速设备根据公式(1)确定带宽包在下一周期的令牌桶的令牌数:

Tokeni=bwi×intervali×ratioi>

其中,Token是标号是i的带宽包在下一周期的令牌桶的令牌数,bwi是标号是i的带宽包的总带宽,intervali是标号是i的带宽包的第一时刻和第二时刻之间的时间差值,ratioi是标号是i的带宽包在当前周期内的流量比例。其中,公式(1)表示的是在下一周期内限速设备上允许标号是i的带宽包通过的字节数(或流量)。

该方法之前还包括:设置周期的时间长度。其中,步骤104具体包括:

每个限速设备获取带宽包的总带宽并将预先设置的周期的时间长度作为该带宽包的时间差值;

限速设备根据获得的带宽包的总带宽、该带宽包的时间差值和接收到的该带宽包在当前周期内的流量比例确定该带宽包在下一周期的令牌桶的令牌数。

其中,限速设备根据公式(2)确定带宽包在下一周期的令牌桶的令牌数:

Tokeni=bwi×interval×ratioi>

其中,Token是标号是i的带宽包在下一周期的令牌桶的令牌数,bwi是标号是i的带宽包的总带宽,interval是预先设置的周期的时间长度,ratioi是标号是i的带宽包在当前周期内的流量比例。其中,公式(2)表示的是在下一周期内限速设备上允许标号是i的带宽包通过的字节数(或流量)。

可选地,当限速设备在当前周期内接收到与某一带宽包对应的数据包时,该方法还包括:当接收到的与某一带宽包对应的数据包的大小小于或等于该带宽包在当前周期的令牌桶的令牌数时,放行该数据包并将该带宽包在当前周期的令牌桶的令牌数与收到的与某一带宽包对应的数据包的大小的差值作为该带宽包在当前周期的令牌桶的剩余令牌数;

当接收到的与某一带宽包对应的数据包的大小大于该带宽包在当前周期的令牌桶的令牌数时,丢掉该数据包。其中,与某一带宽包对应的数据包是指该带宽包的用户上网产生的数据包。

需要说明的是,由于令牌数是一个全局值,在对称多处理机(SMP)系统中更新令牌数需要锁保护,锁的实现由锁(lock)总线的指令,会影响性能。本申请中采用每中央处理器percpu的思想,将令牌数做成percpu变量,使用percpu令牌数的累加值作为判断是否丢包的依据。每个限速设备的cpu只更新本限速设备的令牌数,这样避免了每包(per pkt)的锁操作,极大的提升了限速设备的性能,同时提高了限速精度。

可选地,在每个限速设备为自身每个带宽包预留预设比例的流量之前,该方法还包括:将限速设备通过开放最短路径优先协议(ospf)和上联交换机、下联交换机建立邻居。

可选地,该方法还包括:上联交换机和/或下联交换机检测限速设备中是否存在发生故障的限速设备;

当上联交换机和/或下联交换机检测到限速设备中存在发生故障的限速设备时,将发生故障的限速设备上每个带宽包的流量均匀的切换到未发生故障的限速设备上。

需要说明的是,如何将发生故障的限速设备的流量切换到未发生故障的限速设备上属于本领域技术人员所熟知的惯用技术手段,此处不再赘述,并不用来限制本申请。可选地,当上联交换机和/或下联交换机检测限速设备中的全部限速设备发生故障时,该方法还包括:上联交换机和/或下联交换对各个带宽包进行限速。如图2所示,图2中以两个上联交换机(分别为交换机1和交换机2)和两个下联交换机(分别为交换机3和交换机4)和四个限速设备(分别为限速设备1、限速设备2、限速设备3、和限速设备4)组成的集群,当限速设备1发生故障(宕机)时,上联交换机和/或下联交换机就会将限速设备1的流量切换到限速设备2和/或限速设备3和/或限速设备4上。当限速设备1、限速设备2、限速设备3、和限速设备4全部发生故障(宕机)时,限速设备1、限速设备2、限速设备3、和限速设备4上的流量就会切换到虚线的备用线路上,由交换机1和/或交换机2和/或交换机3和/或交换机4对各个带宽包进行限速。

可选地,限速控制节点包括一个主限速控制节点和一个备用限速控制节点;

当主限速控制节点宕机时,备用限速控制节点接管主限速控制节点的工作。其中,在主限速控制节点和备用限速控制节点之间间隔预设时长进行心跳检测。

如图3所示,当主限速控制节点未发生故障时,主限速控制节点与各个限速设备之间进行交互,进行动态带宽的分配;而当主限速控制节点发生故障时,则备用限速控制节点接管主限速控制节点的工作,即此时备用限速控制节点与各个限速设备之间进行交互,进行动态带宽的分配。其中,当主限速控制节点未发生故障时,主限速控制节点和限速设备周期性的进行三次交互(通信),依次包括:

步骤1:主限速控制节点向每个限速设备请求其上每个带宽包在当前周期内的流量。

步骤2:每个限速设备返回其上每个带宽包在当前周期内的流量。

步骤3:主限速控制节点计算每个限速设备上带宽包的流量占该带宽包带宽的流量总和的流量比例并将此流量比例发送给该显示设备,每个限速设备根据接收到的带宽包的流量比例计算出该带宽包下一周期内的令牌桶的令牌数。

本实施方式中,通过限速控制节点根据获得的带宽包的流量分别确定每个限速设备上带宽包在下一周期内的流量比例以及每个限速设备根据接收到的带宽包在下一周期内流量比例确定带宽包在下一周期的令牌桶的令牌数,实现了对限速设备上的流量的动态分配;通过当前周期的令牌桶的令牌数与收到的与某一带宽包对应的数据包的大小的差值作为该带宽包在当前周期的令牌桶的剩余令牌数,避免了每包的锁操作,极大的提升了限速设备的性能,从而提升了限速精度和效率,提升了用户体验。

图4为本发明限速控制节点的结构示意图,如图4所示,包括:第一接收模块、第一确定模块和第一发送模块。其中,

第一接收模块,用于获取带宽包的流量。

其中,同一带宽包的流量可以来自于一个限速设备或者多个限速设备。

第一确定模块,用于根据获得的带宽包的流量分别确定每个限速设备上带宽包在下一周期内的流量比例。

其中,第一确定模块,具体用于:

计算同一带宽包在当前周期内的流量总和;

分别计算每个所述限速设备上的该带宽包在当前周期内的流量与该带宽包在当前周期内的流量总和的比值;

将每个比值作为与之对应的所述限速设备上该带宽包在下一周期内的流量比例。

可选地,第一发送模块,还用于向每个所述限速设备发送获取带宽包在当前周期内的流量的请求;相应地,

第一接收模块,具体用于接收每个限速设备统计出的自身中带宽包在当前周期内的流量。

可选地,限速控制节点与一个或多个限速设备连接。

可选地,限速控制节点包括一个主限速控制节点和一个备用限速控制节点。其中,当主限速控制节点未发生故障时,主限速控制节点与各个限速设备之间进行交互,进行动态带宽的分配;而当主限速控制节点发生故障时,则备用限速控制节点接管主限速控制节点的工作,即此时备用限速控制节点与各个限速设备之间进行交互,进行动态带宽的分配。

图5为本发明限速设备的结构示意图,如图5所示,包括:第二接收模块和第二确定模块。其中,

第二接收模块,用于接收来自限速控制节点的自身所属的限速设备上带宽包在下一周期内流量比例。

第二确定模块,用于根据接收到的带宽包在下一周期内流量比例确定带宽包在下一周期的令牌桶的令牌数。

其中,第二确定模块,具体用于:

获取带宽包的总带宽并计算接收到所述带宽包的下一周期内的流量比例的第一时刻和当前周期内的流量比例的第二时刻之间的时间差值;

根据获得的带宽包的总带宽、计算出的时间差值和接收到的该带宽包在当前周期内的流量比例确定所述带宽包在下一周期的令牌桶的令牌数。

此时,第二确定模块根据公式(1)确定带宽包在下一周期的令牌桶的令牌数:

Tokeni=bwi×intervali×ratioi>

其中,Token是标号是i的带宽包在下一周期的令牌桶的令牌数,bwi是标号是i的带宽包的总带宽,intervali是标号是i的带宽包的第一时刻和第二时刻之间的时间差值,ratioi是标号是i的带宽包在当前周期内的流量比例。其中,公式(1)表示的是在下一周期内限速设备上允许标号是i的带宽包通过的字节数(或流量)。

或者,

第二确定模块,具体用于:

获取带宽包的总带宽并将预先设置的周期的时间长度作为该带宽包的时间差值;

根据获得的带宽包的总带宽、该带宽包的时间差值和接收到的该带宽包在当前周期内的流量比例确定该带宽包在下一周期的令牌桶的令牌数。

此时,第二确定模块根据公式(2)确定带宽包在下一周期的令牌桶的令牌数:

Tokeni=bwi×interval×ratioi>

其中,Token是标号是i的带宽包在下一周期的令牌桶的令牌数,bwi是标号是i的带宽包的总带宽,interval是预先设置的周期的时间长度,ratioi是标号是i的带宽包在当前周期内的流量比例。其中,公式(2)表示的是在下一周期内限速设备上允许标号是i的带宽包通过的字节数(或流量)。

可选地,该限速设备还包括统计模块和第二发送模块;此时,

第二接收模块,还用于当接收到来自限速控制节点的请求,通知统计模块;相应地,

统计模块,用于接收到来自所述第二接收模块的通知,统计自身所属的限速设备上带宽包在当前周期内的流量;相应地,

第二发送模块,用于将统计出的带宽包在当前周期内的流量发送给所述限速控制节点。

可选地,该限速设备还包括预留流量模块,用于为自身所属的限速设备上每个带宽包预留预设比例的流量。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号