QOS-配置拥塞避免机制

QOS-配置拥塞避免机制

2018年7月7日

20:29

 

  • 尾丢弃及其导致的问题:

 

  • 队列满时路由器进行尾丢弃,即新到的所有数据包都全部丢弃
  • 丢弃的结果造成高延迟、高抖动、丧失服务保证、TCP全局同步、TCP饿死等问题,从而导致应用超时、数据重传和实时业务不可用等一系列问题

TCP全局同步:

  • 没有差别的丢弃会造成所有TCP流的报文几乎在同一时刻丢弃,TCP又几乎在同一时刻重传。
  • TCP窗口会在几乎同一时刻缩小,然后又几乎同一时刻增大
  • 这将造成所有TCP连接的流量以相同的“频率”持续震荡。TCP全局同步的结果是TCP传输效率急剧下降,并且带宽的平均利用率大大降低。

解决方法:

  • 增加队列长度可以减少丢弃,但无法从根本上解决问题
    • 队列长度受限于资源,不能无限制增加
    • 增加队列长度也增加了报文的平均延迟和抖动
  • 在尾丢弃发生前,使不同TCP连接的报文在不同时刻被丢弃,则各个TCP连接的流量震荡就不会同步。

RED介绍:

 

  • RED(随机早期检测)可以有效防止TCP全局同步。其做法是在队列满之前就对已入队的报文进行随机丢弃
  • RED的特点在于“早期”和“随机”,这使得不同的流量在不同的时刻以“无规律”的方式丢弃,从而有效避免了所有的TCP连接发生同步震荡。

 

  • Low-Limit:最低丢弃门限,平均队列长度超过门限时,RED开始丢弃报文,值越低,队列越早开始丢弃报文
  • High-Limit:最高丢弃门限,平均队列长度超过此门限时,RED将丢弃所有到来的报文。
  • Pmax:最大丢弃概率,即RED丢弃报文条件下报文被丢弃的最大概率,这个值通常不为100%。
  • 当前平均队列长度小于Low-Limit时,不丢弃报文
  • 当前平均队列长度超过High-Limit时,丢弃所有到来的报文
  • 当前平均队列长度在Low-Limit和High-Limit之间时,开始随机丢弃到来的报文。

WRED的原理:

引入:RED很好地解决了TCP全局同步和“饿死”等问题,但由于不能感知业务类型,对报文的丢弃不分轻重稳急,因此并没有解决重要和紧急报文被丢弃的问题。

概念:WRED(加权随机早期检测)它允许不同优先级的报文配置不同的RED参数,从而保证了不同重要程度的报文获得不同的服务,可以DSCP和IP Precedence参数。

 

  • WRED可以对每个优先级分别设定最低丢弃门限、最高丢弃门限和最大丢弃概率。
  • 最低丢弃门限越小意味着该队列的报文越早被丢弃,在其他条件相同时总体被丢弃的报文就越多。

 

  • 对AF类型的报文,每一队报文有三个丢弃优先级,可以分别设定其对应不同的底限,从而体现出在丢包概率上的差异。
  • EF类型的报文应该保证其具有最小的丢包概率和区间

WRED配置:

基于接口的WRED配置命令:

在接口上使能WRED:

 

配置计算平均队列长度的指数:

 

配置各优先级的对应参数:

基于队列的WRED表配置WRED表:

在系统视图下配置WRED表:

 

配置计算平均队列长度的指数:

 

配置WRED表的其他参数:

 

在接口或端口组视图下应用WRED表:

 

其他类型WRED表的配置命令:

进入WRED表视图:

 

配置计算平均队列长度的指数:

 

配置WRED表的其他参数:

 

在接口或端口组视图下应用WRED表:

WRED显示和维护命令:

 

显示WRED表:

Weighting-constant:(1~16默认为9)

  • 该指数为权重因子,表征了平均队列长度对实际队列度变化的敏感程度
  • 较大的n值将使平均队列长度在当前队列长度变化时具有较大的“惯性”

Discard-probability:

  • 丢弃概率分母,用于设定平均队列长度接近高限时的最大丢包概率
  • 值大意味着丢包率小
原文地址:https://www.cnblogs.com/good-study/p/9963949.html