CN102315956A - 一种流量监管方法和装置 - Google Patents

一种流量监管方法和装置 Download PDF

Info

Publication number
CN102315956A
CN102315956A CN2010102229996A CN201010222999A CN102315956A CN 102315956 A CN102315956 A CN 102315956A CN 2010102229996 A CN2010102229996 A CN 2010102229996A CN 201010222999 A CN201010222999 A CN 201010222999A CN 102315956 A CN102315956 A CN 102315956A
Authority
CN
China
Prior art keywords
packet
token bucket
formation
intermediate variable
receives
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.)
Granted
Application number
CN2010102229996A
Other languages
English (en)
Other versions
CN102315956B (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.)
Sanechips Technology Co Ltd
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 CN201010222999.6A priority Critical patent/CN102315956B/zh
Priority to PCT/CN2011/071116 priority patent/WO2012000317A1/zh
Publication of CN102315956A publication Critical patent/CN102315956A/zh
Application granted granted Critical
Publication of CN102315956B publication Critical patent/CN102315956B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket

Abstract

本发明提供了一种流量监管方法,包括:在参数变量存储模块中存储若干个队列对应的参数和中间变量及令牌桶算法;接收到队列的数据包时,获取该接收到的数据包所在队列对应的参数和中间变量;选择令牌桶算法,根据所述接收到的数据包所在队列对应的参数和中间变量和选择的令牌桶算法,进行令牌桶计算,得到令牌桶算法结果;根据所述令牌桶算法结果更新所述接收到的数据包所在队列对应的参数和中间变量。本发明还提供一种流量监管装置。采用本发明所述方法和装置,可以根据需求动态的配置令牌桶算法。

Description

一种流量监管方法和装置
技术领域
本发明涉及通信系统,尤其涉及一种流量监管方法和装置。
背景技术
流量监管,即通过令牌桶算法对进入网络的通信流量进行标记,由后续模块进行控制处理,以确保通信速率在服务限制范围内。
常用的流量监管算法主要有单速率三色标记法(Single Rate Three ColorMarker,srTCM),双速率三色标记法(Two Rate Three Color Marker,trTCM)和MEF10.1规定的可配置的三色标记法。
上述三种流量监管算法采用令牌桶对流量进行监测。令牌桶看作是一个存有一定容量令牌的装置。系统以某一定速率向令牌桶中添加令牌。当令牌桶中令牌满时,再添加令牌就会溢出,令牌桶令牌不再增加。每到达一个报文,就和令牌桶中的令牌进行比较。令牌足够就认为流量在允许范围内,没有则认为令牌超过一定界限。
发明内容
本发明所要解决的技术问题是:克服现有技术中支持令牌桶算法较少且不能灵活配置,对于不同报文采用同一套参数,处理流量较小等问题和缺陷,提供一种流量监管方法和装置。
为了解决上述问题,本发明提供了一种流量监管方法,包括:
在参数变量存储模块中存储若干个队列对应的参数和中间变量及令牌桶算法;
接收到队列的数据包时,获取该接收到的数据包所在队列对应的参数和中间变量;
选择令牌桶算法,根据所述接收到的数据包所在队列对应的参数和中间变量和选择的令牌桶算法,进行令牌桶计算,得到令牌桶算法结果;
根据所述令牌桶算法结果更新所述接收到的数据包所在队列对应的参数和中间变量。
其中,所述获取该接收到的数据包所在队列对应的参数和中间变量的步骤包括:
接收到数据包后,存储所述接收到的数据包,判断已存储的数据包中是否存在与接收到的所述数据包位于相同队列的数据包,如果存在,找出与所述接收到的数据包位于相同队列且最接近的数据包以及所述最接近数据包与接收到的数据包的时间间隔,根据该最接近数据包和所述时间间隔获取其所在队列对应的参数和中间变量;如果不存在,则从所述参数变量存储模块中获取所述接收到的数据包所在的队列对应的参数和中间变量。
其中,所述存储数据包的步骤包括:
数据包到达时,按其到达顺序依次存入一寄存器的存储区域0至S-1,存满S个存储区域后,第S+1个数据包到达时,覆盖存储区域0中的数据包,后续到达的数据包依次类推,所述寄存器的寄存器指针指向最新存储数据包的存储区域的下一个存储区域;
所述判断已存储的数据包中是否存在与接收到的所述数据包位于相同队列的数据包的步骤包括:
接收到新数据包时,根据寄存器指针获取寄存器中各数据包的到达顺序,根据该到达顺序判断与接收到的数据包位于相同队列且最接近的数据包。
其中,所述根据该最接近数据包和所述时间间隔获取其所在队列对应的参数和中间变量的步骤包括:
如果所述时间间隔小于预设的第一门限,则从所述最接近数据包的令牌桶算法计算结果缓存区中获取所述参数和中间变量;
如果所述时间间隔大于预设的第二门限,则从所述参数变量存储模块获取所述参数和中间变量;
如果所述时间间隔大于所述第一门限,小于所述第二门限,则从中间变量结果寄存器中获取所述参数和中间变量,其中,所述第一门限小于第二门限。
其中,所述令牌桶计算包括:
判断令牌桶是否溢出,如果溢出,直接将令牌桶填满;如果未溢出,根据获取的中间变量中上一个数据包的到达时刻和当前时刻得到两个数据包的时间间隔,根据该时间间隔计算要添加的令牌数。
其中,所述方法还包括:
为每个队列设置溢出标志位,为系统计数器设置进位标志;每处理完一个数据包时,将该数据包所在队列的溢出标志位置为B1,指示未溢出;
系统计数器溢出时,如果该队列的溢出标志位为B1,将该队列的溢出标志位设置为B2,指示系统计数器溢出一次;如果该队列的溢出标志位为B2或B3,将该队列的溢出标志位设置为B3,指示系统计数器至少溢出两次;
所述判断令牌桶是否溢出的步骤包括:
获取溢出标志位,如果所述溢出标志位为B1,则令牌桶未溢出;如果所述溢出标志为B2,且该队列上一个数据包的到达时刻和当前时刻的系统计数器的进位标志不同,且该队列当前数据包的到达时刻大于等于该队列上一数据包的到达时刻,则令牌桶溢出;如果所述溢出标志位为B3,则令牌桶溢出。
本发明还提供一种流量监管装置,包括队列控制模块、参数变量存储模块和令牌桶算法模块,其中:
所述队列控制模块,用于根据令牌桶算法模块的令牌桶算法结果更新所述接收到的数据包所在队列对应的参数和中间变量;
所述参数变量存储模块,用于存储若干个队列对应的参数和中间变量及令牌桶算法;
所述令牌桶算法模块,用于接收到数据包时,获取该接收到的数据包所在队列对应的参数和中间变量;以及,选择令牌桶算法,根据所述接收到的数据包所在队列对应的参数和中间变量和所选择的令牌桶算法,进行令牌桶计算,得到令牌桶算法结果。
其中,所述队列控制模块还用于:接收到数据包后,存储所述接收到的数据包,以及,判断已存储的数据包中是否存在与接收到的所述数据包位于相同队列的数据包,如果存在,找出与所述数据包位于相同队列且最接近的数据包,发送相同队列指示和最接近数据包与接收到的数据包的时间间隔给令牌桶算法模块;如果不存在,发送非相同队列指示给令牌桶算法模块。
所述令牌桶算法模块,用于接收到相同队列指示和所述时间间隔时,根据所述时间间隔与所述最接近数据包获取其所在队列对应的参数和中间变量;接收到非相同队列指示时,从所述参数变量存储模块中获取所述接收到的数据包所在的队列对应的参数和中间变量。
其中,所述装置还包括寄存器,所述寄存器包括S个存储区域,分别称为存储区域0,1...S-1,每个存储区域用于存储一个数据包及其相关信息;设置寄存器指针,指示最新存储数据包的存储区域的下一个存储区域;
所述队列控制模块是用于:
数据包到达时,按其到达顺序依次存入存储区域0至S-1,存满S个存储区域后;第S+1个数据包到达时,其覆盖存储区域0中的数据包,后续到达的数据包依次类推;以及,接收到新数据包时,根据寄存器指针获取寄存器中各数据包的到达顺序,根据该到达顺序判断与接收到的数据包位于相同队列且最接近的数据包。
其中,所述令牌桶算法模块是用于:
如果所述时间间隔小于预设的第一门限,则从所述最接近数据包的令牌桶算法计算结果缓存区中获取所述参数和中间变量;
如果所述时间间隔大于预设的第二门限,则从所述参数变量存储模块获取所述参数和中间变量;以及
如果所述时间间隔大于所述第一门限,小于所述第二门限,则从中间变量结果寄存器中获取所述参数和中间变量,其中,所述第一门限小于第二门限。
其中,所述令牌桶运算模块是用于:
判断令牌桶是否溢出,如果溢出,直接将令牌桶填满;如果未溢出,根据获取的中间变量中上一个数据包的到达时刻和当前时刻得到两个数据包的时间间隔,根据该时间间隔计算要添加的令牌数。
其中,所述队列控制模块还用于:为每个队列设置溢出标志位,为系统计数器设置进位标志;每处理完一个数据包时,将该数据包所在队列的溢出标志位置为B1,指示未溢出;
系统计数器溢出时,对每个队列进行溢出扫描:如果该队列的溢出标志位为B1,将该队列的溢出标志位设置为B2,指示系统计数器溢出一次;如果该队列的溢出标志位为B2或B3,将该队列的溢出标志位设置为B3,指示系统计数器至少溢出两次;
所述令牌桶算法模块是用于根据下述方式判断令牌桶是否溢出:
获取所述溢出标志位,如果所述溢出标志位为B1,则令牌桶未溢出;如果所述溢出标志为B2,且该队列上一个数据包的到达时刻和系统计数器当前时刻的进位标志不同,且该队列当前数据包的到达时刻大于等于该队列上一数据包的到达时刻,则令牌桶溢出;如果所述溢出标志位为B3,则令牌桶溢出。
采用本发明所述方法和装置,与现有技术相比,可以根据需求动态的配置令牌桶算法。每个队列独立的算法参数,方便不同的业务需求,而且,还通过溢出扫描处理,方便令牌的添加计算。
附图说明
图1是本发明系统框图;
图2是本发明中相同队列比较图;
图3是本发明中溢出扫描处理图。
具体实施方式
目前,针对流量监管方法,往往设备中只支持1~2种算法,不能根据实际网络进行动态的配置。而且,对于标记的颜色,只能固定的根据通用算法进行处理,无法根据网络实际情况对流量进行控制和监测。比如,网络带宽可用量很大,由于配置的通过流量很小,导致带宽利用率很低。如果可配置颜色的不同处理,可以充分根据实际网络进行流量控制,对不同的流量层次进行监控。另外,很多流量监管装置,对于所有的业务报文的流量控制采用一套参数,这样,对于不同的特定业务就会显得“不公平”。如果每一队列采用独立的算法和参数配置,这样就会根据需求对每一队列独立处理,互不影响。
本发明提提供的流量监管方法的核心思想是:根据队列不同,为每个队列设置一种算法参数,接收到数据包时,根据数据包所在队列选择相应的算法参数进行令牌桶计算。
下面结合附图对技术方案的实施作进一步的详细描述。
本发明提供一种流量监管方法,包括:
在参数变量存储模块中存储若干个队列对应的参数和中间变量及令牌桶算法;
接收到队列的数据包时,获取该接收到的数据包所在队列对应的参数和中间变量;
选择令牌桶算法,根据所述接收到的数据包所在队列对应的参数和中间变量和选择的令牌桶算法,进行令牌桶计算,得到令牌桶算法结果;
根据所述令牌桶算法结果更新所述接收到的数据包所在队列对应的参数和中间变量。
其中,按如下方法获取该接收到的数据包所在队列对应的参数和中间变量:
接收到数据包后,存储所述接收到的数据包,判断已存储的数据包中是否存在与接收到的所述数据包位于相同队列的数据包,如果存在,找出与所述接收到的数据包位于相同队列且最接近的数据包以及所述最接近数据包与接收到的数据包的时间间隔,根据该最接近数据包和所述时间间隔获取其所在队列对应的参数和中间变量;如果不存在,则从所述参数变量存储模块中获取所述接收到的数据包所在的队列对应的参数和中间变量。
其中,按如下方法存储数据包:
数据包到达时,按其到达顺序依次存入一寄存器的存储区域0至S-1,存满S个存储区域后,第S+1个数据包到达时,覆盖存储区域0中的数据包,后续到达的数据包依次类推,所述寄存器的寄存器指针指向最新存储数据包的存储区域的下一个存储区域;
所述判断已存储的数据包中是否存在与接收到的所述数据包位于相同队列的数据包的步骤包括:
接收到新数据包时,根据寄存器指针获取寄存器中各数据包的到达顺序,根据该到达顺序判断与接收到的数据包位于相同队列且最接近的数据包。
其中,所述根据该最接近数据包和所述时间间隔获取其所在队列对应的参数和中间变量包括:
如果所述时间间隔小于预设的第一门限,则从所述最接近数据包的令牌桶算法计算结果缓存区中获取所述参数和中间变量;
如果所述时间间隔大于预设的第二门限,则从所述参数变量存储模块获取所述参数和中间变量;
如果所述时间间隔大于所述第一门限,小于所述第二门限,则从中间变量结果寄存器中获取所述参数和中间变量,其中,所述第一门限小于第二门限。
其中,所述令牌桶计算包括:
判断令牌桶是否溢出,如果溢出,直接将令牌桶填满;如果未溢出,根据获取的中间变量中上一个数据包的到达时刻和当前时刻得到两个数据包的时间间隔,根据该时间间隔计算要添加的令牌数。
其中,所述方法还包括,为每个队列设置溢出标志位,为系统计数器设置进位标志;每处理完一个数据包时,将该数据包所在队列的溢出标志位置为B1,指示未溢出;
系统计数器溢出时,如果该队列的溢出标志位为B1,将该队列的溢出标志位设置为B2,指示系统计数器溢出一次;如果该队列的溢出标志位为B2或B3,将该队列的溢出标志位设置为B3,指示系统计数器至少溢出两次;
所述判断令牌桶是否溢出的步骤包括:
获取溢出标志位,如果所述溢出标志位为B1,则令牌桶未溢出;如果所述溢出标志为B2,且该队列上一个数据包的到达时刻和当前时刻的系统计数器的进位标志不同,且该队列当前数据包的到达时刻大于等于该队列上一数据包的到达时刻,则令牌桶溢出;如果所述溢出标志位为B3,则令牌桶溢出。
下面通过一具体实施例说明本发明所述可动态配置令牌桶算法的流量监管方法,包括:
第一步,接收到数据包时,判断已存储的数据包中是否存在与接收到的数据包位于相同队列的数据包;
接收到数据包后,还存储所述接收到的数据包,初始时,由于没有存储数据包,则判断不存在与接收到的数据包位于相同队列的数据包。
第二步,根据判断结果得到是否相同队列的数据包,读取相应的参数和中间变量。其中:
如果不存在相同队列的数据包,则本队列上一个数据包的中间变量已经存入参数变量存储模块,此时参数变量存储模块里的值是最新的值,从参数变量存储模块获取参数和中间变量;
如果存在相同队列的数据包,相同队列的包可能同时存在多个,但是选取最接近的相同队列的数据包的位置作为指示,以获取最新的中间变量。此时,本队列上一个数据包的中间变量并不一定存入参数变量存储模块,可能在令牌桶算法结果缓存区或者中间变量结果寄存器中,需要根据相同队列数据包的位置和时间间隔确定具体从哪里获取中间变量。接收到的数据包和最接近数据包的时间间隔不同,获取参数和中间变量的方法不同。设置第一门限和第二门限,将所述时间间隔与所述门限进行比较,获取参数和中间变量,包括:
如果所述时间间隔不超过第一门限,则此时该最近数据包的令牌桶计算中间变量结果还在缓存区中,并没有存入中间变量结果寄存器中,更没有存入参数变量存储模块中,只能从该最接近数据包的令牌桶计算结果缓存区中获取参数和中间变量;
如果所述时间间隔超过第二门限,则此时中间变量结果已经存入参数变量存储模块,进入令牌桶运算的中间变量可以从参数变量存储模块获取;
如果所述时间间隔在第一门限和第二门限之间,则此时中间变量的运算结果存入中间变量结果寄存器中,但没有存入参数变量存储模块中,进入令牌桶运算的参数和中间变量只能从中间变量结果寄存器中获取。
第三步,计算需要添加的令牌数,选择要参与令牌桶算法的初始变量;
其中,所述初始变量是指本队列上一个数据包的令牌桶算法的剩余令牌数。
其中,按如下方法计算需要添加的令牌数:
判断令牌桶是否溢出,如果溢出,直接将令牌桶填满;如果未溢出,根据读取的中间变量中该队列的上一个数据包的到达时刻和当前时刻的系统计数器值做差值运算,得到两个数据包的时间间隔,再根据读取的参数中的令牌添加速率,得到此段时间累积的令牌数,从而得到需要添加的令牌数。
具体判断令牌桶是否溢出是根据每个队列的溢出标志位以及系统计数器的进位标志,包括:
为每个队列设置溢出标志位,为系统计数器设置进位标志;
每处理完一个数据包时,将该数据包所在队列的溢出标志位置为B1,指示未溢出;
当系统计数器溢出时,变更其进位标志,扫描各队列的溢出标志位,对任一队列:
如果该队列的溢出标志位为B1,将该队列的溢出标志位设置为B2,指示系统计数器溢出一次;
如果该队列的溢出标志位为B2或B3,将该队列的溢出标志位设置为B3,指示系统计数器至少溢出两次;
计算要添加的令牌数时,获取溢出标志位,
如果溢出标志位为B1,则令牌桶未溢出;
如果溢出标志为B2,且该队列上一个数据包的到达时刻和系统计数器当前时刻的进位标志不同,且该队列当前数据包的到达时刻大于等于该队列上一数据包的到达时刻,则令牌桶溢出;
如果溢出标志位为B3,则令牌桶溢出。
令牌桶未溢出时,根据读取的中间变量中该队列的上一个数据包的时间计数器和当前时刻的系统计数器值做差值运算,得到两个数据包的时间间隔,再根据读取的参数中的令牌添加速率,得到此段时间累积的令牌数,从而得到需要添加的令牌数。
其中,B1可为00,B2可为01,B3可为10,此处仅为示例,也可使用其他值进行表示。另外,也可使用其他方法标识系统计数器是否溢出。
第四步,根据数据包所在队列的配置选择令牌桶算法进行计算;
所述配置中包含是否采取令牌桶算法,采用的哪一种算法,此算法下的令牌速率和令牌桶深是多少,此算法对于运算结果采取何种丢弃策略等。该配置存储在参数变量存储模块中,根据数据包所在队列的队列标识(可用队列号或队列描述符等表示)查找其对应的配置,选择令牌桶算法。
第五步,得到令牌桶算法最终结果,存入参数变量存储模块。
令牌桶算法最终结果中包含此次操作的颜色信息和剩余的令牌数。
重复第一步到第五步。
本发明通过对相同队列的数据包的判断,加大了处理的吞吐量。现有技术中,需等到前一个数据包的令牌桶运算结果已经存储到参数变量存储模块中,才能进行同一队列下一个数据包的令牌桶运算,处理速度较慢。本发明中,不需要等前一个数据包的令牌桶运算结果存储到参数变量存储模块中就可以进行下一数据包的处理,缩短了处理时间,加大了处理的吞吐量。另外,本发明可以针对不同队列配置不同的令牌桶算法,方便不同业务的需求。
本发明的关键是参与令牌桶算法的变量要及时准确,因此,相同队列包的指示需要判断准确,以确保每次令牌桶算法特别是相邻的相同队列包的令牌桶算法的正确。对于处理连续相同队列的小包,如果无法从参数变量存储模块获取计算的参数和中间变量,则需要从上次的计算结果或者暂存结果的缓存区或寄存器获得,需要根据队列控制模块的相同队列的指示标志来获得正确的参数和中间变量。
本发明提供的队列比较部分的处理包括:
设置寄存器,该寄存器包括S个存储区域,分别称为存储区域0,1...S-1,每个存储区域存储一个数据包及其相关信息(比如队列号),数据包到达时,按其到达顺序依次存入存储区域0至S-1,存满S个存储区域后,第S+1个数据包到达时,覆盖存储区域0中的数据包,后续到达的数据包依次类推。设置寄存器指针,指向最新存储速据包的存储区域的下一个存储区域。每个存储区域对应一时间计数器和一寄存器队列信息有效标志,其中,时间计数器记录该存储区域中的数据包的到达时间;寄存器队列信息有效标志指示存储区域中的数据包是否有效。接收到新数据包时,根据寄存器指针获取寄存器中各数据包的到达顺序,比如,寄存器指针指示存储区域i时,寄存器中各数据包的按最近到达顺序排序为:i-1...0,S-1,S-2,,,,i;根据该到达顺序可以判断与接收到的数据包位于相同队列且最接近的数据包。S的取值可以根据需要而定。当然,本发明不限于该方法,比如,可以记录每个数据包的到达时刻与其队列号,接收到新数据包时,直接查找队列号,查到相同队列的数据包后,再比较各数据包的到达时刻,得到最接近数据包。采用本发明所述的寄存器方法,由于数据包到达时刻已进行排序,找到相同队列的各数据包后,不需要再进行比较即可获得最接近的数据包。时间计数器可设置一门限标志位,当超过设定的第二门限时,时间计数器溢出,表明数据包的时间间隔已超过第二门限,可从参数变量存储模块获得参数和中间变量。这种方法,可以使得时间计数器的位数较小,即根据第二门限确定时间计数器的位数,降低时间计数器的成本。该第二门限大于从接收到数据包到令牌桶计算完成且将计算结果存储到参数变量存储模块的时间。
比如,S=8时,设定刚进入的数据包其所在度列为m,已存储的8个数据包的存储区域分别为0,1,2,3,4,5,6,7。8个包的信息用移位寄存器来实现,通过包触发进行移位操作。每当进入一个数据包,将相应的寄存器队列信息有效标志位置1,同时时间计数器开始计时。对于存储的最新的数据包,要根据当前寄存器指针判断。如当前寄存器指针为2,则按数据包进入时刻由最近排序为1,0,7,6,5,4,3,2。数据包m根据此顺序判断得到位于相同队列的最接近数据包的。
图2是本发明队列比较示意图。如图2所示,本发明队列比较包括以下步骤:
步骤201:新进入的队列和已存的8个队列进行比较;如果有相同队列并且队列信息有效,则将相同队列标志为置1,否则,将相同队列标志置为0。
步骤202:如果有相同队列,找出与接收到的数据包位于相同队列且最接近的数据包,获取该最接近数据包与接收到的数据包的时间间隔。
步骤203:设定第一门限和第二门限;存在相同队列包时,如果所述时间间隔小于第一门限,则设置时间间隔标志位为A1;如果时间间隔大于第一门限小于第二门限,则设置时间间隔标志位为A2;否则,如果时间间隔大于第二门限,则设置时间间隔标志位为A3,其中,第一门限小于第二门限,其中,时间间隔标志位可以用2bit表示,A1可以为00,A2可以为01,A3可以为10。
根据时间间隔标志位的取值获取中间变量,即时间间隔标志位为A1时,从该最接近数据包的令牌桶计算结果缓存区中获取参数和中间变量;时间间隔标志位为A2时,从中间变量结果寄存器中获取参数和中间变量;时间间隔标志位为A3时,从参数变量存储模块获取参数和中间变量。
图3是本发明中队列溢出扫描流程图。
为解决计数器溢出的问题,将计数器扩大1bit,同时为每个队列设置2bit的溢出标志位,每次计数器为0时,依次将所有队列的溢出标志位加1(如果为2’b10则不计算),每次处理完某个队列的数据包时,将此溢出标志位清0。在计算两个数据包之间的时间间隔时,遵循以下规律:
如果溢出标志位为2’b00,则直接将当前时刻减去前一个包到达时刻得到时间间隔;
如果溢出标志位为2’b01,则如果当前时刻大于等于前一个数据包到达时刻,且当前时刻系统计数器的进位标志和前一个数据包到达时刻的系统计数器的进位标志不同,则令牌桶已经溢出,直接将令牌桶填满;否则直接将当前时刻减去前一个包到达时刻得到时间间隔;
如果溢出标志位为2’b10,则令牌桶已经溢出,直接将令牌桶填满。
此种方法极大方便了添加令牌的判断。
其中,系统计数器的位数满足:如果相同队列的两个数据包之间的时间间隔超过系统计数器的最大值,则令牌桶溢出。
如图3所示,队列溢出扫描处理操作包括:
步骤301:判断系统计数器是否溢出,如果溢出,进行溢出扫描处理,执行步骤302;否则,等待;
步骤302:进行溢出扫描处理,从0队列依次扫描;如果发生正常进包触发读取溢出标志位和扫描冲突,将溢出标志位置为0;否则,判断溢出标志位是否为10,如果是,执行步骤303,否则,执行步骤304;
步骤303,溢出标志位保留为10,执行步骤305;
步骤304,将溢出标志位置为加1,执行步骤305;
步骤305,队列递增依次进行溢出扫描处理,直到处理完最后一个队列,等待下一次的溢出扫描处理。
对于本次不能添加令牌的队列,需要保存上次的时间计数器值来进行下一次的令牌添加操作,保证令牌不丢失。
本发明提供一种流量监管装置,包括队列控制模块、参数变量存储模块和令牌桶算法模块,其中:
所述队列控制模块用于:接收到数据包后,存储所述接收到的数据包,以及,判断已存储的数据包中是否存在与接收到的所述数据包位于相同队列的数据包,如果存在,找出与所述数据包位于相同队列且最接近的数据包,发送相同队列指示和最接近数据包与接收到的数据包的时间间隔给令牌桶算法模块;如果不存在,发送非相同队列指示给令牌桶算法模块;以及根据令牌桶算法模块的令牌桶算法结果更新所述接收到的数据包所在队列对应的参数和中间变量;
所述参数变量存储模块,用于存储若干个队列对应的参数和中间变量及令牌桶算法;
所述令牌桶算法模块,用于接收到数据包时,获取该接收到的数据包所在队列对应的参数和中间变量;以及,选择令牌桶算法,根据所述接收到的数据包所在队列对应的参数和中间变量和所选择的令牌桶算法,进行令牌桶计算,得到令牌桶算法结果。
其中,所述令牌桶算法模块根据如下方法获取参数和中间变量:接收到相同队列指示和所述时间间隔时,根据所述时间间隔与所述最接近数据包获取其所在队列对应的参数和中间变量;接收到非相同队列指示时,从所述参数变量存储模块中获取所述接收到的数据包所在的队列对应的参数和中间变量。
其中,根据所述时间间隔与所述最接近数据包获取其所在队列对应的参数和中间变量包括:
如果所述时间间隔小于预设的第一门限,则从所述最接近数据包的令牌桶算法计算结果缓存区中获取所述参数和中间变量;
如果所述时间间隔大于预设的第二门限,则从所述参数变量存储模块获取所述参数和中间变量;
如果所述时间间隔大于所述第一门限,小于所述第二门限,则从中间变量结果寄存器中获取所述参数和中间变量,其中,所述第一门限小于第二门限。
其中,所述装置还包括寄存器,所述寄存器包括S个存储区域,分别称为存储区域0,1...S-1,每个存储区域用于存储一个数据包及其相关信息;设置寄存器指针,指示最新存储数据包的存储区域的下一个存储区域;
所述队列控制模块是用于:数据包到达时,按其到达顺序依次存入存储区域0至S-1,存满S个存储区域后;第S+1个数据包到达时,其覆盖存储区域0中的数据包,后续到达的数据包依次类推;以及,接收到新数据包时,根据寄存器指针获取寄存器中各数据包的到达顺序,根据该到达顺序判断与接收到的数据包位于相同队列且最接近的数据包。
所述令牌桶运算模块是用于:判断令牌桶是否溢出,如果溢出,直接将令牌桶填满;如果未溢出,根据获取的中间变量中上一个数据包的到达时刻和当前时刻得到两个数据包的时间间隔,根据该时间间隔计算要添加的令牌数。
所述队列控制模块还用于:为每个队列设置溢出标志位,为系统计数器设置进位标志;每处理完一个数据包时,将该数据包所在队列的溢出标志位置为B1,指示未溢出;
系统计数器溢出时,对每个队列进行溢出扫描:如果该队列的溢出标志位为B1,将该队列的溢出标志位设置为B2,指示系统计数器溢出一次;如果该队列的溢出标志位为B2或B3,将该队列的溢出标志位设置为B3,指示系统计数器至少溢出两次;
所述令牌桶算法模块是用于根据下述方式判断令牌桶是否溢出:
获取所述溢出标志位,如果所述溢出标志位为B1,则令牌桶未溢出;如果所述溢出标志为B2,且该队列上一个数据包的到达时刻和系统计数器当前时刻的进位标志不同,且该队列当前数据包的到达时刻大于等于该队列上一数据包的到达时刻,则令牌桶溢出;如果所述溢出标志位为B3,则令牌桶溢出。
如图1所示为流量监管装置的框图,包括队列控制模块、参数变量存储模块和令牌桶算法模块,其中:
队列控制模块,接收到数据包时,判断是否存在相同队列的数据包,给出相同队列指示、最接近数据包的位置和时间间隔;根据队列描述符发送读使能和读地址;根据令牌桶算法结果发送写使能和写地址,以将令牌桶算法结果送入参数变量存储模块。
参数变量存储模块用于存储令牌桶算法需要的参数和中间变量,由于数据要回写,要进行读写冲突的处理;
令牌桶算法模块用于:根据队列控制模块的相同队列指示判断令牌桶算法需要的参数和中间变量,选择参数和中间变量进行令牌桶算法计算,得到令牌桶算法的最终结果;在进行令牌桶算法计算时,还根据溢出标志位判断添加的令牌是否溢出,如果溢出,则直接将令牌桶填满。
其中,队列控制模块根据接收的数据包判断是否有相同队列的数据包,有相同队列的数据包时,获取相同队列数据包的位置间隔和时间间隔,同时触发读使能和读地址(比如,队列号),根据是否有完成的令牌桶算法结果来触发写使能和写地址(比如,队列号)。令牌桶算法模块计算需要添加的令牌,根据队列控制模块的相同队列指示选择参与令牌桶算法的参数和变量,选择令牌桶算法进行令牌桶计算,得到最终结果,输出给参数变量存储模块,作为下一次的令牌桶算法变量。
由于本发明令牌桶算法可以动态的配置,所以要求算法的参数变量只能由上一次相同队列的结果影响,这样便于动态切换而不影响整个监管的效果。通过参数开关切换算法,极大方便了用户配制的灵活性。通过对相同队列包进行判断,加大了处理的吞吐量,大大提高了处理效率。
以上所述中的队列等同于业务。
以上所述仅为本发明的较佳的具体实施方式,但本发明的保护范围并不仅限于此,凡在本发明的精神原则之内所作的任何修改、等同替换等都在本发明保护范围内。

Claims (12)

1.一种流量监管方法,其特征在于,包括:
在参数变量存储模块中存储若干个队列对应的参数和中间变量及令牌桶算法;
接收到队列的数据包时,获取该接收到的数据包所在队列对应的参数和中间变量;
选择令牌桶算法,根据所述接收到的数据包所在队列对应的参数和中间变量和选择的令牌桶算法,进行令牌桶计算,得到令牌桶算法结果;
根据所述令牌桶算法结果更新所述接收到的数据包所在队列对应的参数和中间变量。
2.如权利要求1所述的方法,其特征在于:
所述获取该接收到的数据包所在队列对应的参数和中间变量的步骤包括:
接收到数据包后,存储所述接收到的数据包,判断已存储的数据包中是否存在与接收到的所述数据包位于相同队列的数据包,如果存在,找出与所述接收到的数据包位于相同队列且最接近的数据包以及所述最接近数据包与接收到的数据包的时间间隔,根据该最接近数据包和所述时间间隔获取其所在队列对应的参数和中间变量;如果不存在,则从所述参数变量存储模块中获取所述接收到的数据包所在的队列对应的参数和中间变量。
3.如权利要求2所述的方法,其特征在于,
所述存储数据包的步骤包括:
数据包到达时,按其到达顺序依次存入一寄存器的存储区域0至S-1,存满S个存储区域后,第S+1个数据包到达时,覆盖存储区域0中的数据包,后续到达的数据包依次类推,所述寄存器的寄存器指针指向最新存储数据包的存储区域的下一个存储区域;
所述判断已存储的数据包中是否存在与接收到的所述数据包位于相同队列的数据包的步骤包括:
接收到新数据包时,根据寄存器指针获取寄存器中各数据包的到达顺序,根据该到达顺序判断与接收到的数据包位于相同队列且最接近的数据包。
4.如权利要求2所述的方法,其特征在于,所述根据该最接近数据包和所述时间间隔获取其所在队列对应的参数和中间变量的步骤包括:
如果所述时间间隔小于预设的第一门限,则从所述最接近数据包的令牌桶算法计算结果缓存区中获取所述参数和中间变量;
如果所述时间间隔大于预设的第二门限,则从所述参数变量存储模块获取所述参数和中间变量;
如果所述时间间隔大于所述第一门限,小于所述第二门限,则从中间变量结果寄存器中获取所述参数和中间变量,其中,所述第一门限小于第二门限。
5.如权利要求1所述的方法,其特征在于,所述令牌桶计算包括:
判断令牌桶是否溢出,如果溢出,直接将令牌桶填满;如果未溢出,根据获取的中间变量中上一个数据包的到达时刻和当前时刻得到两个数据包的时间间隔,根据该时间间隔计算要添加的令牌数。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
为每个队列设置溢出标志位,为系统计数器设置进位标志;每处理完一个数据包时,将该数据包所在队列的溢出标志位置为B1,指示未溢出;
系统计数器溢出时,如果该队列的溢出标志位为B1,将该队列的溢出标志位设置为B2,指示系统计数器溢出一次;如果该队列的溢出标志位为B2或B3,将该队列的溢出标志位设置为B3,指示系统计数器至少溢出两次;
所述判断令牌桶是否溢出的步骤包括:
获取溢出标志位,如果所述溢出标志位为B1,则令牌桶未溢出;如果所述溢出标志为B2,且该队列上一个数据包的到达时刻和当前时刻的系统计数器的进位标志不同,且该队列当前数据包的到达时刻大于等于该队列上一数据包的到达时刻,则令牌桶溢出;如果所述溢出标志位为B3,则令牌桶溢出。
7.一种流量监管装置,其特征在于,包括队列控制模块、参数变量存储模块和令牌桶算法模块,其中:
所述队列控制模块,用于根据令牌桶算法模块的令牌桶算法结果更新所述接收到的数据包所在队列对应的参数和中间变量;
所述参数变量存储模块,用于存储若干个队列对应的参数和中间变量及令牌桶算法;
所述令牌桶算法模块,用于接收到数据包时,获取该接收到的数据包所在队列对应的参数和中间变量;以及,选择令牌桶算法,根据所述接收到的数据包所在队列对应的参数和中间变量和所选择的令牌桶算法,进行令牌桶计算,得到令牌桶算法结果。
8.如权利要求7所述的装置,其特征在于:
所述队列控制模块还用于:接收到数据包后,存储所述接收到的数据包,以及,判断已存储的数据包中是否存在与接收到的所述数据包位于相同队列的数据包,如果存在,找出与所述数据包位于相同队列且最接近的数据包,发送相同队列指示和最接近数据包与接收到的数据包的时间间隔给令牌桶算法模块;如果不存在,发送非相同队列指示给令牌桶算法模块;
所述令牌桶算法模块,用于接收到相同队列指示和所述时间间隔时,根据所述时间间隔与所述最接近数据包获取其所在队列对应的参数和中间变量;接收到非相同队列指示时,从所述参数变量存储模块中获取所述接收到的数据包所在的队列对应的参数和中间变量。
9.如权利要求8所述的装置,其特征在于,
所述装置还包括寄存器,所述寄存器包括S个存储区域,分别称为存储区域0,1...S-1,每个存储区域用于存储一个数据包及其相关信息;设置寄存器指针,指示最新存储数据包的存储区域的下一个存储区域;
所述队列控制模块是用于:
数据包到达时,按其到达顺序依次存入存储区域0至S-1,存满S个存储区域后;第S+1个数据包到达时,其覆盖存储区域0中的数据包,后续到达的数据包依次类推;以及,接收到新数据包时,根据寄存器指针获取寄存器中各数据包的到达顺序,根据该到达顺序判断与接收到的数据包位于相同队列且最接近的数据包。
10.如权利要求8所述的装置,其特征在于,
所述令牌桶算法模块是用于:
如果所述时间间隔小于预设的第一门限,则从所述最接近数据包的令牌桶算法计算结果缓存区中获取所述参数和中间变量;
如果所述时间间隔大于预设的第二门限,则从所述参数变量存储模块获取所述参数和中间变量;以及
如果所述时间间隔大于所述第一门限,小于所述第二门限,则从中间变量结果寄存器中获取所述参数和中间变量,其中,所述第一门限小于第二门限。
11.如权利要求7所述的装置,其特征在于,
所述令牌桶运算模块是用于:
判断令牌桶是否溢出,如果溢出,直接将令牌桶填满;如果未溢出,根据获取的中间变量中上一个数据包的到达时刻和当前时刻得到两个数据包的时间间隔,根据该时间间隔计算要添加的令牌数。
12.如权利要求11所述的装置,其特征在于,
所述队列控制模块还用于:为每个队列设置溢出标志位,为系统计数器设置进位标志;每处理完一个数据包时,将该数据包所在队列的溢出标志位置为B1,指示未溢出;
系统计数器溢出时,对每个队列进行溢出扫描:如果该队列的溢出标志位为B1,将该队列的溢出标志位设置为B2,指示系统计数器溢出一次;如果该队列的溢出标志位为B2或B3,将该队列的溢出标志位设置为B3,指示系统计数器至少溢出两次;
所述令牌桶算法模块是用于根据下述方式判断令牌桶是否溢出:
获取所述溢出标志位,如果所述溢出标志位为B1,则令牌桶未溢出;如果所述溢出标志为B2,且该队列上一个数据包的到达时刻和系统计数器当前时刻的进位标志不同,且该队列当前数据包的到达时刻大于等于该队列上一数据包的到达时刻,则令牌桶溢出;如果所述溢出标志位为B3,则令牌桶溢出。
CN201010222999.6A 2010-07-02 2010-07-02 一种流量监管方法和装置 Active CN102315956B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010222999.6A CN102315956B (zh) 2010-07-02 2010-07-02 一种流量监管方法和装置
PCT/CN2011/071116 WO2012000317A1 (zh) 2010-07-02 2011-02-21 一种流量监管方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010222999.6A CN102315956B (zh) 2010-07-02 2010-07-02 一种流量监管方法和装置

Publications (2)

Publication Number Publication Date
CN102315956A true CN102315956A (zh) 2012-01-11
CN102315956B CN102315956B (zh) 2014-10-22

Family

ID=45401368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010222999.6A Active CN102315956B (zh) 2010-07-02 2010-07-02 一种流量监管方法和装置

Country Status (2)

Country Link
CN (1) CN102315956B (zh)
WO (1) WO2012000317A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833134A (zh) * 2012-09-04 2012-12-19 中国人民解放军理工大学 负载自适应的网络数据流流量测量方法
CN103338159A (zh) * 2013-06-19 2013-10-02 华为技术有限公司 轮询调度实现方法和装置
CN103365965A (zh) * 2013-06-21 2013-10-23 大唐移动通信设备有限公司 一种数据的汇总处理方法和装置
CN105577563A (zh) * 2015-12-22 2016-05-11 中国电子科技集团公司第三十二研究所 流量管理的方法
CN105718274A (zh) * 2014-11-30 2016-06-29 中国科学院沈阳自动化研究所 一种auv中智能节点在线更新软件的方法
CN106375238A (zh) * 2015-07-21 2017-02-01 深圳市中兴微电子技术有限公司 一种流量监管方法及装置
CN106982174A (zh) * 2017-04-13 2017-07-25 携程旅游网络技术(上海)有限公司 线上流量管控方法及系统
CN108989239A (zh) * 2017-06-02 2018-12-11 中兴通讯股份有限公司 过载保护方法及装置、控制器及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110087261B (zh) * 2019-04-28 2020-11-06 电子科技大学 一种基于OpenWrt的企业级无线局域网流量控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1964326A (zh) * 2006-12-04 2007-05-16 杭州华为三康技术有限公司 流量监管方法及流量监管设备
CN101616441A (zh) * 2009-08-04 2009-12-30 中兴通讯股份有限公司 报文到达时间间隔的计算方法及装置
CN101741603A (zh) * 2008-11-11 2010-06-16 中兴通讯股份有限公司 一种基于令牌桶的流量监管方法及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1964326A (zh) * 2006-12-04 2007-05-16 杭州华为三康技术有限公司 流量监管方法及流量监管设备
CN101741603A (zh) * 2008-11-11 2010-06-16 中兴通讯股份有限公司 一种基于令牌桶的流量监管方法及设备
CN101616441A (zh) * 2009-08-04 2009-12-30 中兴通讯股份有限公司 报文到达时间间隔的计算方法及装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833134A (zh) * 2012-09-04 2012-12-19 中国人民解放军理工大学 负载自适应的网络数据流流量测量方法
CN103338159A (zh) * 2013-06-19 2013-10-02 华为技术有限公司 轮询调度实现方法和装置
US9571413B2 (en) 2013-06-19 2017-02-14 Huawei Technologies Co., Ltd. Method and apparatus for implementing round robin scheduling
CN103365965A (zh) * 2013-06-21 2013-10-23 大唐移动通信设备有限公司 一种数据的汇总处理方法和装置
CN105718274A (zh) * 2014-11-30 2016-06-29 中国科学院沈阳自动化研究所 一种auv中智能节点在线更新软件的方法
CN106375238A (zh) * 2015-07-21 2017-02-01 深圳市中兴微电子技术有限公司 一种流量监管方法及装置
CN105577563A (zh) * 2015-12-22 2016-05-11 中国电子科技集团公司第三十二研究所 流量管理的方法
CN105577563B (zh) * 2015-12-22 2019-01-29 中国电子科技集团公司第三十二研究所 流量管理方法
CN106982174A (zh) * 2017-04-13 2017-07-25 携程旅游网络技术(上海)有限公司 线上流量管控方法及系统
CN108989239A (zh) * 2017-06-02 2018-12-11 中兴通讯股份有限公司 过载保护方法及装置、控制器及存储介质
CN108989239B (zh) * 2017-06-02 2023-10-13 中兴通讯股份有限公司 过载保护方法及装置、控制器及存储介质

Also Published As

Publication number Publication date
CN102315956B (zh) 2014-10-22
WO2012000317A1 (zh) 2012-01-05

Similar Documents

Publication Publication Date Title
CN102315956A (zh) 一种流量监管方法和装置
CN102130823B (zh) 用于数据通信的方法和网络设备
CN101009655B (zh) 流量调度方法及装置
CN105745870B (zh) 从用于检测大流的串行多级过滤器去除头部过滤器以便清除流以实现延长操作
CN101352007B (zh) 用于流量计量的多优先级多颜色标记器
CN1781287B (zh) 用于柔性带宽分配的方法和设备
CN100596096C (zh) 具有通信质量控制功能的包中继装置及其执行的包发送方法
JP3684308B2 (ja) スケジューリング制御装置および交換機
JP3526269B2 (ja) ネットワーク間中継装置及び該中継装置における転送スケジューリング方法
CN101827073B (zh) 跟踪片段数据流
JP2014187421A (ja) 通信装置及びパケットスケジューリング方法
US20030135449A1 (en) Weighted credit-based arbitration using credit history
CN1985482B (zh) 网络设备和业务量整形方法
JP2001230810A (ja) パケット流量制御装置および方法
CN108600118A (zh) 报文处理方法、装置以及电子设备
CN105308906A (zh) 时间上高效的计数器和计量器架构
CN107113251A (zh) 使用传送网的动态带宽调度
CN114630214A (zh) 业务路由计算方法、装置、电子设备及可读存储介质
US20140050094A1 (en) Efficient Urgency-Aware Rate Control Scheme for Mulitple Bounded Flows
CN109039826B (zh) 数据采集方法、装置及电子设备
CN106921588A (zh) 一种流量控制方法、装置及设备
CN1798106B (zh) 在包交换的通信流之间调度传输链路容量的方法和装置
CN109361618A (zh) 数据流量标记方法、装置、计算机设备及存储介质
CN112688868B (zh) 一种面向电力物联网的周期感知tsn路由方法
CN101820394B (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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20120111

Assignee: SANECHIPS TECHNOLOGY Co.,Ltd.

Assignor: ZTE Corp.

Contract record no.: 2015440020319

Denomination of invention: Method and device for supervising flow

Granted publication date: 20141022

License type: Common License

Record date: 20151123

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
TR01 Transfer of patent right

Effective date of registration: 20221121

Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong

Patentee before: ZTE Corp.

TR01 Transfer of patent right