一、QOS定义
QoS,全称(Quality of Service,服务质量),指的是一个网络可以有效利用各种基础技术,为指定的网络通信提供更优质的服务能力,可以看作是网络中的一种安全机制,是用来解决网络延迟和阻塞等问题的一种常用技术。在大多数的网络业务中,服务质量通常体现在:传输带宽大小、传送时延大小、数据丢包率高低等。在网络通信中可以通过保证传输的带宽、降低传送的时延、降低数据的丢包率以及时延抖动等措施来提高服务质量。使用QoS技术对于容量有限的网络来说是十分重要的,能够有效提升网络通信的服务质量,特别是对于流多媒体应用。
二、QOS服务模型分类
QoS通常提供以下三种服务模型:
- Best-Effort service(尽力而为服务模型),是一种单一的服务模型,也是最基础的服务模型。对Best-Effort服务模型而言,网络会尽最大的可能性来发送数据报文。其实现机制简单,但是对不同业务流不能进行区分对待,不能为延时、可靠性等性能提供保证。它通常被看作是网络的默认缺省服务模型,通过FIFO(first in first out 先入先出)队列原理来实现,适用于绝大多数网络应用,如FTP、E-Mail等
- Integrated service(综合服务模型,简称Int-Serv),是一个综合服务模型,其能够满足多种QoS场景需求。该模型使用资源预留协议(RSVP),RSVP运行在每个设备上的源端到目的端,跟踪和记录着每个数据流的状态,以避免其消耗过多资源。这种运行模式能够明确区分并保证每一个业务流的服务质量,并为网络提供最细粒度化的服务质量区分。但是,Inter-Serv模型实现较为复杂,对设备的要求也很高,当网络中的数据流数量很大时,设备的存储和处理能力会遇到很大的压力。Inter-Serv模型可扩展性很差,难以在核心数据网络实际实施。
- Differentiated service(区分服务模型,简称Diff-Serv),是一个多服务模型,它可以满足不同的QoS场景需求。与Int-Serv不同,它不需要通知网络为每个业务预留资源。区分服务实现简单,扩展性较好,能实现对不同业务流提供不同的服务质量,需要在端到端每个节点都进行手工部署,对人员能力要求较高。
三、PFC技术
PFC也称为 Per Priority Pause 或 CBFC(Class Based Flow Control),是⼀种基于优先级的流控机制。传统的流控机制中,当某条链路出现拥塞时流控会阻⽌该链路上的所有流量。⽽PFC允许在⼀条以太⽹链路上创建8个虚拟通道,并为每条虚拟通道指定⼀个优先等级,允许单独暂停和重启其中任意⼀条虚拟通道,同时不影响其它虚拟通道的流量,如下图3-1 :
图3-1
如图 3-1所⽰,设备A发送接⼝分成了8个优先级队列,设备B接收接⼝有8个接收缓存(buffer),形成了⽹络中 8 个虚拟化通道,缓存⼤⼩不同使得各队列有不同的数据缓存能⼒。当设备B的接⼝上某个接收缓存产⽣拥塞时,设备B即向上游设备A 发送反压信号“STOP”。设备A接收到反压信号,会根据反压信号指⽰停⽌发送对应优先级队列的报⽂,并将数据存储在本地接⼝缓存。然后如果设备A本地接⼝缓存消耗超过阈值,则继续向上游反压,如此⼀级级反压,直到⽹络终端设备,从⽽消除⽹络节点因拥塞造成的丢包。“反压信号”实际上是⼀个以太帧,其具体报⽂格式如下图 3-2 所⽰:
图3-2
PFC帧的定义如图3-3所示:
图3-3
综上所述,设备会为端⼝上8个接收缓存设置各⾃的PFC门限值,当接收缓存使⽤的缓存超过PFC门限值时, 则向上游发送PFC反压通知报⽂,通知上游设备停⽌发包;当队列已使⽤的缓存降低到PFC门限值以下时,则 向上游发送PFC反压停⽌报⽂,通知上游设备重新发包,从⽽最终实现报⽂的⽆丢包传输。 由此可⻅,PFC中流量暂停只针对某⼀个或⼏个优先级队列,不针对整个接⼝进⾏中断,每个队列都能单独进 ⾏暂停或重启,⽽不影响其他队列上的流量,真正实现多种流量共享链路。⽽对⾮PFC控制的优先级队列,系 统则不进⾏反压处理,即在发⽣拥塞时将直接丢弃报⽂。
PFC有以上有点同时也有存在以下问题:
1、PFC⼴播⻛暴:即交换机PFC⽔线设置的过低,⼀旦⽹络出现拥塞⼤量的交换机会发出PFC,导致全⽹流 量骤降
2、PFC死锁:PFC的死锁是由于转发表发⽣了table miss,从⽽导致交换机发送⼴播包,进⽽引⼊了通道依赖中的环。
解决这个问题的⽅法是经典的虚拟通道⽅法,即把数据包和⼴播包分配到不同的虚拟通道,从⽽消除 了依赖图中的环。