服务质量QoS
服务质量QoS
1.QoS基础
传统的IP网络中,所有的报文都被无区别地同等对待。即每个网络设备对所有的报文均采用先进先出的策略进行处理,对报文传送的可靠性、传递延迟、丢包率等性能不能提供任何保证。
为支持具有不同服务需求的话音、视频以及数据等业务,要求网络能够区分出不同的业务流量,进而为之提供相应等级的服务。QoS正是这样一种可以为不同业务类型报文提供差分服务的技术,通过对网络流量进行分类,避免并管理网络拥塞,减少报文丢包率。
影响网络质量的因素包括传输链路的带宽、传送时延和抖动、丢包率等。
常见业务的QoS需求
业务类型 | 带宽/吞吐量 | 时延 | 抖动 | 丢包率 |
---|---|---|---|---|
电子邮件、文件传输、远程终端 | 需求低 | 容许时延 | 容许抖动 | 不敏感 |
HTML网页浏览 | 需求不定 | 容许适当时延 | 容许适当抖动 | 不敏感 |
电子商务 | 需求适当 | 敏感 | 敏感 | 敏感,必须可靠传输 |
基于IP的语音(VoIP)和实时视频 | 需求低 | 非常敏感,要求可预计的时延 | 非常敏感 | 敏感,要求可预计的丢包率 |
流媒体 | 需求高 | 非常敏感,要求可预计的时延 | 非常敏感 | 敏感,要求可预计的丢包率 |
2.QoS模型
Best-Effort服务模型:尽力而为
是现在Internet的默认服务模型,可通过增大网络带宽、升级网络设备等方式来提升
IntServ服务模型:预留资源
是指用户终端在发送报文前,需要通过信令向网络描述自己的流量参数,申请特定的QoS服务。网络中的各个设备(路由器、交换机等)根据用户终端申请的流量参数预留资源以承诺满足该请求。
DiffServ服务模型:差分服务
基本原理是将网络中的流量分成多个类,每个类享受不同的处理,尤其是网络出现拥塞时不同的类流量会享受不同级别的处理。同一类的流量在网络中则享受同一级别的处理,保证相同流量具有相同的时延、抖动、丢包率等QoS指标。
三种服务模型对比
优 点 | 缺 点 | |
---|---|---|
尽力而为服务模型 | 实现机制简单 | 对不同业务流不能进行区分对待 |
综合服务模型 | 可提供端到端QoS服务,并保证带宽、延迟 | 需要跟踪和记录每个数据流的状态,实现较复杂,且扩展性较差,带宽利用率较低 |
区分服务模型 | 不需跟踪每个数据流状态,资源占用少,扩展性较强;且能实现对不同业务流提供不同的服务质量 | 需要在端到端每个节点都进行手工部署,对人员能力要求较高 |
DiffServ模型有以下四个QoS组件:
流分类和标记、流量监管和流量整形、拥塞管理、拥塞避免
分类和标记是实现差分服务的前提和基础;流量监管、流量整形、拥塞管理和拥塞避免从不同方面对网络流量及其分配的资源实施控制,是提供差分服务的具体体现。
流分类有简单流分类和复杂流分类
简单流分类是指采用简单的规则,如只根据IP报文的IP优先级或DSCP值、IPv6报文的TC值、VLAN报文的802.1p值等,对报文进行粗略的分类,以识别出具有不同优先级或服务等级特征的流量。
复杂流分类是指采用复杂的规则,如由五元组(源地址、源端口号、协议号码、目的地址、目的端口号)对报文进行精细的分类。
MQC
模块化QoS命令行MQC通过将具有某类共同特征的报文划分为一类,并为同一类报文提供相同的服务,也可以对不同类的报文提供不同的服务。
MQC包含3个要素:流分类、流行为和流策略。MQC配置流程为:
配置流分类:定义一组流量匹配规则,以对报文进行分类,是提供差分服务的基础。
配置流行为:为符合流分类规则的报文指定流量控制或资源分配动作。
配置流策略:将指定的流分类和指定的流行为绑定,形成完整的策略。
应用流策略:将流策略应用到接口或子接口。
拥塞管理
拥塞经常发生在两种场景:速率不匹配,分组从高速链路进入设备,再由低速链路转发出去;
汇聚,分组从多个接口同时进入设备,由一个没有足够带宽的接口转发出去。
a.拥塞管理通过队列机制来实现,处理的方法是使用队列技术
b.根据各队列间的调度机制实现不同报文的差分转发,不同的队列调度算法用来解决不同的问题,并产生不同的效果。
调度算法:先进先出FIFO、优先级(PQ)调度、加权公平(WFQ)调度、公平队列FQ、PQ+WFQ调度、基于类的加权公平CBQ调度
队列调度算法的比较
类 型 | 优 点 | 缺 点 |
---|---|---|
FIFO | 实现简单,处理速度快 | 不能有差别地对待优先级不同的报文 |
PQ | 低延迟业务能得到保障 | 低优先级队列可能出现“饿死”现象 |
WFQ | 按权重实现公平调度;自动分类,配置简单 | 低时延业务得不到保障;无法支持自定义类 |
PQ+WFQ | 低时延业务能得到保障;按权重实现公平调度等 | 无法支持自定义类 |
CBQ | 支持自定义类 | 耗费较多的系统资源 |
拥塞避免
拥塞避免是指通过监视队列的使用情况,在拥塞有加剧的趋势时主动丢弃报文,通过调整网络的流量来解除网络过载的一种流控机制。华为路由器支持两种丢弃策略:尾丢弃、早期随机监测。
拥塞避免一般是和拥塞管理一起配置,配置拥塞避免前要先配置:优先级映射、基于流分类的优先级重标记、拥塞管理。
流量监管与流量整形
限速类型 | 优点 | 缺点 |
---|---|---|
流量监管 | 可实现对不同报文地限速及重标记。 | 造成较高的丢包率;链路空闲时带宽得不到充分利用。 |
流量整形 | 较少丢弃报文,充分利用带宽。 | 引入额外的时延和抖动,需要较多的设备缓冲资源。 |
网络常常会出现拥塞,从而造成应用程序带宽不足、时延太大、时延抖动或者数据包丢失。解决拥塞的常用模型是DiffServ模型,该模型的思路是差别对待不同数据包,优先保证要求高的数据包通行。DiffServ模型有四个组件:流分类和标记、流量监管和整形、拥塞管理、拥塞避免。分类是根据数据包的IP优先级或者五元组等特征进行归类,标记是对已分类的报文的IP优先级、DSCP或者VLAN帧头中的802.1p优先级等进行重新设定,以便后续处理。拥塞管理使用队列技术,对经过标记并进入不同队列的数据包按照某种调度方式进行调度,调度算法有先进先出、优先级、加权公平、基于类加权公平等算法。拥塞管理是在拥塞没发生前,主动随机丢弃一些数据包,防止TCP同步,从而提高带宽利用率。流量监管和流量整形都是监督网络的流量,防止带宽被过渡使用;流量监管会丢弃超过允许带宽的数据包,而流量整形是缓存超过允许带宽的数据包。