详细解析Shapping机制 上篇

网络
Shapping,即整形,是使traffic在一定范围内均匀平滑的分布;超过的traffic将会被延缓传输,而不是被丢弃,是被缓存在buffer里;GTS/FRTS因为要用buffer,因此对于入接口没有缓存的设备来说只支持出接口整形。

Shapping机制之容量单位与流量单位

(1)容量单位

1K=1024bit

存储的方式,以2的整数幂来计算和衡量

(2)流量单位

1k=1000bit

实际测算的速度

Shapping机制之流量与容量的转换

要有一个时间值

Shapping机制之令牌桶

首先设备中有一个桶(相当于***速率),就是设备出接口有一个***速率,就算有5k个字节吧,5120个比特;

然后从入接口来了3K个字节,将在出接口被转发(称作conform action),于是这个接口同时只能再转发2k;

接下来又来了3K个字节,因为已经超过了出接口5k的大小,于是多出来的那1k将被缓存,称作Exceed action.

所以说,所谓令牌桶就是对设备转发数据能力的一种描述。

Shapping机制之令牌桶的算法

(1)Bc+Be:桶的总容量,也叫做超额的突发量。超过即溢出,丢弃。

(2)TC:向令牌桶中添加的令牌的时间周期,默认为125ms,或者说是1/8秒,即1s钟要向令牌中放8次令牌,1秒钟可以转发8倍的Bc数据量。

(3)BC:每TC时间能够出去的数据量,等于CIR*TC,因为默认TC为1/8秒,所以默认BC等于CIR/8。

(4)CIR:TC与BC之比,便是CIR承诺信息速率。

(5)Be:在帧中继中就是队列缓存,在GTS中会有一个专门的缓存。

这里配置的时候不需要进行流量与容量的换算

Shapping机制之当流量到来时

(1)当流量以CIR/8的速率到来时,因为和BC相等,也就是出的水和进的水一样多,所以将不会有超额突发量,更不会有溢出丢弃的发生,流量和CIR曲线持平;

(2)当流量以超过CIR/8,也就是Bc位的速率到来时,因为超过了出接口的转发速度,入的水比出的水多,因而需要被缓存处理。表现在曲线上就是超过了CIR就被修剪掉了;

(3)当流量以低于CIR/8,也就是Bc位速率到来的时候,因为入的水比出的水少,因此这个时候就可以将缓存中的数据拿来处理,因而在曲线中还是会以CIR的形式表现。

Shapping机制之总结

Shapping会使流量平滑,尽可能保证不丢包,但却增加了延迟。因为缓存中的数据要等下一个流量低于CIR/8的周期到来才可能被传输。

GTS和FRTS的令牌桶机制一样,只不过FRTS有接口与PVC之分。

  1. R1(config-if)#traffic-shape rate 8000 1500 1000  
  2.  
  3. R1(config-if)#do sh traffic  
  4.  
  5. Interface   Se0/1  
  6.  
  7. Access Target    Byte   Sustain   Excess    Interval Increment Adapt  
  8.  
  9. VC     List   Rate      Limit bits/int bits/int (ms)      (bytes)   Active  
  10.  
  11. -             8000      312    1500      1000      187       187       -  
  12.  
  13. CIR       BC+BE BC        BE        TC        BC 

 

如上所示:

8000代表CIR承诺信息速率

312代表1/8秒内桶的总容量=(bc+be)/8

1500代表BC手工配置的出水速率

1000代表Be,每个TC时间可以超出的缓存容量

187代表TC,=BC/CIR=0.187

后一个187代表实际BC,以字节计量,=TC*CIR=8000*0.187/8=187

Shapping机制的解析不光是以上介绍的内容,希望大家多多学习。

【编辑推荐】

  1. 路由器设置的具体步骤
  2. 路由器设置之菜单设置的小技巧
  3. 路由器设置之关掉不需要的服务
  4. Distance 命令修改默认管理距离
  5. 初学者必看:CISCO路由器教程讲解
  6. 浅析路由器设置如何彻底实现DDoS防御
责任编辑:佚名 来源: Cisco技术网
相关推荐

2011-04-07 17:43:37

Shapping

2011-04-07 17:27:52

Policing

2011-06-22 14:30:44

QT 多线程 线程

2011-04-07 17:54:22

Policing

2010-04-26 10:44:27

Oracle SCN

2012-07-03 10:57:54

Hadoop核心机制

2011-07-05 18:32:52

QT 信号 机制

2011-07-01 14:14:34

Qt 事件

2011-06-17 13:18:17

Qt 文件

2011-05-16 13:07:30

2011-03-08 14:45:59

2013-07-23 06:47:55

Android内存机制Android堆和栈Android开发学习

2011-06-30 15:51:39

2019-12-19 08:56:21

MybatisSQL执行器

2011-04-11 13:10:51

防火线缆

2011-06-21 15:48:41

2011-08-08 14:31:37

腾达路由器路由器

2009-09-03 11:00:29

C#反射机制

2010-03-10 14:18:13

Ubuntu分区

2011-07-01 15:04:49

Qt 内省
点赞
收藏

51CTO技术栈公众号