Qos拥塞避免原理与实验

概念:

拥塞避免是指通过监视网络资源( 如队列或内存缓冲区)的使用情况,当拥塞发生时,队列在有拥塞加剧的趋势时主动采取丢弃报文以缓解网络过载的一种流控机制。

相比于拥塞管控是在拥塞发生时采用软件队列进行调度,拥塞避免则是通过在拥塞发生之前,丢弃部分报文,避免或减缓拥塞情况的发生。

策略一:尾丢弃

Qos拥塞避免原理与实验
缺点:

  1. 不加区分地丢包,敏感的和重要的报文也会被丢弃。
    Qos拥塞避免原理与实验

  2. 会引发 TCP全局同步现象。所谓TCP全局同步现象就是多个TCP主机在队列中因同时丢弃各自TCP连接的报文,而造成多个TCP连接同时进入慢启动状态而导致流量降低,之后又会在某个时间同时出现流量高峰,如此反复,使网络流量起伏波动。
    Qos拥塞避免原理与实验

  3. 软件队列中由于TCP流量调控而致TCP报文数量减少,若队列中也有UDP报文进入,则由于UDP报文数量不受丢包机制影响,继续以恒定速率进入队列,故会占掉过多的空间,致TCP因无空间存储而出现“TCP饥饿”。
    Qos拥塞避免原理与实验

策略二:RED ( Random Early Detection )

为解决上述问题而引入了RED技术,RED“提早”并“随机地”丢弃一些低级别的数据报文。这种不同时丢包行为可使多个TCP连接(因流控机制)不会同时降低发送速度,这避免了TCP的全局同步现象,并使TCP流量都趋于平缓稳定,同时,也实现了有区别的丢弃报文
Qos拥塞避免原理与实验
RED为每个队列的长度都设定了阈值门限,并规定:

  1. 当队列的长度小于低门限时,不丢弃报文。
  2. 当队列的长度大于高门限时,丢弃所有收到的报文。
  3. 当队列的长度在低门限和高门限之间时,开始随机丢弃到来的报文。方法是为每个到来的报文赋予一个随机数,并用该随机数与当前队列的丢弃概率比较,如果大于丢弃概率则报文被丢弃。队列越长,报文被丢弃的概率越高。

策略三:WRED(Weighted Random Early Detection)

基于RED技术,设备实现了WRED。队列支持基于DSCP或IP优先级进行WRED丢弃。可使丢包行为和权值相关,可为每个队列定义基于DSCP或IP优先级的RED丢弃行为。WRED中权值是IPP或DSCP,可针对每一种优先级独立设置丢弃报文的上下门限及丢包率,即每个权值都定义一个独立的丢弃曲线。但华为默认所有权值对应的曲线的形状都一样。这样丢包行为将变为当系统中相应权值的报文达到指定阀值后,开始丢弃该阀值的报文,只要其他权值的报文的丢弃阀值没有达到,就不丢包。
Qos拥塞避免原理与实验
实现WRED时要注意以下要点:

  1. 这种提早主动丢弃队列中报文的行为一定程度上能减缓拥塞带来的问题,但不能从根本上避免拥塞。
  2. 最小阀值不应过低,以减少不必要的丢包,最大和最小阀值之间的差额不宜过小,使之接近为丢弃的效果。

队列技术有2种,WRED 也有2种配置方式。一种是基于队列queue profile的
WRED,另一种是CBQ下的WRED。

基于queue profile实现拥塞避兔(WRED)

定义每个权值的丢弃曲线,在华为的设备上是通过定义丢弃模板(drop-profile) 来实现的。它是队列各优先级WRED参数的集合,将定义好的丢弃模板在队列模板中关联后,应用到接口上,当该接口拥塞时,接口上绑定的丢弃模板实现拥塞避免。华为设备支持基于DSCP优先级的WRED和基于IP优先级的WRED。

实验:
Qos拥塞避免原理与实验
背景概述:
公司企业网内部有多种业务,含语音和数据业务。分别经G1和G0接口连接公司的网关路由器,由于数据业务高带宽消耗,voice 业务带宽消耗不高,但要保证语音质量。如上图所示。由于入口是千兆接口,而上游出口是串行接口,所以出口拥塞严重。企业希望优先发送语音报文,对于视频和数据报文,确保优先级越小,获得发送的机会和获得的带宽越小,且被随机丢弃的概率越大,以调整网络流量,降低拥塞产生的影响。

配置:

drop-profile data
#数据使用的丢弃模板
wred dscp
dscp af31 low-limit 40 high-limit 60 discard-percentage 40
dscp af32 low-limit 50 high-limit 70 discard-percentage 30
#
drop-profile video
#视频使用的丢弃模板
wred dscp
dscp af43 low-limit 60 high-limit 80 discard-percentage 20
#
qos queue-profile queue-profilel
queue 3 drop-profile data
#丢弃模板仅适用于WFQ的WAN链路
queue 4 drop-profile video
#
schedule wfq 3 to 4 pq 5
interface Serial0/0/0
qos queue-profle queue proflel

基于MQC实现拥塞避兔(WRED)

丢弃模板是队列各优先级WRED参数的集合。丢弃模板在流行为(traffic-behavior)中绑定后,将流行为和对应的流分类在流策略下进行关联,并将此流策略应用到接口上,可以实现对匹配流分类规则的流量的拥塞避免。设备支持基于DSCP优先级的WRED和基于IP优先级的WRED。

由于丢弃模板只能应用于 AF 队列和 BE 队列 ,所 以配直基于流的拥塞避免前必须先配直MQC实现拥塞管理。

实验:
场景和queue profile实现拥塞避兔时一样,具体配置:

drop-profile data
#为数据流量定义丢弃模板
wred dscp
dscp af31 low-limit 40 high-limit 60 discard-percentage 40
dscp af32 low-limit 50 high-limit 70 discard-percentage 30
#
drop- profile video
#为视频流量定义丢弃模板
wred dscp
dscp af43 low-limit 60 high-limit 80 discard-percentage 20
#
traffic classifier data
if-match dscp cs1
#
traffic classifer video
if-match dscp af41
#
traffic behavior data
queue wfq
drop-profile data
#
traffic behavior video
queue af bandwidth 2000
drop-profile video
#
traffie policy abc
classifier data behavior data
classifier video behavior video
#
interface Serial 0/0/0
traffic-policy abc outbound

整理资料来源:《HCIE路由交换学习指南》、华为hedex文档

上一篇:java rest template


下一篇:豆瓣电影喜剧前20