CN111431816B - 一种分布式流量限速方法及系统 - Google Patents

一种分布式流量限速方法及系统 Download PDF

Info

Publication number
CN111431816B
CN111431816B CN202010539936.7A CN202010539936A CN111431816B CN 111431816 B CN111431816 B CN 111431816B CN 202010539936 A CN202010539936 A CN 202010539936A CN 111431816 B CN111431816 B CN 111431816B
Authority
CN
China
Prior art keywords
token bucket
tokens
speed
message
speed limiting
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
Application number
CN202010539936.7A
Other languages
English (en)
Other versions
CN111431816A (zh
Inventor
梁润强
史伟
闵宇
李卢群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Eflycloud Computing Co Ltd
Original Assignee
Guangdong Eflycloud Computing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Eflycloud Computing Co Ltd filed Critical Guangdong Eflycloud Computing Co Ltd
Priority to CN202010539936.7A priority Critical patent/CN111431816B/zh
Publication of CN111431816A publication Critical patent/CN111431816A/zh
Application granted granted Critical
Publication of CN111431816B publication Critical patent/CN111431816B/zh
Priority to PCT/CN2020/131308 priority patent/WO2021253725A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种分布式流量限速方法及系统,方法步骤包括:接收报文,判断当前令牌数量是否足够,令牌数量足够,则将报文转发,令牌桶内减去与报文长度同等数量的令牌数量得到剩余令牌数量,若令牌桶内剩余令牌数量小于或等于rcir值,则触发限速设备发送同步报文;每个限速设备接收到同步报文,将自身令牌数量值生成回应报文并发给其他限速设备;限速设备接收到回应报文,选择符合条件的限速设备后,发送请求交换令牌数量的请求报文,选择的限速设备收到请求报文,将其令牌数量与请求的限速设备交换。本发明部署每个节点的限速设备都产生令牌,使得报文无论经过哪个节点都有令牌进行转发,保证报文转发的时延不增加。

Description

一种分布式流量限速方法及系统
技术领域
本发明涉及云计算流量控制技术领域,特别涉及一种基于组播令牌同步的分布式流量限速方法及系统。
背景技术
互联网的普及,云计算的浪潮,让我们越来越离不开网络环境。云计算和虚拟化网络作为未来的发展方向,将会使得组网和服务部署变得更加简便,而对于云计算中心来说,用户对于宽带的使用,也需要具备弹性的需求,即宽带可以根据用户的需要进行灵活的调整和分配,所以限速的实现是云计算一个重要环节,并且实现限速功能的设备将会至关重要,因为其位于所有网络流量的总出入口,性能和稳定性是实现限速功能设备的最基本和最重要的要求。
目前业内一般使用令牌桶来实现流量限速和调整的功能,而令牌桶一般都是在单设备环境下使用,并没有常用的分布式设计使用方法或者冗余方案,目前有的分布式令牌桶方案是使用一个主令牌桶节点+若干个分布式令牌桶节点的方式,这种方案中只有主节点生产令牌,分布式节点都向主节点申请令牌,以这种方式来实现分布式或者冗余的特性。但是这种方式有很明显的缺点,首先必须得有主节点和分节点之分,这可能会通过人为设定或者选举,但无论哪种方式都会增加系统的复杂度;然后分节点本身不产生令牌,必须每次都要向主节点申请令牌,这就会导致报文将会增加等待的时延。
发明内容
本发明要解决的技术问题在于,提供一种分布式流量限速方法及系统,部署每个节点的限速设备都可以产生令牌,使得报文无论经过哪个节点都能够有令牌进行转发,保证了报文转发的时延不会增加。
为解决上述技术问题,本发明提供如下技术方案:一种分布式流量限速方法,包括以下步骤:
S1、限速设备的令牌桶模块预先设置令牌桶参数以及令牌桶的令牌数量,并开始生产令牌;令牌桶模块计算实际的令牌生产速率rcir值和实际的令牌桶大小rcbs值;
S2、限速设备的报文处理模块接收报文,判断当前令牌桶内令牌数量是否足够,若令牌数量不够,则丢弃报文,令牌数量不变;若令牌数量足够,则直接将报文转发出去,同时,根据报文长度,令牌桶内减去与报文长度同等数量的令牌数量得到剩余令牌数量,若令牌桶内剩余令牌数量小于或等于rcir值,则触发令牌桶模块向其他限速设备采用组播方式发送一个请求令牌数量值的同步报文,并进入下一步,此时发送同步报文的限速设备称为请求限速设备,其他接收同步报文的限速设备称为回应限速设备;若令牌桶内剩余令牌数量大于rcir值,则不作处理;
S3、每个回应限速设备接收到同步报文,将自身令牌桶中的令牌数量值生成一个回应报文并采用组播方式发送给请求限速设备和其他回应限速设备;
S4、请求限速设备接收到所有回应限速设备的回应报文,对自身令牌桶内的令牌数量进行如下判断:
若自身令牌桶内的令牌数量小于或等于rcir,则从所有回应限速设备中选择拥有令牌数量最大且大于rcir的回应限速设备;若自身令牌桶内的令牌数量大于或等于rcbs-rcir,则从所有回应限速设备中选择剩余令牌数量最小且小于rcbs-rcir的回应限速设备;其中,rcbs-rcir大于rcir;
S5、请求限速设备向所选择的回应限速设备采用单播方式发送一个请求交换令牌桶内所有令牌数量的请求报文;
S6、被选择的回应限速设备收到请求报文,将其令牌桶内的令牌数量与请求限速设备的令牌桶内的令牌数量进行交换。
具体的,所述步骤S1中,令牌桶模块预先设置令牌桶参数以及令牌桶的令牌数量,具体为:
初始化限速设备,设置令牌桶在一秒内生成的令牌数量,计算每秒的生成令牌数量速率cir以及令牌桶大小cbs;根据每秒的生成令牌数量速率cir,计算每毫秒内生成令牌数量速率mcir,mcir=cir/1000;
设置限速设备初始化的统计数量值count的初始值为1,并生成一个地址表,地址表用于存储其他限速设备的地址,地址表初始化为空白地址表;
其中,计算实际的令牌生产速率rcir值,rcir=mcir/count;计算实际的令牌桶大小rcbs值,rcbs=cbs/count。
具体的,所述步骤S2中判断当前令牌桶内令牌数量是否足够,其具体判断方式为:判断令牌数量是否等于报文长度,若令牌数量大于或等于报文长度,则判断令牌数量为足够;若令牌数量小于报文长度,则判断令牌数量为不够。
具体的,所述步骤S3还包括:
每个回应限速设备接收到同步报文,则判断请求限速设备的地址是否存在于回应限速设备的地址表内,若存在则不作处理;若不存在,则将请求限速设备的地址存储于回应限速设备的地址表中,并对回应限速设备的统计数量值count加1。
具体的,所述步骤S4还包括:
请求限速设备接收到所有回应限速设备的回应报文,则判断每个回应限速设备的地址是否存在于请求限速设备的地址表内,若存在则不作处理;若不存在,则将回应限速设备的地址存储于请求限速设备的地址表中,并对请求限速设备的统计数量值count累计加1,即有多少个回应限速设备的地址不存在于请求限速设备的地址表中的,则统计数量值count对应加上多少;
每个回应限速设备接收到其他回应限速设备的回应报文,接收回应报文的回应限速设备判断其他回应限速设备的地址是否存在于接收回应报文的回应限速设备的地址表内,若存在则不作处理;若不存在,则将其他回应限速设备的地址存储于接收回应报文的回应限速设备的地址表中,并对接收回应报文的回应限速设备的统计数量值count累计加1,即有多少个回应限速设备的地址不存在于接收回应报文的回应限速设备的地址表中的,则统计数量值count对应加上多少。
具体的,还包括步骤S7:返回步骤S1,此时统计数量值count经过累计已不同,则重新计算实际的令牌生产速率rcir值,rcir=mcir/count;重新计算实际的令牌桶大小rcbs值,rcbs=cbs/count。
本发明另一目的也是提供一种分布式流量限速方法,包括以下步骤:
S11、限速设备的令牌桶模块预先设置令牌桶参数以及令牌桶的令牌数量,并开始生产令牌;令牌桶模块计算实际的令牌生产速率rcir值和实际的令牌桶大小rcbs值;
S12、限速设备的报文处理模块接收报文并转发,令牌桶在转发报文过程中会相应消耗一定量的令牌数量,而实际的令牌桶大小就会减少空间;报文转发过程中,令牌桶模块判断当前生产的令牌是否将会填满令牌桶的剩余空间,若是则触发令牌桶同步,令牌桶模块向其他限速设备采用组播方式发送一个请求令牌数量值的同步报文,并进入下一步,此时发送同步报文的限速设备称为请求限速设备,其他接收同步报文的限速设备称为回应限速设备;若当前令牌桶内的令牌数量小于实际令牌桶大小的剩余空间,则不作处理;
S13、每个回应限速设备接收到同步报文,将自身令牌桶中的令牌数量值生成一个回应报文并采用组播方式发送给请求限速设备和其他回应限速设备;
S14、请求限速设备接收到所有回应限速设备的回应报文,对自身令牌桶内的令牌数量进行比较:
若自身令牌桶内的令牌数量小于或等于rcir,则从所有回应限速设备中选择拥有令牌数量最大且大于rcir的回应限速设备;若自身令牌桶内的令牌数量大于或等于rcbs-rcir,则从所有回应限速设备中选择剩余令牌数量最小且小于rcbs-rcir的回应限速设备;其中,rcbs-rcir大于rcir;
S15、请求限速设备向所选择的回应限速设备采用单播方式发送一个请求交换令牌桶内所有令牌数量的请求报文;
S16、被选择的回应限速设备收到请求报文,将其令牌桶内的令牌数量与请求限速设备的令牌桶内的令牌数量进行交换。
具体的,所述步骤S11中,令牌桶模块预先设置令牌桶参数以及令牌桶的令牌数量,具体为:
初始化限速设备,设置令牌桶在一秒内生成的令牌数量,计算每秒的生成令牌数量速率cir以及令牌桶大小cbs;根据每秒的生成令牌数量速率cir,计算每毫秒内生成令牌数量速率mcir,mcir=cir/1000;
设置限速设备初始化的统计数量值count的初始值为1,并生成一个地址表,地址表用于存储其他限速设备的地址,地址表初始化为空白地址表;
其中,计算实际的令牌生产速率rcir值,rcir=mcir/count;计算实际的令牌桶大小rcbs值,rcbs=cbs/count。
具体的,所述步骤S13还包括:
每个回应限速设备接收到同步报文,则判断请求限速设备的地址是否存在于回应限速设备的地址表内,若存在则不作处理;若不存在,则将请求限速设备的地址存储于回应限速设备的地址表中,并对其统计数量值count加1。
具体的,所述步骤S14还包括:
请求限速设备接收到所有回应限速设备的回应报文,则判断每个回应限速设备的地址是否存在于请求限速设备的地址表内,若存在则不作处理;若不存在,则将回应限速设备的地址存储于请求限速设备的地址表中,并对其统计数量值count累计加1,即有多少个回应限速设备的地址不存在于请求限速设备的地址表中的,则统计数量值count对应加上多少;
每个回应限速设备接收到其他回应限速设备的回应报文,接收回应报文的回应限速设备判断其他回应限速设备的地址是否存在于接收回应报文的回应限速设备的地址表内,若存在则不作处理;若不存在,则将其他回应限速设备的地址存储于接收回应报文的回应限速设备的地址表中,并对接收回应报文的回应限速设备的统计数量值count累计加1,即有多少个回应限速设备的地址不存在于接收回应报文的回应限速设备的地址表中的,则统计数量值count对应加上多少。
具体的,所述的一种分布式流量限速方法,还包括步骤S17:返回步骤S11,此时统计数量值count经过累计已不同,则重新计算实际的令牌生产速率rcir值,rcir=mcir/count;重新计算实际的桶大小rcbs值,rcbs=cbs/count。
本发明还有一个目的是提供一种分布式流量限速系统,包括若干个相互连接的限速设备,所述限速设备包括令牌桶模块、报文处理模块以及同步模块;
所述令牌桶模块用于设置令牌桶参数以及令牌桶的令牌数量和生产令牌;所述令牌桶模块还用于计算实际的令牌生产速率rcir值和实际的令牌桶大小rcbs值;
所述报文处理模块用于接收报文和判断当前令牌桶内令牌数量是否足够,若令牌数量不够,则丢弃报文,所述令牌桶模块保持令牌数量不变;若令牌数量足够,则报文处理模块直接将报文转发出去,同时,根据报文长度,所述令牌桶模块在其令牌桶内减去与报文长度同等数量的令牌数量得到剩余令牌数量,若令牌桶内剩余令牌数量小于或等于rcir值,则触发所述令牌桶模块向其他限速设备采用组播方式发送一个请求令牌数量值的同步报文;
所述报文处理模块还用于接收报文并转发,所述令牌桶模块还用于:报文转发过程中,令牌桶模块判断当前生产的令牌是否将会填满令牌桶的剩余空间,若是则触发令牌桶同步,令牌桶模块向其他限速设备采用组播方式发送一个请求令牌数量值的同步报文;
所述报文处理模块还用于接收其他限速设备的带请求令牌数量值的同步报文,将自身令牌桶中的令牌数量值生成一个回应报文并采用组播方式发送给其他限速设备,限速设备收到回应报文后,所述令牌桶模块还用于对自身令牌桶内的令牌数量进行如下判断:若自身令牌桶内的令牌数量小于或等于rcir,则从所有限速设备中选择拥有令牌数量最大且大于rcir的限速设备;若自身令牌桶内的令牌数量大于或等于rcbs-rcir,则从所有限速设备中选择剩余令牌数量最小且小于rcbs-rcir的限速设备;其中,rcbs-rcir大于rcir;所述报文处理模块还用于向所选择的限速设备采用单播方式发送一个请求交换令牌桶内所有令牌数量的请求报文;收到请求报文的限速设备,其令牌桶模块还用于将其令牌桶内的令牌数量与发出请求报文的限速设备的令牌数量进行交换。
具体的,所述令牌桶模块用于设置令牌桶参数以及令牌桶的令牌数量和生产令牌,具体为:
令牌桶模块设置令牌桶在一秒内生成的令牌数量,计算每秒的生成令牌数量速率cir以及令牌桶大小cbs;根据每秒的生成令牌数量速率cir,计算每毫秒内生成令牌数量速率mcir,mcir=cir/1000;
令牌桶模块设置限速设备初始化的统计数量值count的初始值为1,并生成一个地址表,地址表用于存储其他限速设备的地址,地址表初始化为空白地址表;
令牌桶模块计算实际的令牌生产速率rcir值,rcir=mcir/count;令牌桶模块计算实际的令牌桶大小rcbs值,rcbs=cbs/count。
具体的,所述报文处理模块用于接收报文和判断当前令牌桶内令牌数量是否足够,其具体判断方式为:判断令牌数量是否等于报文长度,若令牌数量大于或等于报文长度,则判断令牌数量为足够;若令牌数量小于报文长度,则判断令牌数量为不够。
具体的,所述令牌桶模块还用于:
限速设备收到其他限速设备的同步报文或者回应报文后,令牌桶模块则判断其他限速设备的地址是否存在于令牌桶模块所属限速设备的地址表内,若存在则不作处理;若不存在,则将其他限速设备的地址存储于令牌桶模块所属限速设备的令牌桶模块的地址表中,令牌桶模块对令牌桶模块所属限速设备的统计数量值count加1,即有多少个回应限速设备的地址不存在于令牌桶模块所属限速设备的地址表中的,则统计数量值count对应加上多少;令牌桶模块的count发生变化后,令牌桶模块则重新计算实际的令牌生产速率rcir值,rcir=mcir/count;令牌桶模块重新计算实际的令牌桶大小rcbs值,rcbs=cbs/count。
采用上述技术方案后,本发明至少具有如下有益效果:本发明通过在令牌生产和报文处理过程中触发使用组播方式同步令牌桶,可以简化系统的部署,每台限速设备使用相同的参数和流程运作,并无须作额外的设置,通过组播方式同步,也能够减少同步流量对带宽的占用,且不需要维护额外的连接,提高了系统的稳定性,触发式的同步也能够最大程度地避免对报文转发延时的增加,在实际使用的过程中,假如流量的分布比较均匀,则限速设备间的同步能减至最低,并且报文的转发延时基本不会增加;
本发明令牌在存放和使用的过程中,达到设定条件将会触发令牌桶同步,同步将通过组播的方式进行,组播能够减少同步报文的发出次数,部署系统的规模越大,组播的方式将会越有利,在最后完成交换环节则使用单播的方式;由于多个节点一般部署在同一个局域网内,所以组播同步的方式不需要部署IGMP协议,只需要把每个节点的同步接口部置在一个专用的vlan内即可。
附图说明
图1为本发明实施例1中一种分布式流量限速方法的步骤流程图;
图2为本发明实施例2中一种分布式流量限速方法的步骤流程图;
图3为本发明实施例3中一种分布式流量限速系统的框架图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本申请作进一步详细说明。
实施例1
本实施例公开了一种分布式流量限速方法,其需要在一个包含若干个相互连接限速设备的系统中运行,每个限速设备或者说每台限速设备均使用相同的参数和流程运作,而限速系统中触发限速设备同步报文有两个条件:一是令牌桶内的令牌数量不够了,需要触发同步报文来与其他限速设备交换令牌数量;二是令牌桶当前生产的令牌将会填满令牌桶的剩余空间时,则触发令牌桶同步;本实施例是在条件一情况下公开具体的限速步骤。
如图1所示,一种分布式流量限速方法,步骤如下:
S111、限速设备的令牌桶模块预先设置令牌桶参数以及令牌桶的令牌数量,并开始生产令牌;令牌桶模块计算实际的令牌生产速率rcir值和实际的令牌桶大小rcbs值;
具体为:
初始化限速设备,设置令牌桶在一秒内生成的令牌数量,计算每秒的生成令牌数量速率cir以及令牌桶大小cbs;根据每秒的生成令牌数量速率cir,计算每毫秒内生成令牌数量速率mcir,mcir=cir/1000;
设置限速设备初始化的统计数量值count的初始值为1,并生成一个地址表,地址表用于存储其他限速设备的地址,地址表初始化为空白地址表;count原始数值为1,1代表了其本身作为其中的第1个限速设备,后面在组播发送同步报文给其他所有限速设备的时候,发现其他的限速设备则相应地把这些限速设备的数量相加上去,例如发现第1个限速设备,count对应加1,此时count为2;如果发现第2个限速设备,那count继续加1,此时count为3,以此类推,限速系统内有多少个限速设备则count就为多少;
其中,计算实际的令牌生产速率rcir值,rcir=mcir/count;计算实际的令牌桶大小rcbs值,rcbs=cbs/count;count值随时步骤和时间的推进就会发生变化,每个限速设备的count值由于同步报文通过组播方式发生,即意味着每个限速设备都会检测都系统中的其他限速设备,count值不断增加,且最后每一次的累计,各个限速设备count值是一样的,重新计算实际的令牌生产速率rcir值和实际的令牌桶大小rcbs值就会相应发生变化;
优选地,令牌桶的类型可以为单速单桶和双速双桶,但是同一个对象在每台限速设备上设置的令牌桶类型必须是同样的;
S112、限速设备的报文处理模块接收报文,判断当前令牌桶内令牌数量是否足够,若令牌数量不够,则丢弃报文,令牌数量不变;若令牌数量足够,则直接将报文转发出去,同时,根据报文长度,令牌桶内减去与报文长度同等数量的令牌数量得到剩余令牌数量,若令牌桶内剩余令牌数量小于或等于rcir值,则触发令牌桶模块向其他限速设备采用组播方式发送一个请求令牌数量值的同步报文,并进入下一步,此时发送同步报文的限速设备称为请求限速设备,其他接收同步报文的限速设备称为回应限速设备;若令牌桶内剩余令牌数量大于rcir值,则不作处理;
这里的限速设备分为请求限速设备和回应限速设备是为了方便后续更加清晰地描述报文的流向,其实每个限速设备都有可能成为请求限速设备或者回应限速设备,取决于哪台限速设备成为同步报文的发送者,哪台限速设备成为同步报文的接收者;
其中,判断当前令牌桶内令牌数量是否足够,其具体判断方式为:判断令牌数量是否等于报文长度,若令牌数量大于或等于报文长度,则判断令牌数量为足够;若令牌数量小于报文长度,则判断令牌数量为不够;
S113、每个回应限速设备接收到同步报文,将自身令牌桶中的令牌数量值生成一个回应报文并采用组播方式发送给请求限速设备和其他回应限速设备;
每个回应限速设备接收到同步报文,则判断请求限速设备的地址是否存在于其地址表内,若存在则不作处理;若不存在,则将请求限速设备的地址存储于其地址表中,并对其统计数量值count加1;
S114、请求限速设备接收到所有回应限速设备的回应报文,对自身令牌桶内的令牌数量进行如下判断:
若自身令牌桶内的令牌数量小于或等于rcir,表明自身令牌桶内令牌将要用完,则从所有回应限速设备中选择拥有令牌数量最大且大于rcir的回应限速设备;若自身令牌桶内的令牌数量大于或等于rcbs-rcir,表明自身令牌桶即将要被填满,则从所有回应限速设备中选择剩余令牌数量最小且小于rcbs-rcir的回应限速设备;
另外,在一般情况下,rcbs比rcir的值都要大得多,不存在既小于或等于rcir又大于或等于rcbs-rcir的情况,如果存在这样的情况,则小于或等于rcir为优先情况;若在所有回应设备中都没有找到符合条件的,表明其余限速设备令牌使用情况和自身相似,则放弃此次令牌同步;
请求限速设备接收到所有回应限速设备的回应报文,则判断每个回应限速设备的地址是否存在于其地址表内,若存在则不作处理;若不存在,则将回应限速设备的地址存储于其地址表中,并对其统计数量值count累计加1,即有多少个回应限速设备的地址不存在于其地址表中的,则统计数量值count对应加上多少;
每个回应限速设备接收到其他回应限速设备的回应报文,则判断其他的回应限速设备的地址是否存在于其地址表内,若存在则不作处理;若不存在,则将回应限速设备的地址存储于其地址表中,并对其统计数量值count累计加1,即有多少个回应限速设备的地址不存在于其地址表中的,则统计数量值count对应加上多少;例如,一共有10台回应限速设备地址不存在于请求限速设备的地址表中,首先将这10台回应限速设备地址存进去请求限速设备的地址表,并将请求限速设备的统计数量值count加上10;
例如,因为每台回应设备都是使用组播去应答的,假如当前网内共有四台限速设备A,B,C,D,A这时发出了同步请求,BCD作为应答,当B收到A的请求时,会把本地的count_B加1,然后发出组播应答,这时CD除了收到A的组播请求,还会收到B的组播应答,所以这时count_C和count_D会加2,如此类推,B也将会收到CD的组播应答,然后再累加count,直到每台设备的count都会变成4;
S115、若请求设备找到符合条件的回应设备,请求限速设备向所选择的回应限速设备采用单播方式发送一个请求交换令牌桶内所有令牌数量的请求报文;
S116、被选择的回应限速设备收到请求报文,将其令牌桶内的令牌数量与请求限速设备的令牌桶内的令牌数量进行交换;
例如,发出同步请求的限速设备,如上述的A,收到了BCD的组播应答后,假如它选择的是B,接下来A并不是要求本地生产与B同等的令牌数量,而是申请与B直接交换它们目前所拥有的令牌数量,比如A这时的令牌数是10个,B是100个,申请交换完成后,就变成了A拥有100个,而B拥有10个;
S117、返回步骤S111,此时统计数量值count经过累计已不同,则重新计算实际的令牌生产速率rcir值,rcir=mcir/count;重新计算实际的令牌桶大小rcbs值,rcbs=cbs/count;因此,每经过一轮限速设备的限速方法,相应的count、rcir和rcbs都会发生改变。
实施例2
本实施例是在实施例1基础上,根据触发限速设备同步报文的第二个条件进行的一种限速方法,其中大部分的步骤过程跟实施例1是一样的。
如图2所示,本实施例提供一种分布式流量限速方法,步骤包括:
S211、限速设备的令牌桶模块预先设置令牌桶参数以及令牌桶的令牌数量,并开始生产令牌;令牌桶模块计算实际的令牌生产速率rcir值和实际的令牌桶大小rcbs值;
具体为:
初始化限速设备,设置令牌桶在一秒内生成的令牌数量,计算每秒的生成令牌数量速率cir以及令牌桶大小cbs;根据每秒的生成令牌数量速率cir,计算每毫秒内生成令牌数量速率mcir,mcir=cir/1000;
设置限速设备初始化的统计数量值count的初始值为1,并生成一个地址表,地址表用于存储其他限速设备的地址,地址表初始化为空白地址表;count原始数值为1,1代表了其本身作为其中的第1个限速设备,后面在组播发送同步报文给其他所有限速设备的时候,发现其他的限速设备则相应地把这些限速设备的数量相加上去,例如发现第1个限速设备,count对应加1,此时count为2;如果发现第2个限速设备,那count继续加1,此时count为3,以此类推,限速系统内有多少个限速设备则count就为多少;
其中,计算实际的令牌生产速率rcir值,rcir=mcir/count;计算实际的令牌桶大小rcbs值,rcbs=cbs/count;count值随时步骤和时间的推进就会发生变化,每个限速设备的count值由于同步报文通过组播方式发生,即意味着每个限速设备都会检测都系统中的其他限速设备,count值不断增加,且最后每一次的累计,各个限速设备count值是一样的,重新计算实际的令牌生产速率rcir值和实际的令牌桶大小rcbs值就会相应发生变化;
优选地,令牌桶的类型可以为单速单桶和双速双桶,但是同一个对象在每台限速设备上设置的令牌桶类型必须是同样的;
S212、限速设备的报文处理模块接收报文并转发,令牌桶在转发报文过程中会相应消耗一定量的令牌数量,而实际的令牌桶大小就会减少空间;报文转发过程中,令牌桶模块判断当前生产的令牌是否将会填满令牌桶的剩余空间,若是则触发令牌桶同步,令牌桶模块向其他限速设备采用组播方式发送一个请求令牌数量值的同步报文,并进入下一步,此时发送同步报文的限速设备称为请求限速设备,其他接收同步报文的限速设备称为回应限速设备;若当前令牌桶内的令牌数量小于实际令牌桶大小的剩余空间,则不作处理;
这里的限速设备分为请求限速设备和回应限速设备是为了方便后续更加清晰地描述报文的流向,其实每个限速设备都有可能成为请求限速设备或者回应限速设备,取决于哪台限速设备成为同步报文的发送者,哪台限速设备成为同步报文的接收者;
S213、每个回应限速设备接收到同步报文,将自身令牌桶中的令牌数量值生成一个回应报文并采用组播方式发送给请求限速设备和其他回应限速设备;
每个回应限速设备接收到同步报文,则判断请求限速设备的地址是否存在于其地址表内,若存在则不作处理;若不存在,则将请求限速设备的地址存储于其地址表中,并对其统计数量值count加1;
S214、请求限速设备接收到所有回应限速设备的回应报文,对自身令牌桶内的令牌数量进行如下判断:
若自身令牌桶内的令牌数量小于或等于rcir,表明自身令牌桶内令牌将要用完,则从所有回应限速设备中选择拥有令牌数量最大且大于rcir的回应限速设备;若自身令牌桶内的令牌数量大于或等于rcbs-rcir,表明自身令牌桶即将要被填满,则从所有回应限速设备中选择剩余令牌数量最小且小于rcbs-rcir的回应限速设备;
另外,在一般情况下,rcbs比rcir的值都要大得多,不存在既小于或等于rcir又大于或等于rcbs-rcir的情况,如果存在这样的情况,则小于或等于rcir为优先情况;若在所有回应设备中都没有找到符合条件的,表明其余限速设备令牌使用情况和自身相似,则放弃此次令牌同步;
请求限速设备接收到所有回应限速设备的回应报文,则判断每个回应限速设备的地址是否存在于其地址表内,若存在则不作处理;若不存在,则将回应限速设备的地址存储于其地址表中,并对其统计数量值count累计加1,即有多少个回应限速设备的地址不存在于其地址表中的,则统计数量值count对应加上多少;
每个回应限速设备接收到其他回应限速设备的回应报文,则判断其他的回应限速设备的地址是否存在于其地址表内,若存在则不作处理;若不存在,则将回应限速设备的地址存储于其地址表中,并对其统计数量值count累计加1,即有多少个回应限速设备的地址不存在于其地址表中的,则统计数量值count对应加上多少;例如,一共有10台回应限速设备地址不存在于请求限速设备的地址表中,首先将这10台回应限速设备地址存进去请求限速设备的地址表,并将请求限速设备的统计数量值count加上10;
例如,因为每台回应设备都是使用组播去应答的,假如当前网内共有四台限速设备A,B,C,D,A这时发出了同步请求,BCD作为应答,当B收到A的请求时,会把本地的count_B加1,然后发出组播应答,这时CD除了收到A的组播请求,还会收到B的组播应答,所以这时count_C和count_D会加2,如此类推,B也将会收到CD的组播应答,然后再累加count,直到每台设备的count都会变成4;
S215、请求限速设备向所选择的回应限速设备采用单播方式发送一个请求交换令牌桶内所有令牌数量的请求报文;
S216、被选择的回应限速设备收到请求报文,将其令牌桶内的令牌数量与请求限速设备的令牌桶内的令牌数量进行交换;
例如,发出同步请求的限速设备,如上述的A,收到了BCD的组播应答后,假如它选择的是B,接下来A并不是要求本地生产与B同等的令牌数量,而是申请与B直接交换它们目前所拥有的令牌数量,比如A这时的令牌数是10个,B是100个,申请交换完成后,就变成了A拥有100个,而B拥有10个;
S217、返回步骤S211,此时统计数量值count经过累计已不同,则重新计算实际的令牌生产速率rcir值,rcir=mcir/count;重新计算实际的令牌桶大小rcbs值,rcbs=cbs/count;因此,每经过一轮限速设备的限速方法,相应的count、rcir和rcbs都会发生改变。
实施例3
本实施例是在实施例1和2的方法基础上,提供的一种分布式流量限速系统,如图3所示,包括若干个相互连接的限速设备,例如包括限速设备1、限速设备2、限速设备3等等一直到限速设备n,此时限速系统有n个限速设备;所述限速设备包括令牌桶模块、报文处理模块以及同步模块;每个限速设备规格是一样的,所有限速设备的令牌桶模块、报文处理模块以及同步模块的工作原理都一样;
所述令牌桶模块用于设置令牌桶参数以及令牌桶的令牌数量和生产令牌;所述令牌桶模块还用于计算实际的令牌生产速率rcir值和实际的令牌桶大小rcbs值;
所述报文处理模块用于接收报文和判断当前令牌桶内令牌数量是否足够,若令牌数量不够,则丢弃报文,所述令牌桶模块保持令牌数量不变;若令牌数量足够,则报文处理模块直接将报文转发出去,同时,根据报文长度,所述令牌桶模块在其令牌桶内减去与报文长度同等数量的令牌数量得到剩余令牌数量,若令牌桶内剩余令牌数量小于或等于rcir值,则触发所述令牌桶模块向其他限速设备采用组播方式发送一个请求令牌数量值的同步报文;
所述报文处理模块还用于接收报文并转发,所述令牌桶模块还用于:报文转发过程中,令牌桶模块判断当前生产的令牌是否将会填满令牌桶的剩余空间,若是则触发令牌桶同步,令牌桶模块向其他限速设备采用组播方式发送一个请求令牌数量值的同步报文;
所述报文处理模块还用于接收其他限速设备的带请求令牌数量值的同步报文,将自身令牌桶中的令牌数量值生成一个回应报文并采用组播方式发送给其他限速设备,限速设备收到回应报文后,所述令牌桶模块还用于对自身令牌桶内的令牌数量进行如下判断:若自身令牌桶内的令牌数量小于或等于rcir,则从所有限速设备中选择拥有令牌数量最大且大于rcir的限速设备;若自身令牌桶内的令牌数量大于或等于rcbs-rcir,则从所有限速设备中选择剩余令牌数量最小且小于rcbs-rcir的限速设备;所述报文处理模块还用于向所选择的限速设备采用单播方式发送一个请求交换令牌桶内所有令牌数量的请求报文;收到请求报文的限速设备,其令牌桶模块还用于将其令牌桶内的令牌数量与发出请求报文的限速设备的令牌数量进行交换。
进一步地,所述令牌桶模块用于设置令牌桶参数以及令牌桶的令牌数量和生产令牌,具体为:
令牌桶模块设置令牌桶在一秒内生成的令牌数量,计算每秒的生成令牌数量速率cir以及令牌桶大小cbs;根据每秒的生成令牌数量速率cir,计算每毫秒内生成令牌数量速率mcir,mcir=cir/1000;
令牌桶模块设置限速设备初始化的统计数量值count的初始值为1,并生成一个地址表,地址表用于存储其他限速设备的地址,地址表初始化为空白地址表;
令牌桶模块计算实际的令牌生产速率rcir值,rcir=mcir/count;令牌桶模块计算实际的令牌桶大小rcbs值,rcbs=cbs/count。
进一步地,所述报文处理模块用于接收报文和判断当前令牌桶内令牌数量是否足够,其具体判断方式为:判断令牌数量是否等于报文长度,若令牌数量大于或等于报文长度,则判断令牌数量为足够;若令牌数量小于报文长度,则判断令牌数量为不够。
进一步地,所述令牌桶模块还用于:
限速设备收到其他限速设备的同步报文或者回应报文后,令牌桶模块则判断限速设备的地址是否存在于其地址表内,若存在则不作处理;若不存在,则将限速设备的地址存储于其令牌桶模块的地址表中,令牌桶模块对其统计数量值count加1,即有多少个回应限速设备的地址不存在于其地址表中的,则统计数量值count对应加上多少;令牌桶模块的count发生变化后,令牌桶模块则重新计算实际的令牌生产速率rcir值,rcir=mcir/count;令牌桶模块重新计算实际的令牌桶大小rcbs值,rcbs=cbs/count。
实施例4
本实施例公开了分布式流量限速系统具体实施的实例操作,假设分布式流量限速系统包含三台限速设备:
1、以上三台限速设备分别为d1、d2和d3;
2、当前对象的令牌桶设置为单速单桶,速率cir=300Kbit/s,桶大小cbs=3MByte,一个令牌对应一个字节即Byte,1Byte=8bit,1K为1024,1M为1024K,1s=1000ms,则每毫秒mcir=cir/1000=0.3Kbit/s;
3、在每台设备上应设置的实际令牌生产速率rcir=mcir/3=0.1Kbit/s,实际桶大小rcbs=cbs/3=1Mbyte;
4、令牌正常生产过程中,将把令牌存放到令牌桶,报文正常转发过程中,将从令牌桶取出同等数量的令牌;
5、假如当前d1有报文转发且令牌桶中的剩余令牌数量rcur_d1<=rcir,触发同步,d1把rcur_d1通过组播发送出去;
6、d2和d3收到d1的同步报文,也把自己当前的rcur_d2和rcur_d3组播发送出去;
7、d1收到来自d2和d3的令牌数同步,取最大值假如为d3,则向d3发送交换申请;
8、d3收到d1的交换申请,把自己的rcur设置为rcur_d1并把原来的rcur_d3回复到d1;
9、d1收到d3的回复确认,把自己的rcur设置为rcur_d3。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种等效的变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。

Claims (15)

1.一种分布式流量限速方法,其特征在于,包括以下步骤:
S1、限速设备的令牌桶模块预先设置令牌桶参数以及令牌桶的令牌数量,并开始生产令牌;令牌桶模块计算实际的令牌生产速率rcir值和实际的令牌桶大小rcbs值;
S2、限速设备的报文处理模块接收报文,判断当前令牌桶内令牌数量是否足够,若令牌数量不够,则丢弃报文,令牌数量不变;若令牌数量足够,则直接将报文转发出去,同时,根据报文长度,令牌桶内减去与报文长度同等数量的令牌数量得到剩余令牌数量,若令牌桶内剩余令牌数量小于或等于rcir值,则触发令牌桶模块向其他限速设备采用组播方式发送一个请求令牌数量值的同步报文,并进入下一步,此时发送同步报文的限速设备称为请求限速设备,其他接收同步报文的限速设备称为回应限速设备;若令牌桶内剩余令牌数量大于rcir值,则不作处理;
S3、每个回应限速设备接收到同步报文,将自身令牌桶中的令牌数量值生成一个回应报文并采用组播方式发送给请求限速设备和其他回应限速设备;
S4、请求限速设备接收到所有回应限速设备的回应报文,对自身令牌桶内的令牌数量进行如下判断:
若自身令牌桶内的令牌数量小于或等于rcir,则从所有回应限速设备中选择拥有令牌数量最大且大于rcir的回应限速设备;若自身令牌桶内的令牌数量大于或等于rcbs-rcir,则从所有回应限速设备中选择剩余令牌数量最小且小于rcbs-rcir的回应限速设备;其中,rcbs-rcir大于rcir;
S5、请求限速设备向所选择的回应限速设备采用单播方式发送一个请求交换令牌桶内所有令牌数量的请求报文;
S6、被选择的回应限速设备收到请求报文,将其令牌桶内的令牌数量与请求限速设备的令牌桶内的令牌数量进行交换。
2.根据权利要求1所述的一种分布式流量限速方法,其特征在于,所述步骤S1中,令牌桶模块预先设置令牌桶参数以及令牌桶的令牌数量,具体为:
初始化限速设备,设置令牌桶在一秒内生成的令牌数量,计算每秒的生成令牌数量速率cir以及令牌桶大小cbs;根据每秒的生成令牌数量速率cir,计算每毫秒内生成令牌数量速率mcir,mcir=cir/1000;
设置限速设备初始化的统计数量值count的初始值为1,并生成一个地址表,地址表用于存储其他限速设备的地址,地址表初始化为空白地址表;
其中,计算实际的令牌生产速率rcir值,rcir=mcir/count;计算实际的令牌桶大小rcbs值,rcbs=cbs/count。
3.根据权利要求1所述的一种分布式流量限速方法,其特征在于,所述步骤S2中判断当前令牌桶内令牌数量是否足够,其具体判断方式为:判断令牌数量是否等于报文长度,若令牌数量大于或等于报文长度,则判断令牌数量为足够;若令牌数量小于报文长度,则判断令牌数量为不够。
4.根据权利要求2所述的一种分布式流量限速方法,其特征在于,所述步骤S3还包括:
每个回应限速设备接收到同步报文,则判断请求限速设备的地址是否存在于回应限速设备的地址表内,若存在则不作处理;若不存在,则将请求限速设备的地址存储于回应限速设备的地址表中,并对回应限速设备的统计数量值count加1。
5.根据权利要求4所述的一种分布式流量限速方法,其特征在于,所述步骤S4还包括:
请求限速设备接收到所有回应限速设备的回应报文,则判断每个回应限速设备的地址是否存在于请求限速设备的地址表内,若存在则不作处理;若不存在,则将回应限速设备的地址存储于请求限速设备的地址表中,并对请求限速设备的统计数量值count累计加1,即有多少个回应限速设备的地址不存在于请求限速设备的地址表中的,则统计数量值count对应加上多少;
每个回应限速设备接收到其他回应限速设备的回应报文,接收回应报文的回应限速设备判断其他回应限速设备的地址是否存在于接收回应报文的回应限速设备的地址表内,若存在则不作处理;若不存在,则将其他回应限速设备的地址存储于接收回应报文的回应限速设备的地址表中,并对接收回应报文的回应限速设备的统计数量值count累计加1,即有多少个回应限速设备的地址不存在于接收回应报文的回应限速设备的地址表中的,则统计数量值count对应加上多少。
6.根据权利要求5所述的一种分布式流量限速方法,其特征在于,还包括步骤S7:返回步骤S1,此时统计数量值count经过累计已不同,则重新计算实际的令牌生产速率rcir值,rcir=mcir/count;重新计算实际的令牌桶大小rcbs值,rcbs=cbs/count。
7.一种分布式流量限速方法,其特征在于,包括以下步骤:
S11、限速设备的令牌桶模块预先设置令牌桶参数以及令牌桶的令牌数量,并开始生产令牌;令牌桶模块计算实际的令牌生产速率rcir值和实际的令牌桶大小rcbs值;
S12、限速设备的报文处理模块接收报文并转发,令牌桶在转发报文过程中会相应消耗一定量的令牌数量,而实际的令牌桶大小就会减少空间;报文转发过程中,令牌桶模块判断当前生产的令牌是否将会填满令牌桶的剩余空间,若是则触发令牌桶同步,令牌桶模块向其他限速设备采用组播方式发送一个请求令牌数量值的同步报文,并进入下一步,此时发送同步报文的限速设备称为请求限速设备,其他接收同步报文的限速设备称为回应限速设备;若当前令牌桶内的令牌数量小于实际令牌桶大小的剩余空间,则不作处理;
S13、每个回应限速设备接收到同步报文,将自身令牌桶中的令牌数量值生成一个回应报文并采用组播方式发送给请求限速设备和其他回应限速设备;
S14、请求限速设备接收到所有回应限速设备的回应报文,对自身令牌桶内的令牌数量进行如下判断:
若自身令牌桶内的令牌数量小于或等于rcir,则从所有回应限速设备中选择拥有令牌数量最大且大于rcir的回应限速设备;若自身令牌桶内的令牌数量大于或等于rcbs-rcir,则从所有回应限速设备中选择剩余令牌数量最小且小于rcbs-rcir的回应限速设备;其中,rcbs-rcir大于rcir;
S15、请求限速设备向所选择的回应限速设备采用单播方式发送一个请求交换令牌桶内所有令牌数量的请求报文;
S16、被选择的回应限速设备收到请求报文,将其令牌桶内的令牌数量与请求限速设备的令牌桶内的令牌数量进行交换。
8.根据权利要求7所述的一种分布式流量限速方法,其特征在于,所述步骤S11中,令牌桶模块预先设置令牌桶参数以及令牌桶的令牌数量,具体为:
初始化限速设备,设置令牌桶在一秒内生成的令牌数量,计算每秒的生成令牌数量速率cir以及令牌桶大小cbs;根据每秒的生成令牌数量速率cir,计算每毫秒内生成令牌数量速率mcir,mcir=cir/1000;
设置限速设备初始化的统计数量值count的初始值为1,并生成一个地址表,地址表用于存储其他限速设备的地址,地址表初始化为空白地址表;
其中,计算实际的令牌生产速率rcir值,rcir=mcir/count;计算实际的令牌桶大小rcbs值,rcbs=cbs/count。
9.根据权利要求8所述的一种分布式流量限速方法,其特征在于,所述步骤S13还包括:
每个回应限速设备接收到同步报文,则判断请求限速设备的地址是否存在于回应限速设备的地址表内,若存在则不作处理;若不存在,则将请求限速设备的地址存储于回应限速设备的地址表中,并对其统计数量值count加1。
10.根据权利要求9所述的一种分布式流量限速方法,其特征在于,所述步骤S14还包括:
请求限速设备接收到所有回应限速设备的回应报文,则判断每个回应限速设备的地址是否存在于请求限速设备的地址表内,若存在则不作处理;若不存在,则将回应限速设备的地址存储于请求限速设备的地址表中,并对其统计数量值count累计加1,即有多少个回应限速设备的地址不存在于请求限速设备的地址表中的,则统计数量值count对应加上多少;
每个回应限速设备接收到其他回应限速设备的回应报文,接收回应报文的回应限速设备判断其他回应限速设备的地址是否存在于接收回应报文的回应限速设备的地址表内,若存在则不作处理;若不存在,则将其他回应限速设备的地址存储于接收回应报文的回应限速设备的地址表中,并对接收回应报文的回应限速设备的统计数量值count累计加1,即有多少个回应限速设备的地址不存在于接收回应报文的回应限速设备的地址表中的,则统计数量值count对应加上多少。
11.根据权利要求10所述的一种分布式流量限速方法,其特征在于,还包括步骤S17:返回步骤S11,此时统计数量值count经过累计已不同,则重新计算实际的令牌生产速率rcir值,rcir=mcir/count;重新计算实际的桶大小rcbs值,rcbs=cbs/count。
12.一种分布式流量限速系统,其特征在于,包括若干个相互连接的限速设备,所述限速设备包括令牌桶模块、报文处理模块以及同步模块;
所述令牌桶模块用于设置令牌桶参数以及令牌桶的令牌数量和生产令牌;所述令牌桶模块还用于计算实际的令牌生产速率rcir值和实际的令牌桶大小rcbs值;
所述报文处理模块用于接收报文和判断当前令牌桶内令牌数量是否足够,若令牌数量不够,则丢弃报文,所述令牌桶模块保持令牌数量不变;若令牌数量足够,则报文处理模块直接将报文转发出去,同时,根据报文长度,所述令牌桶模块在其令牌桶内减去与报文长度同等数量的令牌数量得到剩余令牌数量,若令牌桶内剩余令牌数量小于或等于rcir值,则触发所述令牌桶模块向其他限速设备采用组播方式发送一个请求令牌数量值的同步报文;
所述报文处理模块还用于接收报文并转发,所述令牌桶模块还用于:报文转发过程中,令牌桶模块判断当前生产的令牌是否将会填满令牌桶的剩余空间,若是则触发令牌桶同步,令牌桶模块向其他限速设备采用组播方式发送一个请求令牌数量值的同步报文;
所述报文处理模块还用于接收其他限速设备的带请求令牌数量值的同步报文,将自身令牌桶中的令牌数量值生成一个回应报文并采用组播方式发送给其他限速设备,限速设备收到回应报文后,所述令牌桶模块还用于对自身令牌桶内的令牌数量进行如下判断:若自身令牌桶内的令牌数量小于或等于rcir,则从所有限速设备中选择拥有令牌数量最大且大于rcir的限速设备;若自身令牌桶内的令牌数量大于或等于rcbs-rcir,则从所有限速设备中选择剩余令牌数量最小且小于rcbs-rcir的限速设备;其中,rcbs-rcir大于rcir;所述报文处理模块还用于向所选择的限速设备采用单播方式发送一个请求交换令牌桶内所有令牌数量的请求报文;收到请求报文的限速设备,其令牌桶模块还用于将其令牌桶内的令牌数量与发出请求报文的限速设备的令牌数量进行交换。
13.根据权利要求12所述的一种分布式流量限速系统,其特征在于,所述令牌桶模块用于设置令牌桶参数以及令牌桶的令牌数量和生产令牌,具体为:
令牌桶模块设置令牌桶在一秒内生成的令牌数量,计算每秒的生成令牌数量速率cir以及令牌桶大小cbs;根据每秒的生成令牌数量速率cir,计算每毫秒内生成令牌数量速率mcir,mcir=cir/1000;
令牌桶模块设置限速设备初始化的统计数量值count的初始值为1,并生成一个地址表,地址表用于存储其他限速设备的地址,地址表初始化为空白地址表;
令牌桶模块计算实际的令牌生产速率rcir值,rcir=mcir/count;令牌桶模块计算实际的令牌桶大小rcbs值,rcbs=cbs/count。
14.根据权利要求12所述的一种分布式流量限速系统,其特征在于,所述报文处理模块用于接收报文和判断当前令牌桶内令牌数量是否足够,其具体判断方式为:判断令牌数量是否等于报文长度,若令牌数量大于或等于报文长度,则判断令牌数量为足够;若令牌数量小于报文长度,则判断令牌数量为不够。
15.根据权利要求13所述的一种分布式流量限速系统,其特征在于,所述令牌桶模块还用于:
限速设备收到其他限速设备的同步报文或者回应报文后,令牌桶模块则判断其他限速设备的地址是否存在于令牌桶模块所属限速设备的地址表内,若存在则不作处理;若不存在,则将其他限速设备的地址存储于令牌桶模块所属限速设备的令牌桶模块的地址表中,令牌桶模块对令牌桶模块所属限速设备的统计数量值count加1,即有多少个回应限速设备的地址不存在于令牌桶模块所属限速设备的地址表中的,则统计数量值count对应加上多少;令牌桶模块的count发生变化后,令牌桶模块则重新计算实际的令牌生产速率rcir值,rcir=mcir/count;令牌桶模块重新计算实际的令牌桶大小rcbs值,rcbs=cbs/count。
CN202010539936.7A 2020-06-15 2020-06-15 一种分布式流量限速方法及系统 Active CN111431816B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010539936.7A CN111431816B (zh) 2020-06-15 2020-06-15 一种分布式流量限速方法及系统
PCT/CN2020/131308 WO2021253725A1 (zh) 2020-06-15 2020-11-25 一种分布式流量限速方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010539936.7A CN111431816B (zh) 2020-06-15 2020-06-15 一种分布式流量限速方法及系统

Publications (2)

Publication Number Publication Date
CN111431816A CN111431816A (zh) 2020-07-17
CN111431816B true CN111431816B (zh) 2020-11-10

Family

ID=71555289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010539936.7A Active CN111431816B (zh) 2020-06-15 2020-06-15 一种分布式流量限速方法及系统

Country Status (2)

Country Link
CN (1) CN111431816B (zh)
WO (1) WO2021253725A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111431816B (zh) * 2020-06-15 2020-11-10 广东睿江云计算股份有限公司 一种分布式流量限速方法及系统
CN112351082A (zh) * 2020-10-27 2021-02-09 北京健康之家科技有限公司 Http请求报文的限流方法及装置
CN112600760B (zh) * 2020-12-08 2022-06-14 厦门服云信息科技有限公司 一种应用层流量限速方法、终端设备及存储介质
CN116321278A (zh) * 2021-12-10 2023-06-23 中兴通讯股份有限公司 拥塞控制方法、系统、电子设备和存储介质
CN114430376B (zh) * 2021-12-31 2023-08-25 网络通信与安全紫金山实验室 带宽限制方法及装置
CN115277844B (zh) * 2022-06-13 2024-03-26 杭州猎火传媒科技有限公司 一种大数据后台数据处理方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101282305A (zh) * 2008-05-22 2008-10-08 杭州华三通信技术有限公司 分布式系统中的带宽控制方法及业务板
US7764615B2 (en) * 2006-07-10 2010-07-27 International Business Machines Corporation Distributing rate limits and tracking rate consumption across members of a cluster
CN109587072A (zh) * 2019-01-04 2019-04-05 中企动力科技股份有限公司 分布式系统全局限速系统及方法
CN110753005A (zh) * 2019-10-17 2020-02-04 腾讯科技(深圳)有限公司 限速方法、装置及系统、电子设备和计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997766B (zh) * 2009-08-31 2012-09-05 中兴通讯股份有限公司 一种基于优先级的令牌桶限速的方法及系统
CN107566293B (zh) * 2016-06-30 2022-03-25 中兴通讯股份有限公司 一种用于报文限速的方法及装置
CN110545246B (zh) * 2018-05-29 2023-12-08 北京京东尚科信息技术有限公司 一种基于令牌桶的限流方法、装置和计算机可读介质
US10951532B2 (en) * 2018-07-18 2021-03-16 Huawei Technologies Co., Ltd. Method and system for cluster rate limiting in a cloud computing system
CN111431816B (zh) * 2020-06-15 2020-11-10 广东睿江云计算股份有限公司 一种分布式流量限速方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7764615B2 (en) * 2006-07-10 2010-07-27 International Business Machines Corporation Distributing rate limits and tracking rate consumption across members of a cluster
CN101282305A (zh) * 2008-05-22 2008-10-08 杭州华三通信技术有限公司 分布式系统中的带宽控制方法及业务板
CN109587072A (zh) * 2019-01-04 2019-04-05 中企动力科技股份有限公司 分布式系统全局限速系统及方法
CN110753005A (zh) * 2019-10-17 2020-02-04 腾讯科技(深圳)有限公司 限速方法、装置及系统、电子设备和计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于多令牌桶的组播拥塞控制;高永辉,蒋林;《计算机技术与发展》;20120229;第22卷(第2期);第149-152、216页 *

Also Published As

Publication number Publication date
WO2021253725A1 (zh) 2021-12-23
CN111431816A (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
CN111431816B (zh) 一种分布式流量限速方法及系统
CN112751691B (zh) 网络流量的限速方法、装置、中控设备和网关
US5546377A (en) Efficient distributed method for computing max-min fair rates of a limited resource in ATM networks
JPH1065710A (ja) フロー制御情報を伝送元に提供する機構を含むデジタルネットワーク
JPH09186701A (ja) 最適帯域幅割当て方法及び装置
US7092359B2 (en) Method for distributing the data-traffic load on a communication network and a communication network for implementing this method
US7082131B2 (en) Network communication system with relay node for broadcasts and multicasts
CN112311685A (zh) 一种处理网络拥塞的方法以及相关装置
CN113055301A (zh) 拥塞控制方法及相关设备
CN106713142B (zh) 在can总线上传输ip报文的方法及利用can总线网络构建的ip局域网
CN115314442B (zh) 拥塞控制和基于Group的限速限窗装置及方法、限速限窗方法
US11190454B2 (en) Receiver-directed computer network congestion control system
US11442432B2 (en) Communication device and method for data transmission within an industrial communication network
CN115442869A (zh) 消息发送参数的设置方法、电子设备及存储介质
CN115884252A (zh) 策略调整方法、数据传输方法、系统、服务器及存储介质
CN110086680B (zh) Afdx网络配置生成方法、装置及系统
JPH06152635A (ja) フレームリレーデータ伝送システムに関する改良
CN114095479B (zh) 一种IGMPv3/MLDv2成员报告报文的处理方法
US5838662A (en) System and method for transferring data
CN116582496B (zh) 令牌桶丢包优化方法及系统
CN114157610B (zh) 一种适用于区块链网络的高速网络协议系统及传输方法
CN112737797B (zh) 一种支持单播、广播的消息传输系统和传输方法
CN116017217A (zh) 一种基于虚拟链路的fc网络通信调度方法
KR101826844B1 (ko) 네트워크 제어 시스템
CN107204932B (zh) 基于网络端节点的网络流控方法及装置

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