QoS 是一个很大的领域,涉及到网络中的多个层次和环节。本文仅简要的谈谈 Endpoint 侧的 QoS 概念,将这些纷繁的概念名词串起来,便于理解。

QoS 技术背景

下图说明了 QoS workflow 中,各项技术的位置和关系

摘自 < 端到端QoS网络设计 >

当流量进入设备后,它依次经过 mark(标记)→ meter(计量) → police(管制) → class/dscp(重分类) → queue(队列) → sharper(整形) → queue priority (优先级调度). meter + police 完成 rate-limit 功能。 而 queue + sharping + priority 完成 congestion manager 功能。sharping 功能属于可选项。

细解释其中的专业术语和实现特点

  • Classification and marking
  • Metering
  • Policing
  • Shaping
  • Scheduling
  • Congestion management
  • 分类:将数据分为不同的类别,称为分类(classification),分类并不修改原来的数据包。
  • 标记:将数据设置为不同的优先级称为标记(marking),而标记会修改原来的数据包。
  • 流量计量:流量计量可以通过漏桶算法(常用于ATM网络)或令牌桶算法(常用于IP网络)实现。计量后的数据包会根据不同的整形类别分别保存在缓冲区中,待满足对应的流量资料后再进行发送。
  • 流量管制:丢弃超出带宽,称为管制(Policing)。
  • 流量整形:将超出的带宽缓存在内存中,等到下一秒再传递,这种行为称为Shaping。典型作用是限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送,以符合种给定的“流量资料”(traffic profile)。
  • 队列调度机制:在QoS技术体系中属于拥塞管理的范畴。
  • 拥塞管理:当网络发生拥塞后,数据还是要被传递的,正因为接收到的数据远多于自身的传输能力,所以数据被传输时就出现了先后顺序,而依照什么样的方式来传数据,就需要队列的指导,QOS中的队列定义了数据包被传输的先后顺序。如果处理方式为管制,那么数据包就会被丢弃,通常情况下,网络设备默认丢弃后到的数据包而传输先到的数据包,这样的丢弃方式称为尾丢弃。

流量整形(traffic shaping)常与流量监管(traffic policing)混淆。它们的主要区别在于,流量整形是一种主动调整流量输出速率的措施。流量整形对流量监管中需要丢弃的报文进行缓存——通常是将它们放入缓冲区或队列内,再根据特定算法均匀的向外发送这些被缓存的报文。但这不代表流量整形不会丢弃报文。shaping可能会增加延迟,而policing几乎不引入额外的延迟。

通常的实现方式

  • Marking: fwmark, ToS/IPP/DSCP
  • Metering: token bucket, trTCM, mark ToS/IPP/DSCP
  • Policing per interface (egress)
  • Shaping per interface (egress)
  • Scheduling: Priority Queuing
  • Congestion management: Taildrop

标记方式

实现 QoS 的一个最基本的方法就是分类和标记。

ToS/IPP/DSCP 是 IP头部的一个名为 ToS 字段。用于标记服务类型。这个字段随着发展,被不断的赋予了新的定义。见下表:

ToS/IPP:根据RFC791定义,IP报文头ToS(Type of Service)域由8个比特组成,其中3个比特的 Precedence 字段标识了 IP 报文的优先级

DSCP:差分服务代码点(Differentiated Services Code Point)RFC2474 重新定义了 IP 报文中的 ToS 域,增加了C比特,表示传输开销(Monetary Cost)。

下图是RFC1349 定义的每个位的意义:

上图示例了一些协议应该如何设置(4~1)位:

到了 RFC2474 , IPP的的意义就发生了变化。而 DTR位意义不变。IPP 与 DSCP 相应存在一个转换关系。DSCP 可以看成定义了一系列队列类别,下表列出一部分:

在路由器中,一般都是把 CS6 和CS7 中的数据用 PQ 做绝对优先处理,无论下面是否有数据也是要优先来传递这两个队列中的数据。而其他EF到AF1的队列中是用 WFQ 来做的,保证所有队列都可以得到带宽来传输。

PQ(Priority Queueing,优先队列):PQ会先服务高优先级的子队列,若高优先级子队列里没有数据后,再服务中等优先级子队列,依次类推。如果PQ正在服务中等优先级子队列,但是高优先级里又来了数据包,则PQ会中断中等优先级子队列的服务,转而服务高优先级子队列。

WFQ(Weighted Fair Queueing,加权公平队列):可以保证相同优先级业务间公平,不同优先级业务间加权。

计量算法

令牌桶算法(Token Bucket)
有时人们将漏桶算法与令牌桶算法错误地混淆在一起。而实际上,这两种算法具有截然不同的特性并且为截然不同的目的而使用。它们之间最主要的差别在于:漏桶算法能够强行限制数据的传输速率,而令牌桶算法能够在限制数据的平均传输速率的同时还允许某种程度的突发传输。

双速率三色标记器(trTCM)

基于令牌桶算法做计量器

管制支持

Ingress policing per interface provided by the Fast Path QoS module. QoS basic 支持对 入口流量做管制。 QoS advance 仅支持对 出口流量做管制。管制也即丢弃。

队列调度算法

Priority Queuing

在报文到达接口后,首先对报文进行分类,然后按照报文所属类别让报文进入所属队列尾部,在报文发送时,按照优先级,总是在所有优先级较高队列中报文发送完毕后,再发送低优先级队列中报文,这样,在每次发送报文时,总是将优先级高的报文先发出去,保证了属于较高优先级队列报文有较低时延,所以PQ的优缺点是很明显的:优点是可以保证高优先级队列的报文可以得到较大带宽、较低的时延、较小的抖动;缺点是低优先级队列的报文不能得到及时的调度,甚至得不到调度,即会出现“饿死”现象。
PQ具有如下特征:
(1) 报文丢弃策略采用 Tail Drop 机制;
(2) 每个队列内部使用FIFO逻辑;
(3) 当从队列调度报文时,先从高优先级的队列调度报文
从上面可以看出,PQ一般的应用场合是保证某类流量尽可能得到最好的服务,而不管其它流量的“死活”。

拥塞管理算法

与调度算法相匹配,使用简单的尾部丢弃算法(tail drop)

上述的这些实现方式,按照文章中的第一个 workflow 图,被串起来,对流量进行控制。各种 Endpoint QoS 实现,都无出本文之右。

qos的_QoS 概述相关推荐

  1. CCNP13:QOS【分类、队列、标记、丢弃】技术

    文章目录 CCNP13:QOS[分类.队列.标记.丢弃]技术 一.浅谈网络通讯: 二.QOS的工具概述: 1.分类: 2.队列: 3.标记: 4.丢弃机制: 三.分类: 四.标记: 1.优先级: 2. ...

  2. 802.11 QoS映射

    网络QoS 网络协议中,常见的承载QoS优先级的方式: IP层的ToS(Type of Service)优先级(RFC791) IP层的DSCP(Differentiated Services Cod ...

  3. 策略和计费控制(PCC)系统研究

    策略和计费控制(PCC)系统研究 研究内容 [TOC "float:left"] 策略与计费控制(PCC)框架1 [架构图](achitecture.png "Archi ...

  4. 浅谈QoS——QoS概述

    今天开始给大家QoS的相关内容.所谓QoS,即Quality of Service,服务质量的意思.本文将大体介绍QoS的基本原理.衡量指标和网络服务各种指标等方面,本文试图用最简单的模式介绍QoS的 ...

  5. QoS服务质量一QoS概述

    一.QoS概述 随着网络技术的飞速发展,IP网络承载的数据网络向集成数据.语音.视频.游戏的多业务网络转变.网络中所承载的数据呈几何级倍数增长.在传统的IP网络中,各类型数据如语音.视频.远程即时视频 ...

  6. QOS概述(四)拥塞管理和拥塞避免

    当网络中刚出现间歇性拥塞,且关键报文要求更优先的转发时,此时就需要进行拥塞管理.通过采用队列技术及不同的调度算法来发送队列中的报文流.如果某些突发的.非关键的报文装满队列,而后发往该队列的报文都被全部 ...

  7. 视频编解码之理论概述 和即时通信

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的.有关实时 ...

  8. 容器开启数据服务之旅系列(四):Kubernetes QoS 助力在线运用与大数据离线运用的带宽控制和磁盘控制...

    容器开启数据服务之旅系列(四) Kubernetes QoS 助力在线运用与大数据离线运用的带宽控制和磁盘控制 概述 本文是2018年大数据峰会上的一些分享,关于在线业务,离线业务在ACK(阿里云容器 ...

  9. 802.11概述及帧结构分析

    目录: 1  802.11概述 2  拓扑结构及服务类型 3  帧格式 3.1 帧格式概述 3.2 MAC Header 3.3 帧类型 1 802.11概述 IEEE 802.11 是一个协议簇,  ...

最新文章

  1. Python 计算程序运行时间
  2. CO CCA-作业分割优先级
  3. 数据返回nan_NumPy 的 nan 如何理解?
  4. centos7从有线切换到无线_如何简单实现内外网自由切换?
  5. CF508D Tanya and Password(欧拉回路)
  6. python元编程_python元编程详解(3)
  7. 韩寒近期【雷人】语录
  8. js的一些function
  9. 页面回填当前日期与时间
  10. Farseer.net轻量级开源框架 中级篇:事务的使用
  11. 图像与矩阵_Python_No.3
  12. 凿音下载 1.26 安卓版
  13. bp神经网络算法的优缺点,bp神经网络缺点及克服
  14. 证件照素材大合集(全网最全版本)
  15. 在sae上面运行微信第三方平台微擎,带视频录像
  16. 实验1-基于半色调技术的图像打印程序
  17. windows AD域的特点
  18. dart pub私有仓库搭建、私有仓库上传方法、上传工具定制
  19. 如何练习打字/盲打(作者的感想与建议)
  20. 【数学建模】-多元线性回归分析

热门文章

  1. Android10弹出截屏对话框,Android一个美丽而聪明的警告对话框SweetAlert
  2. PageHelper分页时超过最大数量的页数仍然返回数据,PageHelper分页失效
  3. android 4.4 屏幕方向,Android4.4屏幕旋转功能
  4. eplan如何导入access_EPLAN如何助力汽车行业的智能制造转型?
  5. python模块用法教程_Python学习之asyncore模块用法实例教程
  6. Python __name__ == ‘__main__’详细解释-Python零基础入门教程
  7. Python 条件推导式 - Python零基础入门教程
  8. 多线程:实现Callable接口
  9. riak文件服务器,Docker中文文档
  10. vivoy9s怎么设置返回键_vivoy9s怎么设置返回键 可以使用虚拟导航键