什么是令牌桶
  在我们讨论突发数据量之前,我们首先要理解令牌桶的概念。令牌桶本身没有丢弃和优先级策略,
  令牌桶是这样工作的:
  1. 令牌以一定的速率放入桶中。
  2. 每个令牌允许源发送一定数量的比特。
  3. 发送一个包,流量调节器就要从桶中删除与包大小相等的令牌数。
  4. 如果没有足够的令牌发送包,这个包就会等待直到有足够的令牌(在×××器的情况下)或者包被丢弃,也有可能被标记更低的DSCP(在策略者的情况下)。
  5. 桶有特定的容量,如果桶已经满了,新加入的令牌就会被丢弃。因此,在任何时候,源发送到网络上的最大突发数据量与桶的大小成比例。令牌桶允许突发,但是不能超过限制。
  Cisco IOS 流量策略(Traffic Policers)
  IOS支持两种流量策略:
  1. 传统的Cisco流量策略:CAR承诺接入速率,使用命令Router(config-if)#rate-limit {input | output} CIR (bps)
   Bc(burst-normal) Be(burst-max) conform-action action exceed-action action
  2. 新型的Cisco流量策略:基于类的策略(Class-based policer),使用模块化Qos CLI(MQC)语法。可以使用MQC命令建立流量策略并把策略应用到接口。一个流量策略包括一个流量类(traffic class)和一个或多个Qos特性。Policy命令用来执行流量策略特性,它指定了一个流量类所需要的最大速率,超过这个速率Qos系统会立刻执行一个操作,标准的操作是丢弃或重置包头的DSCP字段。Policy命令的语法是:
  police cir Bc Be conform exceed violate
  理解Bc和Be
  对于超额的数据包,流量策略并不会把它们缓存稍候转发,只有×××器(shaper)会这样做。流量策略只执行一个发送或不发送的策略。因为不能缓存数据包,所以在发生拥塞时,所能做的最好的方法就是通过配置适当的超额突发数据量Be来不那么过分的丢弃数据包。这一点对理解流量策略使用Bc和Be来保证达到CIR是非常重要的。
  超额参数模仿路由器的通用缓存规则。The rule recommends configuring buffering equal to the round-trip time bitrate to accommodate the outstanding TCP windows of all connections in times of congestion.
  
  
  
  
  突发参数 目的 推荐公式
  普通突发 · 执行标准的令牌桶 · 设置最大数量的令牌(尽管如果Be>Bc的话可以借到令牌). · 决定令牌桶有多大,因为如果桶已经满了那么令牌将被丢弃而不会再加入到桶中。 CIR [bps] * (1 byte)/(8 bits) * 1.5 seconds Note: 1.5 seconds is the typical round trip time.
  超额突发 · 为令牌桶提供超额突发能力 · 如果Bc = Be那么不支持超额突发 · 当Bc = Be,流量调节器就不能借令牌,当令牌不够时只能丢弃数据包 两倍的Bc
  对TCP流量的测试表明,Bc和Be的数值应该近似等于配置的平均速率在两秒钟内的流量。如果你想限制流量在1Mb,应该把Bc设置在1-2Mb,Be在2-4Mb。
  举个例子,如果我们想把输出速率限制在1.5Mbps,我们可以做一下步骤:
  
  1. 把承诺速率从比特转换成字节,因为突发数据量的单位为字节。
  1500000 bits / 8 bits = 187500 bytes
  2. 使用标准的1.5秒往返时间(round-trip time)计算Bc
  187500 bytes * 1.5秒 = 281250 bytes
  3. 两倍的Bc为Be
  281250 bytes * 2 = 562500 bytes
  使用命令
  rate-limit input 1500000 281250 562500 conform-action {action} exceed-action {action}
  超额突发数据量
  当数据包到达时可用的令牌数目小于包的大小,就可以使用超额突发数据量。包会请求借用令牌。可以通过配置大于Bc的Be的数值来为令牌桶提供超额突发能力。
   可以通过下面两个例子来理解Be。
  第一个例子说明怎样配置CAR策略来允许所有的IP流量。管理员在T3线路上提供了便宜的20Mbps的子速率服务。用户只花费子速率带宽的金额,也可以按需要增加带宽。CAR限制了用户可用的流量速率,用户只能使用规定的速率加上承诺的突发数据量。可以适当的设置Be=32000。
  interface hssi 0/0/0
   rate-limit output 20000000 24000 32000 conform-action transmit exceed-action drop
  
  下一个例子,用户只能发送24000字节的突发数据量,所有超过限制的数据包都要被丢弃,因为设置Bc=Be,数据包流不能通过超额突发能力来借用令牌。
  interface Hssi0/0/0
  rate-limit output 20000000 24000 24000 conform-action transmit exceed-action drop
  
  正确设置突发数据量的重要性
  策略以字节为单位指定了突发数据量,基于类的策略(class-based policer)支持最小的突发数据量为1000字节,包括第二层包头。
  突发数据量的目的是逐渐的丢弃数据包,就像RED那样,并且避免尾丢弃。设置足够高的突发数据量对保证良好的吞吐量是非常重要的。
  设置突发数据量时,考虑一下内容:
  1. 如果突发数据量设置的过低,数据到达的速率将远远低于配置的速率。
  2. 惩罚暂时突发对TCP流的吞吐量来说是相当不利的,具体情况请察看RFC 2001 and Random Early Detection (RED) gateways for Congestion Avoidance。设置突发数据量来允许路由器容纳暂时突发。
  3. 对离开接口的数据包的处理基于包的大小和桶中剩余的令牌数。
  4. 在基于类的策略中,流量测量器不论接口是否拥塞都是激活的。每个包都会经过令牌桶测量系统来决定是否符合配置的参数。
  5. 如果数据突发量非常大而且非常突然,那么配置较高的超额突发数据量可以保证超额令牌桶中存放较多的令牌。而且可以调整接口的MTU等于或大于突发数据量大小。
  允许的突发数据量数值
  最初,包括IOS12.0,rate-limit命令支持承诺和超额的突发数据量的范围是:
  Router1(config-if)#rate-limit input 18000000 ?
   <8000-2000000> Normal burst bytes
  
  Router1(config-if)#rate-limit input 18000000 2000000 ?
   <8000-8000000> Maximum burst bytes
  
  Router1(config-if)#rate-limit input 18000000 2000000
  
  IOS12.1增加了突发数据量的最大值:
  7500-107(config)#interface atm 1/0/0
  7500-107(config-if)#rate-limit output ?
   <8000-2000000000> Bits per second
   access-group Match access list
   qos-group Match qos-group ID
  
  7500-107(config-if)#rate-limit output 18000000 ?
   <1000-512000000> Normal burst bytes
  
  7500-107(config-if)#rate-limit output 18000000 2250000 ?
   <2000-1024000000> Maximum burst bytes
  
  step-by-step流量策略指南
  在12.0(5)XE流量策略特性模块中提供了数据包如何进入一个配置了策略的接口的step-by-step的总结。总结需要理解堆积债务和复合债务。对于债务的概念,请察看IOS配置指南Policing and Shaping Overview。
  下面这个例子中,离开接口F0/0的流量平均速率被设置为1bps,Bc为2btyes,Be为4bytes。
  7200-uut(config)# class-map larry
  7200-uut(config-cmap)# match access-group 2
  7200-uut(config-cmap)# exit
  7200-uut(config)# policy-map bird
  7200-uut(config-pmap)# class larry
  7200-uut(config-pmap-c)# police 1 2 4 conform-action transmit exceed-action set-qos-transmit 4
  7200-uut(config-pmap-c)# exit
  7200-uut(config-pmap)# exit
  7200-uut(config)# interface fastethernet 0/0
  7200-uut(config-if)# service-policy input bird
  
  这个例子中所有的进入数据包都要制定的匹配标准相符合,并且在一个时间单位T内只有一个数据单元进入令牌桶。
  1. 配置了Bc=2bytes,令牌桶中有两个令牌,一个令牌等于1bytes。
  
  2. 配置了1bps的平均速率,每个1byte的包需要一个令牌来获得承诺操作(conform action)
  
  3. 传输第一个包需要一个令牌,因为桶中能够提供传输第一个包所需的令牌数,所以第一个包符合限制条件,被传输。桶中还剩下一个令牌。
  
  4. 第二个包需要剩下的一个令牌,桶中也能够提供传输第二个包所需的令牌数,所以第二个包也被传输。这时桶中就没有剩余的令牌。
  
  5. 第三个包还需要令牌,但是桶中已经没有令牌了,超额突发被激活。
  
  超额突发能力分析两个数字:超额突发的大小和复合债务(compound debt)。超额突发大小通过CLI指定(本例中是4),复合债务等于上一次包被丢弃以来所有实际债务的和。
  实际债务等于当前流所借的令牌数。实际债务的值可以由当前从桶中取出的令牌数(本例中借了一个令牌)乘以令牌被取出的次数(本例中是一次),这样,传输完第三个包之后的实际债务就是1。
  这个例子中复合债务与实际债务相等都是1,注意上一个包的复合债务加上当前包的实际债务也等于当前复合债务。
  因为复合债务是1,小于超额突发数据量的4,所以第三个包也被传输。
  
  6. 第四个包还需要令牌。
  超额突发能力仍然在激活状态。第四个包需要借用一个令牌,这是第二次借用令牌,因此实际债务变成2。复合债务等于传输上一个包的复合债务加上当前的实际债务,所以当前的复合债务是3(1+2)。3仍然小于配置的超额突发数据量4,所以数据包4也被承诺传输。
  
  7. 第五个包也需要令牌。
  超额突发能力仍然在激活状态。实际债务是3,复合债务是6(3+3),超过了超额突发数据量,所以第五个包被超额操作(exceed-action)指定了Qos组4。超额操作发生之后复合债务归零,而实际债务不受丢包影响,仍然是2。
  
  8. 第六个包也需要令牌。
  超额突发能力仍然在激活状态。当然实际债务是3,注意在计算一共从桶中借了多少次令牌的时候要加上上次为包3和4所借的令牌。复合债务是3(0+3),小于超额突发,所以第六个包被承诺传输。
  
  9. 第七个包也需要令牌。
  超额突发能力仍然在激活状态。实际债务是4,复合债务是7(3+4),超过了超额突发,所以第六个包执行超额操作。超额操作发生之后复合债务归零,而实际债务不受丢包影响,仍然是3。
  ·
  数据包顺序 使用的令牌数 剩余令牌 实际债务 复合债务 对包的操作及原因
  Before Packet 1 X 2 0 0
  Packet 1 1 1 0 0 Transmit. No actual or compound debt.
  Packet 2 1 0 0 0 Transmit. No actual or compound debt.
  Packet 3 1 0 1 1 Transmit. Tokens are borrowed and counted against actual and compound debt, but the compound debt is still less than the excess burst size
  Packet 4 1 0 2 3 Transmit. Tokens are borrowed and counted against actual and compound debt, but the compound debt is still less than the excess burst size.
  Packet 5 1 0 3 6 Assign a QoS transmit value of 4. Because the compound debt exceeds the excess burst size, the exceed action is taken.
  Packet 6 1 0 3 3 Transmit. After packet 5 is dropped, the compound debt resets to 0. However, the actual debt of 2 remains. Therefore, the new compound debt of 3 is lower than the excess burst size, so the packet conforms.
  Packet 7 1 0 4 7 Assign a QoS transmit value of 4. Because the compound debt exceeds the excess burst size, the exceed action is taken.
实现Qos
  简介
  本文介绍了在为诸如带宽敏感(bandwidth-intensive)和延迟敏感(delay-sensitive)的应用提供传输服务的网络中实现Qos所需的基础知识。这些应用需要增强的处理和扩展的网络资源。Qos可以通过管理网络中的延迟、延迟抖动(jitter)、带宽和丢包率为这些应用提供高安全、可预见的、可扩展的和有保证的服务。
  什么样的应用需要Qos
  首先,找出关键性和需要保护的应用,应该察看所有的应用对网络资源的使用情况,可以使用Netflow Accounting, Network-based Application Recognition (NBAR), or QoS Device Manager (QDM)对网络流量进行分析。
  
  Netflow Accounting可以根据每个流相应的优先级或级别来捕捉流从而分析网络流量的细节。
  NBAR是可以在应用层识别流的分级工具。他可以对通过一个接口的任一流进行基于每个端口的、每个协议的双向(bi-directional)统计。也可以对子接口分类。
  
  QDM是非常简单的基于Web的管理工具,使用GUI界面,可以配置和监视高级的基于IP的Qos。
  
  理解应用的特性
  理解需要保护的应用是非常重要的,有些应用对延迟和丢包率非常敏感,而有些应用则被认为很有侵略性,因为他们对带宽非常贪婪并经常有突发数据量。如果应用有突发,要考虑是小突发还是持续突发,应用程序的数据包大小怎样,使用的是TCP还是UDP。
  特性 方针
  带宽和延迟敏感的应用(Voice and Real Time Video) 不要使用weighted random early detection (WRED), traffic shaping, fragmentation (FRF-12)或policing。对这样的延迟敏感应用应该执行 Low Latency Queuing (LLQ)并使用priority queue。
  对带宽贪婪并经常有突发(FTP and HTTP) 使用WRED, policing, traffic shaping或class-based weighted fair queueing (CBWFQ)来保证带宽。
  基于TCP的应用 若因为丢包而引起重传则应使用WRED。如果是基于UDP的而且没有重传则不是用WRED。需要对应用进行限速(rate-limit),使用Policing。其他的使用tail-drop。
  
  了解网络拓扑
  有些设备需要升级IOS才支持Qos,评估网络拓扑图、路由器配置和软件版本会帮助了解有多少设备需要升级IOS。
  1. 在网络使用高峰时段察看路由器的CPU使用率对决定如何在多设备间分布Qos特性从而实现负载均衡有所帮助。
  2. 区分关键流量和他要通过的接口,决定建立哪个优先级组来达到Qos目的。
  3. 通过流量调节器(traffic shapers or policers)决定关键应用的最大延迟和突发参数。
  4. 找出每个接口支持的速率:PVCs或子接口。
  5. 找出低速连接接口,来帮助在适当的接口上实行Link Efficiency mechanisms。
  6. 为每种将传输关键应用的媒体计算Layer 2和Layer 3的负载,这对计算每一级别流量的正确带宽有所帮助。
  7. 另一个关键是,希望基于应用,还是希望基于源目的IP来保护流量。
  包头尺寸
  媒体类型 包头长度
  Ethernet 14 Bytes
  PPP 6 Bytes
  Frame Relay 4 Bytes
  ATM 5 Bytes/Cell
  
  建立基于标准的分类
  一旦你决定哪个应用需要Qos以及使用哪个级别(基于应用的特性),就可以使用这些信息来建立分类。
  
  创建策略来标记每一个类
  创建策略使用适当的优先级值(使用不同的DSCP和IP优先级值)来标记流量的每一个类。流量在进入路由器的接口被标记,流量流出路由器时根据这个标记区分服务。
  
  从边缘向核心工作
  从最接近流量源的路由器开始朝着网络核心部署Qos。在路由器的输入接口应用标记。在下面的拓扑图中,Router A显然是从网络A到达网络B的流量的标记点和策略应用点。流量在进入Router A的E0口时打上标记,在离开Router A的S1口时应用Qos策略。如果双向流量被应用了相同的策略(网络B到网络A的流量有相通的待遇),那么从网络B发往网络A的流量过程相通。
  一旦流量在路由器的进入接口被标记了,经过多跳仍然使用相同的标记(除非被再标记)。因此只需要标记一次。基于这些标记其他的路由器也支持Qos。你只需要把非信任域中的流量再标记即可。
  
  
  建立流量转发策略
  标记过流量之后,你可以根据标记实行策略在网络中实行流量分类。为了简单起见我们推荐不要把流量分类超过4类。如果可能在实验室里测试一下Qos的工作,有了满意的结果在实行到使用网络中。
  应用策略
  在适当的方向上应用策略,决定是单向还是双向应用策略,在离流量源最近的地方标记流量。推荐双向应用策略,这就意味着在Router A和Router B的S口上应用相同的策略。唯一的缺点就是分级始终激活而不管是否应用了Qos。
  
  使用Qos策略管理器(QPM)监控策略效果
  使用QPM作为自动的、可靠的、集中的策略管理管理系统。
  
  推荐的Qos一般用途
  下面的列表说明了Qos的种类和每个种类更广泛的特性。
  种类 相关的Qos特性
  QoS Service Model Use provisioned (Diffserv) QoS rather than signaled (RSVP) when possible.
  Classification/Marking Use Diffserv Code Points or qos-group ID.
  Congestion Management Use LLQ or CBWFQ.
  Congestion Avoidance Use Diffserv-compliant WRED.
  Link Efficiency MLPPP, LFI, FRF.11, FRF.12, CRTP
  Signaling RSVP, QPPB
  Traffic Conditioners/Policing Use Class Based Policer and Generic Traffic Shaping (GTS) or Frame-Relay Traffic Shaping (FRTS).
  Configuration/Monitoring QPM, Modular QoS Command Line Interface (CLI), QDM

转载于:https://blog.51cto.com/kwsnh/472382

为基于类的策略选择突发数据量和超额突发数据量相关推荐

  1. 基于精英保留策略选择和轮盘赌选择的遗传优化matlab仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 首先要了解遗传算法的一些基本概念: 基因型(genotype):性状染色体的内部表现: 表现型(phenotype):染色体决 ...

  2. 第三届大湾区杯B题思路及代码-基于宏观经济周期的大类资产配置策略构建

    B 题 基于宏观经济周期的大类资产配置策略构建 赛题背景介绍: 赛题数据描述: 问题1. 寻找出高频有效的宏观经济指标,将 2001 年-2021 年国内的宏观经济运行状况划 分成不同的经济状态:(比 ...

  3. 蜂鸟数据Trochil:理想的基于模型的策略开发-构建更好的策略3

    这是"构建更好的策略"系列的第三部分.在上一部分中,我们讨论了10个被广泛利用的市场无效性,并提供了一些交易策略的示例.在这一部分中,我们将分析开发基于模型的交易系统的一般过程.几 ...

  4. 论文笔记《基于EWA的联保贷款组织还款策略选择行为》

    1 还款博弈情形的假设 LLL 申请等额的贷款 rrr 贷款利率 L(1+r)L(1+r)L(1+r) 企业在期末偿还本息 RiR_iRi​ 投资成功时的收益.投资失败时收益为0. KKK 机构惩罚 ...

  5. *基于类平衡自我训练的无监督域自适应用于语义分割

    基于类平衡自我训练的无监督域自适应用于语义分割 摘要:最近的深度网络实现了最先进的性能在各种语义分割任务中.尽管有这样的进步,但是这些模型在现实世界中面临挑战,它们存在很大的差别在已标签训练/源文件和 ...

  6. 多因子系列(二):基于机器学习选股策略(附源码)

    在第一篇中,我们实现了一个简单单因子的策略模型,但是在实际中,我们是远远不会满足于一个因子甚至几个因子的. 市场上目前挖掘出来的因子成千上万个,如何有效筛选出比较好的几个因子构建一个选股模型呢? 手动 ...

  7. 光谱预处理方法综述及分析策略选择

    化学计量学方法及计算机技术的快速发展促进了以近红外光谱分析为代表的无损检测技术的广泛应用,建立准确的分析预测模型是近红外分析的核心工作.其中,感兴趣信息的提取是数据分析和模型解释的基础,也直接决定了模 ...

  8. WAIC | 时识科技首席科学家:低功耗人工智能计算系统中的类脑策略

    在 WAIC 2021 AI 开发者论坛上,苏黎世大学与苏黎世联邦理工学院终身教授.苏黎世神经信息研究所 INI 所长.SynSense 时识科技联合创始人 & 首席科学家 Giacomo I ...

  9. python怎么运用大数据_R/Python在大数据中的运用策略

    无论你是R用户或一个Python用户,你真的想为大数据使用你最喜欢的工具,但有时你不使用它.事实上,许多人(错误地)认为,R \/ Python是不适合大数据.默认情况下,R \/ Python是只适 ...

最新文章

  1. 学好单片机能找什么工作?单片机好学吗?
  2. mysql 轨迹数据存储_基于Tablestore实现海量运动轨迹数据存储-阿里云开发者社区...
  3. array(2019CCPC网络预选赛 hdu6703主席树+set)主席树求大于等于k的最小值
  4. vue循环中的v-show
  5. java获取map数量_java – 如何从HashMap或LinkedHashMap获取有限数量的值?
  6. 《程序员在第一季度追姐姐的书》——提升自己的形象气质
  7. 控制台怎么查看错误的详细信息_js错误处理,quot;try..catchquot;
  8. jquerymobile入门(文件引用+多页面)
  9. Android ClassLoader笔记(二)
  10. 《深入理解Nginx》 学习笔记(二)
  11. 系统 hosts 文件修改工具
  12. ei会议和ei源刊的区别_ei会议和ei期刊的区别
  13. 应用统计学考研笔记1:数据整理与抽样
  14. elasticsearch7.x Java High Level REST客户端封装工具
  15. 盘点那些走向世界的中国开源项目
  16. 初中计算机初识word教学设计,《初识Word》教学设计
  17. matlab d函数,Matlab常用函数
  18. 数码管显示字母表(映射集)
  19. github 思维导图开元软件_哪款思维导图软件比较好用?
  20. 本地Git下载安装以及创建版本库、远程Github

热门文章

  1. EntityFramework进阶(三)- 根据IQueryable获取DbContext
  2. 用Keepalived搭建高可用集群
  3. WinForm绘制柱形图
  4. matlab——sparse函数和full函数
  5. Eclipse修改web项目的jdk编译版本
  6. 【数据库系列学习一】Access与Excel的区别和联系
  7. JVM调优之jstack找出发生死锁的线程
  8. Java线程池深入理解
  9. http接口服务方结合策略模式实现总结
  10. Java通过class文件得到所在jar包