流量整形---令牌桶和漏桶算法

 流量整形

流量整形(traffic shaping)典型作用是限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送。流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下再均匀地发送这些被缓冲的文。

流量整形的核心算法有以下两种,具体采用的技术为GTS(Generic Traffic Shaping),通用流量整形:

漏桶算法(Leaky Bucket)

漏桶算法是网络世界中流量整形(Traffic Shaping)或速率限制(Rate Limiting)时经常使用的一种算法,它的主要目的是控制数据注入到网络的速率,平滑网络上的突发流量。漏桶算法提供了一种机制,通过它,突发流量可以被整形以便为网络提供一个稳定的流量。

令牌桶算法(Token Bucket)

有时人们将漏桶算法与令牌桶算法错误地混淆在一起。而实际上,这两种算法具有截然不同的特性并且为截然不同的目的而使用。它们之间最主要的差别在于:漏桶算法能够强行限制数据的传输速率,而令牌桶算法能够在限制数据的平均传输速率的同时还允许某种程度的突发传输。

在某些情况下,漏桶算法不能够有效地使用网络资源。因为漏桶的漏出速率是固定的参数,所以即使网络中不存在资源冲突(没有发生拥塞),漏桶算法也不能使某一个单独的流突发到端口速率。因此,漏桶算法对于存在突发特性的流量来说缺乏效率。而令牌桶算法则能够满足这些具有突发特性的流量。通常,漏桶算法与令牌桶算法可以结合起来为网络流量提供更大的控制。

GTS

GTS可以对不规则或不符合预定流量特性的流量进行整形,使得网络上下游之间的带宽匹配。GTS与CAR一样均采用了令牌桶技术来控制流量,但主要区别在于:利用CAR进行报文流量控制时对不符合流量特性的报文进行丢弃,而GTS对于不符合流量特性的报文则是进行缓冲减少了报文的丢弃,同时满足报文的流量特性。

GTS可以对接口上指定的报文流或所有报文进行整形当报文到来的时候,首先对报文进行分类如果报文不需要进行GTS处理,就继续发送不经过令牌桶的处理;如果报文需要进行 GTS处理,则与令牌桶中的令牌进行比较。

令牌桶按用户设定的速度向桶中放置令牌,如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被继续发送下去,同时令牌桶中的令牌量按报文的长度做相应的减少,当令牌桶中的令牌少到报文不能再发送时,报文将被缓存入GTS队列中。

当GTS队列中有报文的时候,GTS按一定的周期从队列中取出报文进行发送。 每次发送都会与令牌桶中的令牌数作比较。直到令牌桶中的令牌数减少到队列中的报文不能 再发送或是队列中的报文全部发送完毕为止。

帧中继流量整形(FRTS)

在以下4种情况下使用FRTS:1中心高速,分支低速的时候。2单条物理线路承载到不同目的地的众多VC。3若FR发生了拥塞,想让路由器将数据流拦住(Throttle)。4需要在同一条FR的VC上传输多种协议(IP、SNA)的数据流,并希望每种数据流都能占到一定BW。

FR中的FECN和BECN用于暗示网络上发生了拥塞,当收到带有BECN标记的数据包时,FR 流量整形(FRTS)将动态的对流量进行整形。注意:FRTS只能使用在FR的PVC和SVC上。其中有一种自适应的FRTS,在每个Tc间隔内,进程将检查是否从帧中继网络中收到BECN,如果在一个Tc间隔收到BECN,那么传送速率降低25%直到降到CIR的一半为止。当且仅当16个Tc内没收到BECN,通讯速率恢复到CIR。

FRTS配置步骤

1)建立一个MAP-CLASS,名字区分大小写。

2)定义流量整形的方法,比如设置平均速率和最高速率。

3)在接口上封装FRAME-RELAY。

4)在端口上应用MAP-CLASS 5,开启流量整形,一般用于源端接口。

你可能感兴趣的:(职场,流控,休闲)