3.2.7 综合比较
Queue数 优点 缺点
FIFO 1 缺省的队列机制,队列长度配置简单,易于使用;处理简单,物理延迟较小; 所有报文同等对待,报文到来的次序决定了可占用的带宽、延迟和丢包情况; 无法对某类报文进行带宽保证,没有约束力;时间敏感的实时应用(如VoIP)的延迟得不到保证;
PQ 4 对不同业务数据提供绝对的优先服务,对实时性的应用(如VoIP)的延迟可以得到保证;对优先业务的报文的带宽占用可以绝对优先; 根据需要配置,处理速度较慢;如果不对高优先级的报文加以带宽限制,会造成低优先级的报文得不到带宽;
CQ 16+1 对不同业务的报文按带宽比例分配带宽;预定义的某类报文没有传输时,可自动调配给其他报文可占; 根据需要配置,处理速度较慢; 不适于解决对时延敏感的实时业务;
WFQ 自定义 配置简单,报文分类自动完成;可以保护某类数据(流)发送的带宽;可以使延迟的抖动减小;可以为不同优先级的流分配不同的带宽;当流的数目减少时,空余的带宽可自动调配给其他流占用; 处理速度较快(比FIFO慢,但比PQ、CQ要快);不适于解决对时延敏感的实时业务。
CBWFQ 0~63 可以按多种方式对数据进行划分,并分别提供不同的服务;可以为进入BQ队列的业务提供严格精确的带宽保证,并且保证各queue之间的比例关系; 可以为进入LLQ的业务提供绝对优先的队列调度,确保实时数据的时延,同时对高优先级数据流量限制了带宽上限,克服了PQ的弊病;对于一般的缺省类数据, 提供基于WFQ的调度服务; 当配置的类较多时,系统开销会比较大。
RTP
3.3 拥塞避免
由于路由器、交换机等网络设备的内存资源总是有限,按照传统的处理方法,当队列的长度达到规定的最大值时,后续到来的报文都将被丢弃,对于TCP报文,如果大量的报文被丢弃,会造成TCP超时,从而引发TCP的慢启动和拥塞避免/ 流控机制,使TCP减少报文的发送;当队列同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入慢启动和拥塞避免,称之为“TCP全局同步”,这样多个TCP连接发向队列的报文将同时减少,使得发向队列的报文的量不及线路发送的速度,从而减少了线路带宽的利用 。并且,发向队列的报文的流量总是忽大忽小,使线路的上的流量总在极少和饱满之间波动。
为了避免这种情况的发生,队列可以采用WRED/Weighted Random Early Detection加权随机早期检测的报文丢弃策略。 WRED引入IP优先权 DSCP值和MPLS EXP来区别丢弃策略,采用WRED时,用户可以设定队列的threshold/阈值,当队列的长度小于低阈值时,不丢弃报文,当队列的长度在低阈值和高阈值之间时,WRED开始随机丢弃报文,队列的长度越长,丢弃的概率越高;当队列的长度大于高阈值时;丢弃所有的报文。
由 于WRED随机地丢弃报文,将避免使多个TCP连接同时降低发送速度,从而避免了TCP的“全局同步”现象,即便当某个TCP连接的报文被丢弃,开始减速 发送的时候,其他的TCP连接仍然有较高的发送速度。这样,无论什么时候,总有TCP连接在进行较快的发送,提高了线路带宽的利用率。
但是,如果 直接采用队列的长度与用户设定的阈值比较并进行丢弃,将会对突发性的数据流造成不公正的待遇,不利于数据流的传输;所以,在与设定的阈值比较并进行丢弃 时,采用队列的平均长度,它既反映了队列的变化趋势,又对队列长度的突发变化不敏感,避免了对突发性的数据流造成不公正的待遇。
WRED可以感知QoS的带内信令,包括IP优先级DSCP 和MPLS EXP,可以为不同IP优先级DSCP或MPLS EXP的报文设定不同的队列长度滤波系数、队列阈值、丢弃概率等,从而对不同优先级的报文提供不同的丢弃特性。
WRED和队列机制的关系如下图所示:
 
3.4 流量监管与×××
流量监管(Traffic Policing)的典型作用是限制进入某一网络的某一连接的流量与突发情况。在报文满足一定的条件时,如某个连接的报文流量过大,流量监管就可以对该报文采取不同的处理动作,例如丢弃报文、或重新设置报文的优先级等,通常的用法是使,CAR来限制某类报文的流量。
流量×××(Traffic Shaping)的典型作用是限制流出某一网络的某一连接的流量与突发情况,使这类报文以比较均匀的速度向外发送。流量×××通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下,再均匀地发送这些被缓冲的报文。
QOS详解(二)_休闲
3.4.1 CAR
CAR――Committed Access Rate/约定访问速率。网络管理者可以使用CAR来对流量进行控制。CAR是利用TB/Token Bucket令牌桶来进行流量控制。
QOS详解(二)_休闲_02
图 为CAR利用令牌桶原理进行流量控制的过程:首先,根据预先设置的匹配规则来对报文进行分类,如果是没有规定流量特性的报文,就直接继续发送,并不需要经 过令牌桶的处理,如果是需要进行流量控制的报文,则会进入令牌桶中进行处理,如果令牌桶中有足够的令牌可以用来发送报文,则允许报文通过 报文可以被继续发送下去,如果令牌桶中的令牌不足,则报文被丢弃。
令牌是按照一个用户设定的标准的速率往桶中不断存放的。这样,就可以对某类报文的流量进行控制。
当然令牌桶的容量也是由用户设置的,超出桶的容量的时候,令牌的量不再增加。 最终可以通过设置往令牌桶中存放Token的速率来控制路由器发送某类报文的速率。
3.4.2 GTS
GTS――Generic Traffic Shaping/通用流量×××,可以对不规则或不符合预定流量特性的流量进行×××,以利于网络上下游之间的带宽匹配。
与CAR一样,GTS也采用了令牌桶技术来控制流量,它们的主要区别在于,利用CAR进行报文流量控制时,对不符合流量特性的报文进行丢弃,而GTS对于不符合流量特性的报文则是进行缓冲,减少了报文的丢弃,同时满足报文的流量特性。
QOS详解(二)_QOS_03
GTS 可以对接口上指定的报文流或所有报文进行×××,当报文到来的时候,首先对报文进行分类,如果报文不需要进行处理,就继续发送;不需要经过令牌桶的处理,如 果报文需要进行GTS处理,则与令牌桶中的令牌进行比较,令牌桶按用户设定的速度向桶中放置令牌,如果令牌桶中有足够的令牌可以用来发送报文,则报文直接 被继续发送下去;同时,令牌桶中的令牌量按报文的长度做相应的减少。
当令牌桶中的令牌少到报文不能再发送时,报文将被缓存入GTS队列中,当 GTS队列中有报文的时候,GTS按一定的周期从队列中取出报文进行发送,每次发送都会与令牌桶中的令牌数作比较,直到令牌桶中的令牌数减少到队列中的报 文不能再发送、或是队列中的报文全部发送完毕为止――这样就能减少报文的丢失。
3.5 物理接口的速率限制
LR――Line Rate/物理接口总速率。在一个物理接口上,可以通过LR限制接口发送所有报文的总速率。
LR 的处理过程仍然是采用令牌桶进行流量控制,如果用户在路由器的某个接口上配置了LR,规定了流量特性,则所有经由该接口发送的报文首先要经过LR的令牌桶 进行处理,只有当令牌桶中有足够的令牌时才能发送报文,否则就强制进入QOS队列进行拥塞管理,这样,就可以对通过该物理接口的报文流量进行控制。
QOS详解(二)_休闲_04
相 较于CAR,LR能够限制在物理接口上,对通过的所有报文生效,而CAR则是在IP层实现的,对于不经过IP层处理的报文不起作用;而较之于GTS,LR 不但能够对超过流量限制的报文进行缓存,并且能利用QoS丰富的队列来缓存报文,而GTS则是将报文缓存在GTS队列中。同样,GTS也是是在IP层实现 的,所以对不经过IP层处理的报文不起作用。
3.6 链路效率机制
链路效率机制,用于改善链路的性能,间接提高网络的QoS 。如降低链路发包的时延、调整有效带宽等。目前主要有LFI和IPHC两种链路效率机制。
3.6.1 LFI
LFI――Link Fragment & Interleave/链路分片与交叉。对于低速链路,即使为语音等实时业务报文配置了高优先级队列,如RTP或LLQ,也不能够保证其时延与抖动,原因 在于接口在发送其他数据报文的瞬间,语音业务报文还是只能等待。而且低速接口发送较大的数据报文要花费相当的时间,如果采用LFI数据报文,非RTP、 LLQ报文在发送前被分片,逐一发送。而此时如果有语音报文到达,则被优先发送,从而保证了语音等实时业务的时延与抖动。
当然,LFI主要用于低速链路。
QOS详解(二)_QOS_05
如图,启用LFI后,在大报文出队的时候,可以将其分为定制长度的小片报文, 这就使RTP、LLQ的报文等待的时间大大缩短。
3.6.2 IPHC
IPHC――IP Header Compression/IP报文头压缩,主要在低速链路上使用,可将40字节的IP/UDP/RTP头压缩到2~4个字节,如果不使用校验和,可压缩到 2字节,从而提高链路的利用率,IPHC主要得益于同一会话的语音分组头和语音分组头之间的差别往往是不变的,因此只需传递增量。
RTP 协议用于在IP网络上承载语音、视频等实时多媒体业务,RTP报文包括数据部分和头部分,RTP的数据部分相对小,而RTP的头部分较大,12字节的 RTP头,加上20字节的IP头和8字节的UDP头,就是40字节;而RTP典型的负载是20字节到160字节,为了避免不必要的带宽消耗,可以使用 IPHC特性对报文头进行压缩。
IPHC可以将IP/UDP/RTP头从40字节压缩到2~5字节,效果是相当可观的,可以有效的减少链路,尤其是低速链路带宽的消耗。
在具体实现上面,BDCOM不仅对IP head可以压缩,其他的一些“头”同样可以压缩,从而提高传输效率;主要包括DLC、CTCP、CRTP等,他们分别针对Data Link、TCP、RTP的头进行压缩的。
BDCOM在提供CTCP功能的时候,除了cisco-format模式以外,还同时提供IPHC-format、Passive等模式;另外还支持CRTP功能,这是专门对低速PPP链路RTP报文进行压缩,它们在原理和使用上面都大同小异,这里就不一一详述了。
除了报头压缩,BDCOM路由器还支持DLC报文压缩。
3.7 QoS特性的配合
前面介绍了关于QoS的很多技术要点,但它们都是零散的知识点,在实际的网络环境中它们是怎样协同工作的呢?请看下图:
QOS详解(二)_休闲_06
原始的报文序列在进入路由器、交换机等网络设备的设备的时候:
A首先需要根据ip包的源/目的ip地址、源/目的端口、协议类型、TOS等参数进行分类(CLASS);
B 然后在根据这些不同CLASS的报文进行CAR、GTS、WRED等操作,这些工作主要是通过令牌桶技术来完成的;
C 然后,这些经过预处理过的报文,根据自身的特点,安排进入不同的优先队列中进行排队;
D 网络设备根据各个队列的优先权,进行报文的出队调度,最终实现QoS的DiffServ。
4 总结
本文主要讲述了IP QoS的主要技术应用,其中又以DiffServ的内容为主,cisco路由器能够全面的支持和应用;虽然这些技术非常的有效,但要发挥它们的作用,必须 使全网的路由器、交换机都开启QoS功能,进行协调配合,统一调度,但可行性却太低,所以最终在网络实施中,QoS的应用并不是非常广泛的,这一点是比较 遗憾的。