|
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间的报文
3.定制队列(Custom Queueing, CQ)
图6 定制队列示意图
如图6所示,定制队列(以后简称CQ)对报文进行分类,将所有报文分成最多至17类,分别属于CQ的17个队列中的一个,然后,按报文的类别将报文送入相应的队列。CQ的17个队列中,0号队列是优先队列,路由器总是先把0号队列中的报文发送完,然后才处理1到16号队列中的报文,所以0号队列一般作为系统队列,把实时性要求高的交互式协议报文放到0号队列。1到16号队列可以按用户的定义分配它们能占用接口带宽的比例,在报文出队的时候,CQ按定义的带宽比例分别从1到16号队列中取一定量的报文在接口上发送出去。
现在我们将CQ和PQ做个比较。PQ赋予较高优先级的报文绝对的优先权,这样虽然可以保证关键业务的优先,但在较高优先级的报文的速度总是大于接口的速度时,将会使较低优先级的报文始终得不到发送的机会。采用CQ,则可以避免这种情况的发生。CQ可以把报文分类,然后按类别将报文分配到CQ的一个队列中去,而对每个队列,又可以规定队列中的报文所占接口带宽的比例,这样,就可以让不同业务的报文获得合理的带宽,从而既保证关键业务能获得较多的带宽,又不至于使非关键业务得不到带宽。
在如图3所示的网络图中,假设局域网1的服务器向局域网2的服务器发送关键业务的数据,局域网1的PC向局域网2的PC发送非关键业务的数据,如果对路由器1的串口1配置CQ进行拥塞管理,同时配置服务器间的数据流的进入队列1,队列1中的报文占有60%的带宽,例如每次出队6000个字节的报文,PC间的数据流进入队列2,队列2 中的报文占有20%的带宽,例如每次出队2000个字节的报文,则CQ对这两种不同业务的报文将做区别对待。报文的发送采用轮询调度的方式,首先让队列1中的报文出队并发送,直到此队列中的报文被发送的字节数不少于6000字节,然后才开始发送队列2中的报文, 直到此队列中的报文被发送的字节数不少于2000字节,然后是其他队列。路由器1的串口1的物理带宽是2M,则局域网1的服务器向局域网2的服务器发送关键业务的数据所能占的带宽将至少为1.2M(2 * 0.6),局域网1的PC向局域网2的PC发送非关键业务的数据所能占的带宽将至少为0.4M(2 * 0.2)。并且,不同于时分复用(Time Division Multiplexing, TDM)的系统,当路由器1的串口1中除了上述两个数据流外没有其他数据要发送时,这两种数据流将按比例分享接口的剩余空闲带宽,即局域网1的服务器向局域网2的服务器发送关键业务的数据所能占的带宽将为1.5M(2 * 0.6 / (0.2 + 0.6) ),局域网1的PC向局域网2的PC发送非关键业务的数据所能占的带宽为0.5M(2 * 0.2 / (0.2 + 0.6))。当局域网1的服务器向局域网2的服务器不发送关键业务的数据时,并且,除了局域网1的PC向局域网2的PC发送非关键业务的数据外,没有其他的数据流,则局域网1的PC向局域网2的PC发送非关键业务的数据所能占的带宽将可以为2M。
加权公平队列(Weighted Fair Queueing, WFQ)
图7 加权公平队列示意图
如图7所示,加权公平队列(以后简称WFQ)对报文按流进行分类(相同源IP地址,目的IP地址,源端口号,目的端口号,协议号,TOS的报文属于同一个流),每一个流被分配到一个队列,该过程称为散列,采用HASH算法来自动完成,尽量将不同的流分入不同的队列。WFQ的队列数目N可以配置。在出队的时候,WFQ按流的优先级(precedence)来分配每个流应占有出口的带宽。优先级的数值越小,所得的带宽越少。 优先级的数值越大,所得的带宽越多。这样就保证了相同优先级业务之间的公平,体现了不同优先级业务之间的权值。
例如:接口中当前有8个流,它们的优先级分别为0、1、2、3、4、5、6、7。则带宽的总配额将是所有(流的优先级 + 1) 之和,即:1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 = 36
每个流所占带宽比例为:(自己的优先级数 + 1)/(所有 (流的优先级 + 1)之和)。即,每个流可得的带宽比例分别为:1/36、2/36、3/36、4/36、5/36、6/36、7 /36、8/36。
又如:当前共4个流,3个流的优先级为4,1个流的优先级为5,则带宽的总配额将是:
(4 + 1) * 3 + (5 + 1) = 21
那么,3个优先级为4的流获得的带宽比例均为5/21,优先级为5的流获得的带宽比例为6/21。
由此可见,WFQ在保证公平的基础上对不同优先级的业务体现权值,而权值依赖于IP报文头中所携带的IP优先级。
基于类的加权公平队列(Class Based Weighted Fair Queueing, CBWFQ)
点击查看大图
图8 基于类的加权公平队列示意图
如图8所示,基于类的加权公平队列(以后简称CBWFQ)首先根据报文进入网络设备的接口、报文的协议,报文是否匹配访问控制列表(Access Control List,ACL)来对报文进行分类。然后让不同类别的报文进入不同的队列。对于不匹配任何类别的报文,报文被送入默认队列,按WFQ进行处理,即按照流的方式进行处理。
图中所示0号队列是优先队列(一个或多个类的报文可以被设定进入优先队列),不同类别的报文可设定占用不同的带宽。 在调度出队的时候,若优先队列中有报文,则调度器总是优先发送优先队列中的报文,直到优先队列中没有报文时,才调度发送其他队列中的报文。 每个队列被分配了一定的带宽,调度器会按照每个队列分配到的带宽进行报文出队发送。
进入优先队列的报文在接口没有发生拥塞的时候(此时所有队列中都没有报文),所有属于优先队列的报文都可以被发送。在接口发生拥塞的时候(队列中有报文时),进入优先队列的报文被限速,超出规定流量的报文将被丢弃。这样,在接口不发生拥塞的情况下,可以使属于优先队列的报文能获得空闲的带宽,在接口拥塞的情况下,又可以保证属于优先队列的报文不会占用超出规定的带宽,保护了其他报文的应得带宽。另外,由于只要优先队列中有报文,调度器就会发送优先队列中的报文,所以优先队列中的报文被发送的延迟最多是接口发送一个最大长度报文的时间,无论是延迟还是延迟抖动,优先队列都可以将之降低为最低限度。这为对延迟敏感的应用如VoIP业务提供了良好的服务质量保证。
图8中1到N1的队列为各类报文的队列。每类报文占一个队列。在调度器调度报文出队的时候,按用户为各类报文设定的带宽将报文出队发送。属于1到N1号队列的报文可以被确保得到用户设定的带宽。当接口中某些类别的报文没有时,属于1到N1号队列的报文还可以公平地得到空闲的带宽,和时分复用系统相比,大大提高了线路的利用率。同时,在接口拥塞的时候,仍然能保证各类报文得到用户设定的最小带宽。
当报文不匹配用户设定的所有类别时,报文被送入默认队列。默认队列在逻辑上可看作是一个队列,但实际上是个WFQ队列,所有进入默认队列的报文再按流进行分类。
CBWFQ最多允许将报文分为64类(其中包括默认类)。所以N1的最大值为63。默认队列的个数N2可以由用户设定。
对于默认队列和1到N1的队列,用户可以设定队列的最大长度。当队列的长度达到队列的最大长度时,默认采用尾丢弃的策略。但用户还可以选择用加权随机早期检测(Weighted Random Early Detection, WRED)的丢弃策略。加权随机早期检测的丢弃策略请参见后面加权随机早期检测WRED的描述。
对于优先队列,由于在接口拥塞的时候流量限制开始起作用,所以用户不必设置队列的长度(也就没有了尾丢弃)。另外,由于优先队列中的报文一般是语音报文(Voice over IP, VoIP),采用的是UDP报文,所以WRED的丢弃策略也不需要。
2.2.3拥塞管理技术的对比
华为的VRP提供了以上拥塞管理技术。突破了传统IP设备的单一FIFO拥塞管理策略,提供了强大的QoS能力,使得IP设备可以满足不同业务所要求的不同服务质量的要求。为了更好的利用华为的拥塞管理技术,现对各种队列技术做一比较。
表1 拥塞管理技术对比
队列数
优 点
缺 点
FIFO
1
1、不需要配置,易于使用。
2、处理简单,处理延迟小。
1、所有报文同等对待,报文到来的次序决定了报文可占用的带宽、报文的延迟、报文的丢失。
2、对不配合的数据源(如UDP报文发送)无约束力,不配合的数据源会造成配合的数据源(如TCP报文发送)带宽受损失。
3、对时间敏感的实时应用(如VoIP)的延迟得不到保证。
PQ
4
可对不同业务数据提供绝对的优先,对时间敏感的实时应用(如VoIP)的延迟可以得到保证。对优先业务的报文的带宽占用可以绝对优先。
1、需配置,处理速度慢。
2、如果不对高优先级的报文的带宽加限制,会造成低优先级的报文得不到带宽。
CQ
17
1、可对不同业务的报文按带宽比例分配带宽。
2、当没有某些类别的报文时,能自动增加现存类别的报文可占的带宽。
需配置,处理速度慢。
WFQ
用户决定
1、配置容易。
2、可以保护配合(交互)的数据源(如TCP报文发送)的带宽。
3、可以使延迟的抖动减小。
4、可以减小数据量小的交互式应用的延迟。
5、可以为不同优先级的流分配不同的带宽。
6、当流的数目减少时,能自动增加现存流可占的带宽。
处理速度比FIFO要慢。但比PQ、CQ要快。
CBWFQ
用户决定
(0~63)
1、对报文进行分类,为每类报文提供确保带宽。
2、可为部分报文提供快速转发服务(Expedited Forwarding, EF),使延迟降低为最小。
3、各类数据的流确保带宽的总和小于接口的带宽时,能自动增加各类流的带宽,从而充分利用线路的带宽。
4、为默认类的报文提供WFQ服务。
5、可以为非优先类的报文提供WRED的丢弃策略。
处理速度比FIFO要慢。
2.3拥塞避免
由于内存资源的有限,按照传统的处理方法,当队列的长度达到规定的最大长度时,所有到来的报文都被丢弃。对于TCP报文,如果大量的报文被丢弃,将造成TCP超时,从而引发TCP的慢启动和拥塞避免机制,使TCP减少报文的发送。当队列同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入慢启动和拥塞避免,称之为:TCP全局同步。这样多个TCP连接发向队列的报文将同时减少,使得发向队列的报文的量不及线路发送的速度,减少了线路带宽的利用。并且,发向队列的报文的流量总是忽大忽小,使线路的上的流量总在极少和饱满之间波动。
为了避免这种情况的发生,队列可以采用加权随机早期检测WRED(Weighted Random Early Detection )的报文丢弃策略(WRED与RED的区别在于前者引入IP优先权来区别丢弃策略)。采用WRED时,用户可以设定队列的低限和高限。当队列的长度小于低限时,不丢弃报文;当队列的长度在低限和高限之间时,WRED开始随机丢弃报文(队列的长度越长,丢弃的概率越高);当队列的长度大于高限时,丢弃所有的报文。
由于WRED随机地丢弃报文,将避免使多个TCP连接同时降低发送速度,从而避免了TCP的全局同步现象。当某个TCP连接的报文被丢弃,开始减速发送的时候,其他的TCP连接仍然有较高的发送速度。这样,无论什么时候,总有TCP连接在进行较快的发送,提高了线路带宽的利用率。
如果直接采用队列的长度与用户设定的低限、高限比较并进行丢弃(这是设置队列门限的绝对长度),将会对突发性的数据流造成不公正的待遇,不利于数据流的传输。所以,在与低限、高限比较并进行丢弃时,采用队列的平均长度(这是设置队列门限与平均长度比较的相对值)。队列的平均长度是队列长度被低通滤波后的结果。它既反映了队列的变化趋势,又对队列长度的突发变化不敏感,避免了对突发性的数据流造成不公正的待遇。
当队列机制采用WFQ时,可以为不同优先级(precedence)的报文设定不同的队列长度滤波系数、低限、高限、丢弃概率。从而对不同优先级的报文提供不同的丢弃特性。
当队列机制采用FIFO、PQ、CQ时,可以为每个队列设定不同的队列长度滤波系数、低限、高限、丢弃概率,为不同类别的报文提供不同的丢弃特性。
WRED和队列机制的关系如下图所示。
图9 WRED和队列机制关系示意图
当WRED和WFQ配合使用时,还可以实现基于流的WRED。这是因为,在进行分类的时候,不同的流有自己的队列,对于流量小的流,由于其队列长度总是比较小,所以丢弃的概率将比较小。而流量大的流将会有较大的队列长度,从而丢弃较多的报文,保护了流量较小的流的利益。
即使WRED和其他的队列机制配合使用,对于流量小的流,由于其报文的个数较少,所以从统计概率来说,被丢弃的概率也会较小,也可以保护流量较小的流的利益。
2.4流量监管与流量整形
流量监管(traffic policing)的典型作用是限制进入某一网络的某一连接的流量与突发。在报文满足一定的条件时,如某个连接的报文流量过大,流量监管就可以对该报文采取不同的处理动作,例如丢弃报文,或重新设置报文的优先级等。通常的用法是使用CAR来限制某类报文的流量,例如限制HTTP报文不能占用超过50%的网络带宽。
流量整形(traffic shaping)的典型作用是限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送。流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下,再均匀地发送这些被缓冲的报文。
2.4.1约定访问速度(Committed Access Rate, CAR)
对于ISP来说,对用户送入网络中的流量进行控制是十分必要的。对于企业网,对某些应用的流量进行控制也是一个有力的控制网络状况的工具。网络管理者可以使用约定访问速度(以后简称CAR)来对流量进行控制。
CAR利用令牌桶(Tocken Bucket, TB)进行流量控制。
图10 CAR进行流量控制的基本处理过程示意图
图10所示为利用CAR进行流量控制的基本处理过程。首先,根据预先设置的匹配规则来对报文进行分类,如果是没有规定流量特性的报文,就直接继续发送,并不需要经过令牌桶的处理;如果是需要进行流量控制的报文,则会进入令牌桶中进行处理。如果令牌桶中有足够的令牌可以用来发送报文,则允许报文通过,报文可以被继续发送下去。如果令牌桶中的令牌不满足报文的发送条件,则报文被丢弃。这样,就可以对某类报文的流量进行控制。
令牌桶按用户设定的速度向桶中放置令牌,并且,用户可以设置令牌桶的容量,当桶中令牌的量超出桶的容量的时候,令牌的量不再增加。当报文被令牌桶处理的时候,如果令牌桶中有足够的令牌可以用来发送报文,则报文可以通过,可以被继续发送下去,同时,令牌桶中的令牌量按报文的长度做相应的减少。当令牌桶中的令牌少到报文不能再发送时,报文被丢弃。
令牌桶是一个控制数据流量的很好的工具。当令牌桶中充满令牌的时候,桶中所有的令牌代表的报文都可以被发送,这样可以允许数据的突发性传输。当令牌桶中没有令牌的时候,报文将不能被发送,只有等到桶中生成了新的令牌,报文才可以发送,这就可以限制报文的流量只能是小于等于令牌生成的速度,达到限制流量的目的。
在实际应用中,VRP的CAR不仅可以用来进行流量控制,还可以进行报文的标记(mark)或重新标记(re-mark)。具体来讲就是CAR可以设置IP报文的优先级或修改IP报文的优先级,达到标记报文的目的。
例如,当报文符合流量特性的时候,可以设置报文的优先级为5,当报文不符合流量特性的时候,可以丢弃,也可以设置报文的优先级为1并继续进行发送。这样,后续的处理可以尽量保证不丢弃优先级为5的报文,在网络不拥塞的情况下,也发送优先级为1的报文,当网络拥塞时,首先丢弃优先级为1的报文,然后才丢弃优先级为5 的报文。
CAR可以为不同类别的报文设置不同的流量特性和标记特性。即,首先对报文进行分类,然后不同类别的报文有不同的流量特性和标记特性。
此外,CAR的策略还可以进行串联处理。例如,可以对所有的报文限制一个总的流量,然后在总的流量中,再限制部分报文的流量符合某个流量特性。
2.4.2通用流量整形(Generic Traffic Shaping, GTS)
通用流量整形(以后简称GTS)可以对不规则或不符合预定流量特性的流量进行整形,以利于网络上下游之间的带宽匹配。
GTS与CAR一样,均采用了令牌桶技术来控制流量。GTS与CAR的主要区别在于:利用CAR进行报文流量控制时,对不符合流量特性的报文进行丢弃;而GTS对于不符合流量特性的报文则是进行缓冲,减少了报文的丢弃,同时满足报文的流量特性。
GTS的基本处理过程如图11所示,其中用于缓存报文的队列称为GTS队列。
图11 GTS处理过程示意图
GTS可以对接口上指定的报文流或所有报文进行整形。当报文到来的时候,首先对报文进行分类,如果报文不需要进行GTS处理,就继续发送,不需要经过令牌桶的处理;如果报文需要进行GTS处理,则与令牌桶中的令牌进行比较。 令牌桶按用户设定的速度向桶中放置令牌,如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被继续发送下去,同时,令牌桶中的令牌量按报文的长度做相应的减少。当令牌桶中的令牌少到报文不能再发送时,报文将被缓存入GTS队列中。当GTS队列中有报文的时候,GTS按一定的周期从队列中取出报文进行发送,每次发送都会与令牌桶中的令牌数作比较,直到令牌桶中的令牌数减少到队列中的报文不能再发送或是队列中的报文全部发送完毕为止。
GTS可用来进行网络上下游之间的带宽匹配。例如在图12所示的应用中,假设路由器1向路由器2发送报文,路由器2对路由器1发送来的报文进行了CAR流量限制。
图12 GTS的应用示例
为了减少报文的丢失,可以在路由器1的出口对报文进行GTS处理,对于超出GTS流量特性的报文,将在路由器1中缓冲。当可以继续发送下一批报文时,GTS再从缓冲队列中取出报文进行发送。这样,发往路由器2的报文将都符合路由器2的流量规定,从而减少报文在路由器2上的丢弃。相反,如果不在路由器1的出口做GTS处理,则所有超出路由器2的CAR流量特性的报文将被路由器2丢弃。
2.5物理接口总速率限制(Line rate, LR)
利用物理接口总速率限制(以后简称LR)可以 在一个物理接口上,限制接口发送报文(包括紧急报文)的总速率。
LR的处理过程仍然是采用令牌桶进行流量控制。如果用户在路由器的某个接口上配置了LR ,规定了流量特性,则所有经由该接口发送的报文首先要经过LR的令牌桶进行处理。如果令牌桶中有足够的令牌可以用来发送报文,则报文可以发送。如果令牌桶中的令牌不满足报文的发送条件,则报文入QOS队列进行拥塞管理。这样,就可以对通过该物理接口的报文流量进行控制。LR的处理过程如图13所示。
图13 LR处理过程示意图
同样的,由于采用了令牌桶控制流量,当令牌桶中积存有令牌时,可以允许报文的突发性传输。当令牌桶中没有令牌的时候,报文将不能被发送,只有等到桶中生成了新的令牌,报文才可以发送,这就可以限制报文的流量只能是小于等于令牌生成的速度,具有限制流量,同时允许突发流量通过的目的。
LR相比较于CAR,能够限制在物理接口上通过的所有报文。CAR由于在IP层实现,对于不经过IP层处理的报文不起作用。LR相比较于GTS,不但能够对超过流量限制的报文进行缓存,而且还因为进入了QOS队列机制进行处理,所以队列调度机制更灵活。由于CAR和GTS是在IP层实现的,所以对于不经过IP层处理的报文不起作用。
在用户只要求对所有报文限速时,使用LR所需的配置操作简单。对于网络建设投资者,可以对客户隐藏实际带宽,客户只能严格按所购买的带宽来使用。
QoS应用
企业VPN QoS实施
ISP可以通过IP网络向企业提供VPN业务以降低企业的建网费用/租用线费用,对于企业很有吸引力。VPN可以用于连接出差用户与企业总部、异地分支机构与企业总部、企业合作伙伴与企业总部,提供它们之间的信息传输。但是如果VPN不能保证企业运营数据的及时有效发送,即,提供有效的QoS保证,那么VPN将仍然不能有效的为企业服务。如往来工作函件、数据库访问需要受到优先对待,保证这些应用的带宽要求。而对于与工作无关的email、WWW访问等则可以按照Best Effort信息流对待。
华为VRP QoS提供的丰富QoS机制完全能够满足企业VPN的上述要求:
1.通过基于IP优先级的流分类对于不同的业务流分别标示
2.通过基于优先队列的WFQ调度算法保证企业运营数据的带宽、时延、时延抖动等QoS性能
3.通过WRED/尾丢弃机制对于VPN信息区别对待,避免网络内部流量振荡
4.通过policing(监管)机制限制VPN中不同信息流的流量
5.丰富的信息流量纪录功能便于计费的实施及网络规划
多媒体通信支持
在目前网络环境下,用户访问互联网的带宽是不同的,有ISDN接入、ADSL接入等多种方式。多媒体应用应该适应这种网络环境,在不同的接入方式下满足用户不同需要。
对于到多个目的MPEG编码图像信息,华为VRP QoS可以为不同的帧类型(I、P、B)分配不同的优先级。对于ISDN接入用户,仅仅发送给他高优先级信息,而将所有信息发送给使用ADSL接入的用户,在网络拥塞的情况下对于所有用户可以仅将高优先级信息发送给他们。
VoIP支持
三网合一融合成IP网络是大势所趋,它可以降低网络维护费用,提高通信运营商的竞争力。这样IP网络必须能够保证语音信息的时延与时延抖动要求,提供与PSTN网络可比拟的语音质量。
华为VRP QoS提供的丰富QoS机制完全能够满足三网合一的上述要求:
图14 VoIP支持
采用基于优先队列的WFQ调度算法/基于优先队列DRR调度算法,语音包进入优先队列,保证语音包在拥塞发生的情况下被优先调度
图15 包头压缩
在低速链路上采用包头压缩技术提高链路利用率、降低包时延
在低速链路上采用包分段技术降低语音包的时延
结论
网络应用发展迅速,新型业务不断出现,三网合一是大势所趋。对于具有不同网络服务要求的语音、视频和数据应用通信而言,IP网络核心需要根据需求区分出不同的通信,并为之提供相应的服务。华为Quidway系列路由器所具备的QoS特性,能够提供报文分类和着色、拥塞管理和拥塞避免,流量监管和流量整形等功能。华为路由器组建的网络能够支持QoS,具备根据通信报文的不同类别提供和保证预期服务的能力。
对于ISP来讲,可以通过灵活配置应用这些QoS特性,为客户业务提供可裁减的、有效的网络服务,并实现和保证所承诺的服务质量。
缩略语清单:
名词
英文解释
中文解释
FIFO
first in first out
先入先出
ACL
access control list
访问控制列表,用于对IP包文进行流分类。
QoS
quality of service
服务质量,指报文传送的吞吐量、时延、时延抖动、丢失率等性能
VoIP
Voice over IP
通过IP报文传递语音包
FTP
file transfer protocol
文件传输协议
ISP
Internet service provider
Internet服务提供商
RSVP
Resource reservation protocol
资源预留协议
CAC
Call Admission Control
呼叫接纳控制。根据资源使用情况与用户呼叫资源占用要求判断是否接纳用户的呼叫。
VRP
Versatile Routing Platform
通用路由平台,是华为数据通信产品软件系统的总称。
PHB
per-hop behavior
IP转发中每一跳的转发行为
SLA
service level agreement
服务水平协议。是服务使用者和服务提供者之间签定的服务水平协议。服务提供者按此协议向服务使用者提供服务
PQ
Priority queueing
优先队列
CQ
Custion queueing
定制队列
WFQ
Weighted fair queueing
加权公平队列
CBWFQ
Class based weighted fair queueing
基于类的加权公平队列
WRED
Weighted random early detection
加权随机早期丢弃
GTS
Generic traffic shaping
通用流量整形
CAR
Committed access rate
约定访问速度
[ 本帖最后由 garnett_wu 于 2006-6-30 20:01 编辑 ] |
|