限速方法及装置转让专利

申请号 : CN201711069871.9

文献号 : CN107623641B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋汉柏邓以华张有志王斌

申请人 : 湖南天冠电子信息技术有限公司

摘要 :

本发明提供一种限速方法及装置。所述方法应用于交换机。交换机包括定时器。所述方法包括:通过定时器的定时触发和/或数据包的输入触发向令牌桶中添加令牌;根据最近一次触发时间及当前时间得到触发差量时间;根据触发差量时间及预设单位令牌产生时间计算得到所需令牌数量;向令牌桶中添加所需令牌数量的令牌。由此,通过定时器的定时触发和/或数据包的输入触发向令牌桶中添加令牌,使得交换机既能够保证承诺信息速率的要求,还能避免出现周期性网络速度波动的情况。

权利要求 :

1.一种限速方法,其特征在于,应用于交换机,所述交换机包括定时器,所述方法包括:通过定时器的定时触发和/或数据包的输入触发向令牌桶中添加令牌;

根据最近一次触发时间及当前时间得到触发差量时间;

根据所述触发差量时间及预设单位令牌产生时间计算得到所需令牌数量,其中,所需令牌数量由所述触发差量时间与预设单位令牌产生时间的商取整得到;

向所述令牌桶中添加所需令牌数量的令牌;

在所述向所述令牌桶中添加所需令牌数量的令牌的步骤之后,所述方法还包括:根据所需令牌数量、令牌桶中剩余令牌数量及令牌桶容量更新本次触发时间;

所述根据所需令牌数量、令牌桶中剩余令牌数量及令牌桶容量更新本次触发时间的步骤包括:若所述所需令牌数量与令牌桶中剩余令牌数量的和大于所述令牌桶容量,判定所述令牌桶溢出,并将所述本次触发时间更新为当前时间;

若所述所需令牌数量与令牌桶中剩余令牌数量的和小于所述令牌桶容量,判定所述令牌桶没有溢出,并根据所述最近一次触发时间、所需令牌数量及预设单位令牌产生时间对所述本次触发时间进行更新。

2.根据权利要求1所述的方法,其特征在于,所述交换机还包括触发器,所述通过定时器的定时触发和/或数据包的输入触发向令牌桶中添加令牌的方式包括:所述触发器在接收到定时器以一定时间间隔发送的时间信号和/或检测到数据包输入时触发向令牌桶中添加令牌。

3.根据权利要求1所述的方法,其特征在于,在所述根据所述触发差量时间及预设单位令牌产生时间计算得到所需令牌数量的步骤之前,所述方法还包括:将所述触发差量时间与预设单位令牌产生时间进行比较,以判断是否需要向令牌桶中添加令牌;

在所述触发差量时间大于预设单位令牌产生时间时,判定需要向令牌桶中添加令牌;

在所述触发差量时间小于预设单位令牌产生时间时,判定不需要向令牌桶中添加令牌。

4.根据权利要求1所述的方法,其特征在于,所述若所述所需令牌数量与令牌桶中剩余令牌数量的和小于所述令牌桶容量,判定所述令牌桶没有溢出,并根据所述最近一次触发时间、所需令牌数量及预设单位令牌产生时间对所述本次触发时间进行更新的方式包括:将所述所需令牌数量及预设单位令牌产生时间的乘积与所述最近一次触发时间的和更新为所述本次触发时间。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:若向令牌桶中添加所述所需令牌数量的令牌后,令牌桶溢出,则丢弃多余的令牌。

6.根据权利要求1所述的方法,其特征在于,在所述向所述令牌桶中添加所需令牌数量的令牌的步骤之后,所述方法还包括:将所述令牌桶中的令牌数量与输入的数据包所需的令牌数量进行比较;

若所述令牌桶中的令牌数量满足输入的数据包所需的令牌数量,则将输入的数据包输出,并按所述输入的数据包所需的令牌数量减少所述令牌桶中的令牌数量;

若所述令牌桶中的令牌数量不满足输入的数据包所需的令牌数量,则将输入的数据包丢弃。

7.一种限速装置,其特征在于,应用于交换机,所述交换机包括定时器,所述装置包括:触发模块,用于通过定时器的定时触发和/或数据包的输入触发向令牌桶中添加令牌;

计算模块,用于根据最近一次触发时间及当前时间得到触发差量时间;

计算模块,还用于根据所述触发差量时间及预设单位令牌产生时间计算得到所需令牌数量,其中,所需令牌数量由所述触发差量时间与预设单位令牌产生时间的商取整得到;

添加模块,用于向所述令牌桶中添加所需令牌数量的令牌;

更新模块,用于根据所需令牌数量、令牌桶中剩余令牌数量及令牌桶容量更新本次触发时间;

所述更新模块根据所需令牌数量、令牌桶中剩余令牌数量及令牌桶容量更新本次触发时间的方式包括:若所述所需令牌数量与令牌桶中剩余令牌数量的和大于所述令牌桶容量,判定所述令牌桶溢出,并将所述本次触发时间更新为当前时间;

若所述所需令牌数量与令牌桶中剩余令牌数量的和小于所述令牌桶容量,判定所述令牌桶没有溢出,并将所述所需令牌数量及预设单位令牌产生时间的乘积与所述最近一次触发时间的和更新为所述本次触发时间。

8.根据权利要求7所述的装置,其特征在于,所述交换机还包括触发器,所述触发模块通过定时器的定时触发和/或数据包的输入触发向令牌桶中添加令牌的方式包括:控制所述触发器在接收到定时器以一定时间间隔发送的时间信号和/或检测到数据包输入时触发向令牌桶中添加令牌。

说明书 :

限速方法及装置

技术领域

[0001] 本发明涉及通信技术领域,具体而言,涉及一种限速方法及装置。

背景技术

[0002] 交换机作为计算机的连接和数据交互设备,除了基本的数据联通的功能,还需要提供更多网络管理功能,比如,Qos(Quality of Service,服务质量)、交换机端口限速等。因此,交换机的性能直接影响着所在网络的整体网络速度。
[0003] 交换机采用令牌桶算法进行限速,在大型交换机系统中,由于端口数过多,导致令牌桶的刷新周期比较大。如果同时端口的流量超过限速设置时,特别是在数据量比较大的时候,在刷新周期开始时期令牌就会迅速用完,数据通讯会出现周期性阻断现象。这样针对一些UDP数据(比如,视频流、直播信号、日志系统数据上报等),就会在应用层出现周期性阻断,使得关键数据丢失,影响用户体验。

发明内容

[0004] 为了克服现有技术中的上述不足,本发明所要解决的技术问题是提供一种限速方法及装置,其能够使得限速端口的令牌桶的刷新不仅仅由定时器定时触发,还会通过输入的数据包自动触发,基于数据包自动刷新令牌,能够在发送数据的时候,不会因为令牌迅速用完而产生数据通讯的波浪现象,提升了用户体验。
[0005] 本发明较佳实施例提供一种限速方法,应用于交换机,所述交换机包括定时器,所述方法包括:
[0006] 通过定时器的定时触发和/或数据包的输入触发向令牌桶中添加令牌;
[0007] 根据最近一次触发时间及当前时间得到触发差量时间;
[0008] 根据所述触发差量时间及预设单位令牌产生时间计算得到所需令牌数量;
[0009] 向所述令牌桶中添加所需令牌数量的令牌。
[0010] 本发明较佳实施例还提供一种限速装置,应用于交换机,所述交换机包括定时器,所述装置包括:
[0011] 触发模块,用于通过定时器的定时触发和/或数据包的输入触发向令牌桶中添加令牌;
[0012] 计算模块,用于根据最近一次触发时间及当前时间得到触发差量时间;
[0013] 计算模块,还用于根据所述触发差量时间及预设单位令牌产生时间计算得到所需令牌数量;
[0014] 添加模块,用于向所述令牌桶中添加所需令牌数量的令牌。
[0015] 相对于现有技术而言,本发明具有以下有益效果:
[0016] 本发明实施例提供一种限速方法及装置。所述方法应用于交换机,所述交换机包括定时器。在接收到定时器的定时触发时和/或检测到有数据包输入时,触发向令牌桶中添加令牌。根据最近一次触发时间及当前时间计算得到触发差量时间,并由所述触发差量时间及预设单位令牌产生时间计算得到所需令牌数量。进而向所述令牌桶中添加所述所需令牌数量的令牌。由此,在定时器的定时触发和/或数据包的输入触发下向令牌桶中添加令牌,使得交换机既能够保证承诺信息速率的要求,又能够避免出现周期性的网络速度波动的情况,提升了用户体验。
[0017] 为使发明的上述目的、特征和优点能更明显易懂,下文特举本发明较佳实施例,并配合所附附图,作详细说明如下。

附图说明

[0018] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0019] 图1是本发明实施例提供的交换机的方框示意图。
[0020] 图2是本发明实施例提供的限速方法的流程示意图之一。
[0021] 图3是本发明实施例提供的限速方法的流程示意图之二。
[0022] 图4是本发明实施例提供的限速方法的流程示意图之三。
[0023] 图5是本发明实施例提供的限速方法的流程示意图之四。
[0024] 图6是本发明实施例提供的限速方法的流程示意图之五。
[0025] 图7是本发明实施例提供的限速装置的方框示意图之一。
[0026] 图8是本发明实施例提供的限速装置的方框示意图之二。
[0027] 图标:100-交换机;110-存储器;120-存储控制器;130-处理器;200-限速装置;210-触发模块;220-计算模块;230-判断模块;250-添加模块;260-更新模块;280-处理模块。

具体实施方式

[0028] 下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0030] 下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
[0031] 请参照图1,图1是本发明实施例提供的交换机100的方框示意图。所述交换机100具有端口限速功能,所述交换机100的限速功能既可以对局域网单个IP地址进行限速、IP地址段限速,又可以对电脑上行流量和下行流量分布进行显示,实现双向限速,从而既可以控制电脑上传、外发的流量大小,又可以控制电脑下载速度、下行流量的控制。所述交换机100可以包括限速装置200、存储器110、存储控制器120及处理器130。
[0032] 所述存储器110、存储控制器120及处理器130各元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器110中存储有限速装置200,所述限速装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器130通过运行存储在存储器110内的软件程序以及模块,如本发明实施例中的限速装置200,从而执行各种功能应用以及数据处理,即实现本发明实施例中的限速方法。
[0033] 其中,所述存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器110用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。所述处理器130以及其他可能的组件对存储器110的访问可在所述存储控制器120的控制下进行。
[0034] 所述处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0035] 可以理解,图1所示的结构仅为示意,交换机100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
[0036] 经发明人研究发现,现有技术存在以下不足。目前,使用定时器一定的时间间隔(Interval)往每个令牌桶中添加令牌,虽然可以解决交换机100的限速问题,但是在交换机100的链路越来越多的时候,令牌桶的个数相应地会变得很大,此时即使承诺信息速率(CIR,Committed Information Rate)不变,但每个令牌桶的Interval(定时器时间间隔)必须设的比较大,交换机100才能轮询设置完所有的令牌桶。
[0037] 而在承诺信息速率不变的情况下,因为Interval的增加,只能增加令牌桶的容量,这样则造成令牌桶的容量变大。而在限速的作用下,Interval产生初期会生成大量的令牌,此时所有的数据包都可以通过;但在网络包流量比较大,而承诺信息速率比较小的时候,就会迅速用完所有的令牌。在这种情况下,此时的网络虽然达到了承诺信息速率的要求,但是实际上会呈现出一种周期性通过,又周期性阻断的情况。
[0038] 其中,承诺信息速率指用户传输数据的速率,也就是往令牌桶中添加令牌的速度。比如,将CIR设置为8000bit/s,那么就必须每秒将8000个令牌放入桶中。
[0039] 请参照图2,图2是本发明实施例提供的限速方法的流程示意图之一。所述方法应用于所述交换机100。其中,所述交换机100可以包括定时器。下面对限速方法的具体流程进行详细阐述。
[0040] 步骤S110,通过定时器的定时触发和/或数据包的输入触发向令牌桶中添加令牌。
[0041] 在本实施例中,向令牌桶中添加令牌的触发条件包括:定时器的定时触发、数据包的输入。通过上述方式,避免了在刷新周期比较大的情况下,仅由定时器定时触发带来的数据包周期性通过、周期性阻断的情况,可提升用户体验。
[0042] 所述交换机100还可以包括触发器,所述通过定时器的定时触发和/或数据包的输入触发向令牌桶中添加令牌的方式包括:
[0043] 所述触发器在接收到定时器以一定时间间隔发送的时间信号和/或检测到数据包输入时触发向令牌桶中添加令牌。
[0044] 具体地,触发器在接收到定时器定时发送的信号、检测到数据包输入时触发。也就是说,定时器仍然按Interval进行触发,但是此时并不是直接向令牌桶中添加令牌,而是进行一次触发器触发,以防止长时间没有数据包输入的情况下,出现触发器在很长时间得不到触发的情况。同时,触发器在数据包输入时也会触发。
[0045] 步骤S120,根据最近一次触发时间及当前时间得到触发差量时间。
[0046] 在本实施例中,所述交换机100中存储有触发器每次触发的时间。在触发器触发时,根据最近一次触发时间及当前时间得到触发差量时间。
[0047] 具体地,计算触发差量时间可以采用以下公式:
[0048] Δt=T1-T0
[0049] 其中,Δt为触发差量时间,T1为当前时间,T0为最近一次触发时间。
[0050] 步骤S140,根据所述触发差量时间及预设单位令牌产生时间计算得到所需令牌数量。
[0051] 在本实施例中,所述预设单位令牌产生时间与承诺信息速度相关。
[0052] 具体地,计算得到所需令牌数量可以采用以下公式:
[0053] N=Δt÷Tc
[0054] 其中,Tc为预设单位令牌产生时间,Tc=1/CIR,N为所需令牌数量,在计算后取整(N=1,2,…,n)。
[0055] 步骤S150,向所述令牌桶中添加所需令牌数量的令牌。
[0056] 在本实施例中,在计算得到所需令牌数量后,根据所述所需令牌数量向所述令牌桶中添加令牌。由此,通过定时器的定时触发和/或数据包输入的触发,向令牌桶中平缓地添加令牌,使得输入的数据包平缓地通过交换机100,避免出现数据流量的周期性波动(周期性连通,又周期性阻断)的现象。
[0057] 请参照图3,图3是本发明实施例提供的限速方法的流程示意图之二。在步骤S140之前,所述方法还可以包括步骤S131、步骤S132及步骤S133。
[0058] 步骤S131,判断所述触发差量时间是否大于预设单位令牌产生时间,以判断是否需要向令牌桶中添加令牌。
[0059] 在本实施例中,将所述触发差量时间与预设单位令牌产生时间进行比较,根据比较结果判断是否需要向令牌桶中添加令牌。
[0060] 在所述触发差量时间小于预设单位令牌产生时间时,执行步骤S132。
[0061] 步骤S132,判定不需要向令牌桶中添加令牌。
[0062] 在本实施例中,所述触发差量时间小于预设单位令牌产生时间表征该触发差量时间不满足向令牌桶中添加令牌的条件,因此,判定不需要向令牌桶中添加令牌。
[0063] 在所述触发差量时间大于预设单位令牌产生时间时,执行步骤S133。
[0064] 步骤S133,判定需要向令牌桶中添加令牌。
[0065] 在本实施例中,所述触发差量时间大于预设单位令牌产生时间,表征所述触发差量时间至少对应一个令牌,满足向令牌桶中添加令牌的条件,因此,判定需要向令牌桶中添加令牌。在确定需要添加令牌后,执行步骤S140。
[0066] 请参照图4,图4是本发明实施例提供的限速方法的流程示意图之三。在步骤S150之后,所述方法还可以包括步骤S160。
[0067] 步骤S160,根据所需令牌数量、令牌桶中剩余令牌数量及令牌桶容量更新本次触发时间。
[0068] 在本实施例中,在判定需要向令牌桶中令牌时,需要更新本次触发时间,以便于在下一次触发时,将该本次触发时间作为最近一次触发时间计算触发差量时间。在本次触发器被触发且需要添加令牌时,所述交换机100可以通过查询、计算等方式得到令牌桶中剩余令牌数量及令牌桶容量,从而根据所需令牌数量、令牌桶中剩余令牌数量及令牌桶容量对本次触发时间进行更新。
[0069] 在本实施例的实施方式中,若所述所需令牌数量与令牌桶中剩余令牌数量的和大于所述令牌桶容量,也就是说,向所述令牌桶中添加所述所需令牌数量的令牌后,所述令牌桶溢出,那么所述令牌桶就回到了初始状态下的令牌放满的状态。在这种情况下,则可以将所述本次触发时间更新为当前时间,也就是在步骤S120中计算触发差量时间所使用的所述当前时间。
[0070] 在本实施例的实施方式中,若所述所需令牌数量与令牌桶中剩余令牌数量的和小于所述令牌桶容量,也就是说,向所述令牌桶中添加所述所需令牌数量的令牌后,所述令牌桶不会溢出。那么则需要根据所述最近一次触发时间、所需令牌数量及预设单位令牌产生时间进行计算,从而对所述本次触发时间进行更新。
[0071] 具体地,由于所述所需令牌数量与令牌桶中剩余令牌数量的和小于所述令牌桶容量,且在得到所述所需令牌数量的计算过程中可能存在余数,若直接根据所述当前时间更新本次触发时间,则可能会出现不能保证承诺信息速率的情况。因此,将所述所需令牌数量及预设单位令牌产生时间的乘积与所述最近一次触发时间的和更新为所述本次触发时间。由此,可保证承诺信息速率。
[0072] 请参照图5,图5是本发明实施例提供的限速方法的流程示意图之四。在步骤S150之后,所述方法还可以包括步骤S170。
[0073] 步骤S170,若向令牌桶中添加所述所需令牌数量的令牌后,令牌桶溢出,则丢弃多余的令牌。
[0074] 由于所述令牌桶的容量有限,在令牌桶溢出的情况下,将多余的令牌丢弃或采用其他方式进行处理。
[0075] 请参照图6,图6是本发明实施例提供的限速方法的流程示意图之五。在步骤S150之后,所述方法还可以包括步骤S181、步骤S182及步骤S183。
[0076] 步骤S181,将令牌桶中的令牌数量与输入的数据包所需的令牌数量进行比较,判断令牌桶中的令牌数量是否满足输入的数据包所需的令牌数量。
[0077] 若令牌桶中的令牌数量满足输入的数据包所需的令牌数量,执行步骤S182。
[0078] 步骤S182,将输入的数据包输出,并按所述输入的数据包所需的令牌数量减少所述令牌桶中的令牌数量。
[0079] 若令牌桶中的令牌数量不满足输入的数据包所需的令牌数量,执行步骤S183。
[0080] 步骤S183,将输入的数据包丢弃。
[0081] 下面对如何令牌桶中的令牌数量对输入的数据包进行处理进行介绍。
[0082] 在对数据包处理前,首先需要判断用户的流量是否超过额定贷款,若超过额定带宽,超过的带宽将采取其他方式进行处理。要衡量流量是否超过额定带宽,并不是采用单纯的数字加减法来决定的。也就是说,比如带宽为100K,而用户发来的流量为110K,网络设备并不是靠110K减去100K等于10K,就认为用户超过流量10K。网络设备衡量流量是否超过额定带宽,需要使用令牌桶算法来计算。下面详细介绍令牌桶算法机制。
[0083] 网络设备衡量流量是否超过额定带宽,需要查看令牌桶,而令牌桶中会放置一定数量的令牌,一个令牌允许接口发送或接收1bit数据(有时是1Byte数据)。当接口通过1bit数据后,同时也要从桶中移除一个令牌。当桶里没有令牌的时候,任何流量都被视为超过额定带宽,而超出的流量就要被抛弃,也就是说,在令牌桶中的令牌数量不满足输入的数据包所需的令牌数量时,则将输入的数据包丢弃。只有当桶中有令牌时,数据才可以通过接口。
[0084] 请参照图7,图7是本发明实施例提供的限速装置200的方框示意图之一。所述限速装置200应用于交换机100,所述交换机100包括定时器。所述限速装置200可以包括触发模块210、计算模块220及添加模块250。
[0085] 触发模块210,用于通过定时器的定时触发和/或数据包的输入触发向令牌桶中添加令牌。
[0086] 所述交换机100还可以包括触发器,所述触发模块210通过定时器的定时触发和/或数据包的输入触发向令牌桶中添加令牌的方式包括:
[0087] 控制所述触发器在接收到定时器以一定时间间隔发送的时间信号和/或检测到数据包输入时触发向令牌桶中添加令牌。
[0088] 在本实施例中,所述触发模块210用于执行图2中的步骤S110,关于所述触发模块210的具体描述可以参照图2中步骤S110的详细描述。
[0089] 计算模块220,用于根据最近一次触发时间及当前时间得到触发差量时间。
[0090] 计算模块220,还用于根据所述触发差量时间及预设单位令牌产生时间计算得到所需令牌数量。
[0091] 在本实施例中,所述计算模块220用于执行图2中的步骤S120及步骤S140,关于所述计算模块220的具体描述可以参照图2中步骤S120及步骤S140的详细描述。
[0092] 添加模块250,用于向所述令牌桶中添加所需令牌数量的令牌。
[0093] 在本实施例中,所述添加模块250用于执行图2中的步骤S150,关于所述添加模块250的具体描述可以参照图2中步骤S150的详细描述。
[0094] 请参照图8,图8是本发明实施例提供的限速装置200的方框示意图之二。所述限速装置200还可以包括更新模块260。
[0095] 更新模块260,用于根据所需令牌数量、令牌桶中剩余令牌数量及令牌桶容量更新本次触发时间。
[0096] 所述更新模块260根据所需令牌数量、令牌桶中剩余令牌数量及令牌桶容量更新本次触发时间的方式包括:
[0097] 若所述所需令牌数量与令牌桶中剩余令牌数量的和大于所述令牌桶容量,判定所述令牌桶溢出,并将所述本次触发时间更新为当前时间;
[0098] 若所述所需令牌数量与令牌桶中剩余令牌数量的和小于所述令牌桶容量,判定所述令牌桶没有溢出,并将所述所需令牌数量及预设单位令牌产生时间的乘积与所述最近一次触发时间的和更新为所述本次触发时间。
[0099] 在本实施例中,所述更新模块260用于执行图4中的步骤S160,关于所述更新模块260的具体描述可以参照图4中步骤S160的详细描述。
[0100] 请再次参照图8,所述限速装置200还可以包括判断模块230。
[0101] 判断模块230用于将所述触发差量时间与预设单位令牌产生时间进行比较,以判断是否需要向令牌桶中添加令牌。判断模块230还用于在所述触发差量时间大于预设单位令牌产生时间时,判定需要向令牌桶中添加令牌;判断模块230还用于在所述触发差量时间小于预设单位令牌产生时间时,判定不需要向令牌桶中添加令牌。
[0102] 在本实施例中,所述判断模块230用于执行图3中的步骤S131-步骤S133,关于所述判断模块230的具体描述可以参照图3中步骤S131-步骤S133的详细描述。
[0103] 请再次参照图8,所述限速装置200还可以包括处理模块280。
[0104] 处理模块280用于将所述令牌桶中的令牌数量与输入的数据包所需的令牌数量进行比较。若所述令牌桶中的令牌数量满足输入的数据包所需的令牌数量,所述处理模块280则将输入的数据包输出,并按所述输入的数据包所需的令牌数量减少所述令牌桶中的令牌数量。若所述令牌桶中的令牌数量不满足输入的数据包所需的令牌数量,所述处理模块280则将输入的数据包丢弃。
[0105] 在本实施例中,所述处理模块280用于执行图6中的步骤S181-步骤S183,关于所述处理模块280的具体描述可以参照图6中步骤S181-步骤S183的详细描述。
[0106] 综上所述,本发明实施例提供一种限速方法及装置。所述方法应用于交换机,所述交换机包括定时器。在接收到定时器的定时触发时和/或检测到有数据包输入时,触发向令牌桶中添加令牌。根据最近一次触发时间及当前时间计算得到触发差量时间,并由所述触发差量时间及预设单位令牌产生时间计算得到所需令牌数量。进而向所述令牌桶中添加所述所需令牌数量的令牌。由此,在定时器的定时触发和/或数据包的输入触发下向令牌桶中添加令牌,使得交换机既能够保证承诺信息速率的要求,又能够避免出现周期性的网络速度波动的情况,提升了用户体验。
[0107] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。