网络的普及和业务的多样化使得网络流量激增,从而加剧网络拥塞,增加转发时延,严重时还会产生丢包,导致业务质量下降甚至不可用。所以,要在网络上开展游戏、视频、直播等多样化业务,就必须解决网络拥塞问题。增加网络的带宽可以解决网络拥塞,但从运营、维护的成本考虑,这是不现实的,最有效的解决方案就是应用一个“有保证”的策略对网络流量进行管理。
QoS(Quality of Service)技术就是在这种背景下发展起来的。QoS即服务质量,其目的是针对各种业务的不同需求,为其提供端到端的服务质量保证。QoS不会增加网络带宽,它是有效利用现有网络资源的工具,它允许不同的流量不平等的竞争网络资源,语音、视频和重要的数据应用在网络设备中可以优先得到服务。QoS技术在当今的互联网中应用越来越多,其作用越来越重要。
DiffServ模型
需要说明的是,QoS不是某一个具体功能,而是一个方案。例如,网络中的两个主机通信时,中间可能会跨越各种各样的设备。只有当网络中所有设备都遵循统一的QoS服务模型时,才能实现端到端的服务质量保证。目前存在多种QoS服务模型,其中应用最广的是差分服务模型(DiffServ,Differentiated Services)。
DiffServ模型的基本原理是将网络中的流量分成多个类,每个类得到不同的处理,尤其是网络出现拥塞时不同的类会享受不同级别的处理。而同一类的业务在网络中会被聚合起来统一发送,保证相
同的时延、抖动、丢包率等QoS指标。
设备可以通过多种条件灵活地对报文进行分类,对不同的报文设置不同的优先级,而其他设备只需要简单地识别报文中的这些优先级,即可进行资源分配和流量控制。
设备支持的QoS技术都是基于DiffServ服务模型的,本文从报文分类方式和提供的QoS服务这两个维度来介绍QoS技术。
QoS报文分类方式
由上可知,基于DiffServ模型的QoS的基本原理是将网络中的流量分成多个类,每个类享受不同的处理,从而实现差分服务。本文中的QoS技术提供了如下报文分类的方式:
复杂流分类即采用复杂的规则,如由五元组(源地址、源端口号、协议号码、目的地址、目的端口号)对报文进行精细的分类,通过将某些具有相同特征的报文划分为一类,并为这一类报文提供相同的QoS服务。复杂流分类可以通过模块化QoS命令行MQC(Modular QoS Command-Line I
nterface)中的流分类实现。MQC包含三个要素,分别是流分类、流行为和流策略,三要素通过下面的方式配合使用完成对流量的处理:
1、配置流分类,定义报文匹配规则。
2、配置流行为,确定报文处理动作。根据不同的流行为,可以实现不同的QoS功能,本文提供了基于MQC的流量统计配置、报文过滤配置和报文重标记配置的详细配置指南。
3、配置流策略,并将配置好的流分类和流行为绑定到一起后在指定视图下应用流策略。
简单流分类就是指采用简单的规则,根据报文中的某个优先级字段,对报文进行粗略的分类。对于优先级的简单介绍如下:
外部优先级
又称为报文优先级、QoS优先级,即使用报文中某些特定字段比如VLAN报文的802.1p值、IP报文
的DSCP值等记录QoS信息。需要注意的是,设备只可以根据设备内部优先级处理收到的报文,为不同的业务提供不同的QoS服务,所以上述外部优先级在进入设备后会映射为设备内部的优先级。
内部优先级
又称为服务等级(Class of Service)、PHB行为(Per-Hop Behavior)、本地优先级,支持8种取值,优先级从高到低依次为CS7、CS6、EF、AF4、AF3、AF2、AF1、BE,与出端口的8个队列从高到低依次对应。因此内部优先级决定了报文在设备内部所属的队列。当针对某一个队列配置QoS业务时,即对所有通过该队列转发的报文都设置了相同的QoS服务。
丢弃优先级
又称为颜色(Color),是指报文在设备内部的丢弃优先级,用于决定当一个队列发生拥塞时报文的丢弃顺序,对内部优先级与队列的映射关系没有影响,丢弃优先级有3种取值,IEEE定义的优先级从低到高依次为Green、Yellow、Red。缺省情况下,丢弃优先级越高,则队列发生拥塞时,对应优先级的报文会被优先丢弃。
然而报文是否会被优先丢弃实际取决于参数的配置。例如,配置WRED丢弃模板中Green最大只能
使用50%缓存,Red最大可以使用100%缓存,则队列发生拥塞时,标记为Green的报文将比标记为Red的报文优先丢弃。
设备在处理QoS业务时,在端口入方向(上行方向)将报文的外部优先级映射到合适的内部优先级和丢弃优先级,在端口出方向(下行方向)将内部优先级和丢弃优先级映射到外部优先级。为了将不同报文进行统一的调度,本文提供了如下方式来介绍如何调整外部与内部优先级的映射关系:
报文重标记配置
基于MQC方式,在流行为中使用重标记行为,将报文的优先级或者标志位进行设置,重新定义报文的外部优先级。
优先级映射配置
在DiffServ模型中,设备定义了DiffServ域来管理和记录外部优先级与内部优先级、丢弃优先级之间的映射关系,不同DiffServ域允许有不同的优先级映射关系。优先级映射通过配置DiffServ域来设定不同的优先级映射关系,从而实现不同的QoS服务。
通过复杂流分类也可以对特定的QoS优先级报文进行识别,只是需要以MQC流分类的方式去实现。总而言之,需要配置MQC流分类去实现的报文分类都属于复杂流分类;不需要配置MQC流分类,直接根据报文中的外部优先级映射的内部优先级和丢弃优先级去进行报文分类的就是简单流分类。
QoS服务技术对报文分类后,可以对不同类的报文设置不同的QoS服务,以下介绍的QoS服务技术有:
为了使有限的网络资源更有效的为用户服务,就需要对进入网络设备的业务流量加以限制。流量监管、流量整形和接口限速技术规定了允许通过网络设备的不同业务流量的基本带宽(限速),监督进入网络设备的业务流量速率(测速),当业务流量超过基本带宽(超速)时,将超速的流量进行丢弃或者缓存(惩罚),从而达到限制流量、提高资源使用效率的目的,进而保证更好的为用户提供服务。
流量监管:将流量限制在特定的带宽内。当业务流量超过额定带宽时,超过的流量将被丢弃。这样可以防止个别业务或用户无限制地占用带宽。
流量整形:是一种主动调整流的输出速率的流控措施,使流量比较平稳地传送给下游设备,避免不必要的报文丢弃和拥塞。与流量监管直接将超速的报文丢弃不同,流量整形可以对超速的报文进行缓存以达到均匀向外发送报文流量的目的。
接口限速:是对一个接口上发送或者接收全部报文的总速率进行限制,接口限速可以通过流量监管或流量整形的方式去实现。
拥塞避免
拥塞避免是指通过监视网络资源(如队列或内存缓冲区)的使用情况,在拥塞发生或有加剧趋势时主动丢弃报文,通过调整网络的流量来解除网络过载的一种拥塞控制机制。
拥塞管理
拥塞管理是一项基于队列的技术。当网络发生拥塞时,报文会在队列中缓存,此时拥塞管理会提供某种调度算法安排报文的转发次序,保障一些需要更高质量的QoS服务的业务比如时延敏感业务可以优先调度。