我们已经了解了QoS的度量指标, 有带宽, 延迟,抖动, 丢包率,这些是判断网络服务质量的标准。


那么,如何在网络中通过部署来保证这些指标在一定的合理范围内,从而提高网络的服务质量呢?这就涉及到QoS模型。需要说明的是,QoS模型不是一个具体功能,而是端到端QoS设计的一个方案。例如,网络中的两个主机通信时,中间可能会跨越各种各样的设备。只有当网络中所有设备都遵循统一的QoS服务模型时,才能实现端到端的质量保证。IETF、ITU-T等国际组织都为自己所关注的业务设计了QoS模型。下面就来介绍一下主流的三大QoS模型。


1   Best-Effort服务模型 :尽力而为服务模型


Best-Effort是最简单也是最早出现的QoS服务模型。


在这种模型中,网络中的设备上除了保证网络之间路由可达之外,不需要部署额外的功能。应用程序可以在任何时候发出任意数量的报文,而且不需要通知网络。网络只是尽最大的可能性来发送报文,但对时延、可靠性等性能不提供任何保证。


在理想状态下,如果有足够的带宽,Best-Effort是最简单的服务模式。而实际上,这种“简单“带来一定的限制。因此,Best-Effort适用于对时延、可靠性等性能要求不高的业务,如FTP、E-Mail等。


默认情况下, 设备没有做任何QoS 策略, 就是尽力而为的服务模型, 即先来先服务, 不做任何区分, 大家平等对待。


2   IntServ服务模型:集成服务模型


由于网络带宽的限制,Best-Effort服务模型不能为一些实时性要求高的业务提供有力的质量保障,于是IETF在1994年的RFC1633中提出了InterServ模型。


IntServ模型是指应用程序在发送报文前,首先通过RSVP(Resource Reservation Protocol)信令向网络描述它的流量参数。网络在流量参数描述的范围内,预留资源(如带宽、优先级)以承诺满足该请求。在收到确认信息,确定网络已经为这个应用程序的报文预留了资源后,应用程序才开始发送报文。应用程序发送的报文应该控制在流量参数描述的范围内。网络节点需要为每条数据流维护一个状态,并基于这个状态执行相应的QoS动作,来满足对应用程序的承诺。


【太阁干货系列】QoS服务模型_应用程序


简单来说,InterServ模型下,网络需要为某个业务预留一条专用通道。这种资源预留的状态称为“软状态”。为了保证这条通道不被占用,RSVP会定期发送大量协议报文进行探测。通过RSVP,各网元可以判断是否有足够的资源可以预留。只有所有的网元都预留了足够的资源,专用通道方可建立。


IntServ模型为业务提供了一套端到端的保障制度,其优点显而易见,但是其局限性一样明显。


实现难度大:IntServ模型要求端到端所有网络节点支持。而网络上存在不同厂商的设备,核心层、汇聚层和接入层的设备功能参差不齐,要所有节点都支持IntServ模型,很难达到这方面要求。


 资源利用率低:为每条数据流预留一条路径,意味着一条路径只为一条数据流服务而不能为其他数据流复用。这样导致有限的网络资源不能得到充分的利用。


带来额外带宽占用:为了保证这条通道不被占用,RSVP会发送大量协议报文定期进行刷新探测,这在无形中增大了网络的负担。


3   DiffServ服务模型  :区分服务模型


为了克服InterServ的可扩展性差的问题,IETF在1998年提出了DiffServ服务模型。


DiffServ服务模型,也叫差分服务模型,意思就是提供有差别的服务。就好比银行有黑金卡用户、金卡用户和普通卡用户,银行为不同用户提供的服务也不相同:黑金卡用户享有专人专区服务;金卡用户不能享有专人专区的服务,但是可以享受优先办理业务的特权;普通卡用户则只能按照正常的排队顺序办理业务。这就银行提供的差分服务。


DiffServ模型中,网络中的流量可以根据多种条件被分成多个类,或者标记不同的优先级。这个过程类似于将报文分为黑金卡用户、金卡用户和普通卡用户。当网络出现拥塞时,不同的类会享受不同的优先处理,从而实现差分服务。同一类的业务在网络中会被聚合起来统一发送,保证相同的延迟、抖动、丢包率等QoS指标。


DiffServ模型不需要信令,也不需要预先向网络提出资源申请。业务分类和汇聚工作在网络的边缘节点进行,后续设备根据分类识别出不同的业务,并提供相应的服务。


当前网络中承载的业务类型越来越多,DiffServ模型显得相当灵活,可以说是为现在的网络量身定做的。因此,DiffServ模型成为QoS设计和应用的主要方案。


区分服务模型是目前最合理的资源利用方式,也是我们学习的重点。