简介
百度百科 描述为:
QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。QoS的保证对于容量有限的网络来说是十分重要的,特别是对于流多媒体应用,例如VoIP和IPTV等,因为这些应用常常需要固定的传输率,对延时也比较敏感。
提供端到端的QoS,它通过下列技术来实现:
1)流量标记与控制技术:它根据报文的CoS(Class of Service,服务等级)域、ToS域(对于IP报文是指IP优先级或者DSCP)、IP报文的五元组(协议、源地址、目的地址、源端口号、目的端口号)等信息进行报文分类,完成报文的标记和流量监管。目前实现流量监管技术多采用令牌桶机制。
2)拥塞管理与拥塞避免技术:WRED、PQ、CQ、WFQ、CBQ等队列技术对拥塞的报文进行缓存和调度,实现拥塞管理与拥塞避免。
拥塞管理技术原理
拥塞管理是指网络在发生拥塞时,如何进行管理和控制。处理的方法是使用队列技术。将所有要从一个接口发出的报文进入多个队列,按照各个队列的优先级进行处理。不同的队列算法用来解决不同的问题,并产生不同的效果。常用的队列技术有FIFO、PQ、CQ、WFQ、CBWFQ等,下文逐一介绍这些常用队列技术的基本原理。
- FIFO(First In First Out,先进先出)队列示意图如下所示:
图2 FIFO队列示意图
FIFO队列具有处理简单,开销小的优点。但FIFO不区分报文类型,采用尽力而为的转发模式,使对时间敏感的实时应用(如VOIP)的延迟得不到保证,关键业务的带宽也不能得到保证。
- PQ(Priority Queuing,优先队列)示意图如下所示:
图3 PQ队列示意图
APQ的缺点是,当较高优先级队列中总有报文存在时,则低优先级队列中的报文将一直得不到服务,出现队列“饿死”现象。
- CQ(Custom Queuing,定制队列)示意图如下所示:
图4 CQ队列示意图
由于采用轮询调度各个队列,CQ无法保证任何数据流的延迟。
-WFQ(Weighted Fair Queuing,加权公平队列)示意图如下所示:
图5 WFQ队列示意图
WFQ优点在于配置简单,有利于小包的转发,每条流都可以获得公平调度,同时照顾高优先级报文的利益。但由于流是自动分类,无法手工干预,故缺乏一定的灵活性,且受资源限制,当多个流进入同一个队列时无法提供精确服务,无法保证每个流获得的实际资源量。WFQ均衡各个流的延迟与抖动,同样也不适合延迟敏感的业务应用。
- CBQ(Class Based Queuing,基于类的队列)示意图如下所示:
图6 CBQ队列示意图
CBQ可为不同的业务定义不同的调度策略(如带宽、时延等),由于涉及到复杂的流分类,对于高速接口(GE以上)启用CBQ特性系统资源存在一定的开销。
- RTP优先队列(Real Time Protocol Priority Queuing) 示意图如下所示:
图7 RTP队列示意图
由于对进入RTP优先队列的报文进行了限速,超出规定流量的报文将被丢弃,这样在接口拥塞的情况下,可以保证属于RTP优先队列的报文不会占用超出规定的带宽,保护了其他报文的应得带宽,解决了PQ的高优先级队列的流量可能“饿死”低优先级流量的问题。
未完待续...