扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
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应用
企业VPNQoS实施
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
约定访问速度
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。