QoS入门,为了进一步学习DPDK上的QoS

《计算机网络的服务质量(QoS)》 林闯,单志广,任丰原 著

Background

Internet的传统分组交换网络是面向非实时数据通信而设计的,典型应用例如FTP和Email。IP协议是典型的Best-effort,尽力而为的服务,TCP这类可靠的传输层协议被设计出来是为了缓解严重的网络拥塞,优化网络的数据吞吐量,最重要的是保证数据通信的可靠性。随着网络的发展,人们对于网络的要求越来越高,Internet上也从单一的数据传输变为数据、语音、图像、视频等多媒体的传输。多媒体信息对网络的带宽要求很高,而且要求信息传输延迟低,但能够容忍一定的错误率和丢失率(本书作于2003年,关于流量类型的着眼点在于多媒体)。现如今又出现了datacenter,以及云计算、大数据、IoT等大流量的传输要求,或是实时对战游戏、直播平台、自动驾驶这一类对时延、抖动要求极高的网络应用。Internet与生俱来的Best-effort特点,无法满足现如今越发多样化的网络应用以及用户对网络传输质量的不同要求。在此背景下,人们致力提高整个计算机网络系统的服务性能和质量,以期为下一代网络应用、为用户提供更高质量的网络传输。以上就是计算机网络QoS的诞生背景。

对QoS的研究可以追溯到上世纪八十年代,当时已经有一些具有远见的研究者认识到了服务质量的重要性,但很长的一段时间内,整个Internet的性能和规模有限,QoS并未获得大多数人的重视。直到网络规模的不断扩大以及多媒体应用的增加,研究者才开始了对QoS的系统性研究。最主要的是IETF在1997年9月开始制定一系列与QoS有关的RFC标准,典型的有【RFC 2215】综合服务(integrated services, IntServ, IS)和【RFC 2474】区分服务(differentiated services, DiffServ, DS)。我也重点看的是这两个。

Definition & Terminology

QoS的定义:

  • QoS是网络在传输数据流时要满足一系列服务请求,具体可以量化为带宽、时延、抖动、丢失率、吞吐量等性能指标。
  • QoS是用户和服务网络之间关于信息传输质量的约定。
  • QoS的目标是为Internet应用提供服务区分和性能保证:服务区分是指网络能根据不同的应用的需求,为其提供不同的网络服务;性能保证则要解决带宽、丢失、延迟、抖动等性能问题,QoS的设计需以提高网络性能为目的。

从QoS的目标来看,以整个计算机网络庞大的体量,QoS绝不是网络中某个个体元素的行为,不是在某一台主机、某一台路由器上稍作修改即可达到的目的,而是涉及到用户与网络、网络内部节点的一种整体行为。

【RFC 2216】是IETF对QoS做的一系列定义,其中有如下术语:

Terminology Explanation
QoS 用带宽、分组延时、分组丢失率等参数描述的关于分组传输网的质量
网络元素(Element) 任何一个可以在Internet中处理packet的构件。当用element描述时,表示它具有数据通过时对其进行QoS控制的能力
流(Flow) 相同QoS要求,服从统一QoS控制方法的,通过某一网络元素的packet集合。一个流的packet可以来自不同的应用。
服务(service) 描述网络元素的控制能力
行为(behavior) 应用直接可见的,由服务提供的最终结果
流量规范(traffic specification,TSpec) 流、网络元素、服务,三者之间的合同

基于上述术语,IETF将QoS定义成二维空间:<服务类型>、<参数类型>

用户需要与网络系统进行协商。协商就是用户之间/用户与网络之间就QoS要求进行交互,最后确定QoS的过程。用户可以表达的QoS描述包括:

  • 信息流特征。例如,信息流产生的峰值速率和平均速率等,以及五元组等网络数据。体现用户让网络知晓自己的特定的流量特征,需要QoS服务。
  • 信息流的性能要求、同步要求。如吞吐量、延迟、抖动、丢包率的各种要求。
  • 服务层次。例如想要可控负载型服务、保证性服务、还是尽力而为服务。

当用户与网络系统达成QoS约定之后,网络系统就要提供基于QoS信息的流量实时控制了。包括几个重要的术语:

Terminology Explanation
整型 meter 调节流量速率,例如令牌桶算法。数学上证明了如果在网络边缘进行整型,在网络中采取适当的调度策略,可以为应用提供非常好的QoS[1]
调度 schedule 每个网络元素对packet进行排队时要根据QoS要求所赋予的相应优先级,调度网络资源(带宽、缓存、CPU、队列、线程等)来执行
监控 monitor 监视是否提供了预先约定的QoS,当无法提供时,提醒用户,协商降低QoS级别
控制 Control 开环和闭环两种模式。开环:只要开始QoS控制后,允许发送方一直按照一个速率发送数据。闭环:发送方还是要根据反馈信息调整发送速率。
同步 Synchronize 控制事件顺序和应用交互行为的精确时间先后顺序定义

IntServ

IETF先后提出两种QoS体系结构,集成服务IntServ是第一种。特点是:需要所有的路由器在控制路径上处理每个流的消息,维护每个流的路径状态和资源预留状态,在路径上执行基于流的分类、调度、管理。技术上,基于资源预留协议RSVP;逐节点建立或拆除流的状态和资源预留状态;判断资源是否满足用户需求;根据流的状态进行QoS路由,传输控制等措施。IntServ的基石就是:资源预分配、全局流状态、传输控制。

DiffServ

看了上面那段话也知道IntServ想在网络层建立太过复杂的逻辑而失败。于是DiffServ应运而生了。

  • 目标:简单有效、可扩展
  • 内部节点只进行根据DS头部的简单转发
  • 在边界节点进行流状态信息的保持和实现

具体来讲:边界节点根据约定好的QoS规定,把将要进入网络的流量分类成不同的流。流的聚集信息用IP头部的DS field来标识,DS field 里的内容叫做DSCP(codepoint)。内部节点在调度这种包的时候,就是简单的根据不同的DSCP选择特定的调度和转发服务即可。

element 在收到包之后,要做的事情是:

  • 分流 classify,根据预先预定的规则,例如DSCP值、五元组等等。将包划到某一流的类别。
  • 调节,包括 meter(限速)、mark(修改DSCP值)、drop(丢包)、shaping(整型,修改包的其他内容)、计量器(计数、记录流量速率等)、经过令牌桶算法调整速率等。
  • 调度,发包。element实现一组PHB(per-hop-behavior,逐跳行为),就根据IP包的DSCP选取特定的PHB,执行特定的动作。

reference

[1] - Parekh A, Gallager R G. A generalized processor sharing approach to flow contol in integrated service networks - the multiple node case. IEEE INFOCOM'93. April 1993. 521~530

wiki - DS

计算机网络的服务质量(QoS)的更多相关文章

  1. Kubernetes 服务质量 Qos 解析 - Pod 资源 requests 和 limits 如何配置?

    QoS是 Quality of Service 的缩写,即服务质量.为了实现资源被有效调度和分配的同时提高资源利用率,kubernetes针对不同服务质量的预期,通过 QoS(Quality of S ...

  2. 异构无线网络之QOS简介

    QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力, 是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术. 在正常 ...

  3. 《数据通信与网络》笔记--QoS

    QoS(Quality of Service)服务质量,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术. 1.QoS参数 衡量服务质量QoS的参数主要包括: 端到端延迟(Delay) ...

  4. 分布式还是混合式? 谈CDN架构对服务质量的影响

    传统分布式模型 通 常,内容分发网络(CDN)採用分布式模型.在这样的模型里, 用户的文件存放在一个源server上.而且由大量边缘server负责分发这些文件.这些边缘server的磁盘空间比較小. ...

  5. ITU-T Technical Paper: NP, QoS 和 QoE的框架以及它们的区别

    本文翻译自ITU-T的Technical Paper:<How to increase QoS/QoE of IP-based platform(s) to regionally agreed ...

  6. QOS-QOS(服务质量)概述

    QOS-QOS(服务质量)概述 2018年7月7日  20:29 概述及背景: 1.  引入: 传统IP网络仅提供“尽力而为”的传输服务,网络有可用资源就转发,资源不足时就丢弃 新一代IP网络承载了 ...

  7. LTE QOS

    http://wenku.baidu.com/link?url=ziFIkdKaC7MU2RY-bTOp2bt87WFPw5_02bqmYs5W6w4ktOfPHEcWesK1U2T7YiyXjVSM ...

  8. 面向SOA服务架构的案例分析的研究

    随着互联网应用的不断发展,网络业务的种类.数量不断增加,计算机网络管理的研究重 点正在由过去的个别资源监控.应用可用性阶段,向着如何通过网络获得所需业务.业务流程的优化.保障业务服务水平方向发展.但这 ...

  9. word20161218

    QoS, Quality of Service / 服务质量 QoS Admission Control Service / QoS 许可控制服务 Quality of Service, QoS / ...

随机推荐

  1. RPC--HDFS节点间的沟通桥梁

    RPC(Remote Procedure Call, 远程过程调用)是一种通过网络从远程计算机上请求服务来得到计算服务或者数据服务,且不需要了解底层网络技术的协议和框架. RPC远程调用是构建在语言级 ...

  2. net辅助工具列表

    最近对.net的辅助工具比较感兴趣,网上也已经有.net的十个必备工具的帖子了,这里提供了一份全面的工具列表: Code generation NVelocity CodeSmith X-Code . ...

  3. JQuery第二天——JQuery的DOM操作

    JQuery拥有隐式迭代和显式迭代 因为JQuery为类数组对象,可以使用手动遍历实现显式 .each():也可以使用 $("p").click(function(){ var t ...

  4. 20155338《网络对抗》Exp2 后门原理与实践

    20155338<网络对抗>Exp2 后门原理与实践 一. 基础问题 (1)例举你能想到的一个后门进入到你系统中的可能方式? 答:游览网站中附带的广告或弹出的不正规软件. (2)例举你知道 ...

  5. 【python3】爬取简书评论生成词云

    一.起因: 昨天在简书上看到这么一篇文章<中国的父母,大都有毛病>,看完之后个人是比较认同作者的观点. 不过,翻了下评论,发现评论区争议颇大,基本两极化.好奇,想看看整体的评论是个什么样, ...

  6. uefi+gpt安装双系统

    uefi+gpt:不要用easybcd!不起作用.找不到.mbr文件. win10空出一个盘: 制作ubuntu启动盘: 分区设置 挂载点 分区大小 新分区类型 新分区位置 用于 / 22000MB ...

  7. 2_C语言中的数据类型 (二)进制

    1.1       二进制数.位.字节与字 我们习惯于十进制的数:10,12等 一个位只能表示0,或者1两种状态,简称bit,一个位是一个bit 一个字节为8个二进制,称为8位,简称BYTE,8个比特 ...

  8. ATmega8仿真——键盘扫描的学习

    1.按键的使用特点 按键的应用主要是在按键闭合时改变电路的电平,但是一般情况下按键的开关都是机械弹性触点开关,即利用触点的接触和分离来实现电路的通断,所以在按键按下和释放时往往会产生抖动干扰. 消除抖 ...

  9. 运行用例时,报错Unknow Error:Element xxx is not clickable……的解决方法

    P.S:近期selenium官方更新了版本以解决此问题 通常这种情况是由于在点击该元素时,js更换了元素属性造成的. 所以可以采用js的方式进行处理 方法如下: WebDriver driver = ...

  10. win10系统安装docker注意事项

    首先要确保win10系统支持 hyper-v 技术. 然后按照官网的流程下载,安装,基本上不会出什么问题.安装好之后使用,需要进行以下几个操作 access denied问题的解决 按win+R,输入 ...