QoS技术
一、QoS综述
QoS的产生背景
网络的普及和业务的多样化使得互联网流量激增,从而产生网络拥塞,增加转发时延,严重时还会产生丢包,导致业务质量下降甚至不可用。所以,要在网络上开展这些实时性业务,就必须解决网络拥塞问题。解决网络拥塞的最好的办法是增加网络的带宽,但从运营、维护的成本考虑,这是不现实的,最有效的解决方案就是应用一个“有保证”的策略对网络流量进行管理。
QoS技术就是在这种背景下发展起来的。QoS(Quality of Service)即服务质量,其目的是针对各种业务的不同需求,为其提供端到端的服务质量保证。QoS是有效利用网络资源的工具,它允许不同的流量不平等的竞争网络资源,语音、视频和重要的数据应用在网络设备中可以优先得到服务。QoS技术在当今的互联网中应用越来越多,其作用越来越重要。
QoS的服务模型
•Best-Effort服务模型
Best-Effort是最简单的QoS服务模型,用户可以在任何时候,发出任意数量的报文,而且不需要通知网络。提供Best-Effort服务时,网络尽最大的可能来发送报文,但对时延、丢包率等性能不提供任何保证。Best-Effort服务模型适用于对时延、丢包率等性能要求不高的业务,是现在Internet的缺省服务模型,它适用于绝大多数网络应用,如FTP、E-Mail等。
•IntServ服务模型
IntServ模型是指用户在发送报文前,需要通过信令(Signaling)向网络描述自己的流量参数,申请特定的QoS服务。网络根据流量参数,预留资源以承诺满足该请求。在收到确认信息,确定网络已经为这个应用程序的报文预留了资源后,用户才开始发送报文。用户发送的报文应该控制在流量参数描述的范围内。网络节点需要为每个流维护一个状态,并基于这个状态执行相应的QoS动作,来满足对用户的承诺。
IntServ模型使用了RSVP(Resource Reservation Protocol)协议作为信令,在一条已知路径的网络拓扑上预留带宽、优先级等资源,路径沿途的各网元必须为每个要求服务质量保证的数据流预留想要的资源,通过RSVP信息的预留,各网元可以判断是否有足够的资源可以使用。只有所有的网元都给RSVP提供了足够的资源,“路径”方可建立。
•DiffServ服务模型
DiffServ模型的基本原理是将网络中的流量分成多个类,每个类享受不同的处理,尤其是网络出现拥塞时不同的类会享受不同级别的处理,从而得到不同的丢包率、时延以及时延抖动。同一类的业务在网络中会被聚合起来统一发送,保证相同的时延、抖动、丢包率等QoS指标。
Diffserv模型中,业务流的分类和汇聚工作在网络边缘由边界节点完成。边界节点可以通过多种条件(比如报文的源地址和目的地址、ToS域中的优先级、协议类型等)灵活地对报文进行分类,对不同的报文设置不同的标记字段,而其他节点只需要简单地识别报文中的这些标记,即可进行资源分配和流量控制。
与Intserv模型相比,DiffServ模型不需要信令。在DiffServ模型中,应用程序发出报文前,不需要预先向网络提出资源申请,而是通过设置报文的QoS参数信息,来告知网络节点它的QoS需求。网络不需要为每个流维护状态,而是根据每个报文流指定的QoS参数信息来提供差分服务,即对报文的服务等级划分,有差别地进行流量控制和转发,提供端到端的QoS保证。DiffServ模型充分考虑了IP网络本身灵活性、可扩展性强的特点,将复杂的服务质量保证通过报文自身携带的信息转换为单跳行为,从而大大减少了信令的工作,是当前网络中的主流服务模型。
二、基于DiffServ模型的QoS组成
本文介绍的QoS都是基于DiffServ服务模型的,基于Diffserv模型的QoS业务主要分为以下几大类:
•报文分类和标记
要实现差分服务,需要首先将数据包分为不同的类别或者设置为不同的优先级。报文分类即把数据包分为不同的类别,可以通过MQC配置中的流分类实现;报文标记即为数据包设置不同的优先级,可以通过优先级映射和重标记优先级实现。
•流量监管、流量整形和接口限速
流量监管和流量整形可以将业务流量限制在特定的带宽内,当业务流量超过额定带宽时,超过的流量将被丢弃或缓存。其中,将超过的流量丢弃的技术称为流量监管,将超过的流量缓存的技术称为流量整形。接口限速分为基于接口的流量监管和基于接口的流量整形。
•拥塞管理和拥塞避免
拥塞管理在网络发生拥塞时,将报文放入队列中缓存,并采取某种调度算法安排报文的转发次序。而拥塞避免可以监督网络资源的使用情况,当发现拥塞有加剧的趋势时采取主动丢弃报文的策略,通过调整流量来解除网络的过载。
其中,报文分类和标记是实现差分服务的前提和基础;流量监管、流量整形、接口限速、拥塞管理和拥塞避免从不同方面对网络流量及其分配的资源实施控制,是提供差分服务的具体体现。
各种QoS技术在网络设备上的处理顺序如图1所示。
三、MQC简介
模块化QoS命令行MQC(Modular QoS Command-Line Interface)是指通过将具有某类共同特征的报文划分为一类,并为同一类报文提供相同的服务,也可以对不同类的报文提供不同的服务。
随着网络中QoS业务的不断丰富,在网络规划时若要实现对不同流量(如不同业务或不同用户)的差分服务,会使部署比较复杂。MQC的出现,使用户能对网络中的流量进行精细化处理,用户可以更加便捷的针对自己的需求对网络中的流量提供不同的服务,完善了网络的服务能力。
MQC的三要素:
•流分类
流分类用来定义一组流量匹配规则,以对报文进行分类。
流分类中各规则之间的关系分为:and或or,缺省情况下的关系为or
◾and:当流分类中包含ACL规则时,报文必须匹配其中一条ACL规则以及所有非ACL规则才属于该类;当流分类中没有ACL规则时,报文必须匹配所有非ACL规则才属于该类。
◾or:报文只要匹配了流分类中的一个规则,设备就认为报文属于此类。
•流行为
流行为用来定义针对某类报文所做的动作。
•流策略
流策略用来将指定的流分类和流行为进行绑定,对分类后的报文执行对应流行为中定义的动作,一个流策略可以绑定多个流行为和流分类。
MQC配置流程
1.配置流分类:按照一定规则对报文进行分类,是提供差分服务的基础。
2.配置流行为:为符合流分类规则的报文指定流量控制动作。
3.配置流策略:将指定的流分类和指定的流行为绑定,形成完整的策略。
4.应用流策略:按照需要在相应的视图下应用流策略
四、QoS令牌桶算法
●要实现流量的控制,必须有一种机制可以对通过设备的流量进行度量。 令牌桶是目前最常采用的一种流量测量方法 ,用来评估流量速率是否超过了规定值。
●当数据流到达设备时首先会根据数据的大小从令牌桶中取出与数据大小相当的令牌数量用来传输数据。也就是说要使数据被传输必须保证令牌桶里有足够多的令牌,如果令牌数量不够,则数据会被丢弃或缓存。这就可以限制报文的流量只能小于等于令牌生成的速度,达到限制流量的目的。
单速率令牌桶参数
●单速率令牌桶主要由如下三个参数构成
CIR ( Committed Information Rate ) : 承诺信息速率
CBS ( Committed Burst Size ) : 承诺突发尺寸
EBS ( Extended burst size ) :超额突发尺寸
●对于单速率标记算法的实现,华为路由器采用双桶结构。
●双桶结构由两个桶实现,为方便将两个令牌桶称为C桶和E桶。C桶容量为CBS , E桶容量为EBS ,总容量是CBS+EBS。如果不允许有突发流量, EBS则设置成0. 当EBS≠0时,称为单速双桶。当EBS=0 , E桶的令牌数始终为0 ,相当于只使用了-个令牌桶-C桶,这种情况也称为单速单桶。单速单桶中,报文只标记为绿、红两色。
●CIR CBS EBS的单位:
CIR ( Committed Information Rate ) :承诺信息速率,单位是bit/s ,表示向令牌桶中投放令牌的速率。
CBS ( Committed Burst Size ) :承诺突发尺寸,单位为bit ,用来定义在部分流量超过CIR之前的最大突发流量,即为令牌桶的容量(深度)。承诺突发尺寸必须大于报文的最大长度(最大时一一个分组可以领取桶中的全部令牌)。CBS越大,表示所允许的突发量越大。
EBS ( Extended burst size ) : 超额突发尺寸,用来定义在所有流量超过CIR之前的最大突发量。
双速率令牌桶参数
●CIR ( Committed Information Rate ) :承诺信息速率
●CBS ( Committed Burst Size ) :承诺突发尺寸
●PIR ( Peak Information Rate ) : 表示峰值信息速率
●PBS ( Peak Burst Size ) :表示峰值突发尺寸
五、QoS的应用于实现