CN102739531B - 流量整形方法和流量整形设备 - Google Patents

流量整形方法和流量整形设备 Download PDF

Info

Publication number
CN102739531B
CN102739531B CN201210203476.6A CN201210203476A CN102739531B CN 102739531 B CN102739531 B CN 102739531B CN 201210203476 A CN201210203476 A CN 201210203476A CN 102739531 B CN102739531 B CN 102739531B
Authority
CN
China
Prior art keywords
fill
token
buffer unit
message
forwarded
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
CN201210203476.6A
Other languages
English (en)
Other versions
CN102739531A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210203476.6A priority Critical patent/CN102739531B/zh
Publication of CN102739531A publication Critical patent/CN102739531A/zh
Application granted granted Critical
Publication of CN102739531B publication Critical patent/CN102739531B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种流量整形方法和流量整形设备。涉及通信技术领域。解决了当为了减小设置的Tfill、和Tokenfill的误差而增大Tfill后,缓存单元发送报文的突发变大的问题。该设备具体可以包括:报文接收模块,用于接收发送端发送的报文,并将报文存储在缓存单元中;报文转发模块,用于将缓存单元中存储的报文转发至接收端;令牌管理模块,用于周期性的为每个缓存单元补充令牌,并且在报文转发模块转发报文时,根据待转发报文的字节数,将待转发报文所在缓存单元的令牌减少指定数量。可应用于流量整形中。

Description

流量整形方法和流量整形设备
技术领域
本发明涉及通信技术领域,尤其涉及流量整形方法和流量整形设备。
背景技术
在通信芯片中,常常需要对待转发报文进行流量整形,流量整形(TrafficShaping)的作用是限制待转发报文从通信芯片发送的流量与速度,使待转发报文以比较均匀的速度向外发送。
具体的,通信芯片中配置至少一个用于进行流量整形的缓存单元,每个缓存单元均被分配一个令牌桶,令牌桶存放用于指示通信芯片转发报文的令牌,缓存单元周期性为令牌桶补充令牌,通信芯片将待转发报文放入相应缓存单元中,当该缓存单元的令牌桶中的令牌数大于等于待转发数据的字节数时,则发送待转发报文,同时,令牌桶中的令牌被扣除,被扣除的令牌数量为待转发报文的字节数;当令牌桶中令牌的数量小于待转发报文的字节数时,则等待令牌桶中的令牌被补充到数量大于等于待转发报文的字节数后再发送,或丢弃待转发报文。
公式Tokenfill*8/Tfill可以用于计算缓存单元的带宽,其中,Tfill为补充周期,Tokenfill为每个Tfill向相应的令牌桶补充的令牌数,在流量整形前,通信芯片根据该公式为每个缓存单元设置Tfill和Tokenfill,使得设置后的根据公式Tokenfill*8/Tfill计算出的缓存单元的实际带宽等于该缓存单元预设的配置带宽Rateave
但是,由于在实际取值过程中,Tfill的取值必须为系统时钟频率与缓存单元的数量的比值的正整数倍,且Tokenfill的取值必须为正整数,则有时无法设置出能够满足公式Tokenfill*8/Tfill=Rateave的Tfill和Tokenfill,为了使Tokenfill*8/Tfill的值尽可能接近Rateave,现有技术中,人们将Tfill的数值增大,这样,根据公式Tokenfill*8/Tfill=Rateave可以看出,在Rateave不变、Tfill增大后,由于,Tokenfill与Tfill呈正比关系,因此,Tokenfill增大,Tokenfill*8/Tfill的值可能更接近Rateave,即增加了设置的Tfill、和Tokenfill的准确性。
下面对Tfill增大,使得Tokenfill*8/Tfill的值更接近Rateave进行举例说明。
例如,当Rateave=a,Tfill=b,Tokenfill=c时,根据公式Tokenfill*8/Tfill计算出的值小于a,且最接近a,与的a误差为2%;当Rateave=a,Tfill=b,Tokenfill=c+1时,根据公式Tokenfill*8/Tfill计算出的值大于a,且最接近a,与的a误差为2%;当Tfill增大5倍即Tfill=5b时,由于,Rateave不变,Tokenfill与Tfill呈正比关系,因此,Tokenfill也变为原来的5倍,当Tokenfill=5c时,根据公式Tokenfill*8/Tfill计算出的值仍小于a,且与的a误差仍为2%;当Tokenfill=5(c+1)=5c+5时,根据公式Tokenfill*8/Tfill计算出的值仍大于a,与的a误差仍为2%,但是,由于此时5c+5与5c不为相邻的整数,因此Tokenfill还可以取小于5c+5且大于5c范围内的其他整数,使得根据公式Tokenfill*8/Tfill计算出的值更接近a。
在实现上述流量整形的过程中,发明人发现现有技术中至少存在如下问题:当为了减小设置的Tfill、和Tokenfill的误差而增大Tfill后,Tokenfill也随之增大,即每个Tfill补充令牌的数量增加,导致缓存单元可转发的最多字节数增加,缓存单元转发报文的突发变大。
发明内容
本发明的实施例提供一种流量整形方法和流量整形设备,解决了当为了减小设置的Tfill、和Tokenfill的误差而增大Tfill后,缓存单元发送报文的突发变大的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,提供一种流量整形设备,包括:
报文接收模块,用于接收发送端发送的报文,并将所述报文存储在缓存单元中;
报文转发模块,用于将所述缓存单元中存储的所述报文转发至接收端;
令牌管理模块,用于周期性的为每个缓存单元补充令牌,并且在所述报文转发模块转发报文时,根据待转发报文的字节数,将待转发报文所在缓存单元的令牌减少指定数量,所述指定数量大于待转发报文的字节数,所述令牌用于指示所述报文转发模块转发所述缓存单元中存储的相应字节数的报文。
另一方面,提供一种流量整形方法,包括:
流量整形设备接收发送端发送的报文,并存储所述报文;
将所述报文转发至接收端;
周期性的为每个缓存单元补充令牌,并且在转发待转发报文时,根据待转发报文的字节数,将待转发报文所在缓存单元的令牌减少指定数量,所述指定数量大于待转发报文的字节数,所述令牌用于指示所述流量整形设备转发所述缓存单元中存储的相应字节数的报文。
采用上述方案后,当前情景为报文转发模块转发待转发数据时,令牌管理模块扣除待转发报文所在缓存单元的指定数量的令牌,指定数量大于待转发报文的字节数,也就是说,转发一个字节的报文扣除一个令牌的参照情境中的1个令牌,相当于,当前情境中的n个令牌,其中,n为指定数量与待转发报文的字节数的比值且大于1,假设当前情景与参照情景中,每个Tfill补充的令牌数均为Tokenfill,则相对于参照情境来说,当前情景中每个Tfill补充的令牌数已经变为Tokenfill/n,当前情景中实际带宽的计算公式相对于参照情景中的公式Toknfill*8/Tfill变为由于,公式和Toknfill*8/Tfill中的Tokenfill的取值粒度相同,n大于1,则Tokenfill/n比Tokenfill的取值粒度更加小,进而使得根据公式计算出的值更加接近或等于Rateave(其中,参照情景中将公式中的n替换为1),即减小设置Tfill、和Tokenfill的误差,由于,Tfill未增加,因此,还避免了为减小设置Tfill、和Tokenfill的误差,而使缓存单元转发报文的突发变大。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种流量整形设备结构示意图;
图2为本发明实施例提供的另一种流量整形设备结构示意图;
图3为本发明实施例提供的一种流量整形方法流程图;
图4为本发明实施例提供的另一种流量整形方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供一种流量整形设备,如图1所示,可以包括:报文接收模块1、报文转发模块2、令牌管理模块3;
报文接收模块1,用于接收发送端发送的报文,并将报文存储在缓存单元中;
报文转发模块2,用于将缓存单元中存储的报文转发至接收端;
令牌管理模块3,用于周期性的为每个缓存单元补充令牌,并且在报文转发模块转发报文时,根据待转发报文的字节数,将待转发报文所在缓存单元的令牌减少指定数量,指定数量大于待转发报文的字节数,令牌用于指示报文转发模块转发缓存单元中存储的相应字节数的报文。
采用上述方案后,当前情景为报文转发模块转发待转发数据时,令牌管理模块扣除待转发报文所在缓存单元的指定数量的令牌,指定数量大于待转发报文的字节数,也就是说,转发一个字节的报文扣除一个令牌的参照情境中的1个令牌,相当于,当前情境中的n个令牌,其中,n为指定数量与待转发报文的字节数的比值且大于1,假设当前情景与参照情景中,每个Tfill补充的令牌数均为Tokenfill,则相对于参照情境来说,当前情景中每个Tfill补充的令牌数已经变为Tokenfill/n,当前情景中实际带宽的计算公式相对于参照情景中的公式Toknfill*8/Tfill变为由于,公式和Toknfill*8/Tfill中的Tokenfill的取值粒度不变,n大于1,则Tokenfill/n比Tokenfill的取值粒度更加小,进而使得根据公式计算出的值更加接近或等于Rateave(其中,参照情景中将公式中的n替换为1),即减小设置Tfill、和Tokenfill的误差,由于,Tfill未增加,因此,还避免了为减小设置Tfill、和Tokenfill的误差,而使缓存单元转发报文的突发变大。
实施例二
为了更清晰的描述上述实施例,本实施例提供另一种流量整形设备,如图2所示,可以包括:报文接收模块1、报文转发模块2、令牌管理模块3;
报文接收模块1,用于接收发送端发送的报文,并将报文存储在缓存单元中;
报文转发模块2,用于将缓存单元中存储的报文转发至接收端;
令牌管理模块3,用于周期性的为每个缓存单元补充令牌,并且在报文转发模块2转发报文时,根据待转发报文的字节数,将待转发报文所在缓存单元的令牌减少指定数量,指定数量大于待转发报文的字节数,令牌用于指示报文转发模块转发缓存单元中存储的相应字节数的报文。
由于,只有当待转发报文所在的缓存单元中的令牌数量大于等于指定数量时,报文转发模块2才转发待转发报文,因此,报文转发模块2在转发待转发报文前,判断待转发报文所在缓存单元的令牌数,是否大于等于指定数量。
进一步可选的,报文转发模块2用于将缓存单元中存储的报文转发至接收端为:报文转发模块2用于在判断出缓存单元中的令牌数量大于等于指定数量后,将缓存单元中存储的报文转发至接收端。
作为本实施例的一种实施方式,流量整形设备可以包括至少一个缓存单元,报文接收模块1接收待转发报文后,将待转发报文存放在相应的缓存单元中,每个缓存单元可以分别包含一个用于存储令牌的令牌桶。令牌管理模块3周期性的为每个缓存单元补充令牌,即可以为周期性的向每个缓存单元的令牌桶中补充令牌。
本实施例对令牌的存放位置不作限定,可以根据实际需要进行设定,在此不再赘述。
进一步的,令牌管理模块3可以包括:配置单元31;
配置单元31用于根据每个缓存单元的配置带宽Rateave为每个缓存单元设置补充周期Tfill、和每个Tfill向对应缓存单元补充令牌的数量Tokenfill
进一步可选的,配置单元31具体用于根据公式设置Tfill、和Tokenfill,其中,n为指定数量与待转发报文的字节数的比值;Tokenfill为大于0的整数。
下面对公式进行说明。
当前情景为报文转发模块转发待转发数据时,令牌管理模块3扣除待转发报文所在缓存单元的指定数量的令牌,指定数量大于待转发报文的字节数,则转发一个字节的报文扣除一个令牌的参照情境中的1个令牌,相当于,当前情境中的n个令牌,其中,n为指定数量与待转发报文的字节数的比值且大于1,假设当前情景与参照情景中,每个Tfill补充的令牌数均为Tokenfill,则相对于参照情境来说,当前情景中每个Tfill补充的令牌数已经变为Tokenfill/n,当前情景中实际带宽的计算公式相对于参照情景中的公式Tokenfill*8/Tfill变为(参照情景与当前情景均可以根据公式计算实际带宽,只是在参照情景中将公式中的n替换为1)。
由于,公式和Tokenfill*8/Tfill中的Tokenfill的取值粒度不变,n大于1,则Tokenfill/n比Tokenfill的取值粒度更加小,进而使得根据公式计算出的值更加接近或等于Rateave
下面分别对在当前情景中、或在参照情景中,根据公式设置Tfill和Tokenfill进行举例说明。
例如,在参照情景中,若Rateave=100时,假设Tfill=3,Tokenfill=37时,根据公式Tokenfill*8/Tfill计算出的实际带宽98.7与Rateave的误差最小;在发送一个字节的报文扣除296/100个令牌的当前情景中,公式中的且Rateave和Tfill与参照情景中的取值相同时,则Tokenfill=111时,公式 8 * Token fill / n T fill = Rate ave 成立。
根据上述例子可以说明,相对于参照情景来说,采用当前情景中的方法,即转发待转发报文时扣除的令牌的数量大于待转发报文的字节数,使得根据公式计算出的值更加接近或等于Rateave(其中,参照情景中将公式中的n替换为1),即可以减小设置Tfill、和Tokenfill的误差。
进一步可选的,当配置单元31设置出的任意Tfill、和Tokenfill均不能满足公式则配置单元31还可以具体根据公式设置Tfill、和Tokenfill,使根据所公式计算出的实际带宽与相应的Rateave的误差小于误差预设值。
作为本实施例的一种优选实施方式,配置单元31设置Tfill、和Tokenfill完成后,使根据所公式计算出的实际带宽与相应的Rateave的误差为最小。
本实施例对根据所公式计算出的实际带宽与相应的Rateave的误差不作限定,可以根据实际需要进行设定,在此不再赘述。
下面分别对在当前情景中、和在参照情景中,配置单元31采用上述方法设置Tfill、和Tokenfill进行举例说明和比较。
例如,在每转发一个字节的报文扣除两个令牌的当前情景中,n=2,且Tfill被设置为Tfill=0.5,Rateave=55,误差预设值为2%时;当Tokenfill=7时,则根据公式计算出最接近Rateave的实际带宽为56,此时,根据公式计算出的实际带宽56与Rateave的最小误差为1/55=1.8%,小于2%;在参照情景中,Tfill=0.5,Rateave=55,当Tokenfill=3时,则根据公式Tokenfill*8/Tfill计算出最接近Rateave的实际带宽为48,此时,实际带宽48与Rateave的最小误差为7/55=12.7%,大于当前情景中的误差,且大于2%。
根据上述例子可以说明,相对于参照情景来说,采用当前情景中的方法,即转发待转发报文时扣除的令牌的数量大于待转发报文的字节数,可以减小实际带宽与Rateave的误差,即可以减小设置Tfill、和Tokenfill的误差。
进一步可选的,流量整形设备还可以通过增大Tfill来减小设置Tfill、和Tokenfill的误差。可以参照背景技术中所列举的例子,在此不再赘述。
本实施例对减小设置Tfill、和Tokenfill的误差的方法不作限定,可以根据实际需要进行设定,例如,可以单独采用本实施例提供任意一种方法、或可以同时使用至少两种方法,在此不再赘述。
进一步的,令牌管理模块2不仅通过配置单元31设置Tfill、Tokenfill、和n等,而且还存储Tfill、Tokenfill、n等。
令牌管理模块2存储的数据均为二进制数,采用十进制形式存储所占用的空间,大于采用以2为底的指数函数的形式所占用的空间。
例如,以二进制形式进行存储64,当采用十进制形式存储时,即存储64,则需要占用7比特空间;当采用以2为底的指数函数的形式时,即存储6,只需要占用3比特空间(因为,64=26,只需要记录指数部分6,因此,只需要占用3比特空间)。
为了节省存储空间,令牌管理模块2可以采用以2为底的指数函数的形式存储n、Tfill、Tokenfill,指数可以为不小于0的整数。
配置单元31在为各缓存单元设置Tfill时,不仅需要满足根据设置后的Tfill、和Tokenfill计算出的实际功率与Rateave的误差为最小,而且还要满足不同缓存单元之间的要求。
不同的缓存单元的之间的Rateave可能不同,如果,Rateave大的缓存单元的Tfill与Rateave小的缓存单元的Tfill相同,则根据公式可以看出,Tfill不变时,Tokenfill与Rateave呈正比关系,因此,Rateave大的缓存单元的Tokenfill较大,且大于Rateave小的缓存单元的Tokenfill,这样,可能导致Rateave大的缓存单元的突发较大。
因此,Rateave不同的缓存单元不宜被设置相同的Tfill,优选的,可以为Rateave较大的缓存单元设置较小的Tfill,以使Tokenfill不过大,可以为Rateave较小的缓存单元设置较大的Tfill
进一步的,Tfill是配置单元31根据相应的Rateave、和系统时钟频率、和缓存单元的数量设置的。
由于,采用十进制形式存储所占用的空间,大于采用以2为底的指数函数的形式所占用的空间,因此,为了减小存储Tfill所占用的空间,则Tfill是配置单元31根据公式Tfill=2x*T、和相应的Rateave设置的;其中,x为指数变量,且Rateave越大的缓存单元,配置单元31设置的x越小,或者,Rateave越小的缓存单元,配置单元31设置的x越大;
进一步可选的,x可以为大于等于0的正整数。
作为本实施例的一种实施方式,当T=10.24μs时,由于,Tfill为T的正整数倍,则按照Rateave由大到小的顺序,相对应的缓存单元的Tfill依次可以为:10.24μs(=10.24*20)、或20.48μs(=10.24*21)、或40.96μs(=10.24*22)等。
由于,Tfill与T之间的可变系数为2x,因此,可以直接存储可变系数2x的指数部分x,进而减少了存储Tfill所占用的空间。
为了更清晰的描述采用本实施例后所带来的有益效果,下面针对上述实施例中提供的流量整形设备设置Tfill、和Tokenfill列举一些具体的例子。
首先,对当前场景进行说明:以下的例子中的指定数量为待转发数据的字节数乘以26-m,其中,0≤m≤6,也就是说,每转发一个字节的报文扣除26-m个令牌。
因此,以下例子中的计算实际带宽的公式,相对于参照情景中的公式Tokenfill*8/Tfill变为 Rate cfg = Token fill / 2 6 - m que number × 2 level × N × 8 × frequency , 其中,Ratecfg为实际带宽;为补充周期Tfill;quenumber缓存单元数量;N为带宽的粒度,且N=1;frequency为系统时钟频率;level为补充周期Tfill的调节因子,可以通过调节level来增加或减小补充周期Tfill
例1:
假设不增大Tfill,且转发一个字节的报文扣除64个令牌时,则level=0;m=0,且Rateave=1(Mbps),误差预设数值为1%;
当Tokenfill=81时,根据公式 Rate cfg = Token fill / 2 6 - m que number × 2 level × N × 8 × frequency 计算出的实际带宽Ratecfg=0.989(Mbps),当Tokenfill=82时,根据公式 Rate cfg = Token fill / 2 6 - m que number × 2 level × N × 8 × frequency 计算出的实际带宽Ratecfg=1.001(Mbps)。可以看出,上述计算出的两个Ratecfg均与Rateave的误差小于1%,且未增大Tfill
例2:
假设将Tfill增大为原来的两倍,且转发一个字节的报文扣除32个令牌时,则level=1;m=1,且Rateave=1(Mbps),误差预设数值为1%;
当Tokenfill=81时,根据公式 Rate cfg = Token fill / 2 6 - m que number × 2 level × N × 8 × frequency 计算出的实际带宽Ratecfg=0.989(Mbps),当Tokenfill=82时,根据公式 Rate cfg = Token fill / 2 6 - m que number × 2 level × N × 8 × frequency 计算出的实际带宽Ratecfg=1.001(Mbps)。可以看出,上述计算出的两个Ratecfg均与Rateave的误差小于1%。
有上述两个例子可以看出,当桶管理模块3在转发待转发报文时,扣除比待转发报文字节数多的令牌时,可以相应的减小设置的Tfill、和Tokenfill的误差。
根据例1、和例2、和公式 Rate cfg = Token fill / 2 6 - m que number × 2 level × N × 8 × frequency , 还可以分析出:
若参照情景中某缓存单元的令牌桶中最多可以存储t个令牌,则在当前情景中,该令牌桶实际最多可以存储的令牌虽然还是t个,但相对于参照情景来说,该令牌桶中最多可以存储t/26-m个令牌。
根据公式t/26-m可以看出,在当前情景中,26-m与t/26-m呈反比,26-m越小,则t/26-m越大,且令牌桶中最多存储的令牌数t/26-m与缓存单元最大门限带宽(PBS)呈正比关系,也就是说,26-m减小,PBS便增大,则可以通过调节贬值系数26-m,来满足不同PBS需求的情景。其中,由于,例2中的贬值系数小于例1中的贬值系数,因此,例2提供的情景可满足的PBS,大于例1提供的情景可满足的PBS。
在不同的场景下,公式 Rate cfg = Token fill / 2 6 - m que number × 2 level × N × 8 × frequency 中的各变量的取值、和取值范围可能不同,可以根据实际需要进行设定,在此不再赘述。
采用上述方案后,当前情景为报文转发模块转发待转发数据时,令牌管理模块扣除待转发报文所在缓存单元的指定数量的令牌,指定数量大于待转发报文的字节数,也就是说,转发一个字节的报文扣除一个令牌的参照情境中的1个令牌,相当于,当前情境中的n个令牌,其中,n为指定数量与待转发报文的字节数的比值且大于1,假设当前情景与参照情景中,每个Tfill补充的令牌数均为Tokenfill,则相对于参照情境来说,当前情景中每个Tfill补充的令牌数已经变为Tokenfill/n,当前情景中实际带宽的计算公式相对于参照情景中的公式Tokenfill*8/Tfill变为由于,公式和Tokenfill*8/Tfill中的Tokenfill的取值粒度不变,n大于1,则Tokenfill/n比Tokenfill的取值粒度更加小,进而使得根据公式计算出的值更加接近或等于Rateave(其中,参照情景中将公式中的n替换为1),即减小设置Tfill、和Tokenfill的误差,由于,Tfill未增加,因此,还避免了为减小设置Tfill、和Tokenfill的误差,而使缓存单元转发报文的突发变大。
实施例三
本实施例提供一种流量整形方法,如图3所示,可以包括:
301、流量整形设备接收发送端发送的报文,并存储报文;
302、将报文转发至接收端;
303、周期性的为每个缓存单元补充令牌,并且在转发待转发报文时,根据待转发报文的字节数,将待转发报文所在缓存单元的令牌减少指定数量,指定数量大于待转发报文的字节数,令牌用于指示流量整形设备转发缓存单元中存储的相应字节数的报文。
采用上述方案后,当前情景为流量整形设备转发待转发数据时,扣除待转发报文所在缓存单元的指定数量的令牌,指定数量大于待转发报文的字节数,也就是说,转发一个字节的报文扣除一个令牌的参照情境中的1个令牌,相当于,当前情境中的n个令牌,其中,n为指定数量与待转发报文的字节数的比值且大于1,假设当前情景与参照情景中,每个Tfill补充的令牌数均为Tokenfill,则相对于参照情境来说,当前情景中每个Tfill补充的令牌数已经变为Tokenfill/n,当前情景中实际带宽的计算公式相对于参照情景中的公式Tokenfill*8/Tfill变为由于,公式和Tokenfill*8/Tfill中的Tokenfill的取值粒度不变,n大于1,则Tokenfill/n比Tokenfill的取值粒度更加小,进而使得根据公式计算出的值更加接近或等于Rateave(其中,参照情景中将公式中的n替换为1),即减小设置Tfill、和Tokenfill的误差,由于,Tfill未增加,因此,还避免了为减小设置Tfill、和Tokenfill的误差,而使缓存单元转发报文的突发变大。
实施例四
本实施例提供一种流量整形方法,该方法是对图3所示的方法的进一步扩展,如图4所示,可以包括:
401、流量整形设备接收发送端发送的报文,并存储报文。
402、将报文转发至接收端。
403、根据每个缓存单元的配置带宽Rateave为每个缓存单元设置补充周期Tfill、和每个Tfill向对应缓存单元补充令牌的数量Tokenfill
进一步可选的,根据每个缓存单元的配置带宽Rateave为每个缓存单元设置补充周期Tfill、和每个Tfill向对应缓存单元补充令牌的数量Tokenfill可以为但不限于:根据公式设置Tfill、和Tokenfill,其中,n为指定数量与待转发报文的字节数的比值;Tokenfill为大于0的整数;或者,
根据公式设置Tfill、和Tokenfill,使根据公式计算出的实际带宽与相应的Rateave的误差小于误差预设值,其中,n为指定数量与待转发报文的字节数的比值;Tokenfill为大于0的整数;或者,
根据相应的Rateave、和系统时钟频率、和缓存单元的数量设置Tfill、和Tokenfill
根据相应的Rateave、和系统时钟频率、和缓存单元的数量设置Tfill、和Tokenfill为:根据公式Tfill=2x*T、和相应的Rateave设置Tfill;其中,x为指数变量,且Rateave越大的缓存单元,x越小,或者,Rateave越小的缓存单元,x越大;
404、周期性的为每个缓存单元补充令牌,并且在转发待转发报文时,根据待转发报文的字节数,将待转发报文所在缓存单元的令牌减少指定数量,指定数量大于待转发报文的字节数,令牌用于指示流量整形设备转发缓存单元中存储的相应字节数的报文。
本实施例提供的方法的具体描述已记载于实施例二中,在此不再赘述。
值得说明的是,步骤403、和步骤404不一定执行于步骤401和步骤402之后,本实施例对步骤403、和步骤404的在该实施例中执行的顺序不作限定,可以根据实际需要进行设定,在此不再赘述。
采用上述方案后,当前情景为流量整形设备转发待转发数据时,扣除待转发报文所在缓存单元的指定数量的令牌,指定数量大于待转发报文的字节数,也就是说,转发一个字节的报文扣除一个令牌的参照情境中的1个令牌,相当于,当前情境中的n个令牌,其中,n为指定数量与待转发报文的字节数的比值且大于1,假设当前情景与参照情景中,每个Tfill补充的令牌数均为Tokenfill,则相对于参照情境来说,当前情景中每个Tfill补充的令牌数已经变为Tokenfill/n,当前情景中实际带宽的计算公式相对于参照情景中的公式Tokenfill*8/Tfill变为由于,公式和Tokenfill*8/Tfill中的Tokenfill的取值粒度不变,n大于1,则Tokenfill/n比Tokenfill的取值粒度更加小,进而使得根据公式计算出的值更加接近或等于Rateave(其中,参照情景中将公式中的n替换为1),即减小设置Tfill、和Tokenfill的误差,由于,Tfill未增加,因此,还避免了为减小设置Tfill、和Tokenfill的误差,而使缓存单元转发报文的突发变大。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (7)

1.一种流量整形设备,其特征在于,包括:
报文接收模块,用于接收发送端发送的报文,并将所述报文存储在缓存单元中;
报文转发模块,用于将所述缓存单元中存储的所述报文转发至接收端,包括:所述报文转发模块用于在判断出所述缓存单元中的令牌数量大于等于指定数量后,将所述缓存单元中存储的所述报文转发至接收端;
令牌管理模块,用于周期性的为每个缓存单元补充令牌,并且在所述报文转发模块转发报文时,根据待转发报文的字节数,将待转发报文所在缓存单元的令牌减少指定数量,所述指定数量大于待转发报文的字节数,所述令牌用于指示所述报文转发模块转发所述缓存单元中存储的相应字节数的报文;
所述令牌管理模块包括:
配置单元,用于根据每个缓存单元的配置带宽Rateave为每个缓存单元设置补充周期Tfill、和每个Tfill向对应缓存单元补充令牌的数量Tokenfill,包括:
根据公式设置Tfill、和Tokenfill,其中,n为所述指定数量与待转发报文的字节数的比值;Tokenfill为大于0的整数;或者,
根据公式设置Tfill、和Tokenfill,使根据公式计算出的实际带宽与相应的Rateave的误差小于误差预设值,其中,n为所述指定数量与所述待转发报文的字节数的比值;Tokenfill为大于0的整数;或者,
根据相应的Rateave、和系统时钟频率、和缓存单元的数量设置Tfill、和Tokenfill
2.根据权利要求1所述的流量整形设备,其特征在于,所述令牌管理模块还用于采用以2为底的指数函数的形式存储所述n、所述Tfill、所述Tokenfill
3.根据权利要求1所述的流量整形设备,其特征在于,所述配置单元用于根据相应的Rateave、和系统时钟频率、和缓存单元的数量设置Tfill、和Tokenfill为:
所述配置单元根据公式Tfill=2x*T、和相应的Rateave设置Tfill;其中,x为指数变量,且Rateave越大的缓存单元,所述配置单元设置的x越小,或者,Rateave越小的缓存单元,所述配置单元设置的x越大;
4.根据权利要求3所述的流量整形设备,其特征在于,所述x为大于等于0的正整数。
5.一种流量整形方法,其特征在于,包括:
流量整形设备接收发送端发送的报文,并存储所述报文;
将所述报文转发至接收端,包括:在判断出缓存单元中的令牌数量大于等于指定数量后,将所述缓存单元中存储的所述报文转发至接收端;
周期性的为每个缓存单元补充令牌,并且在转发待转发报文时,根据待转发报文的字节数,将待转发报文所在缓存单元的令牌减少指定数量,所述指定数量大于待转发报文的字节数,所述令牌用于指示所述流量整形设备转发所述缓存单元中存储的相应字节数的报文;
在所述周期性的为每个缓存单元补充令牌之前,所述方法还包括:
根据每个缓存单元的配置带宽Rateave为每个缓存单元设置补充周期Tfill、和每个Tfill向对应缓存单元补充令牌的数量Tokenfill,包括:
根据公式设置Tfill、和Tokenfill,其中,n为所述指定数量与待转发报文的字节数的比值;Tokenfill为大于0的整数;或者,
根据公式设置Tfill、和Tokenfill,使根据公式计算出的实际带宽与相应的Rateave的误差小于误差预设值,其中,n为所述指定数量与所述待转发报文的字节数的比值;Tokenfill为大于0的整数;或者,
根据相应的Rateave、和系统时钟频率、和缓存单元的数量设置Tfill、和Tokenfill
6.根据权利要求5所述的流量整形方法,其特征在于,所述根据相应的Rateave、和系统时钟频率、和缓存单元的数量设置Tfill、和Tokenfill为:根据公式Tfill=2x*T、和相应的Rateave设置Tfill;其中,x为指数变量,且Rateave越大的缓存单元,所述x越小,或者,Rateave越小的缓存单元,所述x越大;
7.根据权利要求6所述的流量整形方法,其特征在于,采用以2为底的指数函数的形式存储所述n、所述Tfill、所述Tokenfill
CN201210203476.6A 2012-06-19 2012-06-19 流量整形方法和流量整形设备 Active CN102739531B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210203476.6A CN102739531B (zh) 2012-06-19 2012-06-19 流量整形方法和流量整形设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210203476.6A CN102739531B (zh) 2012-06-19 2012-06-19 流量整形方法和流量整形设备

Publications (2)

Publication Number Publication Date
CN102739531A CN102739531A (zh) 2012-10-17
CN102739531B true CN102739531B (zh) 2016-06-15

Family

ID=46994344

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210203476.6A Active CN102739531B (zh) 2012-06-19 2012-06-19 流量整形方法和流量整形设备

Country Status (1)

Country Link
CN (1) CN102739531B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107342947B (zh) * 2016-04-28 2020-06-26 华为技术有限公司 流量整形方法、控制器、网络设备和流量整形系统
CN107896197A (zh) * 2017-10-23 2018-04-10 深圳市楠菲微电子有限公司 通信设备中测量转发速率的方法和装置、存储介质
CN116686256A (zh) * 2021-05-06 2023-09-01 华为技术有限公司 一种基于令牌桶的流量控制方法和网络设备
CN113422736B (zh) * 2021-06-16 2022-06-14 中移(杭州)信息技术有限公司 基于令牌桶的请求管理方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1751481A (zh) * 2003-02-14 2006-03-22 西门子公司 用于在面向分组的通信设备中分配传输带宽的方法
CN101005453A (zh) * 2006-12-26 2007-07-25 华为技术有限公司 流量限制技术中刷新令牌桶的方法及装置
CN101267387A (zh) * 2007-03-12 2008-09-17 瑞昱半导体股份有限公司 频宽控制模块及相关控制方法
CN101272345A (zh) * 2008-04-29 2008-09-24 杭州华三通信技术有限公司 一种流量控制的方法、系统和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7184404B2 (en) * 2002-10-15 2007-02-27 Broadcom Corporation Programmable inter-packet gap generator with byte granularity

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1751481A (zh) * 2003-02-14 2006-03-22 西门子公司 用于在面向分组的通信设备中分配传输带宽的方法
CN101005453A (zh) * 2006-12-26 2007-07-25 华为技术有限公司 流量限制技术中刷新令牌桶的方法及装置
CN101267387A (zh) * 2007-03-12 2008-09-17 瑞昱半导体股份有限公司 频宽控制模块及相关控制方法
CN101272345A (zh) * 2008-04-29 2008-09-24 杭州华三通信技术有限公司 一种流量控制的方法、系统和装置

Also Published As

Publication number Publication date
CN102739531A (zh) 2012-10-17

Similar Documents

Publication Publication Date Title
US10868765B2 (en) Shaping traffic on PLCA-enabled 10SPE networks
US8462811B2 (en) Isochronous device communication management
JP5107016B2 (ja) トークンバケットを用いたバッファ装置及びプログラム
CN108632156A (zh) 负载平衡系统、设备和方法
CN102739531B (zh) 流量整形方法和流量整形设备
CN103580842A (zh) 一种多类型无线链路并行传输的方法和系统
EP2271994A1 (en) Credit management when resource granularity is larger than credit granularity
CN103701710A (zh) 一种数据传输方法、核心转发设备以及端点转发设备
CN101432762A (zh) 信号传送方法、发送接收装置和通信系统
CN103888377A (zh) 报文缓存方法及装置
CN103546467A (zh) 在TCP/IP网络上传输Modbus RTU协议的方法
CN110765059A (zh) 一种pcie数据优先级管理方法和装置
CN111245732A (zh) 一种流量控制方法、装置及设备
CN106936867A (zh) 一种业务请求的响应方法及装置
CN108668144A (zh) 一种数据流控方法及装置
CN102347902B (zh) 发送间隔调整方法、装置和网络设备
CN106911740A (zh) 一种缓存管理的方法和装置
CN103685062A (zh) 缓存管理方法及装置
CN101118524A (zh) 直接存储器存取传输控制装置
CN104486442A (zh) 分布式存储系统的数据传输方法、装置
CN110109865A (zh) 一种数据存储方法、装置、设备及可读存储介质
CN102143053B (zh) 传输数据的方法、装置和系统
CN106101184A (zh) 一种文件下载方法和播放设备
CN105721348A (zh) 智能终端的流量控制方法及装置
CN101478495B (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
C14 Grant of patent or utility model
GR01 Patent grant