QoS简介
服务质量QoS(Quality of Service)用于评估服务方满足客户服务需求的能力。通过配置QoS,对企业的网络流量进行调控,避免并管理网络拥塞,减少报文的丢失率,同时也可以为企业用户提供专用带宽或者为不同的业务(语音、视频、数据等)提供差分服务。
使用QOS的目的
区分流量,保证重要流量被及时被转发
影响网络质量的因素:
网络带宽:
网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。
网络时延:
时延是指一个报文从一个网络的一端传送到另一端所需要的时间。
实时应用通信质量都比较关注时延大小,如语音、视频等。以语音传输为例,时延是指从说话者开始说话到对方听到所说内容的时间。若时延太大,会引起通话声音不清晰、不连贯或破碎。
单个网络设备的时延包括传输时延、串行化时延、处理时延、以及队列时延。
传输时延:一个数据位从发送方到达接收方所需要的时间。该时延取决于传输距离和传输介质,与带宽无关。
串行化时延:指发送节点在传输链路上开始发送报文的第一个比特至发完该报文的最后一个比特所需的时间。该时延取决于链路带宽以及报文大小。
处理时延:指路由器把报文从入接口放到出接口队列需要的时间。它的大小跟路由器的处理性能有关。
队列时延:指报文在队列中等待的时间。它的大小跟队列中报文的大小和数量、带宽以及队列机制有关。
抖动:
由于每个报文的端到端时延不一样,就会导致这些报文不能等间隔到达目的端,这种现象叫做抖动。一般来说,时延越小则时延抖动的范围越小。
某些业务类型(特别是语音和视频等实时业务)是极其不能容忍抖动的。报文到达时间的差异将在语音或视频中造成断续;另外,抖动也会影响一些网络协议的处理,有些协议是按固定的时间间隔发送交互性报文,抖动过大就会导致协议震荡,而实际上所有传输系统都有抖动,但只要抖动在规定容差之内就不会影响服务质量,另外,可利用缓存来克服过量的抖动,但这将会增加时延。
抖动的大小跟时延的大小直接相关,时延小则抖动的范围也小,时延大则可能抖动的范围也大。
丢包:
丢包率是指在网络传输过程中丢失报文占传输报文的百分比。丢包可用于衡量网络的可靠性。
丢包(packetloss)可能在所有环节中发生,例如:
处理过程:路由器在收到报文的时候可能由于CPU繁忙,无法处理报文而导致丢包;
排队过程:在把报文调度到队列的时候可能由于队列被装满而导致丢包;
传输过程:报文在链路上传输的过程中,可能由于种种原因(如链路故障等)导致的丢包。
少量的丢包对业务的影响并不大,例如,在语音传输中,丢失一个比特或一个报文的信息,通话双方往往注意不到;在视频广播期间,丢失一个比特或一个报文可能造成屏幕上瞬间的波形干扰,但视频很快就会恢复正常。即使使用传输控制协议(TCP)传送数据也能处理少量的丢包,但大量的丢包就会严重影响到传输效率。
QoS的服务类型
综合服务模型(Integrated Services):
RSVP协议工作过程:在应用程序发送报文前,需要向网络申请特定的带宽和所需的特定服务质量的请求,等收到确认信息后才发送报文。
IntServ是一种最为复杂的服务模型,它需要用到RSVP(ResourceReservation Protocol)协议。该服务模型在发送报文前,需要向网络申请特定的服务。这个请求是通过信令(signal)来完成的,应用程序首先通知网络它自己的流量参数和所需的特定服务质量的请求,包括带宽、时延等。应用程序一般在收到网络的确认信息后,即认为网络已经为这个应用程序的报文发送预留了资源,然后立即发送报文。
IntServ模型要求端到端网络的所有节点都支持RSVP协议,且每个节点都需要周期性地同相邻节点交换状态信息,这样就会加大协议报文导致的开销。更关键的是,所有网络节点都需要为每个数据流保存状态信息,而当前在Internet骨干网上有着成千上万条数据流,因此IntServ模型在Internet骨干网上无法得到广泛应用
IntSer提议通过4种手段来提供QoS传输机制。
●(1)准入控制: IntServ对一 一个新的QoS通信流要进行资源预约,如果网络中的路由器确定没有足够的资源来保证所请求的QoS,则这个通信流就不会进入网络。
●(2)路由选择算法:可以基于许多不同的QoS参数(而不仅仅是最小时延)来进行路由选择。
●(3)排队规则:考虑不同通信流的不同需求而采用有效的排队规则。
●(4)丢弃策略:在缓冲区耗尽而新的分组来到时要决定丢弃哪些分组以支持QoS传输。
优点
可提供端到端的Qos服务,并保证带宽和延迟
缺点:
需要跟踪和记录每个数据流的状态,实现较复杂,且扩展性较差,带宽利用率差
集成服务分为3种:
保证质量的服务,控制负载的服务和尽力而为的服务,这里重点说尽力而为服务模型:
尽力而为的服务模型(Best-Effort):
Best-Effort是一个单一的服务模型,也是最简单的服务模型。应用程序可以在任何时候,发出任意数量的报文,而且不需要事先获得批准,也不需要通知网络。
应用Best-Effort服务模型的网络尽最大的可能性来发送报文,但对时延、可靠性等性能不提供任何保证,但它适用于绝大多数网络应用,如FTP、E-Mail等。
Best-Effort服务是现在Internet的缺省服务模型,它是通过先入先出(FIFO)队列来实现的。
在尽力而为的服务模型下,可通过增大网络带宽和升级网络设备来提高端到端通信质量:
增大网络带宽:可以增大单位时间内传输的数据量,使其按照传统先进先出的方式在单位时间内传输更多的数据,改善网络拥塞问题。
升级网络设备:可以增大数据处理能力,使其按照传统先进先出的方式在单位时间内能够处理更多的数据,改善网络拥塞问题。
优点:
实现机制简单
缺点:
对不通过业务流不能进行区别对待
区分服务模型(DiffServ):
DiffServ区分服务工作过程:首先将网络中的流量分成多个类,然后为每个类定义相应的处理行为,使其拥有不同的优先转发、丢包率、时延等。
Diffserv服务模型概述:
业务流分类和标记由边缘路由器来完成。边界路由器可以通过多种条件(比如报文的源地址和目的地址、ToS域中的优先级、协议类型等)灵活地对报文进行分类,然后对不同类型的报文设置不同的标记字段,而其他路由器只需要简单地识别报文中的这些标记,然后对其进行相应的资源分配和流量控制即可。因此,DiffServ是一种基于报文流的QoS模型。
它只包含有限数量的服务等级,少量的状态信息来提供有差别的流量控制和转发。
DS节点:
实现DiffServ功能的网络节点称为DS节点。
DS边界节点:负责连接另一个DS域或者连接一个没有DS功能的域的节点。DS边界节点负责将进入此DS域的业务流进行分类和流量调整。
DS内部节点:
用于在同一个DS域中连接DS边界节点和其他内部节点。DS内部节点仅需基于报文中的EXP、802.1p、IPP等字段值进行简单的流分类以及对相应的流进行流量控制。
DS域(DSDomain):
一组采用相同的服务提供策略和实现了相同PHB(PerHop Behaviors)的相连DS节点组成。一个DS域由相同管理部门的一个或多个网络组成,如一个DS域可以是一个ISP,也可以是一个企业的内部网络。
DiffServ模型充分考虑了IP网络本身所具有的灵活性、可扩展性强等特点,将复杂的服务质量保证通过报文自身携带的信息转换为单跳行为,从而大大减少了信令的工作。该模型是目前应用最广的服务模型。
优点:
不需要跟踪每个数据流状态,资源占用少,扩展性较强,且能实现对不同业务流提供不同的质量服务。
缺点:
需要在端到端的每个节点都进行手工部署,对人员能力要求较高。
区分服务模型也分为3种:1.尽力服务BE 2.优质服务AF 3.加速服务EF
区分服务代码点DSCP,利用IP包头的服务类型字段ToS。
逐跳行为PHB:逐级跳的转发方式,每个PHB对应一种转发方式。
关于DSCP与PHB的映射关系,这一篇非常详细:
关于两者的区分的关键点是:集成服务采用资源预约,区分服务不采用资源预约,而是区分不同的业务流。
例题1:
资源预约协议(RSVP)用在IETP定义的集成服务(IntServ)中建立端到端的QoS保障机制。下面关于RSVP进行资源预约过程的叙述中,正确的是(21)。
(21)A.从目标到源单向预约 B.从源到目标单向预约
C.只适用于点到点的通信环境 D.只适用于点到多点的通信环境
【答案】A
【解析】
资源预留协议最初是IETF为QoS的综合服务模型定义的一个信令协议,用于在流(flow)所经路径上为该流进行资源预留,从而满足该流的QoS要求。
资源预留的过程从应用程序流的源节点发送Path消息开始,该消息会沿着流所经路径传到流的目的节点,并沿途建立路径状态;目的节点收到该Path消息后,会向源节点回送Resv消息,沿途建立预留状态,如果源节点成功收到预期的Resv消息,则认为在整条路径上资源预留成功。
例题2:
RSVP协议通过(27)来预留资源。
(27)A.发送方请求路由器 B.接收方请求路由器
C.发送方请求接收方 D.接收方请求发送方
【答案】B
【解析】
资源预留协议RSVP,它的过程从应用程序流的源节点发送Path消息开始,该消息会沿着流所经路径传到流的目的节点,并沿途建立路径状态;目的节点收到该Path消息后,会向源节点回送Resv消息,沿途建立预留状态,如果源节点成功收到预期的Resv消息,则认为在整条路径上资源预留成功。