今天继续给大家讲解QoS,本文主要介绍了QoS中非常重要的拥塞避免技术,本文以WRED技术为例,着重介绍了WRED技术的背景和原理,以及在华为路由器上的相关配置命令。
阅读本文,您需要有一定的QoS基础知识,如果您对此还存在疑惑,欢迎查阅我博客中的其他文章,相信您一定会有收获。
相关文章链接:
浅谈QoS——QoS概述、QoS基本原理、网络层QoS分类和标记字段详解、QoS中队列简介、QoS队列调度技术详解

一、拥塞避免与传统报文丢弃

前面我们介绍过,拥塞控制技术可以在计算机网络发生拥塞时,采取合适的方式对软件队列中的报文进行合理的调度,使得一些重要的报文得到带宽和时延上的保证。但是,当网络设备中拥塞加剧后,如果软件队列被数据报文填满,则新进入的数据包就会被网络设备直接丢弃,这就被称为尾部丢弃。
尾部丢弃会产生多种问题,主要有以下三点:
1、引起TCP全局同步现象
TCP协议是一种非常成功的传输层协议,TCP协议在设计时,TCP头部存在着window字段,TCP可以使用该字段实现滑动窗口机制。当两个设备建立TCP链接后,端到端在通信过程中会根据Window字段确定一次发送的数据包大小。当网络中网络设备出现拥塞时,就会出现TCP数据包被丢包的现象, TCP协议在发现自己的数据包出现丢包现象后,意识到网络中可能出现了拥塞,因此TCP协议会主动降低Window的大小,减少数据包的发送速率。
当网络中存在大量TCP链接时,如果发生网络拥塞,对所哟的TCP链接数据包进行了尾部丢弃,则所有的TCP链接都出现了丢包现象,这就会使得所有的TCP链接主动降低窗口大小,而当所有的TCP降低串口大小后,就会使得网络中网络拥塞现象得到缓解,此时TCP流量就会将窗口调大,从而增加数据包发送速率。然后网络再次出现拥塞,导致循环往复。
TCP同步现象示意图如下所示:

从图中可以看出,多个TCP流量会出现报文发送速率忽高忽低的同步现象,而这会导致重传报文所占比例增大,降低了带宽利用率。
2、TCP流量饿死现象
除了引发TCP全局同步现象外,当网络中同时存在大量的TCP链接和UDP链接时,会出现TCP流量饿死现象。由于TCP有滑动窗口机制而UDP则没有相应的机制,因此TCP会降低其数据包转发速率,而UDP没有相应的机制,UDP则会进一步占据由TCP主动退出而节省下来的流量,因此导致网络设备中大量的TCP报文被丢弃,TCP流量被“饿死”的现象。
3、重要的报文被丢弃
此外,如果此时网络中有敏感和重要的报文,则如果采用尾部丢弃的方式,这些重要和敏感的数据包也会被丢弃。

二、RED原理

为了解决上述问题,引入了RED技术。所谓RED,即Random Early Detection,早期随机丢弃技术。RED技术在软件队列还没有满之前,就会随机的丢弃一部分数据报文,从而延缓网络拥塞的到来,采用RED技术,丢弃策略如下图所示:

RED的丢弃方式会设置一个丢弃下限和丢弃上限,还有一个丢弃概率。当队列中的报文数量小于丢弃下限时,则不会丢弃数据报文;当队列中报文数量介于丢弃上限和丢弃下限之间时,会随着队列中报文数量的增加从而提升丢弃报文的概率。当队列中报文数量达到丢弃上限后,则会采用尾部丢弃的方式。
RED技术,可以在拥塞到来之前,提前“丢掉”一部分报文,从而延缓网络拥塞的到来。RED技术解决TCP全局同步问题,但是不能解决TCP流量饿死和重要敏感的报文被丢弃问题。

三、WRED原理

为了解决RED的固有缺陷,QoS中可以配置WRED方式。所谓WRED,即Weighted Random Early Detection,加权报文早期随机丢弃技术。与RED技术相比,WRED可以为不同队列中的报文设置不同的丢弃下限、丢弃上限和最大丢弃概率。WRED策略如下图所示:

WRED可以使得当网络拥塞发生后,最先丢弃优先级比较低的报文,随后如果网络拥塞加剧,则会逐步的丢弃优先级高的报文。WRED技术可以解决CP流量饿死和重要敏感的报文被丢弃问题,是QoS配置中拥塞避免的的常用配置策略。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118829905

QoS中拥塞避免机制详解——WRED技术详解相关推荐

  1. vlan配置实例详解_网工知识角|MUXVLAN技术详解,基本原理一篇搞定

    学网络,就在IE-LAB 国内高端网络工程师培养基地 MUX VLAN(Multiplex VLAN )提供了一种通过VLAN进行网络资源控制的机制.通过MUX VLAN提供的二层流量隔离的机制可以实 ...

  2. 内网安全:隧道技术详解

    目录 隧道技术 反向连接技术 反向连接实验所用网络拓扑图及说明 网络说明 防火墙限制说明 实验前提说明 实战一:CS反向连接上线 - 拿下Win2008 一. 使用转发代理上线创建监听器 二. 上传后 ...

  3. WordPress中的cookie 机制

    2019独角兽企业重金招聘Python工程师标准>>> WordPress中的cookie机制 WordPress使用cookies技术(能够让网站服务器把少量数据存储到客户端的硬盘 ...

  4. android classloader异常,Android中ClassLoader类加载机制

    Android中apk的构建过程 构建apk 如图 所示,典型 Android 应用模块的构建流程通常依循下列步骤: 编译器将您的源代码转换成 DEX(Dalvik Executable) 文件(其中 ...

  5. OSPF中DR选举机制详解

    OSPF中DR选举机制详解--对于这方面不太清楚的可以看看附件 转载于:https://blog.51cto.com/gauyanm/226882

  6. 【NLP】四万字全面详解 | 深度学习中的注意力机制(四,完结篇)

    作者 | 蘑菇先生 知乎 | 蘑菇先生学习记 深度学习Attention小综述系列: 四万字全面详解 | 深度学习中的注意力机制(一) 四万字全面详解 | 深度学习中的注意力机制(二) 四万字全面详解 ...

  7. 【NLP】四万字全面详解 | 深度学习中的注意力机制(三)

    NewBeeNLP原创出品 公众号专栏作者@蘑菇先生 知乎 | 蘑菇先生学习记 深度学习Attenion小综述系列: 四万字全面详解 | 深度学习中的注意力机制(一) 四万字全面详解 | 深度学习中的 ...

  8. 【NLP】四万字全面详解 | 深度学习中的注意力机制(二)

    NewBeeNLP原创出品 公众号专栏作者@蘑菇先生 知乎 | 蘑菇先生学习记  前情提要:四万字全面详解 | 深度学习中的注意力机制(一) 目前深度学习中热点之一就是注意力机制(Attention ...

  9. 详解Linux2.6内核中基于platform机制的驱动模型

    原文地址:详解Linux2.6内核中基于platform机制的驱动模型 作者:nacichan [摘要]本文以Linux 2.6.25 内核为例,分析了基于platform总线的驱动模型.首先介绍了P ...

  10. 详解Java中的异常机制:运行期异常、编译器异常及如何自定义异常

    文章目录 前言 一.异常概述及分类 1.异常概述 2.异常的继承结构 3.异常的继承机构图 二.运行期异常-RuntimeException 1.JVM如何默认处理异常 2.try...catch的方 ...

最新文章

  1. etl常用的三种工具介绍_Adobe Photoshop常用修图插件+屏幕模式+内容感知移动工具介绍...
  2. shell中三种引号的区别
  3. shell 编程学习笔记(一)
  4. 关于Qt QFileDevice::map()接口的一些学习记录
  5. MyEclipse启动tomcat出现java.lang.OutOfMemoryError: PermGen space 的解决方案
  6. python dicom 器官分割_python+opencv阈值分割
  7. 管理动物园动物c++_《过山车大亨》开发商公开新作 建立自己的动物园
  8. atitit 项目管理 package 模块管理 包管理 依赖管理 maven attilax总结.docx
  9. 如何在 Project 里设置(创建)里程碑
  10. like效率 regexp_Oracle中REGEXP_LIKE与LIKE的区别
  11. abaqus盾构隧道建模实例_abaqus盾构施工模拟
  12. Android音视频开发之ExoPlayer(二):播放列表常用的功能
  13. 专升本公共英语常考词组搭配和固定用法
  14. 16 if 条件状语从句
  15. VM虚拟机安装CentOS 7详解
  16. 8.系统研发中的领导意志
  17. AI代替30%班主任工作 尚德机构督学机器人上线
  18. java第七章学习笔记:访问控制---java世界的卫兵
  19. ubuntu上打开md文件_Linux_查看.md
  20. 为什么以及如何通过机器人学习编程和项目实践

热门文章

  1. 机器学习基础算法17-决策树-鸢尾花数据集分类及决策树深度与过拟合
  2. 《图谋职场——最经济的图形沟通》 一种能提高职场竞争力的沟通能力
  3. Tensorflow2.5安装
  4. C语言Register关键字:利用寄存器提升访问效率
  5. python很有用吗_Python之父:为什么操作符很有用?
  6. ubuntu以安装包方式安装jdk13
  7. java做图形界面计算n_n皇后问题回溯法---java图形界面实现回溯过程
  8. vue3 使用element-plus 表单校验
  9. HarmonyOS 开发App详细步骤
  10. Ubuntu解决依赖关系问题