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. Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍

    最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...

  2. 自学tensorflow——2.使用tensorflow计算线性回归模型

    废话不多说,直接开始 1.首先,导入所需的模块: import numpy as np import os import tensorflow as tf 关闭tensorflow输出的一大堆硬件信息 ...

  3. JavaWeb基础—JSP自定义标签入门

    自定义标签的作用:替换JSP页面的java代码 步骤:1.标签处理类(标签是一个对象,那也就需要先有类) 2.tld文件 它是一个xml(可以向c标签里借),一般放到WEB-INF下,不让客户端浏览器 ...

  4. Android 读取Assets下的资源文件

    做Android开发近半年了,东西越学越多,硬盘容量越来越小.很多东西找起来也不方便,为此,我打算从今天起把工作中学到的东西整理起来,写成日记.也希望与广大网友分享我的经验.一同进步.今天主要介绍文件 ...

  5. 20145209刘一阳《JAVA程序设计》第二周课堂测试

    第二周课堂测试 1.if关键字后面的小括号内,表达式的值可以为10.(B) A .true B .false 2.表达式0xaa | 0x55的值为(C) A .FF B .0 C .255 D .1 ...

  6. [折半搜索][哈希]POJ1186方程的解数

    题目传送门 这道题明显N数据范围非常小,但是M很大,所以用折半搜索实现搜索算法的指数级优化,将复杂度优化到O(M^(N/2)). 将搜出的两半结果用哈希的方式合并(乘法原理). Code: #incl ...

  7. 1-[Mysql]-数据库介绍及安装

    1.数据库概述 1.数据库服务器: 运行数据库管理软件的计算机 2.数据库管理软件:mysql oracle db2 sqlserver 3.库:文件夹 4.表:文件 5.记录:事物的一系列典型特征: ...

  8. P4774 [NOI2018]屠龙勇士

    P4774 [NOI2018]屠龙勇士 先平衡树跑出打每条龙的atk t[] 然后每条龙有\(xt \equiv a[i](\text{mod }p[i])\) 就是\(xt+kp[i]=a[i]\) ...

  9. React Native开启实时重载(Enable live Reload)

    传统的原生应用开发中,每一次修改都需要重新编译. 但在 RN 中你只需要刷新一下 JavaScript 代码,就能立刻看到变化. 操作 1.安卓模拟器 按下Ctrl + M,Enable live R ...

  10. Assert.notNull(sessionUser);

    rg.springframework.util.Assert Assert翻译为中文为"断言".就是断定某一个实际的值就为自己预期想得到的,如果不一样就抛出异常.