CN114205304B - 一种基于双漏桶的流量控制方法及装置、设备、存储介质 - Google Patents

一种基于双漏桶的流量控制方法及装置、设备、存储介质 Download PDF

Info

Publication number
CN114205304B
CN114205304B CN202111537010.5A CN202111537010A CN114205304B CN 114205304 B CN114205304 B CN 114205304B CN 202111537010 A CN202111537010 A CN 202111537010A CN 114205304 B CN114205304 B CN 114205304B
Authority
CN
China
Prior art keywords
message
leakage
bucket
barrel
double
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
CN202111537010.5A
Other languages
English (en)
Other versions
CN114205304A (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.)
Beijing Wuxin Technology Co ltd
Original Assignee
Beijing Wuxin Technology 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 Beijing Wuxin Technology Co ltd filed Critical Beijing Wuxin Technology Co ltd
Priority to CN202111537010.5A priority Critical patent/CN114205304B/zh
Publication of CN114205304A publication Critical patent/CN114205304A/zh
Application granted granted Critical
Publication of CN114205304B publication Critical patent/CN114205304B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种基于双漏桶的流量控制方法,所述双漏桶包括C桶和E桶,所述方法包括:当接收的报文有效时,获取所述双漏桶的索引信息和流量控制信号,根据所述流量控制信号判断所述报文是否需要测量;若是,根据所述双漏桶的索引信息进行漏桶测量,根据测量结果确定所述双漏桶的开关状态、色敏等级;根据所述报文携带的丢弃等级和双漏桶的开关状态、色敏等级,进行报文的填桶或丢弃处理。本申请通过采用双漏桶结构,实现报文流量控制,能够平滑网络上的报文流量,将输送到网络中的报文流量维持在一个平稳的水平,解决报文流量突发的问题。

Description

一种基于双漏桶的流量控制方法及装置、设备、存储介质
技术领域
本申请涉及数据通信技术领域,特别涉及一种基于双漏桶的流量控制方法及装置、设备、存储介质。
背景技术
随着网络通信技术的不断发展,互联网业务的种类和数量飞速增加,高速网络的数据传输更需要高质量的服务。在网络通信系统中,由于网络带宽有限,需要对注入到网络中的流量进行限制。
目前常用的限流策略多采用令牌桶算法,令牌桶算法的原理是系统会以一个恒定的速度往桶里放入令牌,而如果请求需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌可取时,则拒绝服务。令牌桶算法能够实现对平均流量的限制,可以支持突发流量。缺点在于当瞬时流量很大时,令牌桶算法需要一次性处理大量报文,输出的流量也会存在突发,在某些不允许流量突发的应用场景下,使用令牌桶算法的流量控制策略并不适用。
发明内容
有鉴于此,本申请提出一种基于双漏桶的流量控制方法及装置、设备、存储介质,通过采用双漏桶结构,并利用漏桶算法实现报文流量控制,能够平滑网络上的报文流量,将输送到网络中的报文流量维持在一个平稳的水平,从而解决报文流量突发的问题。
第一方面,本申请提供了一种基于双漏桶的流量控制方法,所述双漏桶包括C桶和E桶,所述方法包括:
当接收的报文有效时,获取所述双漏桶的索引信息和流量控制信号,根据所述流量控制信号判断所述报文是否需要测量;
若是,根据所述双漏桶的索引信息进行漏桶测量,根据测量结果确定所述双漏桶的开关状态、色敏等级;
根据所述报文携带的丢弃等级和所述双漏桶的开关状态、色敏等级,进行报文的填桶或丢弃处理。
由上,本申请通过采用C桶和E桶的双漏桶结构,该双漏桶的速率可统一配置,还可根据需求单独配置。基于该双漏桶,采用漏桶算法对接收的报文进行测量和处理,当接收的报文有效时,根据该报文的有效信号计算报文长度,并根据流量控制信号判断该报文是否需要测量;若是,根据双漏桶的索引信息,确定双漏桶的开关状态、色敏等级,然后根据该报文携带的丢弃等级以及双漏桶的开关状态、色敏等级,将该报文累加至对应的漏桶,直至双漏桶都无法在容纳报文时,将报文打上丢弃标记,进行就丢弃处理。采用本方法,可实现报文流量控制,能够平滑网络上的报文流量,将输送到网络中的报文流量维持在一个平稳的水平,从而解决报文流量突发的问题。
可选的,所述双漏桶采用色盲模式时,所述根据所述报文的丢弃等级和双漏桶的开关状态,进行报文的填桶或丢弃处理包括:
当C桶不满时,将所述报文累加至C桶,并将C桶的所述报文标记为绿色;
当C桶满且E桶不满时,将所述报文累加至E桶,并将E桶的所述报文标记为黄色,提升丢弃等级;
当C桶和E桶都满时,将所述报文标记为红色,并打上丢弃标记。
由上,本申请的双漏桶的报文处理模式可支持色盲模式或色敏模式,当双漏桶采用色盲模式时,则根据双漏桶的开关状态,将报文依次进行处理,当C桶不满时,可将报文累加至C桶,并将累加至C桶的报文标记为绿色,当C桶满且E桶不满时,将报文累加至E桶,并将累加至E桶的报文标记为黄色,提升报文的丢弃等级,当C桶和E桶都满时,将所述报文标记为红色,并打上丢弃标记。由此可实现双漏桶对报文的依次处理。
可选的,所述双漏桶采用色敏模式,且所述报文的丢弃等级小于等于所述漏桶的色敏等级时,所述根据所述报文的丢弃等级和双漏桶的开关状态,进行报文的填桶或丢弃处理包括:
当C桶不满时,将所述报文累加至C桶,并将C桶的所述报文标记为绿色;
当C桶满且E桶不满时,将所述报文累计至E桶,并将E桶的所述报文标记为黄色,提升丢弃等级;
当C桶和E桶都满时,将所述报文打上丢弃标记。
由上,本申请的双漏桶的报文处理模式可支持色盲模式或色敏模式,当双漏桶采用色敏模式时,则丢弃等级小于等于漏桶的色敏等级的报文为绿色报文,丢弃等级大于漏桶的色敏等级的报文为黄色报文,其中C桶只能累加绿色报文,E桶则可累加绿色报文和黄色报文,此时可根据报文的丢弃等级以及双漏桶的开关状态,将绿色报文累加至C桶,直至C桶满时,将绿色报文累加至E桶,并将E桶的报文标记为黄色,提升丢弃等级,当C桶和E桶都满时,则将报文打上丢弃标记。
可选的,所述双漏桶采用色敏模式时,且所述报文的丢弃等级大于所述漏桶的色敏等级时,所述根据所述报文的丢弃等级和双漏桶的开关状态,进行报文的填桶或丢弃处理还包括:
当E桶不满时,将所述报文累加至E桶,并将E桶的所述报文标记为黄色;
所述E桶满时,将所述报文打上丢弃标记。
由上,当双漏桶采用色敏模式时,将黄色报文累加至E桶,直至E桶满时,将该报文打上丢弃标记。
可选的,还包括:
根据所述报文的有效信号计算报文长度信息;
所述双漏桶分别具有计数器,所述双漏桶的计数器分别根据累加的报文长度信息和流出的报文长度信息进行更新,并在所述计数器的值大于漏桶阈值时,输出漏桶关闭信号。
由上,通过在双漏桶中分别配置计数器,当漏桶中有报文累加进来时,此时可根据累加的报文长度信息以及本时间段内流出的报文长度信息,更新该计数器的值,当该计数器的值大于漏桶阈值时,认为该漏桶已满,则输出该漏桶的关闭信息,更新其开关状态。
可选的,所述根据所述双漏桶的索引信息,确定所述双漏桶的开关状态包括:
根据所述双漏桶的索引信息分别读取所述双漏桶的上一个时间戳更新的计数器的值,根据所述上一个时间戳、当前时间、限流速率计算所述计数器的当前值,根据所述计数器的当前值与漏桶阈值,分别确定所述双漏桶的开关状态。
由上,本方法支持对多条流同时进行流量控制,每条流对应一个漏桶实例,当报文有效时,此时需要获取双漏桶的索引信息,根据该索引信息读取对应的漏桶的上一个时间戳的计数器的值,然后根据当前时间与上一个时间戳的时间差以及限流速率,计算计数器的当前值,然后根据该计数器的当前值与漏桶阈值的比较结果,分别确定该双漏桶的开关状态,以便于后续进行报文的处理。
可选的,当根据流量控制信号判断所述报文不需要进行测量时,将所述报文透传通过所述双漏桶。
由上,当根据流量控制信号计算判断该报文不需要被测量时,则可直接将该报文透传通过该双漏桶,无需再执行流量控制过程。
第二方面,本申请提供了一种基于双漏桶的流量控制装置,所述双漏桶包括C桶和E桶,所述装置包括测量模块和控制模块;
当接收的报文有效时,所述控制模块用于获取所述双漏桶的索引信息和流量控制信号,根据所述流量控制信号判断所述报文是否需要测量,若是,则将所述双漏桶的索引信息发送至所述测量模块;
所述测量模块用于根据所述双漏桶的索引信息进行漏桶测量,根据测量结果确定所述双漏桶的开关状态、色敏等级,并根据控制模块的判断结果将所述报文累加至对应的漏桶后,更新所述漏桶的开关状态;
所述控制模块还用于根据所述报文携带的丢弃等级和所述双漏桶的开关状态、色敏等级,进行报文的填桶或丢弃处理。
由上,本申请通过采用C桶和E桶的双漏桶结构,该双漏桶的速率可统一配置,还可根据需求单独配置。基于该双漏桶,采用漏桶算法对接收的报文进行测量和处理,当接收的报文有效时,可根据该报文的丢弃等级以及双漏桶的开关状态,将该报文累加至对应的漏桶,直至双漏桶都无法在容纳报文时,将报文打上丢弃标记,进行就丢弃处理。采用本装置,可实现报文流量控制,能够平滑网络上的报文流量,将输送到网络中的报文流量维持在一个平稳的水平,从而解决报文流量突发的问题。
第三方面,本申请提供了一种计算设备,所述计算设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的基于双漏桶的流量控制方法。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述的基于双漏桶的流量控制方法。
本申请的这些和其它方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
图1为本申请实施例提供的一种双漏桶结构的示意图;
图2为本申请实施例提供的一种基于双漏桶的流量控制方法的流程图;
图3为本申请实施例提供的一种基于双漏桶的流量控制装置的示意图;
图4为本申请实施例提供的一种计算设备的结构图。
应理解,上述结构示意图中,各框图的尺寸和形态仅供参考,不应构成对本申请实施例的排他性的解读。结构示意图所呈现的各框图间的相对位置和包含关系,仅为示意性地表示各框图间的结构关联,而非限制本申请实施例的物理连接方式。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
目前常用的令牌桶算法,当瞬时流量很大时,需要一次性处理大量报文,输出的流量也会存在突发,在某些不允许流量突发的应用场景下,使用令牌桶算法的流量控制策略并不适用。基于此,本申请实施例采用漏桶算法实现流量控制策略,漏桶算法能够以恒定的速率从漏桶中读出报文,能够平滑网络上的报文流量,将输送到网络中的报文流量维持在一个平稳的水平。如图1所示,本申请实施例的漏桶算法可依赖于双漏桶结构对输入的报文流量进行测量,根据报文的丢弃等级和漏桶的开关状态对不同颜色的报文进行不同的处理,实现对输入的报文流量的控制。具体的,该双漏桶结构包括C桶和E桶,该两个漏桶的速率可以单独配置,支持单速率和双速率模式,还支持色盲模式和色敏模式。两个漏桶各维护一个计数器,通过计数值表示漏桶当前累计的流量。
基于该双漏桶结构,结合控制模块和漏桶测量模块,其中控制模块可实现控制信息提取、报文长度计算、决策报文是否通过,漏桶测量模块实现测量功能。本申请实施例的流量控制过程可以分为流量统计、漏桶刷新和报文处理三个过程。
流量统计过程,每个漏桶把控制模块输入的报文长度信息累加至各自的计数器,然后将计数器的当前值与各自的漏桶阈值进行比较,如果大于阈值表示漏桶已满,漏桶关闭。根据各自计数器的当前值和各自的漏桶阈值的比较结果,通过漏桶测量模块对外提供一组开关信号(2个dlb_status.closed信号),分别表示E桶和C桶的开关状态,当每个桶的dlb_status.closed信号变为有效时,外部逻辑应停止向其发送新的流量信息直到dlb_status.closed信号变为无效。
漏桶刷新过程是从计数器扣除流出漏桶那部分流量值的过程,首先根据设定的限流速率和距离上次刷新操作的时间差计算出扣桶值,然后用计数器减去扣桶值,并更新漏桶的开关状态。本实施例中,漏桶刷新操作具有两种触发机制,周期性轮询刷新和每次进行流量统计时报文触发的漏桶刷新。
报文处理过程支持色盲模式和色敏模式。色盲模式下,不区分输入报文的丢弃等级,只根据两个漏桶的开关状态选择流量累加至哪个漏桶,并对无法累加至漏桶的报文进行着色,打上丢弃标记。色敏模式下,在对报文处理时除了漏桶的开关状态,还需要考虑报文的丢弃等级。
下面参照图2对本申请实施例的基于双漏桶的流量控制方法进行详细描述。
本实施例的流量控制方法支持对多条流进行流量控制,具体可通过漏桶索引号dlb_idx区分不同的流,每个流对应一个漏桶实例。在实际应用中,可通过漏桶测量模块维护一个流量计量表dlb_ram,流量计量表中具有多个条目,其中一个条目存储一个漏桶实例信息,每个漏桶实例可根据实际需求进行配置,示例性的,每个漏桶实例中可包含以下信息:
基于上述漏桶实例包含的信息,可对漏桶的控制参数进行配置,示例性的,漏桶的控制参数如下所示:
其中,BASE_TICK_CNT用于调节流控精度,值越大流控越精确。流控精度计算公式:granularity=8/(leak_interval*PS)bps,其中leak_interval=BASE_TICK_CNT/F,F是时钟频率,PS是通过TIMESCALE_VAL计算得到的时间精度。
RATE_VAL用于配置限流速率,限流速率计算公式为:rate=granularity*RATE_VAL。
根据上述配置的漏桶实例和漏桶控制参数,如图2所示,该基于双漏桶的流量控制方法包括:
S201:当输入的报文有效时,获取漏桶索引信息,计算报文长度信息。
本步骤中,可根据上述配置的漏桶实例,通过漏桶索引信息,索引到正确的漏桶条目,以便于后续步骤获取漏桶的开关状态和漏桶色敏等级等信息。报文长度信息可根据获取的报文有效信号进行计算。
S202:判断当前报文是否需要进行测量,若不需要,则进入步骤S211,将该报文直接透传通过该双漏桶,本次报文的流量控制结束。若需要,则进入步骤S203;
S203:将漏桶索引信息、报文长度信息发送至漏桶测量模块;
如果控制模块判断当前报文需要进行流量控制,则将获取的漏桶索引信息、报文长度信息发送至漏桶测量模块,漏桶测量模块利用漏桶索引信息中的漏桶索引号读取对应的漏桶计量表,以获取漏桶信息。
S204:利用漏桶索引信息读取漏桶计量表,获取漏桶信息;
如上所述,漏桶计量表中具有多个条目,每个条目存储一个漏桶实例信息,本实施例中,漏桶测量模块根据漏桶索引信息中的漏桶索引号可读取漏桶计量表dlb_ram中的对应该漏桶索引号的条目,以获取该漏桶的信息,具体的,参照上述配置的漏桶实例所包含的信息,该漏桶信息包括:报文长度附加字节数GAP_VAL、限流速率RATE_VAL、漏桶计数器值bucket_val和上次刷新漏桶的时间戳timestamp_val等;
S205:报文触发的漏桶刷新;
根据上述获取的漏桶信息,可对该漏桶进行刷新,以获取漏桶的开关状态,具体的,可利用当前的系统时间global_time与上次刷新漏桶的时间戳timestamp_val之间的时间差、限流速率RATE_VAL计算扣减流量值,计算方式为:delta_leak=((global_time_cnt-timestamp_val)*RATE_VAL)/PS,然后根据计算出的扣减流量值计算当前漏桶计数器leaked_bucket_val=bucket_val-delta_leak,同时保存当前系统时间global_time,该步骤可同时刷新C桶和E桶的计数器;
S206:根据当前漏桶的空满状态产生漏桶开关信号;
漏桶测量模块根据上述刷新后的C桶和E桶的计数器,可将刷新后的计数器当前值leaked_bucket_val与C桶和E桶各自的阈值THRES_VAL比较,如果小于阈值表示漏桶未满,漏桶关闭信号dlb_status.closed置0,表示漏桶为开启状态,如果大于阈值表示漏桶已满,将漏桶关闭信号dlb_status.closed置1,表示漏桶为关闭状态;
S207:根据漏桶开关状态、漏桶色敏等级和报文丢弃等级判断报文是否流入漏桶;若流入,则进入步骤S208,进行报文着色,并把报文长度信息累加到漏桶的计数器;若不流入,则进入步骤S209,将报文打上丢弃标记,刷新漏桶的计数器;
控制模块根据上述得到的双漏桶的开关状态、漏桶色敏等级和报文丢弃等级判断报文是否流入漏桶,本实施例中,双漏桶结构可支持色盲模式和色敏模式。
色盲模式下,当C桶不满时,将该报文累加至C桶,并将C桶的报文标记为绿色,当C桶满且E桶不满时,将该报文累加至E桶,并将E桶的报文标记为黄色,提升丢弃等级,当C桶和E桶都满时,将该报文标记为红色,并打上丢弃标记。
色敏模式下,且双漏桶都在开启状态时,则需要根据报文的丢弃等级和漏桶的色敏等级,判断将报文累加至C桶或E桶,其中,当报文的丢弃等级小于等于漏桶的色敏等级时,认为该报文为绿色报文,该绿色报文可累加至C桶和E桶;当报文的丢弃等级大于漏桶的色敏等级时,则认为该报文为黄色报文,而黄色报文无法累加至C桶,只能累加至E桶。具体的,该色敏模式下,对绿色报文和黄色报文的处理过程如下:
报文为绿色报文,当C桶不满时,将该绿色报文累加至C桶,当C桶满且E桶不满时,将该绿色报文累加至E桶,并将E桶的所述报文标记为黄色,提升丢弃等级,当C桶和E桶都满时,将该绿色报文打上丢弃标记;
报文为黄色报文,C桶无法容纳该黄色报文,当E桶不满时,将该黄色报文累加至E桶,直至E桶满时,将该黄色报文打上丢弃标记。
S210:将本次操作的时间戳和计数器回写到漏桶计量表。
完成上述报文处理后,可将本次报文处理的时间戳global_time和当前漏桶计数器值added_bucket_val回写到漏桶计量表dlb_ram的对应条目中,从而为下一次报文处理提供时间戳依据和计量表依据。
综上,本申请实施例根据漏桶算法,采用双漏桶结构对输入的报文流量进行测量,并根据输入报文的丢弃等级和漏桶的开关状态,对不同丢弃等级的报文进行不同的处理,从而实现对报文流量的控制,以将输送到网络中的报文流量维持在一个平稳的水平。
如图3为本申请实施例提供的一种基于双漏桶的流量控制装置的示意图,该流量控制装置可实现上述实施例的流量控制方法,具体的,该流量控制装置300包括测量模块310和控制模块320;
当接收的报文有效时,所述控制模块320用于获取所述报文的有效信号、所述双漏桶的索引信息和流量控制信号,根据所述报文的有效信号计算报文长度,并根据所述流量控制信号判断所述报文是否需要测量,若是,则将所述报文的有效信号、所述双漏桶的索引信息发送至所述测量模块;
所述测量模块310用于根据所述双漏桶的索引信息,确定所述双漏桶的开关状态、色敏等级,并根据控制模块320的判断结果将所述报文累加至对应的漏桶后,更新所述漏桶的开关状态;
所述控制模块320还用于根据所述报文携带的丢弃等级和双漏桶的开关状态、色敏等级,判断将所述报文累加至哪个漏桶,以及当所述双漏桶无法容纳报文时,将所述报文打上丢弃标记。
本申请实施例中,该测量模块310可以为上述的漏桶测量模块,也可以为单独配置的测量模块,可以用于实现上述流量控制方法中的S201-S206中任一步骤以及其中任一可选的示例。该控制模块320可以为上述的控制模块,也可以为单独配置的控制模块,可以用于实现上述流量控制方法中的S207-S210中任一步骤以及其中任一可选的示例。具体可参见方法实施例中的详细描述,此处不做赘述。
本申请实施例中,该基于双漏桶的流量控制装置中的双漏桶结构包括C桶和E桶,该双漏桶的速率可进行单独配置,支持单速率和双速率模式,同时该双漏桶结构对报文的处理还支持色盲模式和色敏模式,具体的,
色盲模式下,当C桶不满时,将该报文累加至C桶,并将C桶的报文标记为绿色,当C桶满且E桶不满时,将该报文累加至E桶,并将E桶的报文标记为黄色,提升丢弃等级,当C桶和E桶都满时,将该报文标记为红色,并打上丢弃标记。
色敏模式下,且双漏桶都在开启状态时,则需要根据报文的丢弃等级和漏桶的色敏等级,判断将报文累加至C桶或E桶,其中,当报文的丢弃等级小于等于漏桶的色敏等级时,认为该报文为绿色报文,该绿色报文可累加至C桶和E桶;当报文的丢弃等级大于漏桶的色敏等级时,则认为该报文为黄色报文,而黄色报文无法累加至C桶,只能累加至E桶。具体的,该色敏模式下,对绿色报文和黄色报文的处理过程如下:
报文为绿色报文,当C桶不满时,将该绿色报文累加至C桶,当C桶满且E桶不满时,将该绿色报文累加至E桶,并将E桶的所述报文标记为黄色,提升丢弃等级,当C桶和E桶都满时,将该绿色报文打上丢弃标记;
报文为黄色报文,C桶无法容纳该黄色报文,当E桶不满时,将该黄色报文累加至E桶,直至E桶满时,将该黄色报文打上丢弃标记。
图4是本申请实施例提供的一种计算设备1000的结构性示意性图。该计算设备1000包括:处理器1010、存储器1020、通信接口1030、总线1040。
应理解,图4所示的计算设备1000中的通信接口1030可以用于与其他设备之间进行通信。
其中,该处理器1010可以与存储器1020连接。该存储器1020可以用于存储该程序代码和数据。因此,该存储器1020可以是处理器1010内部的存储单元,也可以是与处理器1010独立的外部存储单元,还可以是包括处理器1010内部的存储单元和与处理器1010独立的外部存储单元的部件。
可选的,计算设备1000还可以包括总线1040。其中,存储器1020、通信接口1030可以通过总线1040与处理器1010连接。总线1040可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线1040可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本申请实施例中,该处理器1010可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器1010采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器1020可以包括只读存储器和随机存取存储器,并向处理器1010提供指令和数据。处理器1010的一部分还可以包括非易失性随机存取存储器。例如,处理器1010还可以存储设备类型的信息。
在计算设备1000运行时,所述处理器1010执行所述存储器1020中的计算机执行指令执行上述方法的操作步骤。
应理解,根据本申请实施例的计算设备1000可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备1000中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行上述基于双漏桶的流量控制方法,该方法包括上述各个实施例所描述的方案中的至少之一。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本申请的较佳实施例及所运用的技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请的构思的情况下,还可以包括更多其他等效实施例,均属于本申请的保护范畴。

Claims (9)

1.一种基于双漏桶的流量控制方法,其特征在于,所述双漏桶包括C桶和E桶,所述双漏桶分别具有计数器,所述双漏桶的计数器分别根据累加的报文长度信息和流出的报文长度信息进行更新,并在所述计数器的值大于漏桶阈值时,输出漏桶关闭信号;所述方法包括:
当接收的报文有效时,根据所述报文的有效信号计算报文长度信息,获取所述双漏桶的索引信息和流量控制信号,根据所述流量控制信号判断所述报文是否需要测量;
若是,根据所述双漏桶的索引信息进行漏桶测量,根据测量结果确定所述双漏桶的开关状态、色敏等级;
根据所述报文携带的丢弃等级和所述双漏桶的开关状态、色敏等级,进行报文的填桶或丢弃处理。
2.根据权利要求1所述的方法,其特征在于,所述双漏桶采用色盲模式时,根据所述报文携带的丢弃等级和双漏桶的开关状态,进行报文的填桶或丢弃处理包括:
当C桶不满时,将所述报文累加至C桶,并将C桶的所述报文标记为绿色;
当C桶满且E桶不满时,将所述报文累加至E桶,并将E桶的所述报文标记为黄色,提升丢弃等级;
当C桶和E桶都满时,将所述报文标记为红色,并打上丢弃标记。
3.根据权利要求1所述的方法,其特征在于,所述双漏桶采用色敏模式,且所述报文携带的丢弃等级小于等于所述漏桶的色敏等级时,根据所述报文的丢弃等级和双漏桶的开关状态,进行报文的填桶或丢弃处理包括:
当C桶不满时,将所述报文累加至C桶,并将C桶的所述报文标记为绿色;
当C桶满且E桶不满时,将所述报文累计至E桶,并将E桶的所述报文标记为黄色,提升丢弃等级;
当C桶和E桶都满时,将所述报文打上丢弃标记。
4.根据权利要求3所述的方法,其特征在于,所述双漏桶采用色敏模式时,且所述报文携带的丢弃等级大于所述漏桶的色敏等级时,根据所述报文的丢弃等级和双漏桶的开关状态,进行报文的填桶或丢弃处理还包括:
当E桶不满时,将所述报文累加至E桶,并将E桶的所述报文标记为黄色;
所述E桶满时,将所述报文打上丢弃标记。
5.根据权利要求1所述的方法,其特征在于,所述根据所述双漏桶的索引信息进行漏桶测量,根据测量结果确定所述双漏桶的开关状态包括:
根据所述双漏桶的索引信息分别读取所述双漏桶的上一个时间戳更新的计数器的值,根据所述上一个时间戳、当前时间、限流速率计算所述计数器的当前值,根据所述计数器的当前值与漏桶阈值,分别确定所述双漏桶的开关状态。
6.根据权利要求1所述的方法,其特征在于,当根据流量控制信号判断所述报文不需要进行测量时,将所述报文透传通过所述双漏桶。
7.一种基于双漏桶的流量控制装置,其特征在于,所述双漏桶包括C桶和E桶,所述双漏桶分别具有计数器,所述双漏桶的计数器分别根据累加的报文长度信息和流出的报文长度信息进行更新,并在所述计数器的值大于漏桶阈值时,输出漏桶关闭信号;所述装置包括测量模块和控制模块;
当接收的报文有效时,所述控制模块用于根据所述报文的有效信号计算报文长度信息,获取所述双漏桶的索引信息和流量控制信号,根据所述流量控制信号判断所述报文是否需要测量,若是,则将所述双漏桶的索引信息发送至所述测量模块;
所述测量模块用于根据所述双漏桶的索引信息进行漏桶测量,根据测量结果确定所述双漏桶的开关状态、色敏等级,并根据控制模块的判断结果将所述报文累加至对应的漏桶后,更新所述漏桶的开关状态;
所述控制模块还用于根据所述报文携带的丢弃等级和所述双漏桶的开关状态、色敏等级,进行报文的填桶或丢弃处理。
8.一种计算设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现权利要求1至6任意一项所述的基于双漏桶的流量控制方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被计算机执行时实现如权利要求1至6任意一项所述的基于双漏桶的流量控制方法。
CN202111537010.5A 2021-12-09 2021-12-09 一种基于双漏桶的流量控制方法及装置、设备、存储介质 Active CN114205304B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111537010.5A CN114205304B (zh) 2021-12-09 2021-12-09 一种基于双漏桶的流量控制方法及装置、设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111537010.5A CN114205304B (zh) 2021-12-09 2021-12-09 一种基于双漏桶的流量控制方法及装置、设备、存储介质

Publications (2)

Publication Number Publication Date
CN114205304A CN114205304A (zh) 2022-03-18
CN114205304B true CN114205304B (zh) 2024-02-27

Family

ID=80654272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111537010.5A Active CN114205304B (zh) 2021-12-09 2021-12-09 一种基于双漏桶的流量控制方法及装置、设备、存储介质

Country Status (1)

Country Link
CN (1) CN114205304B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114785735B (zh) * 2022-04-26 2023-09-12 杭州迪普信息技术有限公司 基于fpga的网络报文限流方法和装置
CN115348213B (zh) * 2022-08-12 2023-05-23 北京物芯科技有限责任公司 一种tsn网络的计量装置、计量方法与芯片
CN116319464B (zh) * 2023-03-16 2024-02-06 南京金阵微电子技术有限公司 网络报文流量统计方法、系统、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425974A (zh) * 2008-12-05 2009-05-06 中兴通讯股份有限公司 一种通过分级漏桶实现h-qos的方法
CN103684863A (zh) * 2013-12-11 2014-03-26 华为技术有限公司 流量监管的处理方法和装置
CN107800643A (zh) * 2016-08-29 2018-03-13 中兴通讯股份有限公司 报文转发方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430173B2 (en) * 2004-04-09 2008-09-30 Nortel Networks Limited Data traffic policer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425974A (zh) * 2008-12-05 2009-05-06 中兴通讯股份有限公司 一种通过分级漏桶实现h-qos的方法
CN103684863A (zh) * 2013-12-11 2014-03-26 华为技术有限公司 流量监管的处理方法和装置
CN107800643A (zh) * 2016-08-29 2018-03-13 中兴通讯股份有限公司 报文转发方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于IP网络的QoS研究与应用;王彩萍;中国优秀硕士学位论文全文数据库 信息科技辑(第第8期期);第I136-78页 *

Also Published As

Publication number Publication date
CN114205304A (zh) 2022-03-18

Similar Documents

Publication Publication Date Title
CN114205304B (zh) 一种基于双漏桶的流量控制方法及装置、设备、存储介质
US20170290024A1 (en) Modeling network performance and service quality in wireless networks
US20140112147A1 (en) Refresh mechanism for a token bucket
US8774008B2 (en) Real-time network measurement
CN102082693A (zh) 网络流量监管方法及装置
CN101964727B (zh) 一种利用混合报文测量可用带宽的方法和装置
CN103888377A (zh) 报文缓存方法及装置
US9705807B2 (en) Distributed counters and meters in packet-switched system
WO2017012412A1 (zh) 一种流量监管方法、装置及存储介质
CN115348213B (zh) 一种tsn网络的计量装置、计量方法与芯片
CN112953848A (zh) 一种基于严格优先级的流量监管方法、系统及设备
US7664028B1 (en) Apparatus and method for metering and marking data in a communication system
CN105527564A (zh) Fpga内部功能自诊断方法与系统
WO2009151816A1 (en) Real-time network measurement
US9166687B2 (en) Method and apparatus for using credits to determine cable length
CN111371633A (zh) 物联网卡使用异常的检测方法、装置、设备和介质
CN107438268B (zh) 一种用于为移动设备加速无线网络的方法与设备
CN112203322A (zh) 一种信道资源利用率的统计方法和装置
CN101873261A (zh) 一种提高令牌桶流控效果的方法及设备
US8745455B2 (en) Providing an on-die logic analyzer (ODLA) having reduced communications
CN112995060B (zh) 一种基于硬件计数器的流量控制方法
JP2006101004A (ja) 伝送装置及びリーキバケット帯域制御方法
CN111465052A (zh) 核心网映射及映射表生成方法、装置、设备及介质
US9667546B2 (en) Programmable partitionable counter
CN111585789B (zh) 数据预测方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant