实现拥塞管理使用队列调度技术
实现拥塞避免使用尾丢弃
拥塞产生的场景:
1、从高速率链路迁到低速率链路
2、流量汇聚,从一个不满足现有带宽需求的接口转发出去
通过分类和标记,将不同业务的流量报文划分在不同队列中。不同队列的报文如何从接口发出、先后顺序如何。如果出现大量的业务流量需要从同一个接口发出,如何保证高优先级的流量显出,又如何保证低优先级的流量可以顺利发出。这里就涉及到队列调度技术
队列调度技术:在设备的出方向实现,利用设备的缓存形成软件队列(只在出方向存在缓存,入方向是没有缓存技术)
使用何种队列调度技术需要结合实际的网络环境来选择,可以针对
First In First Out
采用尽力而为服务模型
单队列技术,默认的队列技术
好处:实现机制比较简单,尽最大可能转发,速度快
缺点:无法对业务流量进行差分服务
Priority Queuing
优先级队列技术
先转发优先级最高的队列所有报文,再转发下一个等级的队列的报文。
好处:业务流量进行差分服务,保障关键业务转发
缺点:可能会造成低优先级队列的饿死现象。
PQ队列主要应用在高优先级队列中,针对时延比较敏感的流量
案例配置
qos queue-profile huawei ###队列模板 schedule pq 5 to 7 ###---5到7队列为PQ队列
interface GigabitEthernet0/0/1 qos queue-profile huawei ##出接口调用
Round Robin
轮询队列技术
在调度时,会轮流问询每个队列,每个队列再一次调度中存在一次机会,当所有队列轮询完毕,该次调度完成
是一种公平队列(无法区别对待高优先级与低优先级的报文)
Weighted Round Robin
加权轮询队列技术
实现方式:
好处:解决PQ的低优先级饿死现象
缺点:只能解决调度个数,由于是基于报文个数调度,当数据包尺寸大小不一致,会出现不平等调度(低优先级队列发送的数据包比高优先级队列的数据包大)
案例配置
qos queue-profile huawei1 queue 2 weight 20 ##根据不同队列设置权重值,默认为10,配置范围1-100 queue 3 weight 30 queue 4 weight 40 schedule wrr 0 to 4
interface g0/0/2 qos queue-profile huawei1 ##出接口调用
Weighted Fair Queuing
加权公平队列技术
与WRR的区别在于实现了小包优先转发
实现方式:
案例配置
qos queue-profile huawei2 queue 2 weight 20 ##根据不同队列设置权重值,默认为10,配置范围1-100 queue 3 weight 30 queue 4 weight 40 schedule wfq 0 to 4 pq 5 to 7 ##指定队列技术
interface g0/0/0 qos queue-profile huawei2 ##出接口调用
通过复杂流分类形成流队列,根据调度技术转发流量
基于类的队列技术
用户根据复杂流分类,直接放入对应的队列
CBQ首先根据IP优先级或者DSCP优先级、入接口、IP报文的五元组等规则来对报文进行分类,然后让不同类别的报文进入不同的队列
优点:支持自定义类,可为不同的业务定义不同的调度策略。使用灵活
缺点:数据报文每次进入设备,都要进行ACL匹配。消耗设备性能
案例配置
##创建匹配规则 acl number 2000 rule 5 permit source 192.168.1.0 0.0.0.255
##创建流分类 traffic classifier CBQ if-match acl 2000
##创建流行为 traffic behavior CBQ queue ef bandwidth 10
##创建流策略 traffic policy CBQ classifier CBQ behavior CBQ
##对应接口上调用流策略 interface g0/0/0 traffic-policy 1 outbound
类型 | 优点 | 缺点 |
---|---|---|
FIFO | 实现简单,处理速度快 | 不能有差别地对待优先级不同的报文 |
PQ | 低延迟业务能得到保障 | 低优先级队列可能出现“饿死”现象 |
WRR | 避免了低优先级队列的“饿死”现象 | 不平等调度;低时延业务得不到保障 |
WFQ | 按权重实现公平调度;自动分类,配置简单 | 低时延业务得不到保障;无法支持自定义类 |
PQ+WFQ | 低时延业务能得到保障;按权重实现公平调度等 | 无法支持自定义类 |
CBQ | 支持自定义类 | 耗费较多的系统资源 |
优点:可保证低时延业务得到及时调度;实现按权重分配带宽等。
缺点:无法实现根据用户自定义灵活分类报文的需求。
用户可以借助“PQ+WRR/PQ+DRR/PQ+WFQ调度”调度方式,将高优先级队列使用PQ,剩余队列使用轮询队列,一个队列模板不能同时存在多种轮询队列;PQ队列必须高于轮询队列
qos queue-profile huawei2
schedule wrr 3 to 4 pq 5 to 7
每个队列都是有长度限制,如果队列已满,后进来报文就会被执行尾丢弃
随机丢弃(早期使用)
为避免TCP全局同步,可在队列未装满时先随机丢弃一部分报文。通过预先降低一部分TCP连接的传输速率来尽可能延缓TCP全局同步的到来
队列还没满开始丢弃,丢弃模板(下限值,上限值,最大丢弃概率),如果报文不超过队列长度下限值不丢弃,如果报文在下限值和上限值之间,按照丢弃概率去丢弃报文,如果超出上限值,丢弃所有报文。
RED无法解决会丢弃重要流量和TCP饿死现象
加权早期随机丢弃
针对不同业务类型设置不同丢弃模板(比如针对重要数据丢弃概率降低)
案例配置
##创建三个丢弃模板,voice不需要 drop-profile manager wred dscp dscp 8 low-limit 50 high-limit 70 discard-percentage 10 drop-profile ftp wred dscp dscp 16 low-limit 70 high-limit 90 discard-percentage 10 drop-profile video wred dscp dscp 24 low-limit 60 high-limit 80 discard-percentage 20
##创建队列模板 qos queue-profile qos-Huawei queue 1 drop-profile manager ##在队列模板中针对不同队列使用不同模板 queue 2 drop-profile ftp queue 3 drop-profile video
interface E1 qos queue-profile qos-Huawei ##接口调用队列模板
1.拥塞管理机制的实现过程分为哪两步?
2.常用的队列技术有哪些?
文章浏览阅读1.9k次。英文版答案:3.15 (i) The degrees of freedom of the first regression is n – k – 1 = 353 – 1 – 1 = 351.The degrees of freedom of the second regression is n – k – 1 = 353 – 2 – 1 = 350. The standard error is s..._伍德里奇计量经济学第六版答案
文章浏览阅读390次。set命令,在我们看来很简单,set zhangsan lisi,redis给我们返回一个 ok,就完事了。那redis的服务端是怎么处理这条简单的命令的?是不是像我们看起来的这么简单。今天这篇文章就来聊聊这个问题。在上一篇文章中,我们聊了redis IO多路复用的事件驱动框架。我们大致了解了redis是如何接收连接,如何将客户端的连接行为封装成事件并结合IO多路复用实现了对客户端连接的监听这一篇,我们聊聊当内核监听到客户端连接事件后,具体是如何处理连接事件的,我们用set命令来举例子。_redis 对一个命令的处理流程是怎么样的?比如一个set命令
文章浏览阅读2.1k次。找到并修改< localRepository>,最初是注释掉的,取消注释就可以 < localRepository>你想存放的本地仓库路径< /localRepository>我这里用的阿里的中央仓库,也可以用网易的,或者Apache的(用国内的会更快一点)(不修改默认${user.home}/.m2/repository这个路径)至此,远程仓库已经配置完成。添加进去之后保存退出。_maven配置本地仓库路径
文章浏览阅读982次。本系统后台采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。图4-1系统工作原理图。_微信小程序-房屋管理系统
文章浏览阅读83次。串行通讯协议有很多种,像RS232,RS485,RS422,甚至现今流行的USB等都是串行通讯协议。而串行通讯技术的应用无处不在。可能大家见的最多就是电脑的串口与Modem的通讯。记得在PC机刚开始在中国流行起来时(大约是在90年代前五年),那时甚至有人用一条串行线进行两台电脑之间的数据共享。除了这些,手机,PDA,USB鼠标、键盘等等都是以串行通讯的方式与电脑连接。而笔者工作性质的关系,..._peak 串口
文章浏览阅读1.2k次。MySql索引失效及解决方案_mysql or索引失效如何解决
文章浏览阅读6.5k次。今天在运行项目的时候遇到一个问题:./src/global.scssError: Missing binding /Users/youchenma/Documents/alibaba/business/node_modules/[email protected]@node-sass/vendor/darwin-x64-83/binding.nodeNode Sass could not find a binding for your current environment: OS X 64..._n 使用更高版本的node
文章浏览阅读1.3k次。页面跳转可能是由于用户单击链接、按钮等触发的,也可能是系统自动产生的。页面自动跳转在WEB开发中经常用到,而且根据需求可以采用不同的跳转方式,比如提示操作信息后延时跳转等,慢生活的小编总结了PHP开发中常见的几种页面跳转方法。一、PHP header()函数跳转PHP的header()函数非常强大,其中在页面url跳转方面也调用简单,使用header()直接跳转到指定url页面,这时页面跳转是30..._php跳转按键
文章浏览阅读814次。摘 要 信息科学技术的进步使得互联网技术行业快速发展起来。其中网页设计作为互联网技术行业中重要的一部分,应用先进技术提高其工作效率与工作质量具有重要意义。DIV+CSS技术在网页布局中的优势作用使得其在网页设计与开发中应用越来越广泛。基于此,本文首先对DIV+CSS技术进行概述,并对其在网页布局中的优势与应用原理进行分析,最后举出网页设计的实例对该项技术的具体应用进行分布阐述。【关键词】DIV C..._布局与样式分离
文章浏览阅读240次。Spring版本:5.1.14.RELEASEBean实例创建过程如下图,Bean的创建过程大部分是在docreateBean()里面完成的。_在spring中bean的创建过程
文章浏览阅读892次。1. RTT studio创建工程创建工程## 创建完成以后的目录结构2. 配置CubuMx双击cubumx的图标打开CubeMx配置时钟生成代码构建后的代码结构编译代码满屏错误:不要慌3. 新增脚本新建scons脚本文件 SConscript脚本内容如下import osfrom building import *cwd = GetCurrentDir()src = Glob('*.c')# add cubemx driverssrc = Split('''_rtt cube
文章浏览阅读3.2w次,点赞4次,收藏10次。展开全部i、replace方法该方法的作用是替换字符串中所有指定的字e69da5e6ba9062616964757a686964616f31333337616637符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如:Strings=“abcat”;Strings1=s.replace(‘a’,‘1’);该代码的作用是将字符串s中所有的字符a替换成字符1,生成的..._string去掉指定字符