QoS

作者: 千鸟月读 | 来源:发表于2020-04-23 15:52 被阅读0次

    一、QoS背景

    业务流量多样化导致互联网流量激增,从而使得网络拥堵、数据丢包、转发延时甚至业务不可用。从运营维护成本考虑,需要一个对网络流量进行进行管理的策略。

    二、影响网络业务的因素举例

    • 网络带宽:网络带宽是指单位时间内传输的数据量。
    • 时延:传输时延,一个数据位从从发送方到达接收方所需要的时间,取决于传输介质,与带宽无关;串行化时延,指发送节点在传输链路上开始发送报文的第一个比特至发完最后一个比特所需要的时间。该时延取决于带宽时延以及报文大小;处理时延,指路由器把报文从入接口放到出接口所需要的时间,跟路由器CPU处理性能有关;队列时延,指报文在队列中等待的时间。它的大小跟报文的大小和数量、带宽以及队列机制有关。
    • 抖动:预想的,同一带宽同一传输路径下,数据包到达目的端时间是一样的,但是由于种种原因(单独路由、网络设备接收)数据包到达目的端的时间互相不一致,这就是抖动。抖动大小跟时延时延大小有关,时延大抖动范围可能更大。
    • 丢包率:流量传播过程中丢失报文占传输报文的百分比。

    三、QoS三种服务模型

    1. 尽力而为服务模型(Best-Effort):
    用户可以在任何时候,发出任意数量的报文,不需要通知网络。在此服务模式下,网络尽最大的可能来发送报文,但是对于时延、丢包无法保证。适用于对于对于时延、丢包要求不高业务,比如FTP、Email。可以通过增大带宽等方式优化业务。
    2. 综合服务模型(IntServ):
    该服务模型下,用户发送报文之前,需要先发送信令(signaling)向网络描述自己的流量参数,申请特定的QoS服务。根据网络流量参数,预留资源以满足该请求。收到确认信息后,确定网络已为这个应用程序的报文预留了资源后,用户才开始发送报文。用户发送的报文应该控制在流量参数描述的范围之内。网络节点需要为每个流维护一个状态,并基于这个状态执行相应的Qos动作,满足对客户的承诺。

    IntServ模型使用了RSVP(Resource Reservation Protocol)协议作为信令,在一条已知路径的网络拓扑上预留带宽、优先级等资源,路径沿途的各网元必须为每个要求服务质量保证的数据流预留想要的资源,通过RSVP信息的预留,各网元可以判断是否有足够的资源可以使用。只有所有的网元都给RSVP提供了足够的资源,“路径”方可建立。
    3. (常用)差分服务模型(DiffServ):
    该服务模型是将网络中的流量分为多个类,每个类享受不同的处理,尤其是网络出现拥塞时不同的类会享受不同级别的处理,从而得到不同的丢包率、时延、时延抖动。同一类的业务在网络中会被聚合起来同一发送,保证相同的时延、抖动、丢包率等QoS指标。

    业务流的分类和汇聚工作在网络边缘由边界节点完成。边界节点可以通过多种条件(比如报文的源地址和目的地址、ToS域中的优先级、协议类型等)灵活地对报文进行分类,对不同的报文设置不同的标记字段,而其他节点只需要简单地识别报文中的这些标记,即可进行资源分配和流量控制

    与Intserv模型相比,DiffServ模型不需要信令。在DiffServ模型中,应用程序发出报文前,不需要预先向网络提出资源申请,而是通过设置报文的QoS参数信息,来告知网络节点它的QoS需求。网络不需要为每个流维护状态,而是根据每个报文流指定的QoS参数信息来提供差分服务,即对报文的服务等级划分,有差别地进行流量控制和转发,提供端到端的QoS保证。DiffServ模型充分考虑了IP网络本身灵活性、可扩展性强的特点,将复杂的服务质量保证通过报文自身携带的信息转换为单跳行为,从而大大减少了信令的工作,是当前网络中的主流服务模型。

    四、基于DiffServ模型的QoS组成

    • 报文分类和标记
    要实现差分服务,需要首先将数据包分为不同的类别或者设置为不同的优先级。报文分类即把数据包分为不同的类别,可以通过MQC配置中的流分类实现;报文标记即为数据包设置不同的优先级,可以通过优先级映射和重标记优先级实现。
    • 流量监管、流量整形和接口限速
    流量监管和流量整形可以将业务流量限制在特定的带宽内,当业务流量超过额定带宽时,超过的流量将被丢弃或缓存。其中,将超过的流量丢弃的技术称为流量监管,将超过的流量缓存的技术称为流量整形。接口限速分为基于接口的流量监管和基于接口的流量整形。
    • 拥塞管理和拥塞避免
    拥塞管理在网络发生拥塞时,将报文放入队列中缓存,并采取某种调度算法安排报文的转发次序。而拥塞避免可以监督网络资源的使用情况,当发现拥塞有加剧的趋势时采取主动丢弃报文的策略,通过调整流量来解除网络的过载。


    图片侵删

    五、QoS调度算法

    1. 加权循环(WRR):
    WRR能够有效区分队列中所有的业务。对于所有的业务流在排队等待调度的队列,WRR是根据每个队列配置的权值与所有业务流在排队等待调度的对列的权值总和比来分配带宽。因此,在处理多个用户的高优先级等级业务时,WRR确保每个用户都不会过度占用带宽。

    2. 严格优先级(SP):
    SP模式按照优先级优先级从高到低的次序有限发送较高优先级队列中的分组,当较高优先级队列为空时,再发送较低优先级队列中的分组。如此,将关键业务的分组放入较高优先级的队列,将非关键业务的分组放入较低优先级的队列,可以保证关键业务的分组被优先传输,非关键业务的分组在处理关键业务数据的空闲间隙被传送。

    六、MQC(Modular QoS Command-Line Interface)

    模块化QoS命令行,可以通过将某种共同共同特征的的报文划分为一类,再为同一类报文提供相同的服务,或为不同的报文提供不同的服务.

    MQC三要素:

    • 流分类:
      • 定义流量的匹配规则,对报文进行分类
      • 流分类中各规则之间的关系 为and或or,默认为or
      • and:当流分类中包含ACL规则时,报文必须匹配其中一条ACL规则以及所有非ACL规则才属于该分类;当流分类中没有ACL规则时,报文必须匹配所有非ACL规则才属于该类。
      • or:报文只需要匹配了流分类中的一个规则,该设备就会任务报文属于该类。
    • 流行为:用来定义针对某类报文所做的动作。
    • 流策略:将制定的流分类和流行为绑定,对分类后的报文执行对应流行为中定义的动作。

    MQC配置流程:

    1. 配置流分类:按照一定规则对报文进行分类,是提供差分服务的基础。
    2. 配置流行为:为符合流分类规则的报文指定流量控制动作。
    3. 配置流策略:将指定的流分类和指定的流行为绑定,形成完整的策略。
    4. 应用流策略:按照需要在相应的视图下应用流策略。

    七、协议优先级字段

    为了有针对不同的业务提供有差别的QoS服务,商定将一些QoS信息记录在报文头中的某些字段下,网络中的设备解析到报文头的相应字段,根据字段内容确定优先级别,根绝报文对应优先级为这些报文提供有差别的服务。

    一. Precedence字段:
    IP报文头ToS域由8个比特组成,其中3个比特的Precedence字段标识了IP报文的优先级
    如图,网络层IPV4报文头下的ToS/DiffServ字段,即为QoS优先级字段。

    image.png

    1. ToS优先级分类:
    比特0~2表示Precedence字段,代表报文传输的8个优先级,按照优先级从高到低顺序取值为7、6、5、4、3、2、1和0。最高优先级是7或6,经常是为路由选择或更新网络控制通信保留的,用户级应用仅能使用0~5。

    • 除了Predecence字段外,ToS域中还包括D、T、R、C三个比特:
      • D比特表示延迟要求(Delay,0代表正常延迟,1代表低延迟)。
      • T比特表示吞吐量(Throughput,0代表正常吞吐量,1代表高吞吐量)。
      • R比特表示可靠性(Reliability,0代表正常可靠性,1代表高可靠性)。
      • C比特表示传输开销(Monetary Cost, 0代表正常开销,1代表最小开销)

    2. DSCP优先级分类:

    DSCP是对ToS优先级分类的重新定义,其中0-5位定义为DSCP,并且ToS域改为DffServ。DS字段的前6位(0位~5位)用作区分服务代码点DSCP(DS Code Point),后2位(6位、7位)是保留位。DS字段的前3位(0位~2位)是类选择代码点CSCP(Class Selector Code Point),相同的CSCP值代表一类DSCP。DS节点根据DSCP的值选择相应的PHB(Per-Hop Behavior)。
    • DSCP值的两种表达形式
    1. 数字形式:0-63。
    2. 关键字表达方式:关键字表示DSCP值。


      思博伦图
      图片侵删

      AFxy中,x代表不同的类别,根据不同的分类后续可以定义进入相对应的队列,y代表当队列被装满的时候丢包的概率,例如AF1类中的报文,其中丢包概率由小到大排序为AF11<AF12<AF13。

    不同关键字常用于标识不同报文(可自行定义):

    • CS6和CS7默认用于协议报文,而且是大多数厂商设备的硬件队列里最高优先级的报文,因为如果这些报文无法接收的话会引起协议中断。
    • EF常用于承载语音的流量,因为语音要求低延迟,低抖动,低丢包率,是仅次于协议报文的最重要的报文。
    • AF4用来承载语音的信令流量.
    • AF3可以用来承载IPTV的直播流量,直播的实时性很强,需要连续性和大吞吐量的保证。
    • AF2可以用来承载VOD(Videoon Demand:视频点播)的流量,相对于直播流量来说,VOD对实时性要求没那么强烈,允许有时延或者缓冲。
    • AF1可以用来承载普通上网业务。

    二、VLAN 802.1P优先级:

    位于VLAN帧头的优先级字段,常常成为CoS字段,一共3bit。只是简单的标记了业务流量的优先级,7-0.
    思博伦图

    三、MPLS EXP字段:

    其中EXP域相当于VLAN下的CoS域,7-0
    思博伦图

    八、内外优先级映射

    设备不能直接对报文本身的优先级进行差分服务,因此需要将报文本身的外部优先级映射到设备能够直接处理的内部服务优先级表。

    优先级映射实现从QoS优先级到内部优先级(或者本地优先级)或从内部优先级到QoS优先级的映射,并利用DiffServ域来管理和记录QoS优先级和服务等级之间的映射关系。对于进入设备的报文,设备将报文携带的优先级或者端口优先级映射为内部优先级,然后根据内部优先级与队列之间的映射关系确定报文进入的队列,从而针对队列进行流量整形、拥塞避免、队列调度等处理,并可以根据配置修改报文发送出去时所携带的优先级,以便其他设备根据报文的优先级提供相应的QoS服务。


    学习总结参考:1. https://blog.csdn.net/qq_38265137/article/details/80466737

    1. https://support.huawei.com/enterprise/zh/doc/EDOC1100103343/f76c8ea7

    相关文章

      网友评论

          本文标题:QoS

          本文链接:https://www.haomeiwen.com/subject/kdsoihtx.html