zoukankan      html  css  js  c++  java
  • 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:

    • 丢弃概率分母,用于设定平均队列长度接近高限时的最大丢包概率
    • 值大意味着丢包率小
  • 相关阅读:
    Eclipse报错:pom.xml web.xml is missing and <fainOnMissingWebXml> is set to true
    WebStrom之React Native之HelloWord 【Windows】
    React Native报错:This error often happens when you’re running the packager (local dev server) from a wrong folder
    'adb' 不是内部或外部命令,也不是可运行的程序 或批处理文件。【Windows】
    Spring Boot项目部署到tomcat启动失败404
    Codeforces Beta Round #51 D. Beautiful numbers 数位DP
    UOJ 34 FFT
    POJ 2773 容斥原理
    HTPJ 1268 GCD
    HDOJ 2082 生成函数
  • 原文地址:https://www.cnblogs.com/good-study/p/9963949.html
Copyright © 2011-2022 走看看