CN1607767A - 基于网络处理器的流量控制方法 - Google Patents

基于网络处理器的流量控制方法 Download PDF

Info

Publication number
CN1607767A
CN1607767A CN 200310106647 CN200310106647A CN1607767A CN 1607767 A CN1607767 A CN 1607767A CN 200310106647 CN200310106647 CN 200310106647 CN 200310106647 A CN200310106647 A CN 200310106647A CN 1607767 A CN1607767 A CN 1607767A
Authority
CN
China
Prior art keywords
token
data packet
current data
token bucket
parameter
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
Application number
CN 200310106647
Other languages
English (en)
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN 200310106647 priority Critical patent/CN1607767A/zh
Publication of CN1607767A publication Critical patent/CN1607767A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种基于网络处理器的流量控制方法,其特征在于,该方法包括以下步骤:进行流量控制算法的参数设置;计算与当前数据包到达时刻相关的参数;根据对令牌桶中当前令牌数C2与当前数据包的长度L相比较的结果,如果L<=C2,发送该数据包及令牌;反之,丢弃该数据包及令牌;以及调整令牌桶中的令牌数和时刻这两个参数值。与现有技术相比,采用本发明所述方法,具有实现简单、控制准确、流量平滑、服务时间固定,在估计***处理时间时有详细的试验数据作为参考、易于在同类产品中通用,并且对于INTEL的系列处理器或者其他有计数器的网络处理器具有兼容性。

Description

基于网络处理器的流量控制方法
                          技术领域
本发明涉及数据通信领域的流量控制方法,特别是涉及一种在网络处理器上实现对宽带网络用户的上网流量的控制方法。
                          背景技术
目前,随着宽带网络的推广和发展,宽带网络的用户数量急剧增多。由于多数使用宽带网络的用户较为分散,因此,电信运营商不但要对接入的宽带用户进行一般的业务管理,还需要具备针对不同等级的用户提供不同服务等级的服务的能力,即要对用户使用的带宽进行分别控制;各流量控制方法基于不同硬件,它既要能够满足用户流量控制的一般要求,还要操作简单、控制准确。
目前的网络设备中,流量控制方法多种多样,其中大多数方法的算法是通用的,但因受到具体的硬件结构、CPU计算能力和算法的复杂度等因素的制约和影响,其具体实现过程是不同的。目前,有以下三种流量控制方法:
1.在流量控制方法中采用令牌漏桶法
该方法本身功能比较完备,但是其不仅需要对令牌进行存储,而且需要对到达的数据包进行缓存,同时,需要对突发时间间隔有一定的容忍度;因此实现上较为复杂,尤其在微码限速转发数据包的过程中很难实现对流量的有效控制;
2.在流量控制方法中采用利用软件定时器的方法
该方法采用CPU上的软件定时器作为对用户流量控制的定时单位,由于软件定时器的不精确性会造成计算上的误差,从而影响微码流量控制的精确性;
3.在流量控制方法中采用利用硬件定时器的方法
这种方法虽然采用了硬件定时器,但其控制方式是以秒作为计算单位,每过一秒刷新一次定时器,从而造成流量的不平滑,从控制结果上来看,会出现用户流量时断时续的情况。
综上所述,现有流量控制技术中存在算法实现复杂、控制不准确、受控流量不平滑,以及服务时间不固定和不易通用等的问题,针对以上各种算法存在的问题,以及根据现有技术中网络处理器本身所受到的条件限制,需要提出一种解决上述问题的基于网络处理器的流量控制方法。
                          发明内容
本发明的目的正是针对上述背景技术中存在的缺陷,提出一种基于网络处理器的流量控制方法,采用硬件提供的定时器实现控制的精确性,同时,在控制的过程中使用包触发控制的方式,保证了用户流量在传输过程中的平滑性。
本发明所提出的一种基于网络处理器的流量控制方法,其特征在于,该方法包括以下步骤:
(1)设置进行流量控制的参数,步骤201;
需设置的参数包括:
令牌桶容量C、令牌到达速率P、上一数据包到达时刻t1、当前数据包到达时刻t2、当前数据包到达时,令牌桶中剩余的令牌数为C1、当前数据包的长度L;
(2)计算与当前数据包到达时刻相关的参数,步骤202;
当前数据包传送时间为t2-t1,在t2时刻:令牌桶中的令牌数为C2=min{C,C1+(t2-t1)×P}
(3)根据对令牌桶中当前令牌数C2与当前数据包的长度L相比较的结果,如果L<=C2,发送该数据包及令牌;反之,丢弃该数据包及令牌;以及
(4)调整令牌桶中的令牌数和时刻这两个参数值,其中当前令牌数等于第(3)中计算后的令牌桶中的令牌数;当可以发送时令牌桶中的令牌数=C2-L;当不能发送时令牌桶中的令牌数=C2;时刻调整等于第(3)中计算后的t1的值,可以发送或不可以发送都将时刻更新为当前包到达的时刻,即t1=t2。
与现有技术相比,采用本发明所述方法,具有实现简单、控制准确、流量平滑、服务时间固定,在估计***处理时间时有详细的试验数据作为参考、易于在同类产品中通用,并且对于INTEL的系列处理器或者其他有计数器的网络处理器具有兼容性。
此方法的实现平台是intel公司的IXP1200系列网络处理器,易于在同类产品中通用。并且对于其他网络处理器,只要内部提供硬件定时器也能够使用此方法。
下面将结合实施例并参照附图对该发明的技术方案进行详细说明。
                          附图说明
图1为本发明的抽象模型示意图;
图2为本发明的流量控制方法的总流程图;
图3为本发明的流量控制方法实施例流程图。
                          具体实施方式
如图1所示,为本发明的抽象模型示意图,将令牌桶102中的令牌101作为数据包103的转发的依据,令牌101按照一定的速率放到令牌桶102中,数据包103在转发时从令牌桶103中取令牌101,如果令牌101的数量大于或等于数据包103所需的令牌数,则发送该令牌,否则丢弃。
本发明所采用的抽象模型为一个类似于标准的令牌漏桶算法的带有令牌的漏桶算法模型,与标准的令牌漏桶算法不同,由于不需要对包进行缓存,因此,其中的数据包和令牌都有可能丢弃。
如图2所示,为本发明的流量控制方法流程图,本发明的实现方法包括如下步骤:
(1)设置进行流量控制算法的参数,步骤201;
需设置的参数包括:
令牌桶容量C(字节);
用户带宽=令牌到达速率=P(K字节/S),由于没有缓冲,C应该等于P;
上一数据包到达时刻t1(S),其初始值为0;
当前数据包到达时刻t2(S);
当前数据包到达时,令牌桶中剩余的令牌数为C1(字节);
当前数据包的长度L(字节)。
(2)计算与当前数据包到达时刻相关的参数,步骤202;
在t2时刻:
令牌桶中的令牌数为C2=min{C,C1+(t2-t1)×P}
(3)根据对令牌桶中当前令牌数与当前数据包的长度相比较的结果,对令牌桶中的数据包进行传送或丢弃处理,步骤203。
如果L<=C2
可以发送;
令牌桶中的令牌数=C2-L;
t1=t2;
否则
丢弃包;
令牌桶中的令牌数=C2;
t1=t2;
也就是说,处于当前数据包到达时刻t2的令牌桶中,如果令牌数大于或等于当前数据包所需的令牌数,则发送该数据包及令牌,否则丢弃数据包及令牌;
(4)调整令牌桶中的令牌数和时刻这两个参数值,步骤204。
当前令牌数等于第(3)中计算后的令牌桶中的令牌数;当可以发送时令牌桶中的令牌数=C2-L;当不能发送时令牌桶中的令牌数=C2;
时刻调整等于第(3)中计算后的t1的值;可以发送或不可以发送都将时刻更新为当前包到达的时刻,即t1=t2。
下面以一具体实施例,来进一步说明本发明的技术方案。
在本具体实施例中,利用Intel公司的网络处理器IXP1200来实现本发明提出的基于网络处理器的流量控制方法,由于在IXP1200中没有时钟,只有一个计数器,因此,需要将时间单位秒换算成为cycle。IXP1200中的计数器和CPU的主频一致,为200MHz/秒。在Intel的网络处理器IXP1200做了相关的试验,具体实施方式如下:
硬件环境:IXP1200网络
软件部分的处理步骤如下:
控制CPU在用户接入后,将用户的带宽值P写入内存,作为算法的输入参数之一,并且,此时的前一数据包到达时刻t1和令牌桶中剩余的令牌数C1的初始值均为0;
当包达到时根据图3的方法完成用户流量的控制;
参数设置部分的流程包括:
当前数据包到达,获得该数据包长度L,步骤301;
当前包的长度为L(字节);
读取有关令牌桶及数据包的相对当前状态的前一状态的各项参数,包括C1、t1和用户带宽值C,步骤302:
a.令牌桶容量C(单位:字节)
b.用户带宽=令牌到达速率=P(单位:K字节/S),说明:由于没有缓冲,C应该等于P;
c.上一个数据包到达时刻t1(单位:S),其初始值为0;
计算当前数据包的有关参数的流程包括:
通过读取到的当前计数器的值,计算出当前数据包到达的时刻t2,步骤303;
判断t2值是否溢出,步骤304;其中,若计数器使用64比特,如果基于166MHz主频,64比特需要83年才会溢出,所以无须考虑溢出问题;但是,如果使用32比特的计数器,则需要考虑计数器溢出的问题,如t2值溢出,则需先调整其值,步骤305;然后,计算当前包到达令牌桶所用的时间,即遵循公式t2-t1,步骤306;由于目前所使用的CPU一般为32位,因此在作乘法和除法运算的时候需要注意溢出的情况。
计算(t2-t1)/(2×10^16),将t1和t2的单位换算为cycle,步骤307;计算(t2-t1)/(2×10^16)×C,得到当前数据包到达令牌桶的这段时间中到达的令牌数,步骤308;
其中,P的值是由控制CPU写到内存中的,在此算法中存在一个关键计算过程,即:(t2-t1)×P的乘法中,由于使用cycle作为时间单位,所以必须对单位进行必要的换算。为了解决这个问题,通过以下几个步骤来解决:
a.调整计算单位
P的单位为K字节/秒,所以P字节/秒换算为cycle,其算法为P/(2×10^8)(K字节/cycle),并且,P/(2×10^8)(K字节/cycle)=P/(2×10^5)(字节/cycle),在IXP1200中以每1秒时间对应200MHz的cycle计算;
b.调整计算方法,采用近似算法
由于在IXP1200中无法完成除以10^5这样的操作,因此,所有的乘法和除法只能用移位操作和加法来完成,即需要,为了计算方便,用2^16+2^16/2来近似10^5,其误差为:[10^5-(2^16+2^16/2)]/10^5=1.7%
所以有:
       P/(2×(2^16+2^16/2))+delta=P/(2×10^5)
设delta为调整因子,它的值可以通过预先计算出来,作为输入参数;
其中:
P/(2×(2^16+2^16/2))=P/(2^16×3)=P/2^16/3(公式1)
这样,通过P/2^16可以通过移位进行操作,满足了微码中的计算,但还需要解决除以3的问题;
c.解决除以3的问题
由于实施例中存在上述问题,所以需要增加解决除以3的问题的步骤,计算(t2-t1)/(2×10^16)×C/3,步骤309;
设:
Y=1/4+1/16+1/64+……1/4^N+……         (公式2)
2Y=1/2+1/8+1/32+……1/2^(2×N-1)+……  (公式3)
(公式2)+(公式3),得到:
          3Y=1/2+1/4+1/8+……1/2^N+……
因为有:
          1/2+1/4+1/8+……1/2^N+……=1
所以有:
                  Y=1/3
因此:
           X/3=X×(1/4+1/16+1/64+……)
在实际运算过程中,能够表示的数都为整数,为了精确到个位,在计算之前需要将X扩大10倍,计算完成后,将结果缩小10倍。在实际运算过程中,由于只能使用移位操作,将扩大和缩小的倍数定为16倍。
计算在当前数据包到达t2时刻,令牌桶中的令牌数,步骤310;
在t2时刻:
令牌桶中的令牌数为C2=min{C,C1+(t2-t1)×P},其中,如果C值小,则设C2=C,步骤311;其余情况,则设C2=C1+(t2-t1)/2^16)×C,步骤312;判断当前数据包的长度与当前数据包到达t2时刻,令牌桶中的令牌数的大小关系,步骤313;如果L<=C2,则表示数据包可以发送,步骤314;令牌桶中剩余令牌数C1=C2-L,步骤315;反之,表示数据包可以丢弃,步骤316;令牌桶中剩余令牌数C1=C2,步骤317;更新C1后,调整令牌桶的计时时刻为t1=t2,步骤318;等到新的数据包到达时,t2即成为相对于新数据包的前一数据包到达的时刻。

Claims (3)

1.一种基于网络处理器的流量控制方法,其特征在于,该方法包括以下步骤:
(1)设置进行流量控制算法的参数;
需设置的参数包括:
令牌桶容量C、令牌到达速率P、上一数据包到达时刻t1、当前数据包到达时刻t2、当前数据包到达时,令牌桶中剩余的令牌数为C1、当前数据包的长度L;
(2)计算与当前数据包到达时刻相关的参数;
当前数据包传送时间为t2-t1,在t2时刻:令牌桶中的令牌数为C2=min{C,C1+(t2-t1)×P}
(3)根据对令牌桶中当前令牌数C2与当前数据包的长度L相比较的结果,如果L<=C2,发送该数据包及令牌;反之,丢弃该数据包及令牌;以及
(4)调整令牌桶中的令牌数和时刻这两个参数值,其中当前令牌数等于第(3)中计算后的令牌桶中的令牌数;当可以发送时令牌桶中的令牌数=C2-L;当不能发送时令牌桶中的令牌数=C2;时刻调整等于第(3)中计算后的t1的值,可以发送或不可以发送都将时刻更新为当前包到达的时刻,即t1=t2。
2.如权利要求1所述的基于网络处理器的流量控制方法,其特征在于,所述计算与当前数据包到达时刻相关的参数的步骤中,还包括以下步骤:
判断t2值是否溢出;
如果该值溢出,则需先进行调整。
3.如权利要求1所述的基于网络处理器的流量控制方法,其特征在于,所述计算与当前数据包到达时刻相关的参数的步骤,还包括以下流程:
计算(t2-t1)/(2×10^16),将t1和t2的单位换算为cycle;
采用近似计算,用2^16+2^16/2来近似10^5;
计算(t2-t1)/(2×10^16)×C/3。
CN 200310106647 2003-10-16 2003-10-16 基于网络处理器的流量控制方法 Pending CN1607767A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200310106647 CN1607767A (zh) 2003-10-16 2003-10-16 基于网络处理器的流量控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200310106647 CN1607767A (zh) 2003-10-16 2003-10-16 基于网络处理器的流量控制方法

Publications (1)

Publication Number Publication Date
CN1607767A true CN1607767A (zh) 2005-04-20

Family

ID=34757652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200310106647 Pending CN1607767A (zh) 2003-10-16 2003-10-16 基于网络处理器的流量控制方法

Country Status (1)

Country Link
CN (1) CN1607767A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007128208A1 (fr) * 2006-04-24 2007-11-15 Huawei Technologies Co., Ltd. Dispositif d'accès, procédé et moyen de contrôle de largeur de bande assuré par le dispositif d'accès
CN100454897C (zh) * 2005-08-25 2009-01-21 华为技术有限公司 一种网络设备有效防攻击的方法
WO2009103236A1 (zh) * 2008-02-20 2009-08-27 华为技术有限公司 流量整形方法和装置
CN101043457B (zh) * 2007-03-21 2010-07-07 华为技术有限公司 报文宽带监管方法及其装置、报文丢弃概率标记装置
CN101110716B (zh) * 2007-08-13 2010-08-11 杭州华三通信技术有限公司 一种对分片报文进行流量监管的方法及装置
CN101060471B (zh) * 2006-06-23 2010-09-08 华为技术有限公司 令牌资源流控方法
CN101873261A (zh) * 2010-06-07 2010-10-27 北京网康科技有限公司 一种提高令牌桶流控效果的方法及设备
CN101193061B (zh) * 2006-12-14 2011-07-13 中兴通讯股份有限公司 基于多Qos的流量控制方法
CN101094180B (zh) * 2007-07-20 2012-05-23 杭州华三通信技术有限公司 一种对压缩后流量进行监管的方法及装置
CN101820380B (zh) * 2009-02-26 2012-09-12 高通创锐讯通讯科技(上海)有限公司 计量器的令牌更新方法
CN106302211A (zh) * 2016-07-18 2017-01-04 网易无尾熊(杭州)科技有限公司 一种网络资源的请求量控制方法和装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100454897C (zh) * 2005-08-25 2009-01-21 华为技术有限公司 一种网络设备有效防攻击的方法
WO2007128208A1 (fr) * 2006-04-24 2007-11-15 Huawei Technologies Co., Ltd. Dispositif d'accès, procédé et moyen de contrôle de largeur de bande assuré par le dispositif d'accès
CN101060471B (zh) * 2006-06-23 2010-09-08 华为技术有限公司 令牌资源流控方法
CN101193061B (zh) * 2006-12-14 2011-07-13 中兴通讯股份有限公司 基于多Qos的流量控制方法
CN101043457B (zh) * 2007-03-21 2010-07-07 华为技术有限公司 报文宽带监管方法及其装置、报文丢弃概率标记装置
CN101094180B (zh) * 2007-07-20 2012-05-23 杭州华三通信技术有限公司 一种对压缩后流量进行监管的方法及装置
CN101110716B (zh) * 2007-08-13 2010-08-11 杭州华三通信技术有限公司 一种对分片报文进行流量监管的方法及装置
WO2009103236A1 (zh) * 2008-02-20 2009-08-27 华为技术有限公司 流量整形方法和装置
CN101820380B (zh) * 2009-02-26 2012-09-12 高通创锐讯通讯科技(上海)有限公司 计量器的令牌更新方法
CN101873261A (zh) * 2010-06-07 2010-10-27 北京网康科技有限公司 一种提高令牌桶流控效果的方法及设备
CN101873261B (zh) * 2010-06-07 2012-10-03 北京网康科技有限公司 一种提高令牌桶流控效果的方法及设备
CN106302211A (zh) * 2016-07-18 2017-01-04 网易无尾熊(杭州)科技有限公司 一种网络资源的请求量控制方法和装置

Similar Documents

Publication Publication Date Title
CN1200539C (zh) 在数据传输中减少延迟抖动的装置和方法
CN1284324C (zh) 用于通用串行总线接收器设备的时钟同步的***和方法
CN1607767A (zh) 基于网络处理器的流量控制方法
CN1960242A (zh) 实现时钟同步的方法、装置、***及分布式***
CN1878094A (zh) 一种网络最大可用带宽的测试方法
CN1454420A (zh) 根据通信带宽的自动检测选择要传递的内容
CN1647463A (zh) 用于对数据包传输进行定时以控制带宽的方法和***
CN101057439A (zh) 发送器、接收器以及通信***
CN106411773B (zh) 基于令牌桶的视频传输中的流量整形方法及***
CN1558623A (zh) 一种快速处理实时媒体流数据包的方法及其***
CN1669281A (zh) 封装信元的方法和***
CN1549535A (zh) 用rtp数据包的序号进行排序以消除其抖动延时的方法
CN1833422A (zh) 分组通信装置
CN1130085C (zh) 产生为了低比特速率应用的atm信元的方法和装置
CN101043282A (zh) 多通道语音处理的数据存储方法
CN1293739C (zh) 高速数据链路控制协议发送处理模块及其数据处理方法
US20030165116A1 (en) Traffic shaping procedure for variable-size data units
CN1602475A (zh) 异步串行数据接口
CN1453964A (zh) 在同步通信网中处理业务量
CN102821423B (zh) 报文接收方法及装置
CN1878132A (zh) 一种实现变长分组包交换的方法及***
CN1630293A (zh) 一种通讯***中多通道数据传输的方法和装置
CN1798099A (zh) 基于逻辑实现数据包动态调速的方法
CN1677954A (zh) 语音传输过程中动态调整抖动缓存的实现方法
Setiawan et al. PHY layer design of OFDM-VLC system based on SoC using reuse methodology

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication