QOS的拥塞避免

1 主要解决网络中TCP应用同步拥塞的问题

2 在没有拥塞避免的情况 ,软件队列达到上限,会把后续所有的数据包全部尾丢弃,这样就会导致TCP应用在同一时间重启动(突然重启,重新建立三握手),被叫做TCP同步,

3 TCP同步可以理解为下班高峰期所有的人集中在公路上,导致公路在这段时间拥塞 ,

4 拥塞避免实现的就是避免同时下班拥堵,会在软件队列达到上限之前,就开始丢弃数据包,可以理解为错时下班避免拥堵的情况

5 所以拥塞避免是一种主动拥塞管理,队列机制是一种被动的拥塞管理

 

避免拥塞方式

1 尾丢弃,除了WFQ以外的丢弃方式

2 RED 随机早期检测丢弃  还没满呢,就开始丢弃了

3 WRED  W:权重,基于权重的早期检测丢弃,可以更灵活的配置

 

尾丢

可能会造成的问题

TCP 同步

TCP 饥饿

无区分的丢弃,不能保证敏感数据

这家伙完全就是一刀切,爱谁谁,FIFO下就是这样,当然其它形式也不是没有,主要看尾丢的点是在哪里。

 

RED

RED是一种在队列占满之前随机丢包的机制  ,这也就意味着队列永远不会满,是在一个临界点随机的丢弃了部份,而不是丢弃所有

0-32-40  

0-32不丢包,

32-40之间开始随机丢包了,当然,丢包率也是可以调整的,

而40个包之后,就要进行尾丢弃了,看吧,还是尾丢

华三qos带宽计算 华三qos拥塞避免配置_权重

 


最大值,就是我这个队列所能承载的包个数,

RED丢弃是随着列的大小增加而增加的,

RED 的结果

 TCP降到和出接口中带宽等同的速率,平均队列size更小,远远小于软件队列的最大队列深度,不至于发生尾丢弃

 IP优先级低的更容易被丢弃

 RED 被配置在流量的出口方向

 

WRED

存在着优先级,

0-32,都不丢,

32-40

优先级为0 的,20时候丢

优先级为5 的,30时候丢

相比较RED更加的精细

 

华三qos带宽计算 华三qos拥塞避免配置_权重_02

 


配置方法及命令

class-map match-all aa
 match ip precedence 1   //当然如果precedence种类不够用可以使用DSCP,但如果使用DSCP,后面的命令有一处需要修改,就是总开关
 match ip precedence 2
R2(config)#policy-map aa
R2(config-pmap)#class aa
R2(config-pmap-c)#bandwidth percent 20  //设置队列大小,这里写的是百分比,

                                      又看到了bandwith,这是啥 ?CBWFQ吧~

需要注意的是,这里必须设置了个值 ,想一下为什么?

Bandwith是在干啥 ?队列吧,如果你不设置队列的话,前面的RED又怎么知道你具体的队列长度呢?所以必须要和队列进行关联。

R2(config-pmap-c)#random-detect    //拥塞避免总开关
R2(config-pmap-c)#random-detect precedence 1 ?   //出现了权重,这叫WRED
  <1-4096>  minimum threshold (number of packets)   //最小阈值(第一个丢包的点)

R2(config-pmap-c)#random-detect precedence 1 25 ?   //最大阈值(最后一个丢包的点)
  <1-4096>  maximum threshold (number of packets)
 
R2(config-pmap-c)#random-detect precedence 1 25 40 ?  //概率分母,即多少分之一,
  <1-65535>  mark probability denominator     //意思也就是说每多少个包里丢1个
  <cr>

R2(config-pmap-c)#random-detect precedence 1 25 40 10
R2(config-pmap-c)#random-detect precedence 2 30 40 5
 
R2(config-pmap)#class class-default    
R2(config-pmap-c)#fair-queue   //公平队列WFQ
R2(config-pmap-c)#random-detect   //这里配置的是RED,因为没有权重,是针对于所有的包的,完全随机

也就是说,开启random-detec开关,不配置任何东西,那么默认就是RED的方式进行随机早期检测并丢弃,而如果配置了相应的标记(这里也可以理解为权利),那么它就变成了一个基于权重的RED,叫做WRED.

 

使用 ip precedence 和dscp的区别

1 ip precedence
 R2(config-pmap-c)#random-detect  //就是默认的
2 DSCP
 R2(config-pmap-c)#random-detect dscp-based  //后面一定要加上DSCP-based, 基于CSCP的

 

-------------------------------------------------

CCIE成长之路  --- 梅利