QoS(Quality of Service)服务质量,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。

1.QoS参数

衡量服务质量QoS的参数主要包括:
端到端延迟(Delay):包括传输时延、传播时延、排队时延。
延迟抖动(Jitter):抖动是网络延迟的变化量,是由于同一应用的任意两个相邻分组在传输路由中经过不同的网络延迟产生的。
抖动控制对多媒体应用十分重要。
分组丢失率(Loss Ratio):网络拥塞时由于缓冲溢出或分组到达延迟超过延迟上界,分组将被丢弃。这些丢弃的分组将直接影
响接收端的回放质量。不同的多媒体应用能忍受不同的分组丢失。
吞吐量(Throughput):吞吐量对于数据传输应用是一个重要的QoS参数,它直接反映了在一段时间间隔中网络所传输的通信量。
但吞吐量对某些应用不适于作为QoS的直接参数,特别是突发的通信量。

2.改进QoS的技术

这里简要地讨论四种常用的改进服务质量的方法:调度,通信量整形,许可控制和资源预留。

2.1.调度

来自不同数据流的分组到达交换机或路由器,并由它进行处理,一种好的调度技术会以公平合理的方式来对待不同的数据流,已经
设计了多种调度技术用来改进服务质量,在这里讨论其中三种技术:FIFO队列,优先权队列和加权公平队列。

2.1.1.先进先出队列

在先进先出(first-in,first-out,FIFO)队列中,分组在缓冲区(队列)中等待,直到节点(路由器或者交换机)处理它们为止,如果
平均到达速率高于平均处理速率,那么队列将会被填满,新的分区就会被丢弃。

2.1.2.优先权队列

在优先权队列(priority queuing)中,每个到来的分组都被分配了一个不同的优先权,每个优先权都有自己的队列。最高优先权的队列
中的分组首先被得到处理,最低优先权的队列的分组最后被处理。
与FIFO队列相比,优先权对垒能提供更好的QoS,因为较高的优先权的通信量能用较少的延迟到达目的端。但是优先权队列也有潜在的
缺点,如果高优先权的队列有持续的通信量,那么较低优先权队列中的分组将永远得不到处理。这种情形称为“饥饿”。

2.1.3.加权公平队列

较好的调度算法是加权公平队列(weighted fair queuing)。在这种技术中,分组仍然被分为不同的类,并且属于不同的队列,但是,队列
是基于队列的优先权来分配权重的,较高的优先权就意味着较高的权重,系统以轮换的方式来处理每个对列中的分组,所处理的分组数量等于
相应队列的权重,例如:如果这些权重是3,2和1,那么就对第一队列中的3个分组进行处理,对第二队列中的2分分组进行处理,对第三队列中的
1个分组进行处理。

2.2.通信量整形

通信量整形(traffic shaping)是一种控制发送到网络中的通信量和速率的机制。通信量整形主要有二种技术:漏桶和令牌桶。

2.2.1漏桶

如果桶在底部有一个小洞,只要桶中有水,水便从桶中以不变的速率漏下,如果桶中有水,水漏的速率并不依赖于将水倒入桶中的速率。输入速率
可以发生变化,但是输出速率是恒定的。在网路中,一种叫漏桶(leaky bucket)的技术能防止突发通信量。下图说明了漏桶的效果。


简单漏桶的实现过程如图所示:


如果通信量由固定大小的分组(例如:ATM中的信元)构成,那么在每个时钟单位时间内,进程从队列中移除固定数量的分组,如果通信量
是由变长分组组成的,那么固定输出的速率必须是基于字节个数或位数。
以下是变长分组的算法:
1.在计时开始时,将计数器初始化为n。
2.如果n比分组的出长度长,就发送分组,并将计数器的值减去分组的长度。重复该步骤,知道n值小于分组的长度。
3.重新设置计数器,并返回到步骤1.

2.2.2.令牌桶

漏桶算法有很大的局限性,他不能给空闲的主机提供信用。例如,如果一台主机在一段时间内没有发送数据,其漏桶就变成空桶了。现在即使
主机中有突发性数据,漏桶也只能允许平均速率的数据,此时并没有考虑主机空闲的时间,另一方面,令牌桶(token bucket)算法允许空闲主机
以令牌的形式为未来积累信用,在每个时钟单位时间内,系统发送n个令牌到桶中,在每个数据信元发生后,系统就从中去掉一个令牌,例如,假设
n是100,主机空闲了100个时钟单位时间,那么令牌桶便收集了100*100个令牌,主机可以在一个时钟单位时间消费所有这些令牌来发送10000个信元,
或者花去1000个时钟单位时间,每个时钟单位时间内发送10个信元。

2.2.3.令牌桶和漏桶的结合使用

可将两种技术结合起来给空闲主机提供信用,同时调整通信量,在令牌桶中应用漏桶,并且漏桶的速率应比将令牌放入桶中的速率高。

2.3.资源预留

数据流需要诸如缓冲区,带宽,CPU时间等资源,如果提前对这些资源进行预留,将会提高服务质量,后面会讨论一个称为综合业务的QoS模型,
该模型极大地依赖资源预留来提高服务质量。

1.4.许可控制

许可控制指的是由路由器或交换机使用的一种机制,它基于一个称为数据流规范的预定义参数来接收或者拒绝数据流,在路由器接收数据流并对其
进行处理之前,它检查数据流规范,查看其性能(根据带宽,缓冲区大小以及CPU速度等)和它与其他数据流先前的约定是否处理新的数据流。

3.QoS模型

目前QoS主要有两种解决模型:综合业务(IntServ)和差分业务(DiffServ)。

3.1.综合业务

是一种端到端基于流的QoS技术,基本思想就在于以资源预留的方式来实现QoS保障。其服务模型在IETF RFC1633中进行了定义。RFC1633将

资源预留协议RSVP作为IntServ结构中的核心信令协议。

IntServ/RSVP提供3种层次的业务:

端到端的质量保证型服务:保证带宽、限制延迟、无丢包。

可控负载型服务:类似于在当前负载较轻网络中实现尽力而为业务的服务质量。

尽力而为的服务:类似于当前Internet上尽力而为的服务。

从技术角度讲,IntServ/RSVP在目前的网络上是一种行之有效的QoS保障方法,可提供严格的端到端细粒度的服务质量,但其对网络节点要求高,

扩展性差。因此目前端到端全网支持的IntServ实用性很低。

3.2.差分业务

DiffServ是IETF在1998年推出的一种基于类的QoS技术,主要用于骨干网。使用DiffServ,在网络入口处根据服务要求对业务进行分类、流量控制,

在网络中根据实施好的QoS机制来区分每一类通信,并为之服务(包括资源分配、队列调度、分组丢弃策略等)。

与IntServ类似,DiffServ也定义了3种服务类型:

尽力而为的服务:类似于目前Internet上尽力而为的服务。

奖赏服务:为用户提供低延迟、低抖动、低丢包率和保证带宽的端到端或者网络边界到边界的传输服务。

确保服务:确保服务通过控制丢包优先级,提供比“尽力而为”服务更好的服务。

DiffServ不面向单个业务流,而采用聚合机制将具有相同特性的若干业务流聚合起来,为整个聚合流提供服务,具有良好的扩张性,同时,DiffServ

相对更容易在现有IP网络及产品中实现,因此目前商用网络中QoS基本上都是基于DiffServ模型实现,但其难做到基于流的端到端的QoS,颗粒度较差。

《数据通信与网络》笔记--QoS的更多相关文章

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

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

  2. 《数据通信与网络》笔记--虚电路网络:帧中继和ATM

    在之前的文章中已经介绍过虚电路交换,详细请参见:http://blog.csdn.net/todd911/article/details/9069447 这边介绍下使用虚电路交换的2中WAN技术:帧中 ...

  3. 《数据通信与网络》笔记--TCP中的拥塞控制

    1.拥塞窗口 发送方窗口的大小不仅取决于接收方,而.而且还取决于网络拥塞的情况. 发送方有2种信息:接收方通告的窗口大小和拥塞窗口的大小,实际的窗口大小事这两者中的最小者. 实际窗口大小 = min( ...

  4. 《数据通信与网络》笔记--IPSec

    1.IP层的安全:IPSec IP层安全(IP security,IPsec)是由因特网工程任务组(IETF)设计用来为IP层的分组提供安全的一组协议.IPsec帮助 生成经过鉴别的与安全的IP层的分 ...

  5. 《数据通信与网络》笔记--SCTP

    SCTP(stream control transmission protocol)是一种新的可靠的,面向报文的传输层控制协议.它兼有UDP和TCP的特性,它是可靠的面向报文的协议,它保存报文的边界, ...

  6. 《数据通信与网络》笔记--SSL/TLS

    上次简单地介绍了IP层的安全,今天来介绍下在传输层提供安全性最主要的2个协议:安全套接字层(SSL)协议和传输 层安全(TLS)协议.TLS实际上就是SSL的IETF版本. 1.SSL服务 设计安全套 ...

  7. 网络笔记02数据解析 -1-JSON解析

    1.JSON解析 1.JSON介绍 JSON是最网络传输数据最为广泛的数据格式,没有之一,出身草根,是Javascript的子集,专门负责描述数据格式.Javascript是网页开发的一种脚本语言,和 ...

  8. 网络笔记-unity 实现AOP

    该文章来自网络,如有冒犯,请及时联系! 前提 引用以下文件 Microsoft.Practices.ObjectBuilder2.dll Microsoft.Practices.Unity.dll M ...

  9. Android网络笔记

    (1)网络状态: ConnectivityManager负责管理所有连接的服务(如:系统服务,3G/4G,WiFi,蓝牙等).查看网络状态的类是NetWorkInfo,它是通过Connectivity ...

随机推荐

  1. VO,DTO,DO,PO的划分

    实体类(VO,DTO,DO)的划分   经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析. 得出的主要结论是:在项目应用中,VO对应 ...

  2. sqlmap批量扫描burpsuite请求日志记录

    sqlmap可以批量扫描包含有request的日志文件,而request日志文件可以通过burpsuite来获取, 因此通过sqlmap结合burpsuite工具,可以更加高效的对应用程序是否存在SQ ...

  3. No Hibernate Session bound to thread, and configuration does not allow

    今天晚上挺悲催的,遇到了这个问题花费我很长时间,现在总结如下: 到这这种情况的发生有两种情况: 1,没有配置事物只要在Spring配置文件中添加如下代码: <bean id="txMa ...

  4. LinkedBlockingQueue

    LinkedBlockingQueue是一个基于已链接节点的.范围任意的blocking queue的实现.    此队列按 FIFO(先进先出)排序元素.队列的头部 是在队列中时间最长的元素.队列的 ...

  5. 函数hash_get_nth_cell

    /************************************************************//** Gets the nth cell in a hash table. ...

  6. bzoj1061 1283

    以前写的1061但一直没懂,后来懂了但忘写解题报告了 做了1283顺便补一下吧 1061 我是orz https://www.byvoid.com/blog/noi-2008-employee/#mo ...

  7. 三个流行MySQL分支的对比

    MySQL是历史上最受欢迎的免费开源程序之一.它是成千上万个网站的数据库骨干,并且可以将它(和Linux)作为过去10年里Internet呈指数级增长的一个有力证明. 那么,如果MySQL真的这么重要 ...

  8. ArcScene三维制作

    转自:http://www.360doc.com/content/11/0818/10/7534722_141363009.shtml 1.0 添加地图数据 数据显示效果: 1.1 设置图层的显示顺序 ...

  9. Spring @Resource、@Autowired、@Qualifier的注解注入及区别

    spring2.5提供了基于注解(Annotation-based)的配置,我们可以通过注解的方式来完成注入依赖.在Java代码中可以使用 @Resource或者@Autowired注解方式来经行注入 ...

  10. 扩展类加载器-------改变JAVA的父优先类加载顺序

    java的类加载机制默认情况下是采用委托模型:当加载某个类时JVM会首先尝试用当前类加载器的父类加载器加载该类,若父类加载器加载不到再由当前类加载器来加载,因此这种模型又叫做“父优先”模型. 但是在实 ...