Qos令牌桶技术原理

Qos令牌桶技术原理令牌桶概述配合软件队列使用 单位是 Byte 而不是报文的个数 如果一个报文所需的 Byte 数超过了所剩余的令牌个数 就无法发送 也就是说一个令牌对应一个 Byte 令牌桶可以看作是一个存放一定数量令牌的容器 系统按设定的速度向桶中放置令牌 当桶中令牌满时 多出的令牌溢出 桶中令牌不再增加 在使用令牌桶对流量进行评估时 是以令牌桶中的令牌数量是否足够满足报文的转发为依据的 如果桶中存在足够的令牌可以用来转发报文 称流量遵守或符合约定值 否则称为不符合或超标 依据令牌桶的令牌注入方式及桶的数量定义了 3 种

令牌桶基础

概述:

  1. 配合软件队列使用。
  2. 单位是Byte而不是报文的个数,如果一个报文所需的Byte数超过了所剩余的令牌个数,就无法发送,也就是说一个令牌对应一个Byte。
  3. 令牌桶可以看作是一个存放一定数量令牌的容器。系统按设定的速度向桶中放置令牌,当桶中令牌满时,多出的令牌溢出,桶中令牌不再增加。
  4. 在使用令牌桶对流量进行评估时,是以令牌桶中的令牌数量是否足够满足报文的转发为依据的。如果桶中存在足够的令牌可以用来转发报文,称流量遵守或符合约定值,否则称为不符合或超标。

依据令牌桶的令牌注入方式及桶的数量定义了3种令牌桶模型:

  1. 单速单桶双色模型。
  2. 单速双桶三色模型(RFC 2697)。
  3. 双速双桶三色模型(RFC2698)。

令牌桶术语:
一、令牌桶模型中可能有单桶或双桶模型,单桶模型中使用的桶称为CBS桶,而双桶单速模型中使用的桶分别称为CBS和EBS桶;双桶双速模型中使用的桶是CBS和PBS:

  1. CBS (Committed Bucket Size):承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量。
  2. EBS (Excess Burst Size): 超额突发尺寸,表示E桶的容量,即E桶瞬间能够通过的超出突发流量。
  3. PBS(Peak Burst Size):峰值突发尺寸,表示P桶的容量,即P桶瞬间能够通过的超出突发流量。

下文为方便描述将三个令牌桶分别称为C (Committed)桶、E (Excess) 桶和P(Peak)桶。

二、Tc和Te:分别表示C桶和E桶中的当前令牌数量,单位为个。

三、信息速率:

  1. CIR (Committed Information Rate):承诺信息速率,向C桶中注入令牌的速率,同时也是C桶允许传输或转发数据的平均速率,单位bit/s。
  2. PIR(peak Information Rate):峰值信息速率,向P桶中注入令牌的速率,同时也是P桶允许传输或转发数据的平均速率,单位bit/s。

四、色(color):根据桶中当前令牌是否满足数据转发需要而定义的颜色标识,它是模型描述时对分类的数据的颜色定义,将能从桶中取走足量令牌的报文标记为绿色或黄色,而将未能在桶中获得足量令牌的报文,标记为红色。通过命令,如green pass yellow pass red pass,可以设置不同颜色的报文的具体动作。

一、单速单桶双色模型

在这里插入图片描述
桶中令牌以承诺的恒定速率CIR注入,桶大小固定,当注入令牌超出桶的容量后,多余的令牌就被丢弃掉。对于到达的报文,图上图中用B表示报文的大小。

  1. 若B≤Tc,报文被标记为绿色,且Tc减少B。
  2. 若B>Tc,报文被标记为红色,且Tc不减少B。.

过程描述:
若桶中有令牌,数据包转发会消耗桶中的令牌,若令牌足量,满足报文转发需要的数量,则报文被标记为绿色,并在桶中取走等量令牌。若待转发报文在桶中得不到足够令牌则标记为红色,桶中令牌不减。

例如:
若当前C桶中有2000个令牌,有2份待转发数据报文,大小分别为1500B和800B。假设此期间没有令牌注入,当第一份数据报文和C桶内令牌进行比较时,令牌满足,则第一份报文转发出去,桶中令牌剩余为500个。而第二份报文需要800个令牌,令牌桶中令牌不够,这份报文被标记为红色,不被转发出去,令牌桶中令牌量不变化,单速单桶的模型因其仅以承诺速率CIR注入令牌到C桶,所以C桶中令牌是承诺的令牌。

cir 2000 cbs 50000 ,表示承诺信息速率为2000kbit/s,承诺突发尺寸为50000Byte。报文大小小于50000Byte的都能转发,转发速率最大为2000kbit/s。

二、单速双桶三色模型

在这里插入图片描述
系统按照CIR速率向桶中投放令牌,向C桶注入令牌,若溢出,则E桶令牌增加。

  1. 若Tc

  2. 若Tc=CBS,Te

  3. 若Tc=CBS,Te=EBS,则都不增加。

对于到达的报文,用B表示报文的大小。

  1. 若B≤Tc,报文被标记为绿色,且Tc减少B。
  2. 若Tc

  3. 若Te

过程描述:
C桶中令牌是承诺部分,系统始终以速率CIR注入令牌,但若前一时刻C桶中令牌没有用光或没有使用(因没有数据转发),则下次注入时会致C桶溢出,过量的令牌并没有被丢掉,定义的E桶就是专门用来装多余的令牌的。所以E桶的大小可在实现中定义得稍大些,可使系统保留前面时刻未用令牌的能力相对增强,可减少令牌因溢出而致的损失。

报文转发时,先从承诺的C桶中取令牌,如果令牌够,则标记报文为绿色,桶中令牌减少。若C桶中令牌不够(Tc

例如:
若C桶当前令牌为2000,E桶令牌为1000,待转发数据报文有3份,大小分别为1500B、 800B、 700B,假设3份报文在转发过程中没有令牌注入。根据上面的逻辑,第一份报文同C桶比较,令牌满足,标记为绿色,此时令牌桶C剩余令牌为500,令牌桶E令牌依然为1000。 第二份报文需要800个令牌,C桶承诺部分不够,则使用E桶令牌,E桶部分是累积起来的令牌,第二份报文使用E桶令牌,并标记为黄色,E桶剩余令牌200。第三份报文在C桶和E桶都没有足量的令牌,所以标记为红色。

三、双速双桶三色模型

在这里插入图片描述
系统按照PIR速率(峰值速率)向P桶中投放令牌,按照CIR速率向C桶中投放令牌:

  1. 当Tp
  2. 当Tc

对于到达的报文,用B表示报文的大小:

  1. 若Tp

  2. 若Tc

  3. 若B≤Tc,报文被标记为绿色,且Tp和Tc都减少B。

任何一种模型都做到把流量同令牌桶中的令牌量比对,而打上不同的颜色,并代表不同的分类。如果按令牌量是否足量来决定报文转发,红色代表该类数据没有对应的令牌,而不能被系统转发。黄色代表有对应的令牌,但该令牌不是承诺的令牌(仅取自P桶)。绿色代表该类数据使用的令牌是承诺速率所注入的令牌。

双速模型并没有像单速模型在实际中应用那么广,它一定程度上解决了单速双桶模型的不足,双速模型引入了PIR,PIR一定要大于CIR。

过程描述:
P桶和C桶都是独立注入令牌的,如果桶中令牌溢出,并不会装入到另一个桶里。PIR是峰值速率,CIR是承诺速率,此模型可保证当输入数据的速率超出PIR时,超出部分将被丢弃,而低于PIR部分的报文,高于CIR的部分被标记为黄色,低于CIR部分被标记为绿色。所以待转发的报文先和P桶比较,若P桶令牌不够,则标记为红色,令牌不减。而若P桶令牌够,则继续比较C桶令牌,仅当二者令牌都够时,都做等量相减。

例如:
P桶令牌为2000,C桶令牌为1000,待转发报文有3份,大小分别为1500B、800B、400B,第一份报文和P桶比较,令牌够,继续和C桶比较,C桶不够。第一份转发出去,P桶剩余令牌500,C桶令牌没变化,为1000且报文被标记为黄色。第二份报文大小为800,先和P桶比较,因P桶令牌不够而标记为红色,桶内令牌不变。第三份报文先和P桶比较,再和C桶比较。都满足则都减令牌,并标记为绿色,P 桶剩余100, C桶剩余600。

单速双桶和双速双桶模型对比

在这里插入图片描述
整理资料来源:《HCIE路由交换学习指南》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176857.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午8:52
下一篇 2026年3月26日 下午8:52


相关推荐

  • 服务响应时间与分布(p99指标)

    服务响应时间与分布(p99指标)分析服务响应时间分布 如 均值 中位值 P95 值 P99 值等如何计算平均值我们考察一个服务器的性能 除了 QPS 数据外 还会考察响应时间 当服务器负载增高时 往往会伴随着响应时间的增长 但是这个值该如何度量 以精准的表现服务器当前之负载呢 最常用的值为平均值 表示服务的平均响应时间 通过该值我们能够知道服务当前响应的所有请求耗时的平均值 例如平均耗时为 100ms 表示服务器当前请求的总耗时 请求总数量 通过该值 我们大体能知道服务运行情况 但是对于具体有多少个请求的耗时比 100ms 要大 大多少

    2026年3月17日
    2
  • 基于yolov5的手势识别系统源码及模型

    基于yolov5的手势识别系统源码及模型

    2026年3月15日
    2
  • Thinkphp内核无限坐席在线客服系统源码

    Thinkphp内核无限坐席在线客服系统源码简介:Thinkphp内核无限坐席在线客服系统源码,直接一键安装的,启动两个端口就行了,安装倒是简单网盘下载地址:http://pan.zijiepan2.xyz/zJsKwfQH7Gb0图片:

    2022年7月19日
    77
  • Makefile总结

    Makefile总结Makefile是一个规定了怎么去编译和链接程序的脚本文件,在执行make命令时会执行该文件,window环境下的IDE,如visualstudio已经集成了该功能,不需要关心程序的编译规则,在linux下做C/C++开发时经常用到,会写Makefile是程序员的必备技能。说到这里首先要知道一个工具make。make是一个解释Makefile中指令的命令工具,常见的IDE都集成了这个工具。目…

    2022年5月18日
    37
  • 什么是大数据,大数据的处理流程,主要分为哪几步?[通俗易懂]

    一、大数据是什么?大数据,bigdata,《大数据》一书对大数据这么定义,大数据是指不能用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。这句话至少传递两种信息:1、大数据是海量的数据2、大数据处理无捷径,对分析处理技术提出了更高的要求二、大数据的处理流程下图是数据处理流程:1、底层是数以千亿计的数据源,数据源可以是SCM(供应链数据),4PL(物流数据),CRM(客…

    2022年4月11日
    53
  • Claude Code和CC switch安装教程,亲测可用

    Claude Code和CC switch安装教程,亲测可用

    2026年3月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号