QOS基本原理
- QOS概述
-
- 什么是QOS
- QoS服务模型
- 区分服务模型
- QoS常用技术 (DiffServ模型)
- QoS数据处理流程 (DiffServ模型)
- QoS流分类和流标记
-
- QoS数据处理流程
- 为什么需要流分类和流标记
- 简单流分类
-
- 外部优先级 - VLAN报文
- 外部优先级 - MPLS报文
- 外部优先级 - IP报文
- 各外部优先级间的对应关系
- 服务等级 (Service Class)
- 复杂流分类
-
- 流量分类全过程
- 配置复杂流分类
- 修改简单流分类 (可选)
- 实验
QOS概述
- 在传统的IP网络中,所有的报文都被无区别的等同对待,每个转发设备对所有的报文均采用先入先出的策略进行处理,它尽最大的努力(Best-Effort)将报文送到目的地,但对报文传送的可靠性、传送延迟等性能不提供任何保证。
什么是QOS
- 为了支持具有不同服务需求的语音、视频以及数据等业务,要求网络能够区分出不同的通信,进而提供相应的服务。
- 例如VoIP等实时业务就对报文的传输延迟提出了较高要求,如果报文传送延时太长,用户将不能接受(相对而言,E-Mail和FTP业务对时间延迟并不敏感)。
- 为了支持具有不同服务需求的语音、视频以及数据等业务,要求网络能够区分出不同的通信,进而为之提供相应的服务。
- 传统IP网络的尽力服务不可能识别和区分出网络中的各种通信类别,而具备通信类别的区分能力正是为不同的通信提供不同服务的前提,所以说传统网络的尽力服务模式已不能满足应用的需要。——QoS的提出。
QoS服务模型
- 通常QoS提供以下三种服务模型:
- Best-Effort service(尽力而为服务模型)
- Integrated service(综合服务模型,简称IntServ)
- Differentiated service(区分服务模型,简称DiffServ)
区分服务模型
- 将网络中的流量分成多个类,然后为每个类定义相应的处理行为,使其拥有不同的优先转发、丢包率、时延等。
- DiffServ是一个多服务模型,它也可以满足不同的QoS需求。该模型目前IP网络广泛使用。
- 应用程序在发出报文前,不需要通知网络为其预留资源。对DiffServ服务模型,网络不需要为每个流维护状态,它根据每个报文的差分服务类(各报文头中的差分服务标记字段,如IP头的DS Field),来提供特定的服务。
- 其实就是将网络中的流量分成多个类,不同的类采用不同的处理。也就是说,先对流量分类,然后把类别标记在报文头中,通过报文携带到网络上,网络各节点只需要简单地识别报文中的这些标记,进行相应的处理。
- 小例子:就好比你去坐火车,火车票就是用来标记你所要享受的服务,是软卧、硬卧、硬座还是无座。火车票你随身携带,上车时你根据火车票进入对应的车厢,享受相应的服务:进入卧铺车厢的,可以舒服的躺着,进入硬座车厢,表示要坐着或站着咯。车票就相当于报文头中的“标记”。
- 除了流分类和标记,差分服务比较优秀的地方还有强大的队列技术。当网络拥塞,也就是进来的报文太多,设备处理不过来,就让报文排队。
QoS常用技术 (DiffServ模型)
QoS数据处理流程 (DiffServ模型)
- QoS技术提供了下述功能:
- 流量分类和标记:依据一定的匹配规则识别出对象,是有区别地实施服务的前提,通常作用在接口入方向。
- 令牌桶:使用令牌桶对流量进行评估,是否满足报文转发的条件。
- 流量监管:对进入设备的特定流量的规格进行监管,通常作用在接口入方向。当流量超出规格时,可以采取限制或惩罚措施,以保护运营商的商业利益和网络资源不受损害。
- 拥塞避免:过度的拥塞会对网络资源造成损害,拥塞避免监督网络资源的使用情况,当发现拥塞有加剧的趋势时采取主动丢弃报文的策略,通过调整流量来解除网络的过载,通常作用在接口出方向。
- 拥塞管理:是必须采取的解决资源竞争的措施,将报文放入队列中缓存,并采取某种调度算法安排报文的转发次序,通常作用在接口出方向。
- 流量整形:一种主动调整流的输出速率的流控措施,是为了使流量适配下游设备可供给的网络资源,避免不必要的报文丢弃和拥塞,通常作用在接口出方向。
QoS流分类和流标记
QoS数据处理流程
- 流量分类和标记:依据一定的匹配规则识别出对象,是有区别地实施服务的前提,通常作用在接口入方向。
为什么需要流分类和流标记
- 流量分类和标记是QoS的基础,是有区别地实施服务的前提。
- 要实现差分服务,就需要对进入DiffServ域的流量按照一定的规则进行分类,然后根据不同类别的流量提供不同的服务。
- 当报文在DiffServ域边界被分类之后,在网络的中间节点,就可以根据分类,对不同类别的流量给予差别服务。下游(downstream)节点可以选择使用上游(upstream)节点的分类结果,也可以按照自己的分类标准对数据流重新进行分类。
- 需要首先将数据包分为不同的类别或者设置为不同的优先级。
- 将数据包分为不同的类别,称为流分类,流分类并不修改原来的数据包。
- 将数据包设置为不同的优先级称为标记,而标记会修改原来的数据包。其中,标记分为内部标记和外部标记:
- 内部标记
- 标记报文在设备内部处理的服务等级(service-class)与丢弃优先级,让匹配的报文能够直接进入指定服务等级的队列,而不需要根据报文头中的优先级字段来确定服务等级。
- 标记报文的丢弃优先级也叫着色(color),是指在相同service-class的时候,入同一个队列,当此队列快拥塞的时候,可以通过color再进行差分服务,体现在缓存使用上的优先顺序。
- 外部标记
- 设置/改写报文的优先级字段,用于向下一台设备传递差分服务的QoS信息。其中,改写报文的优先级字段也称为“重标记-remark”。
简单流分类
- 简单流分类是指采用简单的规则,如只根据IP报文的IP优先级或DSCP值、IPv6报文的TC值、MPLS报文的EXP域值、VLAN报文的802.1p值,对报文进行粗略的分类,以识别出具有不同优先级或服务等级特征的流量,实现外部优先级和内部优先级之间的映射。
-
外部优先级 - VLAN报文
外部优先级 - MPLS报文
外部优先级 - IP报文
各外部优先级间的对应关系
- EF:一般是语音流量
- AF:普通流量,确保转发
服务等级 (Service Class)
复杂流分类
流量分类全过程
- 需求:要求为语音、视频等即时性业务提供最优先的转发服务
- 实现:在DS边界节点,先通过复杂流分类抓取语音、视频等业务流量,映射到对应的优先级;再通过简单流分类,处理剩余流量。
配置复杂流分类
- 由于DS边界收到的流量一般未被分类,所以复杂流分类一般在DS边界设备上配置。配置思路如下:
- 使用Traffic classifier工具匹配流量
- 使用Traffic behavior工具定义流分类的规则
- 使用Traffic policy工具将Traffic classifier与Traffic behavior进行绑定
- 将Traffic policy应用到DS边界设备接口入方向上