首页> 中国专利> 流量整形方法和流量整形设备

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

摘要

本发明提供一种流量整形方法和流量整形设备。涉及通信技术领域。解决了当为了减小设置的T

著录项

  • 公开/公告号CN102739531A

    专利类型发明专利

  • 公开/公告日2012-10-17

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201210203476.6

  • 发明设计人 张喜全;卞云峰;侯鹏;

    申请日2012-06-19

  • 分类号H04L12/56;

  • 代理机构北京中博世达专利商标代理有限公司;

  • 代理人申健

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-18 06:57:20

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-06-15

    授权

    授权

  • 2012-12-12

    实质审查的生效 IPC(主分类):H04L12/56 申请日:20120619

    实质审查的生效

  • 2012-10-17

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,尤其涉及流量整形方法和流量整形设备。

背景技术

在通信芯片中,常常需要对待转发报文进行流量整形,流量整形(Traffic Shaping)的作用是限制待转发报文从通信芯片发送的流量与速度,使待转发报 文以比较均匀的速度向外发送。

具体的,通信芯片中配置至少一个用于进行流量整形的缓存单元,每个缓 存单元均被分配一个令牌桶,令牌桶存放用于指示通信芯片转发报文的令牌, 缓存单元周期性为令牌桶补充令牌,通信芯片将待转发报文放入相应缓存单元 中,当该缓存单元的令牌桶中的令牌数大于等于待转发数据的字节数时,则发 送待转发报文,同时,令牌桶中的令牌被扣除,被扣除的令牌数量为待转发报 文的字节数;当令牌桶中令牌的数量小于待转发报文的字节数时,则等待令牌 桶中的令牌被补充到数量大于等于待转发报文的字节数后再发送,或丢弃待转 发报文。

公式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*Tokenfill/nTfill=Rateave成立。

根据上述例子可以说明,相对于参照情景来说,采用当前情景中的方法, 即转发待转发报文时扣除的令牌的数量大于待转发报文的字节数,使得根据公 式计算出的值更加接近或等于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变为Ratecfg=Tokenfill/26-mquenumber×2level×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时,根据公式Ratecfg=Tokenfill/26-mquenumber×2level×N×8×frequency计算出的实 际带宽Ratecfg=0.989(Mbps),当Tokenfill=82时,根据公式 Ratecfg=Tokenfill/26-mquenumber×2level×N×8×frequency计算出的实际带宽Ratecfg=1.001(Mbps)。可以 看出,上述计算出的两个Ratecfg均与Rateave的误差小于1%,且未增大Tfill

例2:

假设将Tfill增大为原来的两倍,且转发一个字节的报文扣除32个令牌时,则 level=1;m=1,且Rateave=1(Mbps),误差预设数值为1%;

当Tokenfill=81时,根据公式Ratecfg=Tokenfill/26-mquenumber×2level×N×8×frequency计算出的实 际带宽Ratecfg=0.989(Mbps),当Tokenfill=82时,根据公式 Ratecfg=Tokenfill/26-mquenumber×2level×N×8×frequency计算出的实际带宽Ratecfg=1.001(Mbps)。可以 看出,上述计算出的两个Ratecfg均与Rateave的误差小于1%。

有上述两个例子可以看出,当桶管理模块3在转发待转发报文时,扣除比 待转发报文字节数多的令牌时,可以相应的减小设置的Tfill、和Tokenfill的误差。

根据例1、和例2、和公式Ratecfg=Tokenfill/26-mquenumber×2level×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。

在不同的场景下,公式Ratecfg=Tokenfill/26-mquenumber×2level×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的误差,而使缓存单元转发报文的突发变大。

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

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应 所述以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号