QoS及其功能
在传统的ip网络中,所有的报文都被无区别的等同对待,每个路由器对所有的报文均采用先入先出(FIFO)的策略进行处理,它尽最大的努力(best-effort)将报文送到目的地,但对报文传送的可靠性、传送延迟等性能不提供任何保证。
随着IP网络上新应用的不断出现,对IP网络的服务质量也提出了新的要求,传统IP网络的尽力服务已不能满足应用的需要。如VoIP业务,假如报文传送延时太长,将是用户所不能接受的(相对而言,email和FTP对时间延迟并不敏感),为Internet提供支持QoS的能力是解决问题的可行方法。
QoS旨在针对各种应用的不同需求,为其提供不同的服务质量,例如:提供专用带宽、减少报文丢失率、降低报文传送时延及时延抖动等。为实现上述目的,QoS提供了下述功能:
报文分类和着色
避免和治理网络拥塞
流量监管和流量整形
QoS信令协议
下面的例子讲述了网络发生拥塞时,报文在无QoS保证和有QoS保证网络中的不同处理过程。
图1所示为发生拥塞时,网络设备的一个接口在不支持QoS的情况下,报文的发送情况:
图1先进先出队列示意图
所有要从该接口输出的报文,按照到达的先后顺序进入接口的FIFO队列尾部,而接口在发送报文时,从FIFO队列的头部开始,依次发送报文,所有的报文在发送过程中,没有任何区别,也不对报文传送的质量提供任何保证。
图2则是一个用PQ队列来支持QoS的报文发送情况:
图2PQ队列示意图
在报文到达接口后,首先对报文进行分类,然后按照报文所属的类别让报文进入所属队列的尾部,在报文发送时,按照优先级,总是在所有优先级高的队列发送完毕后,再发送低优先级队列中的报文。这样在每次发送报文时,总是将优先级高的报文先发出去,保证了属于较高优先级队列的报文有非常低的时延,其报文的丢失率和通过率这两个性能指标在网络拥塞时也可以有一定的保障。
QoS可以控制各种网络应用和满足各种网络应用要求,如:
1.控制资源。如可以限制骨干网上FTP使用的带宽,也可以给数据库访问以较高优先级。
2.可裁剪的服务。对于一个ISP,其用户可能传送语音、视频或其他实时业务,QoS使ISP能区分这些不同的报文,并为他们提供不同的服务。
3.多种需求并存,可以为时间敏感的多媒体业务提供带宽和低时延保证,而其他业务在使用网络时,也不会影响这些时间敏感的业务。
在一个网络中,需要以下的三个部分来完成端到端的QoS:
1.各网络元件(路由器、以太网交换机等)支持QoS,提供队列调度、流量整形等功能。
2.信令技术来协调端到端之间的网络元件为报文提供QoS。
3.QoS控制和治理端到端之间的报文在一个网络上的发送。
而每个网络元件提供如下功能:
1.报文分类,对不同类别的报文提供不同的处理。
2队列治理和调度来满足不同应用要求的不同服务质量。
3流量监管和流量整形限制和调整报文输出的速度。
4Admission control来确定是否答应用户信息流使用网络资源。
服务模型
服务模型,是指一组端到端的QoS功能,通常QoS提供以下三种服务模型:
1.Best-Effort service
2.Integrated service(Intserv)
3.Differentiated service(Diffserv)
Best-Effort service
Best-Effort是一个单一的服务模型,也是最简单的服务模型。应用程序可以在任何时候,发出任意数量的报文,而且不需要事先获得批准,也不需要通知网络。对Best-Effort服务,网络尽最大的可能性来发送报文,但对时延、可靠性等性能不提供任何保证。 Best-Effort服务是现在Internet的缺省服务模型,它适用于绝大多数网络应用,如FTP、EMAIL等,它通过先入先出(FIFO)队列来实现。
Integrated service
Integrated service是一个综合服务模型,它可以满足多种QoS需求。这种服务模型在发送报文前,需要向网络申请特定的服务。这个请求是通过信令(signal)来完成的,应用程序首先通知网络它自己的流量参数和需要的特定服务质量请求,包括带宽、时延等,应用程序一般在收到网络的确认信息,即确认网络已经为这个应用程序的报文预留了资源后,才开始发送报文。同时应用程序发出的报文应该控制在流量参数描述的范围以内。
网络在收到应用程序的资源请求后,执行资源分配检查(Admission control),即基于应用程序的资源申请和网络现有的资源情况,判定是否为应用程序分配资源。一旦网络确认为应用程序的报文分配了资源,则只要应用程序的报文控制在流量参数描述的范围内,网络将承诺满足应用程序的QoS需求。而网络将为每个流(flow,由两端的IP地址、端口号、协议号确定)维护一个状态,并基于这个状态执行报文的分类、流量监管(policing)、排队及其调度,来实现对应用程序的承诺。
传送QoS请求的信令是RSVP(资源预留协议),它通知路由器应用程序的QoS需求。
Integrated service可以提供以下两种服务:
1.保证服务(Guaranteed service) 它提供保证的带宽和时延限制来满足应用程序的要求。如VoIP应用可以预留10M带宽和要求不超过1秒的时延。
2.负载控制服务(Controlled-Load service) 它保证即使在网络过载(overload)的情况下,能对报文提供近似于网络未过载类似的服务,即在网络拥塞的情况下,保证某些应用程序的报文低时延和高通过。
Differentiated service
Differentiated service是一个多服务模型,它可以满足不同的QoS需求。与Integrated service不同,它不需要信令,即应用程序在发出报文前,不需要通知路由器。对Differentiated service,网络不需要为每个流维护状态,它根据每个报文指定的QoS,来提供特定的服务。可以用不同的方法来指定报文的QoS,如IP包的优先级位(IP PRecedence),报文的源地址和目的地址等。网络通过这些信息来进行报文的分类、流量整形、流量监管和排队。
Differentiated service一般用来为一些重要的应用提供端到端的QoS。它通过下列技术来实现:
CAR:它根据IP包的优先级或QoS组来进行报文分类。CAR也完成报文的度量和流量监管。
队列技术:WRED、PQ、CQ、WFQ、CBWFQ等队列技术对拥塞的报文进行缓存和调度,实现队列治理。
通常在配置Differentiated service时,边界路由器通过报文的源地址和目的地址等对报文进行分类,对不同的报文设置不同的IP优先级,而其他路由器只需要用IP优先级来进行报文的分类。
在MPLS上应用Differentiated service用以下两种方法来解决:
在以太网等MPLS报文中,由于在二层链路层和三层网络层之间有一个垫片(shim),我们可以扩展shim中未用的字段:EXP(包含三个bit),由这几个位来决定报文的调度及报文丢弃的优先级。
在ATM,FR等网络中,其MPLS报文没有shim,可针对FEC(Forwarding Equivalance Class 转发等价类)和QoS请求的组合来分配标签,而不同于以前仅针对FEC分配标签(lable)。这样在收到一个MPLS报文后,根据收到报文的lable,就可以确定发出报文的lable及报文所要求的服务。
Intserv与Diffserv之间的互通
一般来讲,在提供IP QoS时,为了实现规模适应性,在IP骨干网往往需要采用Diffserv体系结构,在IP边缘网可以有两种选择:采用Diffserv体系结构或采用Intserv体系结构。目前在IP边缘网络采用哪一种QoS体系结构还没有定论,也许这两种会同时并存于IP边缘网中。在IP边缘网采用Diffserv体系结构的情况下,IP骨干网与IP边缘网之间的互通没有问题。在IP边缘网采用Intserv体系结构的情况下,需要解决Intserv与Diffserv之间的互通问题,包括RSVP在Diffserv域的处理方式、Intserv支持的业务与Diffserv支持的PHB (Per Hop Behavior)之间的映射。
RSVP在Diffserv域的处理可以有多种可选择的方式。例如一种方式为RSVP对Diffserv域透明,RSVP在Intserv域边界路由器终结,Diffserv域对Intserv域采用静态资源提供方式,也就是说,该路由器同时具有Intserv和Diffserv功能,CAC(Connection Admission Control)需要考虑相应业务的SLA(Service Level Agreements);一种方式为Diffserv域参与RSVP协议处理,Diffserv域对Intserv域采用动态资源提供方式。前一种互通方式实现相对简单,可能造成Diffserv域资源的浪费,后一种互通方式实现相对复杂,可以优化Diffserv域资源的使用。
在华为VRP QoS解决方案中,骨干网采用了Diffserv实现IP QoS,在边缘网可以根据用户要求激活Intserv或Diffserv实现IP QoS。在边缘网采用Intserv、骨干网采用Diffserv实现IP QoS这种组网结构下,我们采用了静态资源提供方式实现Intserv与Difffserv的互通。
除此以外,还需要解决Intserv支持的业务与Diffserv支持的PHB之间的映射问题,映射标准为两者支持的应用是否相同或相近。为了说明这个问题我们首先回顾一下Intserv支持的业务,它支持的业务包括:Guaranteed Service、Controlled Load Service,前者可以为用户应用提供严格的端到端时延及带宽保证,适用于实时应用;后者在网络负荷较重的情况下为用户应用提供与网络轻负荷情况下相近似的性能,不能保证端到端的时延。 Diffserv提供的PHB包括:EF(Expedited Forwarding)、AF(Assured Forwarding)。EF用于支持低丢失率、低时延确保带宽的应用,AF可以保证在应用向网络发送的业务流量没有超过约定值的情况下应用的IP包丢失概率非常低,AF有4类,每一类可以设置3个不同的丢弃优先级。从上面的叙述易于获得Diffserv与Intserv 之间的映射关系:
1.将Intserv中的Guaranteed Service映射为Diffserv中的EF。
2.将Intserv中的Controlled Load Service 映射为Diffserv中的AF。
3.华为公司路由器的QoS采用了上述Intserv支持的业务与Diffserv支持的PHB之间的映射关系。
信令
信令技术给网络通讯的两端和网络的中间节点提供了一种方法,让它们向相邻的网络节点请求对一类报文的非凡处理。QoS的信令协调了端到端通讯的中间节点包括交换机、路由器等为这个通讯提供服务。
信令技术包括两种,即带内(in-band)和带外(out-band)信令技术。带内信令使用的是IP优先级,通过每个IP包携带的IP优先级,通知网络节点为这个报文提供相应服务。带外信令则是通过一个独立的协议RSVP,来为不同的报文流申请网络资源。IP优先级和RSVP协议为端到端的QoS信令提供了灵活的解决方案。IP优先级这种信令应用于Differentiated service,RSVP则应用于integrated service。
RSVP简介
RSVP是第一个标准QoS信令协议,它用来动态地建立端到端的QoS,它答应应用程序动态地申请网络带宽等。RSVP协议不是一个路由协议,相反,它按照路由协议规定的报文流的路径为报文申请预留资源,在路由发生变化后,它会按照新路由进行调整,并在新的路径上申请预留资源。RSVP只是在网络节点之间传递QoS请求,它本身不完成这些QoS的要求实现,而是通过其他技术如WFQ等来完成这些要求的实现。
RSVP的处理是接收方发出资源请求,按照报文发送的反向路径发送资源请求,所以它可以满足非常大的多播组,多播组的成员也可以动态变化。RSVP协议是针对多播设计的,单播可以看作是多播的一个特例。
由于RSVP在Internet上还没有得到广泛的推广,在主机不支持RSVP的情况下,我们可以通过配置RSVP代理,即代替不支持RSVP的主机发送RSVP报文来获得这种服务。对报文流路径上不支持RSVP的路由器,它只需要简单的转发RSVP报文,所以对RSVP协议不会有太大影响,但这些节点不会对报文提供所要求的QoS。
资源预留
RSVP信令在网络节点之间传送资源请求,而网络节点在收到这些请求后,需要为这些请求分配资源,这就是资源预留。网络节点比较资源请求和网络现有的资源,确定是否接受请求,在资源不够的情况下,这个请求可以被拒绝。
可以对每个资源请求设置不同的优先级,这样,优先级较高的资源请求可以在网络资源不够的情况下,抢占较低优先级的预留资源,来优先满足高优先级的资源请求。
资源预留判定是否接受资源请求,并承诺对接受了的资源请求提供请求的服务。但资源预留本身不实现承诺的服务,需要通过队列等其他技术来实现。
Quidway系列路由器的QoS特性及相关技术
华为公司Quidway系列路由器均以VRP为软件平台,VRP的QoS具有以下特性:
1.报文分类
2.拥塞治理
3.拥塞避免
4.流量监管和流量整形
5.物理接口总速率限制
分类
报文分类是将报文划分为多个优先级或多个服务类,如使用IP报文头的TOS字段(Type of service)的前三位(即优先权子字段),可以将报文最多分成八类。在报文分类后,就可以将其它的QoS特性应用到不同的分类,如拥塞治理、带宽分配等。
网络治理者可以设置报文分类的策略,这个策略可以包括物理接口、源地址、目的地址、MAC地址、IP协议或应用程序的端口号等。一般的分类算法都局限在IP报文的头部,链路层(Layer 2)、网络层(layer 3)、甚至传输层(layer 4)。使用报文的内容作为分类的标准是比较少见的。分类的结果是没有范围限制的,它可以是一个由五元组(源地址、源端口号、协议号码、目的地址、目的端口号)确定的流这样狭小的范围,也可以是到某某网段的所有报文。
报文分类使用如下技术:ACL和IP优先级。
一般在网络的边界,使用ACL来进行报文的分类,如以下分类:
1.所有的HTTP的报文置为最低的优先级
2.某指定接口收到的报文置为最高优先级
一般在网络边界,对报文进行分类时,同时设置报文的IP头的TOS字段的前三位作为报文的IP优先级,这样,在网络的内部就可以简单的使用IP优先级作为分类的标准。而队列技术如WFQ就可以使用这个优先级来对报文进行不同的处理。下游(downstream)网络可以选择接收上游(upstream)网络的分类结果,也可以按照自己的分类标准重新进行分类。
拥塞治理
什么是拥塞和拥塞治理
图3网络拥塞示意图
在计算机数据通信中,通信信道是被多个计算机共享的,并且,广域网的带宽通常要比局域网的带宽小,这样,当一个局域网的计算机向另一个局域网的计算机发送数据时,由于广域网的带宽小于局域网的带宽,数据将不可能按局域网发送的速度在广域网上传输。此时,处在局域网和广域网之间的路由器将不能发送一些报文,即网络发生了拥塞。
如图3所示,当公司局域网1向公司局域网2以10M的速度发送数据时,将会使路由器1的串口s1发生拥塞。
拥塞治理是指网络在发生拥塞时,如何进行治理和控制。处理的方法是使用队列技术。将所有要从一个接口发出的报文 进入多个队列,按照各个队列的优先级进行处理。不同的队列算法用来解决不同的问题,并产生不同的效果。常用的队列有FIFO、PQ,CQ,WFQ等。
拥塞治理的处理包括队列的创建、报文的分类、将报文送入不同的队列、队列调度等。在一个接口没有发生拥塞的时候,报文在到达接口后立即就被发送出去,在报文到达的速度超过接口发送报文的速度时,接口就发生了拥塞。拥塞治理就会将这些报文进行分类,送入不同的队列;而队列调度对不同优先级的报文进行分别处理,优先级高的报文会得到优先处理。
拥塞治理技术
对于拥塞的治理,一般采用排队的技术,使得报文在路由器中按一定的策略暂时排队,然后再按一定的调度策略把报文从队列中取出,在接口上发送出去。根据排队和出队策略的不同,拥塞治理分为以下几种:
先进先出队列(First In First Out Queueing, FIFO)
图4 先进先出队列示意图
如图4所示,先进先出队列(以后简称FIFO)不对报文进行分类,当报文进入接口的速度大于接口能发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,FIFO在队列的出口让报文按进队的顺序出队,先进的报文将先出队,后进的报文将后出队。
在如图3所示的网络图中,假设局域网1的服务器向局域网2的服务器发送要害业务的数据,局域网1的PC向局域网2的PC发送非要害业务的数据,则FIFO不会对这两种不同业务的报文做任何区别对待,报文的出队完全依靠于报文到来的先后顺序。
优先队列(Priority Queueing, PQ)
图5 优先队列示意图
如图5所示,优先队列(以后简称PQ)对报文进行分类,将所有报文分成最多至4类,分别属于PQ的4个队列中的一个,然后,按报文的类别将报文送入相应的队列。PQ的4个队列分别为高优先队列、中优先队列、正常优先队列和低优先队列,它们的优先级依次降低。在报文出队的时候,PQ首先让高优先队列中的报文出队并发送,直到高优先队列中的报文发送完,然后发送中优先队列中的报文,同样,直到发送完,然后是正常优先队列和低优先队列。这样,分类时属于较高优先级队列的报文将会得到优先发送,而较低优先级的报文将会在发生拥塞时被较高优先级的报文抢先,使得要害业务(如ERP)的报文能够得到优先处理,非要害业务(如E-Mail)的报文在网络处理完要害业务后的空闲中得到处理,既保证了要害业务的优先,又充分利用了网络资源。
在如图3所示的网络图中,假设局域网1的服务器向局域网2的服务器发送要害业务的数据,局域网1的PC向局域网2的PC发送非要害业务的数据,假如对路由器1的串口1配置PQ进行拥塞治理,同时配置服务器间的数据流的进入较高优先级的队列,PC间的数据流进入较低优先级的队列,则PQ将对这两种不同业务的报文做区别对待,首先让较高优先级队列中的报文出队并发送,直到此队列中的报文发送完,然后再发送较低优先级队列中的报文。即服务器间的报文总是被先发送,直到暂时没有服务器间的报文,路由器才发送PC间的报文