-
拥塞控制
拥塞控制在队列中使用,
可以用来避免
TCP
全局同步的问题,
具体技术为
RED
,
W
RED
以及流
WRED
。
考虑到内存资源有限,
按传统的处理方法,
当队列的长度达到规定的最大长度时
就会
实行尾丢弃,即丢弃后来的数据包。就
TCP
报文而言,如果大
量的报文被
丢弃将造成
TCP
超时,从
而引发
TCP
的慢启动和拥塞避免机制。
而当队列同时丢弃多个
TCP
报文将造成多个
TCP
连接同时进入慢
启动和拥塞避
免,
称之为
TCP
全局同步。
这样多个
TCP
< br>连接发向队列的报文同时减少,
使发
向队列的报文的量都
不及线路的发送速度,
带宽利用不上,
而后又同时慢启动渐
p>
渐到达峰值以至于出现拥塞,
这样发向队列的报文总是忽多忽少,<
/p>
使线路上的流
量在峰值和谷底间波动。
RED
Random
Early
Detection
随机预检测,
具体动作就是设定队
列的阀值,
当队列得长度小于低阀值时不丢弃
报文;当队列长度
在高低阀值之间时,开始随机丢弃报文,队列长度越长,丢弃
概率越高;当队列长度大于
高阀值时,则丢弃所有报文。
由
于
RED
随机地丢弃报文,将避免使多个
TCP
连接同时降低发送速度,从而
避免了
< br>TCP
的全局同步现象,
当某个
TCP
连接的报文被丢弃开始减速发送的时
候,
其他的
TCP
连接仍然有较高的发送速度,
这样无论什么时候总有
TCP
连接
在进行较快的发送,提高了线路带宽的利用率。
WRED
Weighted
Random
Early
Detection
现在所采用的基本上都是
WRED
(
Weighted
Random
Early <
/p>
Detection
)。原
理和
RED
一样,区别在于
WRED
引入了
IP
优先权
DSCP<
/p>
值来区别丢弃策略,
可以为不同
IP
p>
优先级
DSCP
设定不同的队列长度、队
列阀值、
丢弃概率,从而
对不同优先级的报文指定不同的丢弃特
性。
在设置时如果直接采用队列
的长度与用户设定的阀值比较并进行丢弃,
将会对突
发性的数据
流造成不公正的待遇,
不利于数据流的传输,
所以在与设定的阀
值比
较并进行丢弃时采用队列的平均长度。
平均队列长度
=
(以前的平均队列长度
*(1-1
/2^n)+(
当前队列长度
/2^n)
队列的平均长度既反映了队列的变化趋势又对队列长度
的突发变化不敏感避免
了对突发性的数据流造成不公正的待遇。另外还要注意
WRED
不能配置在使用
了基于路由交换处理器<
/p>
(RSP)
的
CQ
、
PQ
和
WFQ
队列机制的接口上。
Router(config-
pmap-c)#random-detect
[dscp-based
|
prec-based]
//<
/p>
如果既没有指定为基于
dscp
也没有指
定为基于
prec
,
WRED
默认为基于
prec
。配置
WRED
后,
IOS
分配默认的最
小门
限、最大门限和
MPD
。你可以使
用下列命令改变默认参数:
Router(config-
pmap-c)#random-detect
precedence
precedence_value
minimum-
threshold
maximum-threshold mark-
probability-denominator //
基于
prec
的
WRED
Router(config-pmap-c)#random-detect
dscp
dscp_value
minimum-thresholdmaximum-threshold
mark-probability-denominator //
< br>用于基于
dscp
的
WRED
流量管理
QoS
的标记不仅可以用于队列技术,还可以用于流量管理。应
用流量管理的起
因在于带宽资源有限和流量本身的传输价值需要定位。
< br>具体的技术成为承诺访问
速率
(CAR:
Committed
Access
Rate)
一般来讲,用户注入
网络的流量不是都有意义的,比如园区网中的清道夫流量,
对公司生产没有任何价值,<
/p>
可能只是员工上班时间在网上看电影产生的,
这样的
流量没有必要传输,
在网络边界进行标记后,
在网络
内部识别出是清道夫流量就
直接丢弃,不会为这样的流量浪费带宽。
CAR
提供这样的流量控制
,
其本身的功能是设定
IP
优先级来描
述分组和限制速
率。
CAR
并不将数据
保存到缓存区或使其平稳,当超过允许的突发流量时就会
丢弃分组。
实施
CAR
的流程:
1
)流量匹配
匹配方式有
4
种
:
匹配所有数据,使用速率限制列表匹配某个
IP
优先级
,使用速率限制列表匹配某个
Mac
地址,使用
IP
标准或扩展
ACL
进行<
/p>
匹配。
2
)流量检测
应用令牌桶模型,令牌桶有
4
个关键参数:平均速率或承诺
信息
速率,即
CIR
(单位
bit/s
)
;常规突发量
BC
,即瞬间可以超过令牌桶的流量跑;
时间间隔
Ti=Bc/CIR
;扩展突发量
BE
。
令牌桶就是一个
关口,
令牌以一定的速率进入令牌桶,
满了就停止进入,
令牌桶
中的令牌数量会根据报文的长度相应的减少,
< br>当少到不能再发送时报文就会被丢
弃,这样通过控制令牌进入令牌桶的速率就可以
限制流量。
令牌桶能保存的最大令牌数等于
BC
标准令牌桶
BE=BC
,没有扩展突发功能,
< br>令牌不够就直接丢弃,
扩展突发功能令牌桶
BE>BC<
/p>
,
允许流量暂借更多的令牌,
然后采用随
机丢弃的方法,缓缓丢弃流量。
流量控制在接口进行,
不过在队列技术之前。
首先依据预先设置
的匹配规则对报
文进行分类,
如果是没有流量特性的报文就继续
发送,
如果有就会通过令牌桶这
个关口,
如果令牌桶中有足够的令牌,
则允许报文通过,
如果令牌不满
足报文的
发送条件则报文被丢弃。
在实际应用中
CAR
还可用于报文的标
记或重标记,比如一个报文设置优先级为
5
,本来应该丢弃,但
是现在网络空闲,传输没有问题,就把优先级改为
1
,后
续的路由器会这样处理,如果网络依然不拥塞,就传送这个优先级为
1
的报文,
如果出现拥塞,先丢弃优先级为
1
的,再丢弃优先级为
5
的。
CAR
的使用
限制:只能对
IP
流量做限速,不支持
FastEtherChannel
,不支持
隧道接口,不支持
ISDN
PRI
接口。
流量整形
流量整形
(traffic
p>
shaping)
典型作用是限制流出某一网络的某一连接的流量与
突
发,
使这类报文以比较均匀的速度向外发送。
流量整形通常使用缓冲区和令牌桶
来完成,
当报文的发
送速度过快时,
首先在缓冲区进行缓存,
在令牌桶的控制下
p>
再均匀地发送这些被缓冲的文。
p>
流量整形的核心算法有以下两种,具体采用的技术为
GTS
(
Generic
Traffic
Sh
aping
),通用流量整形:
漏桶算法(
Leaky
Bucket
)
漏桶算法是网络世界中流量整形(
Traffic
Shaping
)或速率限制(
Rate
Limitin
g
)时经常使用的一种算法,
它的主要目的是控制数据注入到网络的速率,平滑
网络上的突发流量。
< br>漏桶算法提供了一种机制,
通过它,
突发流量可以被整形
以
便为网络提供一个稳定的流量。
令牌桶算法(
Token
Bucket
)
有时人们将漏桶算法与令牌桶算法错误地混淆在一起。
p>
而实际上,
这两种算法具
有截然不同的特性
并且为截然不同的目的而使用。它们之间最主要的差别在于:
漏桶算法能够强行限制数据
的传输速率,
而令牌桶算法能够在限制数据的平均传
输速率的同
时还允许某种程度的突发传输。
在某些情况下,
漏桶算法不能够有效地使用网络资源。
因为漏桶
的漏出速率是固
定的参数,所以即使网络中不存在资源冲突(没有发生拥塞),漏桶算法
也不能
使某一个单独的流突发到端口速率。
因此,
漏桶算法对于存在突发特性的流量来
说缺乏效率。
而
令牌桶算法则能够满足这些具有突发特性的流量。
通常,
漏桶算
法与令牌桶算法可以结合起来为网络流量提供更大的控制。
GTS
通用流量整形
< br>流量整形通过减少外出流量的速率来强迫流量遵循某种带宽的分配限制。
不象流<
/p>
量监管会丢弃超过突发尺寸的流量,
它是将突发的流量放入到流量
整形的缓冲区