1. QOS是什么

在传统的 IP 网络中,所有的报文都被无区别的同等对待。即每个网络设备对所有的报文均采用 FIFO(First In First Out,先进先出)的策略进行处理,依照报文到达时间的先后次序分配所需的资源,尽最大的努力(Best-Effort)将报文送到目的地。

这种方式下,对报文传送的可靠性、传递延迟、丢包率等性能不能提供任何保证,仅适用于对服务性能不敏感的普通业务,如WWW、FTP、Email等。随着IP互联网上新型应用不断出现,对 IP 网络的服务质量提出新要求,如远程医疗、游戏、VOIP等,对实时性和连续性方面要求更加苛刻,如果报文传送延时太长将是用户无法接受的,这类应用中不能容忍中间停顿现象。

为支持具有不同服务需求的话音、视频以及数据等业务,要求网络能够区分出不同的业务类型,进而为之提供相应等级的服务。

QoS 正是这样一种可以为不同业务类型报文提供差分服务的技术,通过对网络流量进行调控,可避免并管理网络拥塞,减少报文丢包率。

2. 现有厂家的方案

小米:https://zhidao.baidu.com/question/439781106.html

华为荣耀:https://jingyan.baidu.com/article/414eccf64b65ba6b431f0a12.html

华为WS5200:

家用路由器的 QOS 功能基本是以几部分组成,总带宽的设置,根据应用优
先级设置,根据设备限速,网站过滤。

3. QOS原理

下面用简单的例子对比了在网络发生拥塞时报文在无QoS保证和有QoS保证网络中的不同处理过程。

下图所示为发生拥塞时网络设备的一个接口在不支持QoS的情况下报文的发送情况:

所有要从该接口输出的报文,按照到达的先后顺序进入接口的FIFO队列尾部。而接口在发送报文时从 FIFO 先入先出队列的头部开始依次发送报文。所有的报文在发送过程中没有任何区别也不对报文传送的质量提供任何保证。

既然上述的方式不好,那就对数据包进行优先级分类,下图为一个优先级队列进行 Qos 处理的过程:

在报文到达接口后,首先对报文进行分类,然后按照报文所属的类别让报文进入所属队列的尾部。

在报文发送时,按照优先级总是在所有优先级较高的队列中的报文,发送完毕后再发送低优先级队列中的报文。这样在每次发送报文时总是将优先级高的先发出去。保证了属于较高优先级队列的报文有较低的时延报文的丢失率和时延。这两个性能指标在网络拥塞时也可以有一定的保障。

从上面可以看出来,QOS的作用部分主要位于两个地方,一个就是队列入口的报文分类,需要把哪些报文放在优先级高,哪些在优先级低的;另一个就是出队列的调度算法,出队列的算法这部分现有很多可以选择的,下面进行说明。

因为调度算法的不同会有不同的类别划分形式,所以先从队列的调度算法选择说起,然后反过来规划类别

4. 队列调度算法选择

内核里面已经实现了很多种调度算法,根据需求来选择适合自己的算法。

下面列举几个常规的调度算法:

  • PFIFO:这个队列的特点就像它的名字一样——先进先出(FIFO),也就是说没有任何数据包被特殊处理,这也是默认的队列方式。
  • PRIO:PRIO QDisc 不能限制带宽,使用 PRIO QDisc可以很容易对流量进行优先级管理,只有属于高优先级类别的数据包全部发送完毕,才会发送属于低优先级类别的数据包。
  • CBQ:CBQ 是 Class Based Queueing(基于类别排队)的缩写。它实现了一个丰富的连接共享类别结构,既有限制(shaping)带宽的能力,也具有带宽优先级管理的能力。带宽限制是通过计算连接的空闲时间完成的。空闲时间的计算标准是数据包离队事件的频率和下层连接(数据链路层)的带宽。
  • HTB:HTB 是 Hierarchy Token Bucket 的缩写。通过在实践基础上的改进,它实现了一个丰富的连接共享类别体系。使用 HTB 可以很容易地保证每个类别的带宽,虽然它也允许特定的类可以突破带宽上限,占用别的类的带宽。HTB可以通过 TBF(Token Bucket Filter)实现带宽限制,也能够划分类别的优先级。
  • HFSC:HFSC - Hierarchical Fair Service Curve’s(层次公平服务曲线) 层次公平服务曲线。HFSC允许按比例分配频宽并且控制及分配延迟(latency)。这能够在只有一条实体网路连线的情况下,又快又好地同时提供频宽密集的资料传输服务及互动式服务。

最终选择 prio 配合 pfifo 和 hfsc 算法进行设计:

以 prio 做一个基础性的优先级调度分配,分成两个 band。

将一些比较直观性的功能如 ping,放到第一个 band,该级别的调度就按默认的 fifo 即可,让用户感知不出 ping 的延时,另外对于其他不需要经过 QOS 规则的链也直接走 fifo。

对于第二个 band 就用来存放各 qos 规则,使用 hfsc 调度算法

5. 等级制定

hfsc 算法要求设置总带宽,并且可以按类别设置,有如下四种服务:

  • rt : realtime service curve(即时服务)
  • ls : linkshare service curve(共享服务/百分比)
  • sc : rt+ls service curve(组合型)
  • ul : upperlimit service curve(上限值/带宽设置)

现有方案一共分了四个等级的队列,RealTime、Fast、Normal、Slow:

RealTime:为最高优先级,使用rt服务,设置最小/大带宽,分配延迟。(QOS是在带宽不够用时才有竞争一说,如果带宽主够没有被堵塞,完成可以都走实时)

Fast/Normal/Slow:下面三个等级就按带宽比例分配,使用 ls 服务。

(当然等级里面的配置信息是会根据应用需求进行调整的)

6. 规则制定/应用分类

上面将等级已经划分好之后,就可以根据应用需求将不同的应用放进相应的等级里面,目前基于端口/IP/包大小对应用进行分类。

  • 端口如:25/smtp,80/http,109/pop2,110/pop3,143/imap,
    443/https,465/smtps,993/imaps,995/pop3s
  • IP如:传输层的TCP/UDP,网络层的IP/ICMP等
  • 包大小:0-100、100-300、300-700、700-
1. 默认规则:

规则说明:

1、当四个队列全部有规则匹配时,则按上面的比例共享带宽。如总带宽 1000M,Class1=100M,Class2=700M,Class3=180M,Class4=20M

2、当有空闲的队列出现时,则空出的带宽按比例分配给剩余队列使用。如 Class3 和 Class4 的规则没有数据,则 Class1 和 Class2 按比例 10/70 进行分配带宽,Class1=125M,Class2=875M,Class3=0M,Class4=0M

3、如果 rl 分配到的比例带宽小于最小带宽,则以最小带宽为主如 Class1 分配的 10%的带宽,只有 10M,但是设置了最小带宽为 50M,则以 50M 为准。

2. 游戏优先:RT 的带宽设大,并保证时实时性,游戏进入 RT
3. 视频优先:Fast 带宽设大,视频进入 Fast
4. 网页优先:80/http,443/https 进入 Fast 队列

1-智能QOS方案介绍相关推荐

  1. ESP HMI 智能屏方案介绍

    随着智能化设备的普及,现代化的人机交互(HMI)取代了传统的按钮和开关,允许用户通过轻触屏幕或语音来控制其他设备.乐鑫充分发挥 ESP32 系列芯片在人机交互领域的能力,面向各垂直市场,推出单芯片 H ...

  2. MTK6765智能安全帽方案介绍

    智能安全帽是一款佩戴在头部的智能移动作业终端,运用了移动互联网.物联网.感知传感器.高清防抖摄像头.人工智能等技术,具备语音操控.实时视频.拍照.录像.录音.实时对讲.定位.电子围栏.安全防护预警.人 ...

  3. 智能体重秤方案/案列/APP/小程序

    现代人的生活节奏快.饮食不规律的特点让不少人的体重容易飙升,尤其是妹子稍不注意就会变胖,减肥成了不少人的一件大事.工欲善其事必先利其器,要减肥自然也要有好搭档:只能简单显示体重的体重秤早已过时,能够测 ...

  4. 智能运动鞋方案/案列/APP/小程序/网站

    随着智能产品的发展越来越广泛,人们也想要让生活更完美的和产品结合在一起,日常过程当中我们不论在什么地方都需要穿鞋,而有的户外运动的爱好者对于鞋子方面的要求会更高,智能运动鞋的发明让每一个喜欢运动的人可 ...

  5. 智能血糖仪方案/案列/APP/小程序/项目

    糖尿病是中老年人群常见的慢性疾病,对身体有着极为严重的损伤,并且目前几乎不可被治愈.很多朋友听到糖尿病三个字就会谈虎色变,其实这种疾病并没有那么可怕.想要对抗糖尿病,其实最关键的不是吃什么药或者什么样 ...

  6. 校园智能储物柜方案开发

    校园智能储物柜方案开发 移动互联加的时代,智能便捷以及快销化方式越来越被推崇,很明显共享快递柜.校园智能储物柜.共享寄存柜解决方案打破传统的储物租用模式,让传统在创新中得到发展,方便快捷,解决了只有大 ...

  7. 智能血压计方案/设计案列/APP/小程序

    智能化生活来临之后,我们很多看似很麻烦的事情变成了简单.过去常常排队去医院测量血压变化,如今有了智能血压计,已经可以足不出户测量血压变化.人们在体检和平时保健监测中所说的"血压", ...

  8. 智能枕头方案/案列/APP

    睡觉和吃饭是一样重要的,一个人想要健康的体魄,不仅要饮食得当,更需要有一个好的睡眠质量.随着人们生活品质的提高,人们对于睡眠的要求越来越高,那么就非常需要一款舒适的枕头.为了适应市场的需求,我爱物联网 ...

  9. 工地智能安全帽方案/设计案列/APP

    建筑工地是一个安全事故多发的场所.目前,工程建设规模不断扩大,工艺流程纷繁复杂,如何完善现场施工现场管理,控制事故发生频率,保障文明施工一直是施工企业.政府管理部门关注的焦点.尤其随着社会的不断进步和 ...

最新文章

  1. 删数据,还要删AI模型:美国科技公司遭遇最严厉隐私泄露处罚
  2. 如何用 Redis 解决海量重复提交问题
  3. python下载安装教程mac-教程|如何在mac上为Python安装XGBoost!
  4. mysql数据库DDL操作
  5. uboot 与系统内核中 MTD分区的关系
  6. ZOJ 2562 More Divisors
  7. 台式计算机显示器的分辨率,台式电脑分辨率多少合适,测试电脑分辨率
  8. 毫秒级超低延时直播产品实测(PRTC直播/webRTC直播)
  9. TCP的AIMD(加性增窗、乘性减窗)策略
  10. DP1.2 硬件规范——硬件/Lenovo
  11. 麒麟v10安装达梦数据库
  12. Java使用IKAnalyzer实现多关键字查询
  13. Android面试,给正在找工作的安卓攻城师们 ... ...
  14. IMX6ULL-UBoot 20.04移植记录
  15. 【二叉树】根据后续和中序遍历输出前序遍历 [建树+非建树做法]
  16. Excel/WPS 按条件合并多行
  17. 熬夜整理两万字Python知识点
  18. 中国移动明确5G商用时间表
  19. linux7.4修改密码,Centos7.4 修改Root密码
  20. 探针台选型的注意事项有哪些

热门文章

  1. MD5加密算法及其在Java中的使用
  2. 虚拟机报错模块“Disk”启动失败。 未能启动虚拟机。
  3. 论文公式编辑比较麻烦,试试截图快速识别并编辑公式!
  4. Photoshop 使用钢笔工具 进行抠图 商业出图入门
  5. IO流 | IO流的应用举例
  6. proto2java
  7. Linux c 中alarm,signal,pause的使用说明
  8. C语言中alarm的应用
  9. sqlite3数据库损坏修复
  10. 【图论】中国邮递员问题、平面图上最大割问题的多项式时间算法