-
1 课程内容
-
2 作业




Quality of Service(服务质量)是指网络通信过程中,允许用户业务在丢包率、延迟、抖动和带宽等方面获得可预期的服务水平。QoS的目标是:
(1)避免并管理IP网络拥塞;
(2)减少IP报文的丢失率;
(3)调控IP网络的流量;
(4)为特定用户或特定业务提供专用带宽;
(5)支撑IP网络上的实时业务。

通常QoS提供以下三种服务模型: Best-Effort service(尽力而为服务模型) 、 Integrated service(综合服务模型,简称Int-Serv)、 Differentiated service(区分服务模型,简称Diff-Serv)。
Best-Effort是一个单一的服务模型,也是最简单的服务模型。对Best-Effort服务模型,网络尽最大的可能性来发送报文。但对时延、可靠性等性能不提供任何保证。 Best-Effort服务模型是网络的缺省服务模型,通过FIFO队列来实现。它适用于绝大多数网络应用,如FTP、E-Mail等。
Int-Serv是一个综合服务模型,它可以满足多种QoS需求。该模型使用资源预留协议(RSVP),RSVP运行在从源端到目的端的每个设备上,可以监视每个流,以防止其消耗资源过多。这种体系能够明确区分并保证每一个业务流的服务质量,为网络提供最细粒度化的服务质量区分。 但是,Inter-Serv模型对设备的要求很高,当网络中的数据流数量很大时,设备的存储和处理能力会遇到很大的压力。Inter-Serv模型可扩展性很差,难以在Internet核心网络实施。
Diff-Serv是一个多服务模型,它可以满足不同的QoS需求。与Int-Serv不同,它不需要通知网络为每个业务预留资源。区分服务实现简单,扩展性较好。

流量分类,就是将流量划分为多个优先级或多个服务类,如使用以太网帧中802.1Q头保留的User Priority(用户优先级)字段标记服务级别,可以将以太网帧最多分成23 = 8类;使用IP报文头的ToS(Type of service,服务类型)字段的前三位(即IP优先级)来标记报文,可以将报文最多分成23 = 8类;使用DSCP(Differentiated Services Codepoint,区分服务编码点,ToS域的前6位),则最多可分成26 = 64类。在报文分类后,就可以将其它的QoS特性应用到不同的分类,实现基于类的拥塞管理、流量整形等。 对于MPLS网络报文,则一般是根据MPLS报文中的EXP域进行处理。EXP域包括3位,虽然RFC 3032把它叫做实验域,但它通常作为MPLS报文的CoS域,与IP网络的ToS或DSCP域等效。
虽然流量分类几乎可以根据报文的任何字段进行,但是流量分类标记则一般只对802.1Q 以太网帧的CoS域、IP报文的ToS域、MPLS报文的EXP域进行标记。流量的标记主要的目的就是让其他处理此报文的应用系统或设备知道该报文的类别,并根据这种类别对报文进行一些事先约定了的处理。
流量监管(Commit Access Rate,简称CAR)的典型作用是限制进入某一网络的某一连接的流量与突发。在报文满足一定的条件时,如某个连接的报文流量过大,流量监管就可以对该报文采取不同的处理动作,例如丢弃报文,或重新设置报文的优先级等。通常的用法是使用CAR来限制某类报文的流量,例如限制HTTP报文不能占用超过50%的网络带宽。
CAR利用令牌桶(Token Bucket,简称TB)进行流量控制。下图所示为利用CAR进行流量控制的基本处理过程:

通用流量整形(Generic Traffic Shaping,简称GTS)可以对不规则或不符合预定流量特性的流量进行整形,以利于网络上下游之间的带宽匹配。 GTS与CAR一样,均采用了令牌桶技术来控制流量。GTS与CAR的主要区别在于:利用CAR在接口的出、入方向进行报文的流量控制,对不符合流量特性的报文进行丢弃;而GTS只在接口的出方向对于不符合流量特性的报文进行缓冲,减少了报文的丢弃,同时满足报文的流量特性,但增加了报文的延迟。


在计算机数据通信中,通信信道是被多个计算机共享的,并且,广域网的带宽通常要比局域网的带宽小,这样,当一个局域网的计算机向另一个局域网的计算机发送数据时,由于广域网的带宽小于局域网的带宽,数据将不可能按局域网发送的速度在广域网上传输。此时,处在局域网和广域网之间的路由器将不能发送一些报文,即网络发生了拥塞。
拥塞管理是指网络在发生拥塞时,如何进行管理和控制。处理的方法是使用队列技术。将所有要从一个接口发出的报文进入多个队列,按照各个队列的优先级进行处理。不同的队列算法用来解决不同的问题,并产生不同的效果。常用的队列技术有FIFO、PQ、WRR等。
FIFO队列不对报文进行分类,当报文进入接口的速度大于接口能发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,FIFO在队列的出口让报文按进队的顺序出队,先进的报文将先出队,后进的报文将后出队。
FIFO队列具有处理简单,开销小的优点。但FIFO不区分报文类型,采用尽力而为的转发模式,使对时间敏感的实时应用(如VOIP)的延迟得不到保证,关键业务的带宽也不能得到保证。
PQ(Strict-PriorityQueue,简称PQ)队列调度,是针对关键业务型应用设计的。关键业务有一重要的特点是在拥塞发生时要求优先获得服务以减小响应的延迟。优先队列将所有报文分成最多至4 类,分别为高优先队列、中优先队列、正常优先队列和低优先队列(依次为3、2、1、0 队列),它们的优先级依次降低。
在队列调度时,PQ严格按照优先级从高到低的次序优先发送较高优先级队列中的分组,当较高优先级队列为空时,再发送较低优先级队列中的分组。这样,将关键业务的分组放入较高优先级的队列,将非关键业务(如E-Mail)的分组放入较低优先级的队列,可以保证关键业务的分组被优先传送,非关键业务的分组在处理关键业务数据的空闲间隙被传送。
PQ 的缺点是:拥塞发生时,如果较高优先级队列中长时间有分组存在,那么低优先级队列中的报文就会由于得不到服务而“饿死”。
WRR(Weighted RoundRobin,简称WRR)队列调度将每个端口分为4个或8个输出队列,队列之间轮流调度,保证每个队列都得到一定的服务时间。以端口有4个优先级队列为例,WRR 可为每个队列配置一个加权值(由高到低依次为w3、w2、w1、w0),加权值表示获取资源的比重。如一个100 M的端口,配置它的WRR队列调度算法的加权值为50,30,10,10(依次对应w3、w2、w1、w0),这样可以保证最低优先级队列至少获得10 Mbit/s带宽,避免了采用PQ调度时低优先级队列中的报文可能长时间得不到服务的缺点。
WRR队列还有一个优点是,虽然多个队列的调度是轮循进行的,但对每个队列不是固定地分配服务时间片——如果某个队列为空,那么马上换到下一个队列调度,这样带宽资源可以得到充分的利用。



