CN103229465A - 一种发送报文的方法和设备 - Google Patents
一种发送报文的方法和设备 Download PDFInfo
- Publication number
- CN103229465A CN103229465A CN201280002899XA CN201280002899A CN103229465A CN 103229465 A CN103229465 A CN 103229465A CN 201280002899X A CN201280002899X A CN 201280002899XA CN 201280002899 A CN201280002899 A CN 201280002899A CN 103229465 A CN103229465 A CN 103229465A
- Authority
- CN
- China
- Prior art keywords
- token
- message
- moment
- fill
- add
- 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.)
- Pending
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/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
- H04L47/431—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR] using padding or de-padding
Abstract
本发明的实施例公开一种发送报文的方法和设备,涉及通信领域,能够减少报文发送过程中对令牌需求的计算次数。该方法包括:接收报文,根据所述报文的长度计算发送所述报文需要的令牌数TL;获取令牌桶中的当前可用令牌数Tadd,若所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL,则计算延时时间Tdelay并开始计时,所述延时时间为:Tdelay=(TL-Tadd)/V,其中V表示令牌的填充速率;当所述延时时间结束时,发送所述报文。本发明的实施例应用于网络报文传送。
Description
技术领域
本发明涉及通信领域,尤其涉及一种发送报文的方法和设备。
背景技术
令牌桶算法是最常见的一种用于网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)的算法。其中令牌桶算法也可用来控制发送到网络上的数据的数目,并允许突发数据的发送。
令牌桶算法根据用户实际需求按照用户设定的速度向桶中放置令牌,令牌数达到桶容量时则令牌数量不再增加;在发送报文时,如果令牌数量足够发送报文则正常发送,同时令牌数在发送过程中也在不断减少,如果令牌数少到不能发送报文则将报文丢弃。
令牌桶也是一种控制数据流量的工具,当令牌桶没有令牌的时候,报文则不被发送,只有等到桶中生成新的令牌才可以发送,这就可以限制报文的流量只能小于等于令牌生成的速度,达到限制流量的目的。但是现有技术中,令牌桶填充令牌的方法是定时填充,这种填充方法实现简单,可是操作频繁,当发送长度较长的报文且在速率较高的情况下,会出现多次填充之后才允许报文通过的情况,这样会增加系统在报文发送过程中对令牌需求的计算次数。
发明内容
本发明的实施例提供一种发送报文的方法和设备,能够减少报文发送过程中对令牌需求的计算次数。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种发送报文的方法,包括:
接收报文,根据所述报文的长度计算发送所述报文需要的令牌数TL;
获取令牌桶中的当前可用令牌数Tadd;
若所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL,则计算延时时间Tdelay并开始计时,所述延时时间为:Tdelay=(TL-Tadd)/V,其中V表示令牌的填充速率;
当所述延时时间结束时,发送所述报文。
在第一种可能的实现方式中,结合第一方面,所述获取令牌桶中的当前可用令牌数Tadd,具体包括:
从令牌信息表中获取令牌数Tc和填充时刻Tfill,其中Tc表示发送完上一报文所述令牌桶中剩余的令牌数,Tfill表示发送完上一报文的时刻;
计算接收所述报文的时刻Tn与所述填充时刻Tfill的时间间隔dT;
在第二种可能的实现方式中,结合第一种可能的实现方式,所述方法还包括:
从令牌信息表中获取令牌标志,当所述令牌标志为正时,执行所述计算延时时间的步骤。
在第三种可能的实现方式中,结合第二种可能的实现方式,具体包括:
若所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL,则将所述令牌标志修改为负,以表示不处理后续的报文;在所述延时时间结束时将所述令牌标志修改为正,以表示继续处理后续报文。
在第四种可能的实现方式中,结合第一种可能的实现方式、第二种可能的实现方式或第三种可能的实现方式,所述方法还包括:
在第五种可能的实现方式中,结合第一种可能的实现方式,所述方法还包括:
若所述当前可用令牌数Tadd大于或等于发送所述报文需要的令牌数TL,则以接收所述报文的时刻Tn更新所述令牌信息表的填充时刻Tfill,以Tadd-TL更新所述令牌信息表的令牌数Tc,并发送所述报文。
第二方面,提供一种发送报文的设备,包括:令牌处理器和延时器,其中:
所述令牌处理器,用于接收报文,根据所述报文的长度计算发送所述报文需要的令牌数TL;并获取令牌桶中的当前可用令牌数Tadd;
所述延时器,用于若所述令牌处理器获取的所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL,则计算延时时间Tdelay并开始计时,所述延时时间为:Tdelay=(TL-Tadd)/V,其中V表示令牌的填充速率;
所述令牌处理器,还用于当所述延时时间结束时,发送所述报文。
在第一种可能的实现方式中,结合第二方面,所述令牌处理器还包括:
令牌信息获取单元,用于从令牌信息表中获取令牌数Tc和填充时刻Tfill,其中Tc表示发送完上一报文所述令牌桶中剩余的令牌数,Tfill表示发送完上一报文的时刻;
计时单元,用于计算接收所述报文的时刻Tn与所述填充时刻Tfill的时间间隔dT;
令牌计算单元,用于将所述时间间隔dT乘以所述令牌的填充速率V,然后向下取整,再加上所述令牌数Tc,得到所述当前可用令牌数Tadd,即
在第二种可能的实现方式中,结合第一种可能实现的方式,所述延时器,还用于从令牌信息表中获取令牌标志,当所述令牌标志为正时,则用于计算所述延时时间Tdelay。
在第三种可能的实现方式中,结合第二种可能的实现方式中,所述令牌处理器,还用于若所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL时,则将所述令牌标志修改为负,以表示不处理后续的报文;在所述延时时间结束时将所述令牌标志修改为正,以表示继续处理后续报文。
在第四种可能的实现方式中,结合第一种可能实现的方式、第二种可能实现的方式或第三种可能的实现方式,所述令牌处理器,还用于以Tn+Tdelay更新所述令牌信息表中的填充时刻Tfill,以 更新所述令牌信息表的令牌数Tc,此时,Tfill表示发送所述报文的时刻,Tc表示发送所述报文后所述令牌桶中剩余的令牌数。
在第五种可能的实现方式中,结合第一种可能的实现方式,所述令牌处理器,还用于若所述当前可用令牌数Tadd大于或等于发送所述报文需要的令牌数TL,则以接收所述报文的时刻Tn更新所述令牌信息表的填充时刻Tfill,以Tadd-TL更新所述令牌信息表的令牌数Tc,然后发送所述报文。
第三方面,提供一种发送报文的设备,包括:至少一个处理器、存储器、通信接口和总线,该至少一个处理器、存储器和通信接口通过总线连接并完成相互间的通信;其中:
所述处理器用于通过所述通信接口接收报文,根据所述报文的长度计算发送所述报文需要的令牌数TL;所述处理器还用于获取令牌桶中的当前可用令牌数Tadd;所述处理器还用于若所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL,则计算延时时间Tdelay并开始计时,所述延时时间为:Tdelay=(TL-Tadd)/V,其中V表示令牌的填充速率;所述处理器还用于当所述延时时间结束时,通过所述通信接口发送所述报文。
在第一种可能的实现方式中,结合第三方面,所述处理器还用于从令牌信息表中获取令牌数Tc和填充时刻Tfill,其中Tc表示发送完上一报文令牌桶中剩余的令牌数,Tfill表示发送完上一报文的时刻;还用于计算接收所述报文的时刻Tn与所述填充时刻Tfill的时间间隔dT;还用于将所述时间间隔dT乘以所述令牌的填充速率V,然后向下取整,再加上所述令牌数Tc,得到所述当前可用令牌数Tadd,即
在第二种可能的实现方式中,结合第一种可能的实现方式,所述处理器还用于从所述令牌信息表中获取令牌标志,当所述令牌标志为正时,用于计算所述延时时间Tdelay。
在第三种可能的实现方式中,结合第二种可能的实现方式,所述处理器还用于若所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL,则将所述令牌标志修改为负,以表示不处理后续的报文;在所述延时时间结束时将所述令牌标志修改为正,以表示继续处理后续报文。
在第四种可能的实现方式中,结合第一种可能的实现方式、第二种可能的实现方式或第三种可能的实现方式,所述处理器还用于以Tn+Tdelay更新所述令牌信息表中的填充时刻Tfill,以更新所述令牌信息表的令牌数Tc,此时,Tfill表示发送所述报文的时刻,Tc表示发送所述报文后所述令牌桶中剩余的令牌数。
在第五种可能的实现方式中,结合第一种可能的实现方式,所述处理器还用于若所述当前可用令牌数Tadd大于或等于发送所述报文需要的令牌数TL,则以接收所述报文的时刻Tn更新所述令牌信息表的填充时刻Tfill,以Tadd-TL更新所述令牌信息表的令牌数Tc,并发送所述报文。
本发明的实施例提供的发送报文的方法和设备,通过延时处理可以使得报文在延时时间段内至多经过一次令牌填充后就可以实现放行发送,避免了报文经过多次填充之后才允许通过的情况出现,这样通过延时处理能够减少报文发送过程中对令牌需求的计算次数。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例提供的一种发送报文的方法的流程示意图;
图2为本发明的另一实施例提供的一种发送报文的方法的流程示意图;
图3为本发明的实施例提供的一种发送报文的设备的结构示意图;
图4为本发明的另一实施例提供的一种发送报文的设备的结构示意图;
图5为本发明的又一实施例提供的一种发送报文的设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在通讯领域中令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。典型情况下,令牌桶算法用来控制发送到网络上的数据的数目,并可以允许突发数据的发送。因此需要采取一些限制网络流量的方法来避免突发流量给网络带来的诸多问题。
本发明基于网络处理器或者相关的软件(例如现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)等可以编程器件),在报文处理过程中通过控制令牌桶采取延时处理的方法,减轻了系统因为多次运算带来的压力,本发明提供的发送报文的方法,参照图1所示,包括以下流程:
101、接收报文,根据报文的长度计算发送报文需要的令牌数TL。
当前报文需要消耗的令牌数对应于报文本身长度,即报文长度L对应的需要消耗的令牌数为TL,这里当报文长度对应的所需的令牌数正好为整数时,则取报文所需的令牌数为TL;当报文长度对应的所需的令牌数为小数时,为了满足报文的发送需求,则向上取整得到所需令牌数,以保证后续令牌填充过程中能够提供满足报文发送最低要求的令牌数。
102、获取令牌桶中当前可用令牌数Tadd。
具体的,可以通过查询令牌信息表,获取令牌桶中发送完上一报文令牌桶中剩余的令牌数Tc。这里令牌信息表示例如表1所示:
表1
令牌信息表包含令牌标志Tpos、令牌数Tc和填充时刻Tfill;其中Tc表示发送完上一报文令牌桶中剩余的令牌数,Tfill表示发送完上一报文的时刻。
如表1所示,表示令牌标志Tpos为正,发送完上一报文令牌桶中剩余的令牌数Tc为100个,发送完上一报文的时刻Tfill为50秒,当然这里Tfill的单位只是以秒为例进行说明,在该实施例中还可以采用微秒、毫秒或FPGA系统中的周期个数为单位。
其中,步骤102具体包括:
102a、从令牌信息表中获取令牌数Tc和填充时刻Tfill;
其中Tc表示发送完上一报文令牌桶中剩余的令牌数,Tfill表示发送完上一报文的时刻。
102b、计算接收报文的时刻Tn与填充时刻Tfill的时间间隔dT;
具体为,当前令牌标志Tpos为正(“1”)时,当前填充时刻Tn可以理解为与当前报文到来时刻Tarr一致,其中Tarr为当前报文到来时刻,Tn为当前填充时刻;上次补充令牌结束时刻可以理解为填充完上一报文所需令牌数的时刻,假如以Tfill表示;假如以dT表示所述时间间隔,则所述时间间隔为:
dT=Tn-Tfill。
102c、将时间间隔dT乘以令牌的填充速率V,然后向下取整,再加上令牌数Tc,得到当前可用令牌数Tadd,即
其中,在该时间间隔里填充的令牌数为:dT与填充速率V相乘得到的,令牌桶中的原有令牌数为Tc(即令牌信息表中记录的上一报文传输后更新的令牌数Tc),则当前可用令牌数Tadd为:
其中dT*V的乘积可以不是整数。假如不是整数的情况下,可以采用向下取整(比如,3.8则向下取整数为3)计算得到Tadd。
103、若当前可用令牌数Tadd小于发送报文需要的令牌数TL,则计算延时时间Tdelay并开始计时。
其中,延时时间为:Tdelay=(TL-Tadd)/V,这里V表示令牌的填充速率。
这里的延时时间实际情况中可以是携带小数的,如当计算延时时间的单位为以秒或微秒进行计算时,延时时间为小数也是可以的,但是在在以FPGA为计算环境时,由于在FPGA的计算环境中,时间值一般是以脉冲的形式出现,即以时间周期的个数进行计算,当出现不完整的时间周期时,FPGA计算环境中实现起来有时候会比较困难,因此在FPGA计算环境中延时时间一般采用向上取整的策略,同时采用向上取整策略保证了延时时间内能够为报文的发送提供最低要求的令牌数,具体的,在FPGA计算环境中延时时间的计算公式可以调整为: 这里V表示令牌的填充速率,表示向上取整。
104、当延时时间结束时,发送报文。
本发明的实施例提供的发送报文的方法,通过延时处理可以使得报文在延时时间段内至多经过一次令牌填充后就可以实现放行发送,避免了报文经过多次填充之后才允许通过的情况出现,这样通过延时处理能够减少报文发送过程中对令牌需求的计算次数。
具体的,参照图2所示,本发明的实施例提供的发送报文的方法包括如下流程:
201、接收报文,根据报文的长度计算发送报文需要的令牌数TL。
当前报文需要消耗的令牌数对应于报文本身长度,即报文长度L对应的需要消耗的令牌数为TL。这里当报文所需的令牌数正好为整数时,则取报文所需的令牌数为TL;当报文所需的令牌数为小数时,为了满足报文的发送需求,则向上取整得到所需令牌数因此报文需要的令牌数可以通过向上取整得到。
202、从令牌信息表获取令牌标志,当令牌标志为正时,则执行步骤203。
203、从令牌信息表中获取令牌数Tc和填充时刻Tfill,其中Tc表示发送完上一报文令牌桶中剩余的令牌数,Tfill表示发送完上一报文的时刻;
具体的,可以通过查询令牌信息表,获取令牌桶中当前可用令牌数;这里令牌信息表示例如表2所示:
表2
令牌信息表包含令牌标志Tpos、令牌数Tc和填充时刻Tfill。
如表2所示,表示令牌标志Tpos为正,发送完上一报文令牌桶中剩余的令牌数Tc为100个,发送完上一报文的时刻Tfill为50秒,当然这里Tfill的单位只是以秒为例进行说明,在该实施例中还可以采用微秒、毫秒或FPGA系统中的周期个数为单位。
204、计算接收报文的时刻Tn与填充时刻Tfill的时间间隔dT;
具体为,当前令牌标志Tpos为正(“1”)时,当前填充时刻Tn可以理解为与当前报文到来时刻Tarr一致,其中Tarr为当前报文到来时刻,Tn为当前填充时刻;上次补充令牌结束时刻可以理解为填充完上一报文所需令牌数的时刻,假如以Tfill表示;假如以dT表示所述时间间隔,则所述时间间隔为:
dT=Tn-Tfill。
其中,在该时间间隔里填充的令牌数为dT与填充速率V相乘得到的,令牌桶中的原有令牌数为Tc(即令牌信息表中记录的上一报文传输后更新的令牌数Tc),则当前可用令牌数Tadd为:
其中dT*V的乘积可以不是整数,因此可以采用向下取整(比如,3.8则向下取整数为3)计算得到Tadd。
206、若当前可用令牌数Tadd小于发送报文需要的令牌数TL,则计算延时时间Tdelay并开始计时。
其中,延时时间为:Tdelay=(TL-Tadd)/V,这里V表示令牌的填充速率。
这里延时时间也可以不取整,实际情况中延时时间也可以是携带小数的,这里只是为了本发明实施例在以FPGA这类计算环境中的需要为例,当计算延时时间的单位为秒,微秒时,延时时间为小数也是可以进行计算的。但是当在以FPGA这类计算环境中,延时时间会以脉冲的形式,如果取小数则实现起来会可能会很比较困难,而且当延时时间上取整时,可以为令牌在延时时间内的填充提供充足的时间,所以本发明提供的实施例以向上取整的方式为例,但不限于只存在向上取整的这一实现方式。
207、将令牌标志修改为负,以表示不处理后续的报文。
如果当前可用令牌数Tadd<TL,将Tpos设为“0”(前面已提到,0代表负)。
208、当延时时间结束时,发送报文。
209、将令牌标志修改为正,以表示继续处理后续报文。
延时时间指将剩余令牌数补充至满足本次令牌消耗的最小时间,当延时时间结束令牌数补充至满足本次令牌消耗的最小时间时,将令牌信息表信息中的令牌标志设为“1”,其中1代表正。
更新令牌表信息:Tfill=Tfill+dT+Tdelay;即Tfill=Tn+Tdelay;
Tpos=1。
更新后的令牌表中,Tfill表示发送报文的时刻;Tc表示发送报文后令牌桶中剩余的令牌数;Tpos表示令牌信息表更新后的令牌标志为正,以表示可以继续处理后续报文。
这里,步骤210的顺序不做限制,本发明中在步骤206结束后便可获取用于更新填充时刻Tfill的Tn+Tdelay,以及更新令牌信息表的令牌数Tc的Tadd+V*Tdelay-TL,因此步骤210可以在206之后至报文发送出去之间的任一步骤进行。
可选的,该方法还包括:
211、若当前可用令牌数Tadd大于或等于发送报文需要的令牌数TL,则发送报文。
212、以接收报文的时刻Tn更新令牌信息表的填充时刻Tfill,以Tadd-TL更新令牌信息表的令牌数Tc。
具体为:
如果当前可用令牌数Tadd大于或等于报文消耗的令牌数TL,则计算出剩余令牌数Tc,并更新令牌信息表中的填充时间Tfill,放行该报文。
其中剩余令牌数Tc为:
Tc=Tadd-min((Tadd-L):H),即Tadd-L与令牌桶深度H取最小值。这里H是令牌桶深度,表示当前可用令牌数Tadd大于或等于报文消耗的令牌数TL。其中,令牌桶的深度H可以根据容忍的突发数据量自行设置,长时间来看,当令牌桶深度H设置越大时通过的报文速率越接近设置速率,从而令牌桶可容忍的突发数据量也就越大,即令牌桶中的令牌数可以完全满足报文的发送需求,进而通过令牌数的填充速率(令报文的流量只能是小于或等于令牌的填充速率)达到了限制报文流量的目的。
其中等式左边的Tfill表示更新后的Tfill,即发送所述报文的时刻;等式右边的Tfill表示更新前的Tfill,即发送完上一报文的时刻。
Tpos=“1”(1表示令牌桶标志为正,0表示负,以下同)。
这里具体的,例如:
在FPGA环境中,系统时钟clk为10MHz,V=1Mbps,Tfill=100,Tarr=205,则:
Tn=205
dT=Tn-Tfill=105
dT*V=105*(1/10M)*1M=10.5
这种情况下补充的令牌数会出现小数,然而补充的令牌数是以整数计的,即在出现小数的情况下理论上是令牌桶中只能补充到该带小数值的整数位令牌数,但是这里如果只将令牌数向下取整,则会在计算形成了令牌数的损失,而时间上不进行相应的调整则连续进行几次报文发送后会发生系统计时与令牌数计算的紊乱,因此这里对Tn也做相应的处理即向下取整Tn=200,后面的步骤中全部按照Tn=200计算,这样计算得到的令牌数也是对应向下取整的。
由步骤204得知:所述时间间隔dT为:
dT=Tn-Tfill,
故Tn的计算方法更新为:
时间里令牌桶填充的令牌数除以填充速率V计算得到的;
这里,填充时间是按照Tn=200更新的,但是由于计算过程是在同一个时钟系统下进行的,因此原计算值忽略的时钟周期及由于忽略的时钟周期多出来的小数点后的令牌数会整体在计算下一次报文到来时的计算过程中得到补偿,因此长期来看时间并没有浪费,令牌桶的令牌也没有白白消耗。
本发明的实施例提供的发送报文的方法,通过延时处理可以使得报文在延时时间段内至多经过一次令牌填充后就可以实现放行发送,避免了报文经过多次填充之后才允许通过的情况出现,这样通过延时处理能够减少报文发送过程中对令牌需求的计算次数。
本发明实施例提供一种发送报文的设备3,参照图3所示,包括:令牌处理器31和延时器32,其中:
令牌处理器31,用于接收报文,根据报文的长度计算发送报文需要的令牌数TL;并获取令牌桶中的当前可用令牌数Tadd;
延时器32,用于若当前可用令牌数Tadd小于发送报文需要的令牌数TL,则计算延时时间Tdelay并开始计时,延时时间为:Tdelay=(TL-Tadd)/V,其中V表示令牌的填充速率;
令牌处理器31,还用于当延时时间结束时,发送报文。
本发明的实施例提供的发送报文的设备,通过延时处理可以使得报文在延时时间段内至多经过一次令牌填充后就可以实现放行发送,避免了报文经过多次填充之后才允许通过的情况出现,这样通过延时处理能够减少报文发送过程中对令牌需求的计算次数。
进一步的,参照图4所示,令牌处理器31还包括:令牌信息获取单元311、计时单元312和令牌计算单元313,其中:
令牌信息获取单元311,用于从令牌信息表中获取令牌数Tc和填充时刻Tfill,其中Tc表示发送完上一报文令牌桶中剩余的令牌数,Tfill表示发送完上一报文的时刻;
计时单元312,用于计算接收报文的时刻Tn与填充时刻Tfill的时间间隔dT;
可选的,参照图4所示,令牌处理器31,还用于若当前可用令牌数Tadd大于或等于发送报文需要的令牌数TL,则以接收报文的时刻Tn更新令牌信息表的填充时刻Tfill,以Tadd-TL更新令牌信息表的令牌数Tc,并发送报文。
这里因为当前可用令牌数大于或等于报文发送需要消耗的令牌数,以此本发明的实施例提供的设备支持将报文以正常处理方式发送。
可选的,延时器32,还用于从令牌信息表中获取令牌标志,当令牌标志为正时,则用于计算所述延时时间Tdelay。
进一步的,令牌处理器31,还用于若当前可用令牌数Tadd小于发送报文需要的令牌数TL,则将令牌标志修改为负,以表示不处理后续的报文;在延时时间结束时将令牌标志修改为正,以表示继续处理后续报文。
本发明的实施例提供的发送报文的设备,通过延时处理可以使得报文在延时时间段内至多经过一次令牌填充后就可以实现放行发送,避免了报文经过多次填充之后才允许通过的情况出现,这样通过延时处理能够减少报文发送过程中对令牌需求的计算次数。
本发明的实施例提供一种发送报文的设备5,参照图5所示,该发送报文的设备5包括:至少一个处理器51、存储器52、通信接口53和总线54,该至少一个处理器51、存储器52和通信接口53通过总线54连接并完成相互间的通信。
该总线54可以是工业标准体系结构(Industry StandardArchitecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称为EISA)总线等。该总线54可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中:
存储器52用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器52可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器51可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific IntegratedCircuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
通信接口53,主要用于实现本实施例中的装置之间的通信。
其中,处理器52用于通过通信接口53接收报文,根据报文的长度计算发送报文需要的令牌数TL;处理器52还用于获取令牌桶中当前可用令牌数Tadd;处理器52还用于若当前可用令牌数Tadd小于发送报文需要的令牌数TL,则计算延时时间Tdelay并开始计时,延时时间为:Tdelay=(TL-Tadd)/V;处理器52还用于当延时时间结束时,通过通信接口54发送报文,其中V表示令牌的填充速率。
本发明的实施例提供的发送报文的设备,通过延时处理可以使得报文在延时时间段内至多经过一次令牌填充后就可以实现放行发送,避免了报文经过多次填充之后才允许通过的情况出现,这样通过延时处理能够减少报文发送过程中对令牌需求的计算次数。
进一步的,处理器52,还用于从令牌信息表中获取令牌数Tc和填充时刻Tfill,其中Tc表示发送完上一报文令牌桶中剩余的令牌数,Tfill表示发送完上一报文的时刻;还用于计算接收报文的时刻Tn与填充时刻Tfill的时间间隔dT;还用于将时间间隔dT乘以令牌的填充速率V,然后向下取整,再加上令牌数Tc,得到当前可用令牌数Tadd,即
可选的,处理器52,还用于若当前可用令牌数Tadd大于或等于发送报文需要的令牌数TL,则以接收报文的时刻Tn更新令牌信息表的填充时刻Tfill,以Tadd-TL更新令牌信息表的令牌数Tc,并发送报文。
这里因为当前可用令牌数大于或等于报文发送需要消耗的令牌数,以此本发明的实施例提供的设备支持将报文以正常处理方式发送。
可选的,处理器52还用于从令牌信息表中获取令牌标志,当令牌标志为正时,用于计算所述延时时间Tdelay。
处理器52,还用于若当前可用令牌数Tadd小于发送报文需要的令牌数TL时,则将令牌标志修改为负,以表示不处理后续的报文;在延时时间结束时将令牌标志修改为正,以表示继续处理后续报文。
本发明的实施例提供的发送报文的设备,通过延时处理可以使得报文在延时时间段内至多经过一次令牌填充后就可以实现放行发送,避免了报文经过多次填充之后才允许通过的情况出现,这样通过延时处理能够减少报文发送过程中对令牌需求的计算次数。
上述各实施例提供的发送报文的设备,可以用于对应执行如图1和图2所示实施例的方法,对于图1和图2所示实施例已经描述的细节,此处不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种发送报文的方法,其特征在于,包括:
接收报文,根据所述报文的长度计算发送所述报文需要的令牌数TL;
获取令牌桶中的当前可用令牌数Tadd;
若所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL,则计算延时时间Tdelay并开始计时,所述延时时间为:Tdelay=(TL-Tadd)/V,其中V表示令牌的填充速率;
当所述延时时间结束时,发送所述报文。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
从所述令牌信息表中获取令牌标志,当所述令牌标志为正时,执行所述计算延时时间的步骤。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL,则将所述令牌标志修改为负,以表示不处理后续的报文;在所述延时时间结束时将所述令牌标志修改为正,以表示继续处理后续报文。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述当前可用令牌数Tadd大于或等于发送所述报文需要的令牌数TL,则以接收所述报文的时刻Tn更新所述令牌信息表的填充时刻Tfill,以Tadd-TL更新所述令牌信息表的令牌数Tc,并发送所述报文。
7.一种发送报文的设备,其特征在于,包括:令牌处理器和延时器,其中:
所述令牌处理器,用于接收报文,根据所述报文的长度计算发送所述报文需要的令牌数TL;并获取令牌桶中的当前可用令牌数Tadd;
所述延时器,用于若所述令牌处理器获取的所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL,则计算延时时间Tdelay并开始计时,所述延时时间为:Tdelay=(TL-Tadd)/V,其中V表示令牌的填充速率;
所述令牌处理器,还用于当所述延时时间结束时,发送所述报文。
9.根据权利要求8所述的设备,其特征在于,所述延时器,还用于从所述令牌信息表中获取令牌标志,当所述令牌标志为正时,则用于计算所述延时时间Tdelay。
10.根据权利要求9所述的设备,其特征在于,所述令牌处理器,还用于若所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL时,则将所述令牌标志修改为负,以表示不处理后续的报文;在所述延时时间结束时将所述令牌标志修改为正,以表示继续处理后续报文。
12.根据权利要求8所述的设备,其特征在于,所述令牌处理器,还用于若所述当前可用令牌数Tadd大于或等于发送所述报文需要的令牌数TL,则以接收所述报文的时刻Tn更新所述令牌信息表的填充时刻Tfill,以Tadd-TL更新所述令牌信息表的令牌数Tc,然后发送所述报文。
13.一种发送报文的设备,其特征在于,包括:至少一个处理器、存储器、通信接口和总线,该至少一个处理器、存储器和通信接口通过所述总线连接并完成相互间的通信,其中:
所述处理器用于通过所述通信接口接收报文,根据所述报文的长度计算发送所述报文需要的令牌数TL;用于获取令牌桶中的当前可用令牌数Tadd,若所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL,则计算延时时间Tdelay并开始计时,所述延时时间为:Tdelay=(TL-Tadd)/V,其中V表示令牌的填充速率;
所述处理器还用于当所述延时时间结束时,通过所述通信接口发送所述报文。
15.根据权利要求14所述的设备,其特征在于,所述处理器还用于从所述令牌信息表中获取令牌标志,当所述令牌标志为正时,用于计算所述延时时间Tdelay。
16.根据权利要求15所述的设备,其特征在于,所述处理器还用于若所述当前可用令牌数Tadd小于发送所述报文需要的令牌数TL,则将所述令牌标志修改为负,以表示不处理后续的报文;在所述延时时间结束时将所述令牌标志修改为正,以表示继续处理后续报文。
18.根据权利要求14所述的设备,其特征在于,所述处理器还用于若所述当前可用令牌数Tadd大于或等于发送所述报文需要的令牌数TL,则以接收所述报文的时刻Tn更新所述令牌信息表的填充时刻Tfill,以Tadd-TL更新所述令牌信息表的令牌数Tc,并发送所述报文。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/084474 WO2014071636A1 (zh) | 2012-11-12 | 2012-11-12 | 一种发送报文的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103229465A true CN103229465A (zh) | 2013-07-31 |
Family
ID=48838350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280002899XA Pending CN103229465A (zh) | 2012-11-12 | 2012-11-12 | 一种发送报文的方法和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103229465A (zh) |
WO (1) | WO2014071636A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580004A (zh) * | 2014-12-24 | 2015-04-29 | 盛科网络(苏州)有限公司 | 采用非整数令牌实现流量整形的装置及方法 |
CN108337186A (zh) * | 2017-01-20 | 2018-07-27 | 谷歌有限责任公司 | 用于可扩缩业务整形的设备和方法 |
WO2019196319A1 (zh) * | 2018-04-13 | 2019-10-17 | 烽火通信科技股份有限公司 | 一种基于令牌的时间戳生成系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601963A (zh) * | 2003-09-26 | 2005-03-30 | 华为技术有限公司 | 基于令牌桶算法的接入速率限制方法 |
CN1960334A (zh) * | 2006-09-12 | 2007-05-09 | 华为技术有限公司 | 队列调度方法及装置 |
CN102413042A (zh) * | 2011-11-14 | 2012-04-11 | 盛科网络(苏州)有限公司 | 基于时戳更新令牌桶的流量监管的方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7457313B2 (en) * | 2000-09-25 | 2008-11-25 | General Instrument Corporation | Hierarchical prioritized round robin (HPRR) scheduling |
CN100454897C (zh) * | 2005-08-25 | 2009-01-21 | 华为技术有限公司 | 一种网络设备有效防攻击的方法 |
CN101026561A (zh) * | 2007-02-09 | 2007-08-29 | 中兴通讯股份有限公司 | 一种令牌桶填充速率配置方法及其装置 |
-
2012
- 2012-11-12 WO PCT/CN2012/084474 patent/WO2014071636A1/zh active Application Filing
- 2012-11-12 CN CN201280002899XA patent/CN103229465A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601963A (zh) * | 2003-09-26 | 2005-03-30 | 华为技术有限公司 | 基于令牌桶算法的接入速率限制方法 |
CN1960334A (zh) * | 2006-09-12 | 2007-05-09 | 华为技术有限公司 | 队列调度方法及装置 |
CN102413042A (zh) * | 2011-11-14 | 2012-04-11 | 盛科网络(苏州)有限公司 | 基于时戳更新令牌桶的流量监管的方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580004A (zh) * | 2014-12-24 | 2015-04-29 | 盛科网络(苏州)有限公司 | 采用非整数令牌实现流量整形的装置及方法 |
CN104580004B (zh) * | 2014-12-24 | 2017-12-01 | 盛科网络(苏州)有限公司 | 采用非整数令牌实现流量整形的装置及方法 |
CN108337186A (zh) * | 2017-01-20 | 2018-07-27 | 谷歌有限责任公司 | 用于可扩缩业务整形的设备和方法 |
WO2019196319A1 (zh) * | 2018-04-13 | 2019-10-17 | 烽火通信科技股份有限公司 | 一种基于令牌的时间戳生成系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2014071636A1 (zh) | 2014-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100574278C (zh) | 流量限制技术中刷新令牌桶的方法及装置 | |
CN104734989A (zh) | 基于令牌桶的数据传输流量调度方法及其系统 | |
CN104077671A (zh) | 一种同步库存信息的方法和系统 | |
CN103229465A (zh) | 一种发送报文的方法和设备 | |
CN102508717B (zh) | 一种应用于多核处理器的内存调度方法及装置 | |
CN104102472A (zh) | 并行处理执行的设备和方法 | |
CN102761832A (zh) | 一种消息分发方法以及消息分发装置 | |
CN103324599A (zh) | 处理器间通信方法与系统级芯片 | |
CN104461972A (zh) | 一种数据信号采样的方法和设备 | |
CN103838183B (zh) | 一种数控系统及其输出控制方法 | |
CN109032530A (zh) | 一种数据流处理方法及设备 | |
CN104317754B (zh) | 面向异构计算系统的跨步数据传输优化方法 | |
CN110046114B (zh) | 基于pcie协议的dma控制器及dma数据传输方法 | |
CN115102908A (zh) | 基于带宽控制的网络报文生成的方法以及相关装置 | |
CN105335130A (zh) | 一种处理器及其处理任务的方法 | |
CN109800074A (zh) | 任务数据并发执行方法、装置以及电子设备 | |
CN103026671B (zh) | 一种流量整形的方法及设备 | |
CN103927125B (zh) | 分时缓冲器存取系统及存储器控制器 | |
CN112715040B (zh) | 一种降低功耗的方法、终端设备及存储介质 | |
CN102148743A (zh) | 一种数据流量的控制方法、装置及移动终端 | |
WO2023216500A1 (zh) | 智算中心的算力资源部署方法、装置、设备及存储介质 | |
CN109818856A (zh) | 一种多路径数据传输方法及装置 | |
CN114138453B (zh) | 一种适合边缘计算环境的资源优化分配方法与系统 | |
CN111626399A (zh) | 卷积神经网络计算装置、数据计算方法 | |
CN1972168B (zh) | 可编程变长比特流处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130731 |