traffic_shaping
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Token Bucket(令牌桶算法)
Cisco IOS 管制器和整形器使用Token Bucket算法建模。本质上,令牌桶算法是测量引擎,跟踪能够发送多少流量来证实指定的流量速率。关于令牌桶的算法有三种技术,单速率双色,单速率三色,双速率三色机制。其中单速率双色是对单速率三色的逻辑描述。
1. 单速率三色标记(a single rate three color marker)
IETF RFC 2697定义了单速率三色标记算法,评估依据以下3个参数:承诺访问速率(CIR),即向令牌桶中填充令牌的速率;承诺突发尺寸(CBS),即令牌桶的容量,每次突发所允许的最大流量尺寸(注:设置的突发尺寸必须大于最大报文长度);超额突发尺寸(EBS)。单速率三色标记关注的是数据包的尺寸突发。
单速率三色机制有两个令牌桶。任何CBS中未使用的令牌都放入第二个桶,用作以后临时突发可能超过CIR的信用证。因此第二个桶的大小为第一个桶中未使用的令牌数加第二个桶的大小。可以做如下的理解:
一个数据包A大小为B,我们记为A(B)
if A(B) then (the packet conform,and the CBS size=TC‐B+TE) else if B>TC and B then (the packet exceed,and the CBS size=TE) else (The packet violate) 正常情况下,不会使用第二个桶测量,之所以把未使用的CBS的令牌放入第二个桶就是为后面数据的突发提供信用令牌数。 IEEE RFC定义了三种颜色,分别是红色,黄色,绿色。因此三色由此而来。我们可以理解为交通灯。绿灯行,黄灯要注意了,应该减慢速度准备停车,而红灯 为等车。但将数据包标记为这三种颜色的一种时,可以定义相应的策略,比如:转发,丢弃,设置优先级等等。 对于颜色的判断,RFC也定义了两个模式,一种是色盲模式(Color‐Blind),一种是非色盲模式(Color‐Aware)。这两种模式处理的方式稍有不同。下面分别讨论(使用程序设计的思想来描述): A:色盲模式(Color‐Blind) Packets size(PS) if PS then (The packets bepaint GREEN,Conform) else if PS>TC and PS then (The packets bepaint YELLOW,Exceed) else then (The packets bepaint RED,Violate) B: 非色盲模式(Color‐Aware) Packets size(PS) if PS then (The packets bepaint GREEN,Conform) else if (PS>TC and PS then (The packets bepaint YELLOW,Exceed) else PS>TE or (The packets has bepainted RED) then (The packets bepaint RED,Violate) 从上图可以看出来,仅仅在第一个桶有未使用完的令牌放入到第二个桶的情况下,才允许临时的数据突发。 2. 双速率三色标记(a two rate three color marker) IETF RFC 2687定义了双速率三色标记,主要是根据4种流量参数来评估:CIR、CBS、峰值信息速率(PIR),峰值突发尺寸(PBS)。前两种参数与单速率三色算法中的含义相同。该值必须不小于CIR的设置值,如果大于CIR,则速率限制在CIR于PRI之间的一个值。与单速率三色标记算法不同,双速率三色标记算法的 两个令牌桶C桶和P桶填充令牌的速率不同,C桶填充速率为CIR,P桶为PIR;两桶的容量分别为CBS和PBS。用Tc和Tp表示两桶中的令牌数目,初始状态时两桶是满的,即Tc和Tp初始值分别等于CBS和PBS。双速率三色标记关注的是速率的突发。它不在像单速率三色标记那样把第一个未使用的令牌放到第二个桶中。双速率三色标记使用两个独立的令牌桶。第一个桶为PIR大小为PBS,第二个桶为CIR大小为CBS。数据的测量是先比较PIR,然后再比较CIR(换句话说,双速率三色标记首先判断的是违约情况,最后是正常情况),双速率三色标记的突发速率可以根据以下的公式计算出来 PIR=CIR(1+BE/BC) 我们不可能改变接口的物理时钟,但是可以利用TDMA(时分多路复用)来讲接口划分为亚秒级的时间片,每一个时间间隔我们都可以定义相应的数据传递大小,如下图: 正常情况下我们在一个TC中能传递BC大小数据,而剩下的TC‐(BC/link BW)的时间保持静默,如果有突发流量,仅仅能利用剩下的TC‐(BC/link BW)时间来传递(默认Cisco IOS TC=125ms)。如下图所示: 下图是双速率三色标记的处理流程: 同样RFC定义了两个模式,色盲模式(Color‐Blind),非色盲模式(Color‐Aware),下面分别讨论(使用程序设计思想描述): A: 色盲模式(Color‐Blind) Packets Size(PS) if PS>TP then (The packets bepaint RED,Violate) else if PS then (The packets bepaint YELLOW,Exceed) else PS then (The packets bepaint GREEN,Conform) B: 非色盲模式(Color‐Blind) if PS>TP or (The packets has bepainted RED) then (The packets bepaint RED,Violate) else if (PS then (The packets bepaint YELLOW,Exceed) else PS then (The packets bepaint GREEN,Conform) 3. 令牌桶的实现方式① A.单速率三色标记算法的实现 a.桶的构成 在令牌桶的构成上,目前业界有两种方式,可以由一个桶实现,即C桶是E桶中的一部分,最终桶的容量是由EBS决定的。不管有没有突发流量,EBS不能为0,必须大于或等于CBS。这种实现方式完全按照令牌桶的定义来实现,因为