1、服务质量QOS保证资料编码产品名称使用对象产品版本编写部门资料版本服务质量(QOS)保证专题拟 制:日 期:审 核:日 期:审 核:日 期:批 准:日 期:华 为 技 术 有 限 公 司版权所有 XX修 订 记 录日 期修订版本作 者描 述关键词:QOS 服务 报文 流量 服务 拥塞 流量摘 要:本文阐述了QOS产生的背景,适用的范围以及QOS的处理流程,对其相关技术以及拥塞的处理也进行了详细的说明。缩略语清单:无。参考资料清单无。服务质量(QOS)保证专题1 Qos的产生ISP可以通过IP网络向企业提供VPN业务以降低企业的建网费用/租用线费用,对于企业很有吸引力。但是如果VPN不能保证企业
2、运营数据的及时有效发送,即提供有效的QoS(Quality of Service)保证,那么VPN将仍然不能有效的为企业服务。如往来工作函件、数据库访问需要受到优先对待,保证这些应用的带宽要求。而对于与工作无关的email、WWW访问等则可以按照Best Effort信息流对待;随着IP网络上新的应用不断出现,如VoIP应用,对IP网络的服务质量也提出了新的要求。传统的IP网络的尽力服务已不能满足应用的需要,如果传输延时太长,将是用户所不能接受的。相对而言,email和FTP对时间延迟并不敏感。QoS就是针对各种不同的需求,提供不同的服务质量的,如提供以下的功能:支持为用户提供专用带宽减少报文
3、的丢失率避免和管理网络拥塞流量整形设置报文的优先级;2 Qos的处理流程下图简述了Qos处理的过程,从基于CAR的流分类,到按照不同策略的排队技术,再进行有统计复用的优先级处理,最后通过流量监管与整形。当一条业务流进入端口,首先会根据端口协商的结果,确定流量控制的方式。解决全双工模式下以太网的流量控制是通过发送PAUSE桢的方式。半双工模式下通过反压的方法进行控制。以保证端口可以承受的流量。这是一种前期的拥塞避免策略。进入Qos处理过程后,为了便于对不同类型的流,进行不同Qos特性的处理,首先对于流进行分类。如上图所示的“流分类”模块。流分类可以按照IP报文头的ToS(Type of Serv
4、ice)字段进行分类,也可以根据各种上层信息对报文进行分类。流分类是QoS 执行服务的基础。流分类以后将对流进行测量,据对流量在一定时段(包括长期和短期)的速率进行评估,并根据评估结果实施调控策略。流量评估一般采用令牌桶(Token Bucket)算法。在发生拥塞时,便可以针对不同级别的报文进行丢弃、打标记(marking)、降低优先级等操作。流量监管(policing)的典型作用是监督进入网络的某一流量的速率,使之不超出承诺的速率。如果某连接的流量超标,流量监管即可选择丢弃报文或重新设置报文的优先级。传统的网络难免会发生拥塞,当网络拥塞时,对报文全部丢弃,并不加以区分。使得整网陷于瘫痪。新型
5、城域传输网采用有效的拥塞避免机制,可以有效隔离拥塞网路,避免整网陷于瘫痪。除了前边讲到的流控方式以外,还可以在网络没有发生拥塞以前,根据队列状态进行有选择性的丢包来避免网络的拥塞。使用的算法是WRED. 加权RED(WRED),是RED的一种变体,它可以更加合理地选择将被丢弃的数据包当网络拥塞时,为了保证不同优先级的报文得到不同的QoS待遇,包括时延、带宽等。我们将不同优先级的报文入不同的队列,不同队列将得到不同的调度优先级、概率或带宽保证。队列策略的算法采用:PQ( Priority Queue )、WFQ( Weighted Fair Queuing )两种机制。最后进行流量整形(shap
6、ing)是一种主动调整流量输出速率的措施。流量整形对流量监管中需要丢弃的报文进行缓存,通常将它们放入缓冲区或队列内,如果放入WFQ队列内,则进行GTS(Generic Traffic Shaping)。3 Qos的特性及相关技术程QoS具有以下特性:报文分类拥塞管理拥塞避免流量监管和流量整形3.1 流分类报文分类是将报文分为多个优先级或多个服务类,如使用IP报文头的TOS字段(Type of service,三个bit),你可以将报文最多分成六类(另外两个值保留为其他用途)。在报文分类后,就可以将其它的QoS特性应用到不同的分类,如拥塞管理、带宽分配等。网络管理者可以设置报文分类的策略,这个策
7、略可以包括物理接口、源地址、目的地址、MAC地址、IP协议或应用程序的端口号等。一般的分类算法都局限在IP报文的头部,链路层(Layer 2)、网络层(layer 3)、甚至传输层(layer 4)。使用报文的内容作为分类的标准是比较少见的。分类的结果是没有范围限制的,它可以是一个由五元组(源地址、源端口号、协议号码、目的地址、目的端口号)确定的流这样狭小的范围,也可以是到某某网段的所有报文。报文分类使用如下技术:ACL和IP优先级一般在网络的边界,使用ACL来进行报文的分类,如以下分类:所有的HTTP的报文置为最低的优先级接口1收到的报文置为最高优先级一般在网络边界,对报文进行分类时,同时设
8、置报文的IP头的TOS字段作为报文的IP优先级,这样,在网络的内部就可以简单的使用IP优先级作为分类的标准。而队列技术如WFQ就也可以使用这个优先级来对报文进行不同的处理。下游(downstream)网络可以选择接收上游(upstream)网络的分类结果,也可以按照自己的分类标准重新进行分类。3.2 拥塞管理1. 什么是拥塞和拥塞管理图 1 网络拥塞示意图在计算机数据通信中,通信信道是被多个计算机共享的,并且,广域网的带宽通常要比局域网的带宽小,这样,当一个局域网的计算机向另一个局域网的计算机发送数据时,由于广域网的带宽小于局域网的带宽,数据将不可能按局域网发送的速度在广域网上传输。此时,处在
9、局域网和广域网之间的路由器将不能发送一些报文,也即,网络发生了拥塞。如上图所示,当公司局域网1向公司局域网2以10M的速度发送数据时,将会使路由器1的串口1发生拥塞。拥塞管理是指网络在发生拥塞时,如何进行管理和控制。处理的方法是使用队列技术。将所有要从一个接口发出的报文 进入多个队列,按照各个队列的优先级进行处理。不同的队列算法用来解决不同的问题,并产生不同的效果。常用的队列有FIFO、PQ,CQ,WFQ等。在一个接口没有发生拥塞的时候,报文在到达接口后立即就被发送出去,在报文到达的速度超过接口发送报文的速度时,接口就发生了拥塞。拥塞管理就会将这些报文进行分类,送入不同的队列;而队列调度对不同
10、优先级的报文进行分别处理,优先级高的报文会得到优先处理。2. 拥塞管理技术对于拥塞的管理,一般采用排队的技术,使得报文在路由器中按一定的策略暂时排队,然后再按一定的调度策略把报文从队列中取出,在接口上发送出去。根据排队和出队策略的不同,拥塞管理分为以下几种:先进先出队列(First In, First Out Queueing, FIFO)图 2 先进先出队列示意图如图 2 所示,先进先出队列(以后简称FIFO)不对报文进行分类,当报文进入接口的速度大于接口能发送的速度时,FIFO按报文到达接口的先后顺序让报文进入队列,同时,FIFO在队列的出口让报文按进队的顺序出队,先进的报文将先出队,后进
11、的报文将后出队。在如图 1 所示的网络图中,假设局域网1的服务器向局域网2的服务器发送关键业务的数据,局域网1的PC向局域网2的PC发送非关键业务的数据,则FIFO不对这两种不同业务的报文做任何区别对待,报文的出队完全依赖报文到来的顺序。优先队列(Priority Queueing, PQ)图 3 优先队列示意图如图 3 所示,优先队列(以后简称PQ)对报文进行分类,将所有报文分成最多至4类,分别属于PQ的4个队列中的一个,然后,按报文的类别将报文送入相应的队列。PQ的4个队列分别为高优先队列、中优先队列、正常优先队列和低优先队列,它们的优先级依次降低。在报文出队的时候,PQ首先让高优先队列中
12、的报文出队并发送,直到高优先队列中的报文发送完,然后发送中优先队列中的报文,同样,直到发送完,然后是正常优先队列和低优先队列。这样,分类时属于较高优先级队列的报文将会得到优先发送,而较低优先级的报文将会在发生拥塞时被较高优先级的报文抢先,使得关键业务(如ERP)的报文能够得到优先处理,非关键业务(如E-Mail)的报文在网络处理完关键业务后的空闲中得到处理,既保证了关键业务的优先,又充分利用了网络资源。在如图 1 所示的网络图中,假设局域网1的服务器向局域网2的服务器发送关键业务的数据,局域网1的PC向局域网2的PC发送非关键业务的数据,如果对路由器1的串口1配置PQ进行拥塞管理,同时配置服务
13、器间的数据流的进入较高优先级的队列,PC间的数据流进入较低优先级的队列,则PQ将对这两种不同业务的报文做区别对待,首先让较高优先级队列中的报文出队并发送,直到此队列中的报文发送完,然后发送较低优先级队列中的报文。也即,服务器间的报文总是被先发送,直到暂时没有服务器间的报文,路由器才发送PC间的报文。定制队列(Custom Queueing, CQ)图 4 定制队列示意图如图 4 所示,定制队列(以后简称CQ)对报文进行分类,将所有报文分成最多至17类,分别属于CQ的17个队列中的一个,然后,按报文的类别将报文进入相应的队列。CQ的17个队列中,0号队列是优先队列,路由器总是先把0号队列中的报文
14、发送完,然后才处理1到16队列中的报文,所以0号队列一般作为系统队列,把实时性要求高的交互式协议报文放到0号队列。1到16号队列可以按用户的定义分配它们能占用接口带宽的比例,在报文出队的时候,CQ按定义的带宽比例分别从1到16号队列中取一定量的报文在接口上发送出去。现在我们将CQ和PQ做一比较。PQ赋予较高优先级的报文绝对的优先权,这样虽然可以保证关键业务的优先,但在较高优先级的报文的速度总是大于接口的速度时,将会使较低优先级的报文始终得不到发送的机会。采用CQ,将可以避免这种情况的发生。CQ可以把报文分类,然后按类别将报文被分配到CQ的一个队列中去,对每个队列,可以规定队列中的报文应占接口带
15、宽的比例,这样,就可以让不同业务的报文获得合理的带宽,从而既保证关键业务能获得较多的带宽,又不至于使非关键业务得不到带宽。在如图 1 所示的网络图中,假设局域网1的服务器向局域网2的服务器发送关键业务的数据,局域网1的PC向局域网2的PC发送非关键业务的数据,如果对路由器1的串口1配置CQ进行拥塞管理,同时配置服务器间的数据流的进入队列1,队列1中的报文占有60%的带宽,例如每次出队6000个字节的报文,PC间的数据流进入队列2,队列2 中的报文占有20%的带宽,例如每次出队2000个字节的报文,则CQ对这两种不同业务的报文将做区别对待。首先让队列1中的报文出队并发送,直到此队列中的报文被发送
16、的字节数不少于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 *
17、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)图 5 加权公平队列示意图如图 5 所示,加权公平队列(以后简称WFQ)对报文按流进行分类(相同源IP地址,目的IP地址,源端口号,目的端口号,协议号
18、,TOS的报文属于同一个流),每一个流被分配到一个队列。在出队的时候,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,5/36,6/36
19、,7 /36,8/36。又如:当前共4个流,3个流的优先级为4,1个流的优先级为5,则带宽的总配额将是:(4 + 1) * 3 + (5 + 1) = 21那么,3个优先级为4的流的带宽为5/21,优先级为5的流的带宽为6/21。基于类的加权公平队列(Class Based Weighted Fair Queueing, CBWFQ)图 6 基于类的加权公平队列示意图如图 6 所示,基于类的加权公平队列(以后简称CBWFQ)首先根据报文进入网络设备的接口、报文的协议,报文是否匹配访问控制列表(Access Control List, ACL)来对报文进行分类。然后让不同类别的报文进入不同的队列
20、。对于不匹配任何类别的报文,报文被送入默认队列,按WFQ进行处理,即,按照流的方式进行处理。在调度出队的时候,每个队列被分配了一定的带宽,调度器按照每个队列分配到的带宽对报文出队发送。0号队列是优先队列,一个或多个类的报文可以被设定进入优先队列,并为不同类别的报文设定可占用的带宽。当优先队列中有报文的时候,调度器总是发送优先队列中的报文。直到优先队列中没有报文时,才调度其他的队列中的报文。进入优先队列的报文在接口没有发生拥塞的时候(所有队列中都没有报文时),所有属于优先队列的报文都可以被发送。在接口发生拥塞的时候(队列中有报文时),进入优先队列的报文被限速。超出规定流量的报文将被丢弃。这样,在
21、接口不发生拥塞的情况下,可以使属于优先队列的报文能获得空闲的带宽,在接口拥塞的情况下,又可以保证属于优先队列的报文不会占用超出规定的带宽,保护了其他报文的应得带宽。另外,由于只要优先队列中有报文,调度器就会发送优先队列中的报文,所以优先队列中的报文被发送的延迟最多是接口发送一个报文的时间,无论是延迟还是延迟抖动,优先队列都可以将之降低为最低限度。这为对延迟敏感的应用如VoIP业务提供了良好的服务质量保证。图 6 中1到N1的队列为各类报文的队列。每类报文占一个队列。在调度器调度报文出队的时候,按用户为各类报文设定的带宽将报文出队发送。属于1到N1号队列的报文可以被确保得到用户设定的带宽。当接口
22、中某些类别的报文没有时,属于1到N1号队列的报文还可以公平地得到空闲的带宽,和时分复用系统相比,大大提高了线路的利用率。同时,在接口拥塞的时候,仍然能保证各类报文得到用户设定的最小带宽。当报文不匹配用户设定的所有类别时,报文被送入默认队列。默认队列在逻辑上可看作是一个队列,但实际上是个WFQ队列,所有进入默认队列的报文再按流进行分类。CBWFQ最多允许将报文分为64类(其中包括默认类)。所以,N1的最大值为63。默认队列的个数N2可以由用户设定。对于默认队列和1到N1的队列,用户可以设定队列的最大长度。当队列的长度达到队列的最大长度时,默认采用尾丢弃的策略。但用户还可以选择用加权随机早期检测(
23、Weighted Random Early Detection, WRED)的丢弃策略。加权随机早期检测的丢弃策略请参见后面加权随机早期检测WRED的描述。但对于优先队列,由于在接口拥塞的时候流量限制开始起作用,所以用户不必设置队列的长度(也就没有了尾丢弃)。另外,由于优先队列中的报文一般是语音报文(Voice over IP, VoIP),采用的是UDP报文,所以WRED的丢弃策略也不需要。3. 拥塞管理技术的对比为了更好的利用拥塞管理技术,现对各种队列技术做一比较。优点缺点FIFO1、不需要配置,易于使用。2、处理简单,处理延迟小。1、所有报文同等对待,报文到来的次序决定了报文可占用的带宽
24、、报文的延迟、报文的丢失。2、对不配合的数据源(如UDP报文发送)无约束力,不配合的数据源会造成配合的数据源(如TCP报文发送)带宽受损失。3、对时间敏感的实时应用(如VoIP)的延迟得不到保证。PQ可对不同业务的数据提供绝对的优先,对时间敏感的实时应用(如VoIP)的延迟可以得到保证。对优先业务的报文的带宽占用可以绝对优先。1、需配置,处理速度慢。2、如果不对高优先级的报文的带宽加限制,会造成低优先级的报文得不到带宽。CQ1、可对不同业务的报文按带宽比例分配带宽。2、当没有某些类别的报文时,能自动增加现存类别的报文可占的带宽。需配置,处理速度慢WFQ1、配置容易。2、可以保护配合(交互)的数
25、据源(如TCP报文发送)的带宽。3、可以使延迟的抖动减小。4、可以减小数据量小的交互式应用的延迟。5、可以为不同优先级的流分配不同的带宽。6、当流的数目减少时,能自动增加现存流可占的带宽。处理速度比FIFO要慢。但比PQ、CQ要快。CBWFQ1、对报文进行分类,为每类报文提供确保带宽。2、可为部分报文提供快速转发服务(Expedited Forwarding, EF),使延迟降低为最小。3、当各类数据流的确保带宽的总和小于接口的带宽时,能自动增加各类流的带宽,从而充分利用线路的带宽。4、为默认类的报文提供WFQ服务。5、可以为非优先类的报文提供WRED的丢弃策略。处理速度比FIFO要慢4 拥塞
26、避免由于内存资源的有限,传统的处理方法是,当队列的长度达到规定的最大长度时,所有到来的报文都被丢弃。对于TCP报文,由于大量的报文被丢弃,将造成TCP超时,从而引发TCP的慢启动和拥塞避免机制,使TCP减少报文的发送。当队列同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入慢启动和拥塞避免,称之为:TCP全局同步。这样多个TCP连接发向队列的报文将同时减少,使得发向队列的报文的量不及线路发送的速度,减少了线路带宽的利用。并且,发向队列的报文的流量总是忽大忽小。使线路的上的流量总在极少和饱满之间波动。为了避免这种情况的发生,队列可以采用加权随机早期检测(Weighted Random
27、Early Detection, WRED,以后简称WRED)的丢弃策略。(WRED与RED区别是引入IP优选权,区别丢弃策略)用户可以设定队列的低限和高限。当队列的长度小于低限时,不丢弃队列。当队列的长度在低限和高限之间时,WRED开始随机丢弃报文。并且,队列的长度越长,丢弃的概率越高。当队列的长度大于高限时,丢弃所有的报文。由于WRED随机地丢弃报文,将避免使多个TCP连接同时降低发送速度,从而避免了TCP的全局同步现象。当某个TCP连接的报文被丢弃,开始减速发送的时候,其他的TCP连接仍然有较高的发送速度。这样,无论什么时候,总有TCP连接在进行较快的发送,提高了线路带宽的利用率。直接采
28、用队列的长度和低限、高限比较并进行丢弃(这是设置队列门限的绝对长度),将会对突发性的数据流造成不公正的待遇,不利于数据流的传输。所以,在和低限、高限比较并进行丢弃时,采用队列的平均长度(这是设置队列门限与平均长度比较的相对值)。队列的平均长度是队列长度被低通滤波后的结果。它既反映了队列的变化趋势,又对队列长度的突发变化不敏感。避免了对突发性的数据流造成不公正的待遇。当WRED和WFQ配合使用时,还可以实现基于流的WRED。这是因为,在进行分类的时候,不同的流有自己的队列,对于流量小的流,由于其队列长度总是比较小,所以丢弃的概率将比较小。而流量大的流将会有较大的队列长度,从而丢弃较多的报文,保护
29、了流量较小的流的利益。即使WRED和其他的队列机制配合使用,对于流量小的流,由于其报文的个数较少,所以从统计概率来说,被丢弃的概率也会较小。也可以保护流量较小的流的利益。5 流量监管和流量整形流量监管(policing)的典型作用是限制进入某一网络的某一连接流量与突发,在报文满足一定的条件下,如某个连接的报文流量过大,流量监管就可以选择丢弃报文,或重新设置报文的优先级。通常的用法是使用CAR来限制某类报文的流量,如限制HTTP报文不能占用超过50%的网络带宽。流量整形(shaping)典型作用是限制流出某一网络的某一连接流量与突发,使这类报文以比较均匀的速度向外发送。这通常使用缓冲区和令牌桶来
30、完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下,再均匀的发送这些被缓冲的报文。4. 约定访问速度(Committed Access Rate, CAR)对于ISP来说,对用户送入网络中的流量进行控制是十分必要的。对于企业网,对某些应用的流量进行控制也是一个有力的控制网络状况的工具。网络管理者可以使用约定访问速度(以后简称CAR)来对流量进行控制。CAR利用令牌桶(Tocken Bucket, TB)进行流量控制。图 7 CAR处理过程示意图图 7 是CAR的处理过程,首先报文被分类,如果报文是某类报文,规定了流量特性,则进入令牌桶中进行处理。如果令牌桶中有足够的令牌可以用
31、来发送报文,则报文可以通过,可以被继续发送下去。如果令牌桶中的令牌不满足报文的发送条件,则报文被丢弃。这样,就可以对某类报文的流量进行控制。令牌桶按用户设定的速度向桶中放置令牌,并且,令牌桶有用户设定的容量,当桶中令牌的量超出桶的容量的时候,令牌的量不再增加。当报文被令牌桶处理的时候,如果令牌桶中有足够的令牌可以用来发送报文,则报文可以通过,可以被继续发送下去,同时,令牌桶中的令牌量按报文的长度做相应的减少。当令牌桶中的令牌少到报文不能再发送时,报文被丢弃。令牌桶是一个控制数据流量的很好的工具。当令牌桶中充满令牌的时候,桶中所有的令牌代表的报文都可以被发送,这样可以允许数据的突发性传输。当令牌桶中没有令牌的时候,报文将不能被发送,只有等到桶中生成了新的令牌,报文才可以发送,这就可以限制报文的流量只能是小于等于令牌生成的速度,达到限制流量的目的。CAR不仅可以做到流量控制,还可以进行报文的标记(mark)或重新标记(re-mark)。CAR可以设置IP报文的优先级或修改IP报文的优先级,达到标记报文的目的。例如,当报文符合流量特性的时候,可以设置报文的优先级为5,当报文不符合流量特性的时候,可以丢弃,也可以设置报文的优先级为1并继续进行发送。这样,后续的处理可以尽量保证不丢弃优先级为5的报文,在网络不
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1