QOS基本原理
QOS概述 什么是QOS QoS服务模型 区分服务模型 QoS常用技术 (DiffServ模型) QoS数据处理流程 (DiffServ模型)
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报文
各外部优先级间的对应关系
服务等级 (Service Class)
复杂流分类
流量分类全过程
需求:要求为语音、视频等即时性业务提供最优先的转发服务 实现:在DS边界节点,先通过复杂流分类抓取语音、视频等业务流量,映射到对应的优先级;再通过简单流分类,处理剩余流量。
配置复杂流分类
由于DS边界收到的流量一般未被分类,所以复杂流分类一般在DS边界设备上配置。配置思路如下:
使用Traffic classifier工具匹配流量 使用Traffic behavior工具定义流分类的规则 使用Traffic policy工具将Traffic classifier与Traffic behavior进行绑定 将Traffic policy应用到DS边界设备接口入方向上
System- view
traffic classifier [ classifier- name]
if - match [ acl | vlan- id | …. ]
System- view
traffic behavior [ behavior- name]
remark [ dscp- name | 8021p- value | EXP | … ]
System- view
traffic policy [ policy- name]
classifier [ classifier- name] behavior [ behavior- name]
System- view
interface [ interface - type interface - num]
traffic- policy [ policy- name] [ inbound | outbound]
System- view
display traffic classifier user- defined [ classifier- name ]
display traffic behavior [ system- defined | user- defined ] [ behavior- name ]
display traffic policy user- defined [ policy- name ] classifier [ classifier- name ]
display traffic- policy applied- record [ policy- name ]
修改简单流分类 (可选)
简单流分类基于优先级映射表,将带有特定QoS字段数据映射为内部优先级。 优先级映射表根据实际需求可以进行一定修改,修改优先级映射表的思路如下:
System- view
interface [ interface - type interface - num]
trust [ 8021p | dscp]
System- view
qos map- table [ dot1p- dot1p | dot1p- dscp | dot1p- lp | dscp- dot1p | dscp- dscp | dscp- lp ]
input [ input- value1] output [ output- value]
System- view
display qos map- table [ dot1p- dot1p | dot1p- dscp | dot1p- lp | dscp- dot1p | dscp- dscp | dscp- lp ]
实验