默认使用尾丢弃来管理拥塞接口
当路由器接口输出队列已满时,接口发生拥塞:
后续传入的数据包将被尾丢弃;
被丢弃的数据包可能会导致重要应用程序的性能下降;
尾丢弃有着显著的缺点。
尾丢弃的局限性limitations
应该避尾丢弃,因为它包含明显的缺陷:
TCP synchronization TCP同步,会导致重传,导致滑动窗口号减小
TCP starvation TCP饿死
No differentiated drop 无差异的丢弃
TCP synchronization
TCP同步解释(摘自百度)
TCP同步是指在一段时间内网络处于网络利用率(Network Utilization)很低的使用状态,降低了整体吞吐量(throughput)的现象。
随着网络的普及,信息交流与信息共享成为人们日常生活中必不可少的一部分。而网络中信息(数据包)的不断增长,必然引起网络拥塞。于是,拥塞避免显得尤为重要,现在Internet上使用得比较广泛的拥塞避免机制是丢尾(DropTail):当队列的长度达到规定的最大长度时,所有到来的报文都被丢弃。这种丢弃策略会引发tcp 全局同步(global synchronization)现象——由于Internet上数据(Traffic)的突发本质,到达路由器的数据包也往往是突发的。如果队列是满的或者几乎是满的,就会导致在短时间内连续大量地丢封包。而TCP流具有自适应特性(Adaptiveness),来源端发现数据包丢失就急剧地减小发送窗口(congestion window,cwnd),数据包到达速率就会迅速下降,于是网络拥塞得以解除。但来源端得知网络不再拥塞后又开始增加发送速度,最终又造成网络拥塞,而且这种现象常常会周而复始地进行下去,从而在一段时间内网络处于网络利用率(Network Utilization)很低的使用状态,降低了整体吞吐量(throughput),这就是所谓地"TCP全局同步"现象。

多个TCP会话在不同的时间启动。
TCP窗口大小增加。
尾丢弃会导致多个会话的多个包同时被丢弃。
TCP会话同时重启(同步)。

TCP delay延迟,jitter抖动 and starvation饿死

高缓冲区使用(长队列)会导致延迟,比如开始发送优先级是3的流量,中间隔了其他的数据包,这样就会产生很大的延迟;
变量缓冲区使用导致抖动(延时差),与同步一致,会产生链路抖动;
更多的激进流会导致其他流出现饿死现象;
无差异化的丢弃

RED(random early detection)随机早期检测
如果可以防止队列拥塞,则可以避免尾丢弃:
RED 就是在队列满之前,进行随机丢弃数据包的机制
RED 当平均队列长度增加时,丢弃率也随着增加
RED result:
放慢TCP的会话,发送数据包的速率接近出口带宽速率
减小平均队列(比最大队列大小要少得多)
通过随机丢弃,能够避免大量TCP会话同步

RED profiles
RED模式
RED有三个模式:
no drop:如果平均值小于最小队列阈值,则到达的包将排队。
random drop:如果平均值介于该类型流量的最小队列阈值和该接口的最大阈值之间,则根据该类型流量的数据包丢弃概率,分组将被丢弃或排队。
full drop(tail drop):如果平均队列大小大于最大阈值,则丢包。
随机丢弃应该防止拥塞,防止尾丢弃。

使用RED之前的流量
TCP同步可以防止平均链路利用率接近链路带宽
尾丢弃会导致TCP会话进入缓慢启动

使用RED之后的TCP 流量
平均链路利用率更接近链路带宽
随机下降会导致TCP会话减少窗口大小

WRED weighted random early detection
基于权重随机早期检测
WRED可以使用多个不同的RED母版;
每个母版被以下三者确认:
1.最小阈值 2.最大阈值 3.最大丢弃概率
WRED母版会话是基于以下两者:
IP precedence
DSCP
class-based WRED
当与CBWFQ结合配置的时候,可以使用基于类的WRED;
在WRED中使用CBWFQ可以实现DiffServ安全转发PHB。
基于类的WRED配置与独立的WRED相同。
WRED母版可以手动设置;
WRED有8个基于precedence默认值,有64个基于DSCP的默认值。

由以下图可以,ip precedence有8个默认的值,0-7,数值越大,最小阈值越大,也就是说同样到达的前提下,优先丢弃数值小的数据包。
基于DSCP的WRED

配置CB—WRED

在服务策略配置模式中选择的类中启用基于IP precedence的WRED;
使用默认的服务配置文件;
命令可用于接口,每vc(与随机检测组),或类级(服务策略)。
基于precedence的WRED是默认模式,random-detect后跟DSCP才说启用DSCP模式的WRED;
WRED将非ip流量视为优先级为0。
改变基于IP precedence的WRED母版的值,最小,最大阈值,丢弃可能性。这里的包丢弃最大可能性的数值为倒数,也就是丢弃概率为1/10,配置成10即可。
1/Mark-prob-denominator(倒数)
非加权RED是通过对所有优先值使用相同的WRED配置文件来实现的。
改变WRED对突发事件的敏感性(EWC值)
使用EWC计算平均队列大小,默认为9
WRED使用平均队列大小来确定当前的WRED模式(无drop、随机drop、完全drop)
以CB-WRED为例,使用IP优先级的CBWFQ举例
Class mission-critical is marked with IP precedence values 3 and 4 (3 is high-drop, 4 is low-drop) and should get 30% of interface bandwidth.
Class bulk is marked with IP precedence values 1 and 2 (1 is high-drop, 2 is low drop) and should get 20% of interface bandwidth.
All other traffic should be per-flow fair-queued.
配置

class-map match-all bulkmatch ip precedence 1  2
class-map match-all mission-criticalmatch ip precedence 3  4
!
!
policy-map policy1class mission-criticalbandwidth percent 30random-detectrandom-detect precedence 3 26 40 10random-detect precedence 4 26 40 10class bulkbandwidth percent 20random-detectrandom-detect precedence 1 22 36 10random-detect precedence 2 24 36 10class class-defaultfair-queuerandom-detect
!

配置基于DSCP的CB-WRED
以CB-WRED为例,使用DSCP的CBWFQ举例
Class mission-critical is marked using DSCP AF2 and should get 30% of interface bandwidth
Class bulk is marked using DSCP AF1 and should get 20% of interface bandwidth
All other traffic should be per-flow fair-queued
配置

class-map match-all bulkmatch ip dscp cs1  af11  af12  af13
class-map match-all mission-criticalmatch ip dscp cs2  af21  af22  af23
!
!
policy-map policy1class mission-criticalbandwidth percent 30random-detect dscp-basedrandom-detect dscp 16 24 40 10random-detect dscp 18 32 40 10random-detect dscp 20 28 40 10random-detect dscp 22 24 40 10class bulkbandwidth percent 20random-detect dscp-basedrandom-detect dscp 8 22 36 10random-detect dscp 10 32 36 10random-detect dscp 12 28 36 10random-detect dscp 14 24 36 10class class-defaultfair-queuerandom-detect dscp-based

查看
Explicit Congestion Notification 显示拥塞通知
ECN显示拥塞通知
TCP拥塞控制不适合那些对时延敏感数据包的应用程序;当平均队列长度超过特定阈值时,ECN是标记数据包并不是丢弃数据包。
路由器和终端主机可以使用ECN标记作为一个信号,即在网络拥塞,以较慢的速度发送数据包。
ECN Field Defined ECN的字段定义
ECN与WRED联系
ECN 是对WRED的扩展.
WRED的拥塞,是当平均队列长度超过一个特定的阈值。
如果数据包在队列中的数量低于最小阈值时,数据包被发送。
如果数据包在队列中的数量高于最大阈值时,数据包被尾丢弃
如果数据包在队列中的数字为最小和最大阈值之间,三种情形之一可能会发生:
终端主机支持ECN,(ECT=1,CE=0 或者ECT=0,CE=1)并且是基于WRED,则该数据包的丢弃率将下降:
将数据包的ECT 和CE 位置为1 ,数据包被发送. 这是因为ECN被启用,数据包被标记代替了被丢弃;
终端主机不支持ECN:数据包的ECT 和CE 位置为0
该数据包可以根据WRED的丢弃概率被丢弃。这是当WRED上没有启用ECN的路由器上,收到的数据包受到相同的待遇 ;
网络出现拥塞:
如果数据包的ECT=1,CE=1,则数据包被传递。
配置

router(config)# policy-map MyPolicy
router(config-pmap)# class bulk
router(config-pmap-c)# bandwidth percent 20
router(config-pmap-c)# random-detect
router(config-pmap-c)# random-detect ecn

开启ECN。
无论WRED是基于IP优先级还是基于DSCP值,都可以使用ECN。
ECN必须通过MQC配置。

QoS mechanisms-congestion avoidance(拥塞避免)相关推荐

  1. QoS服务质量六路由器拥塞管理

    4.Qos拥塞管理 拥塞是指由于网络资源不足而造成速率下降.引入额外延时的一种现象.拥塞会造成报文的传输时延.吞吐率低及资源的大量耗费.而在IP分组交换及多业务并存的复杂环境下,拥塞又极为常见.比如由 ...

  2. webrtc QOS方法四.2(拥塞算法学习)

    一.网图简介 现在我们接入网络的方式有三种:手机4G/5G.WIFI.网线.三种接入方式在网络中的位置如上图所示.引起网络质量差的原因也有很多,比方说4G/5G.WIFI信号弱.wifi信道竞争.云营 ...

  3. TCP的拥塞控制--慢启动,拥塞避免,快重传,快速恢复

    拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象.这种现象跟公路网中经常所见的 ...

  4. TCP协议中的核心知识点,SYN Flood?ISN?滑动窗口?数据重传?拆包粘包?单tcp连接多请求?拥塞管理?(个人收藏学习笔记)

    TCP协议中的核心知识点,滑动窗口?数据重传?拆包粘包?单tcp连接多请求? 1.前言 2.TCP/IP四层结构 3. TCP 3.1 TCP 协议头 3.2 TCP通信过程 3.2.1 建立连接的三 ...

  5. Cisco:CCNA专业英文词汇(1)

    Cisco: CCNA专业英文词汇2006-8-13 17:01:00 CCNA为思科最基础的入门认证,其中,考试偏重网络概念和理论,对于初学者来说,不少专业英文术语难以理解,导致学员学习进度维难. ...

  6. CCNA专业英文词汇全集

    CCNA为思科最基础的入门认证,其中,考试偏重网络概念和理论,对于初学者来说,不少专业英文术语难以理解,导致学员学习进度维难.CISCO系列认证的原版教材,专业词汇出现频率积高,考生只要熟悉本文,相信 ...

  7. CCNA专业英文词汇红宝书

    B8ZS 二进进制8零替换----- 一种线路编码,在连接的远端解释,在T-1和E-1电路的链路上连续传输八个零时,它使用一个特殊的代码替代.这一技术保证1的密度不受数据流的约束.也称为双极性8零替换 ...

  8. 思科认证CCNA专业英文词汇全集

    CCNA为思科最基础的入门认证,其中,考试偏重网络概念和理论,对于初学者来说,不少专业英文术语难以理解,导致学员学习进度维难.CISCO系列认证的原版教材,专业词汇出现频率积高,考生只要熟悉本文,相信 ...

  9. linux tcp文件分包_畅谈linux下TCP(下)

    三.TCP传输阶段 1 .TCP 包头 先认识一下TCP包头, 常规TCP包头为20个字节. 图一.png 可以通过TCP OPTION 扩展包头内容.TCP OPTION 是一个比较灵活的TLV结构 ...

  10. 考研复试 计算机英语

    考研复试 计算机英语 考研复试 计算机英语 英文谚语精选 计算机网络重点词汇 计算机网络OSI七层模型 操作系统重点 计算机新技术词汇概述 考研复试 计算机英语 英文谚语精选 When one can ...

最新文章

  1. 在html前面追加,在追加到DOM之前操纵html
  2. 负载均衡器上实现客户端IP限制
  3. 有关/etc/resolv.conf、/etc/hosts、/etc/sysconfig/network
  4. 服务器系统是选择CentOS,还是选择Ubuntu
  5. sklearn搭建线性模型的总结
  6. 24解析函数的级数表示(三)
  7. CentOS防止黑客攻击Linux服务器实战演练
  8. 蚂蚁金服所签署过战略协议-合作协议
  9. ORACLE 提取汉字拼音首字母及汉字排序
  10. Codeforces 741D dsu on tree
  11. 【前端框架】Element UI Dialog 组件中执行 DOM 操作异常问题的分析与处理
  12. 安装net_speeder
  13. 在WIN7、WIN10操作系统用WebDAV映射网络驱动器需要的操作
  14. 举例解释大数定律、中心极限定理及其在机器学习中的应用
  15. 前端面试之浏览器原理篇
  16. WeTest —— 手游耗电量测试
  17. Transform.Forward和Vector3.Forward的正确使用方法
  18. 第一章 概率论的基本概念 1.6 独立性
  19. Android移动开发:第一章Android系统概述
  20. 台湾李宏毅教授深度学习

热门文章

  1. 简单的网址导航,何以长盛不衰?
  2. python中的(类和对象)1.5万字学习笔记
  3. 【Unity学习笔记】b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别)
  4. opencv环境变量配置 \opencv\build\x64中的vc10\vc12
  5. Android手机怎么会越用越卡?
  6. 【Linux】一种类似迅雷的下载器安装
  7. 隐藏SSID和STA搜索隐藏SSID原理
  8. 54-Linux概述
  9. GD32F303 Keil 工程项目搭建
  10. python使用pip安装依赖库_使用Pip在离线环境安装Python依赖库