QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。QoS的保证对于容量有限的网络来说是十分重要的,特别是对于流多媒体应用,例如VoIP和IPTV等,因为这些应用常常需要固定的传输率,对延时也比较敏感。
本文火伞云将带大家探讨QoS的诞生背景,QoS的相关技术和关键指标,QoS的重要之处在哪,QoS的应用场景等。
一、QoS诞生的背景?
在因特网创建初期,没有人意识到QoS应用的重要。因此,整个因特网运作如一个“竭尽全力”的系统。每段信息都有4个“服务类别”位和3个“优先级”位,但是他们完全没有派上用场。依发送和接收者看来,数据包从起点到终点的传输过程中会发生许多事情,并产生如下有问题的结果:
1、丢失数据包。当数据包到达一个缓冲器(buffer)已满的路由器时,则代表此次的发送失败,路由器会依网络的状况决定要丢弃、不丢弃一部份或者是所有的数据包,而且这不可能在预先就知道,接收端的应用程序在这时必须请求重新传送,而这同时可能造成总体传输严重的延迟。
2、延迟。需要很长时间才能将数据包传送到终点,因为它会被漫长的队列迟滞,或需要运用间接路由以避免阻塞;虽然也许能找到快速、直接的路由,但总而言之是否会导致延迟非常难以预料。
3、传输顺序混乱。当一群相关的数据包被路由经过因特网时,不同的数据包可能选择不同的路由器,这会导致每个数据包有不同的延迟时间。最后数据包到达目的地的顺序会和数据包从发送端发送出去的顺序不一致,这个问题必须要有特殊额外的协议负责刷新失序的数据包。
4、出错。有些时候,数据包在被运送的途中会发生跑错路径、被合并甚至是毁坏的情况,这时接收端必须要能侦测出这些情况,并将它们统统判别为已遗失的数据包,再请求发送端再送一份同样的数据包。
5、吞吐量。在特定时段内可以实现的请求数量,这个指标同样也受到负载能力和延时性的限制。
当网络发生拥塞的时候,所有的数据流都有可能被丢弃;为满足用户对不同应用不同服务质量的要求,就需要网络能根据用户的要求分配和调度资源,对不同的数据流提供不同的服务质量:对实时性强且重要的数据报文优先处理;对于实时性不强的普通数据报文,提供较低的处理优先级,网络拥塞时甚至丢弃。
QoS就是为解决这个问题应运而生,支持QoS功能的设备,能够提供传输品质服务;针对某种类别的数据流,可以为它赋予某个级别的传输优先级,来标识它的相对重要性,并使用设备所提供的各种优先级转发策略、拥塞避免等机制为这些数据流提供特殊的传输服务。配置了QoS的网络环境,增加了网络性能的可预知性,并能够有效地分配网络带宽,更加合理地利用网络资源。
在特定的环境下合理地使用这些技术,可以有效地提高服务质量。通常QoS提供以下三种服务模型:Best-Effort service(尽力而为服务模型),Integrated service(综合服务模型,简称Int-Serv),Differentiated service(区分服务模型,简称Diff-Serv)。
①Best-Effort服务模型。其是一个单一的服务模型,也是最简单的服务模型。对Best-Effort服务模型,网络尽最大的可能性来发送报文。但对延时、可靠性等性能不提供任何保证。Best-Effort服务模型是网络的缺省服务模型,通过FIFO(first in first out 先入先出)队列来实现。它适用于绝大多数网络应用,如FTP、E-Mail等。
②Int-Serv服务模型。Int-Serv是一个综合服务模型,它可以满足多种QoS需求。该模型使用资源预留协议(RSVP),RSVP运行在从源端到目的端的每个设备上,可以监视每个流,以防止其消耗资源过多。这种体系能够明确区分并保证每一个业务流的服务质量,为网络提供最细粒度化的服务质量区分。但是,Inter-Serv模型对设备的要求很高,当网络中的数据流数量很大时,设备的存储和处理能力会遇到很大的压力。Inter-Serv模型可扩展性很差,难以在Internet核心网络实施。
③Diff-Serv服务模型。它是一个多服务模型,它可以满足不同的QoS需求。与Int-Serv不同,它不需要通知网络为每个业务预留资源。区分服务实现简单,扩展性较好。
二、QoS的相关技术
链路层QoS技术主要针对ATM(Asynchronous Transfer Mode,异步传输模式)、帧中继、令牌环等链路层协议支持QoS。作为一种面向连接的技术,ATM提供对QoS最强有力的支持,而且可以基于每个连接提供特定的QoS保证。帧中继网络确保连接的CIR(Committed Information Rate,承诺信息速率)最小,即在网络拥塞时,传输速度不能小于这个值。令牌环和更新的IEEE802.1p标准具有区分服务的机制。
1、链路效率机制
链路效率机制用于改善链路的性能,间接提高网络的QoS,如降低链路发包的时延(针对特定业务)、调整有效带宽。链路效率机制有很多种,下面介绍两种比较典型的链路效率机制及其基本原理。
①链路分片与交叉(Link Fragment & Interleave,LFI)对于低速链路,即使为语音等实时业务报文配置了高优先级队列(如RTP优先队列或LLQ),也不能够保证其时延与抖动,原因在于接口在发送其他数据报文的瞬间,语音业务报文只能等待,而对于低速接口发送较大的数据报文要花费相当的时间。采用LFI以后,数据报文(非RTP实时队列和LLQ中的报文)在发送前被分片、逐一发送,而此时如果有语音报文到达则被优先发送,从而保证了语音等实时业务的时延与抖动。LFI主要用于低速链路。
②RTP报文头压缩(RTP Header Compression,cRTP)cRTP主要在低速链路上使用,可将40字节的IP/UDP/RTP头压缩到2~4个字节(不使用校验和可到2字节),提高链路的利用率。cRTP主要得益于同一会话的语音分组头和语音分组头之间的差别往往是不变的,因此只需传递增量。RTP协议用于在IP网络上承载语音、视频等实时多媒体业务。RTP报文包括数据部分和头部分,RTP的数据部分相对小,而RTP的报头部分较大。12字节的RTP头,加上20字节的IP头和8字节的UDP头,就是40字节的IP/UDP/RTP头。而RTP典型的负载是20字节到160字节。为了避免不必要的带宽消耗,可以使用cRTP特性对报文头进行压缩。cRTP可以将IP/UDP/RTP头从40字节压缩到2~5字节,对于40字节的负载,头压缩到5字节,压缩比为(40+40)/(40+5),约为1.78,可见效果是相当可观的,可以有效的减少链路,尤其是低速链路带宽的消耗。
2、ATM QoS
ATM是一种大小固定的信元交换和多路复用技术,它是面向连接的,任何用户数据在两个或更多ATM连接设备之间传输之前,都必须建立虚电路(VC,Virtual Circuit)。ATM有两种主要的连接方式(或VC):永久虚电路(PVC,Permanent Virtual Circuit)和交换虚电路(SVC,Switched Virtual Circuit)。PVC通常是静态的,需要手工或外部配置来建立;而SVC是动态,根据需要创建。它们的创建需要在ATM端点和ATM交换机之间运行信令协议。
ATM通过使ATM端系统显示流量合同来提供QoS保证,流量合同描述了希望的通信流指标。流描述符包括QoS参数,例如峰值信元速率(PCR,Peak Cell Rate)、持续信元速率(SCR,Sustained Cell Rate)以及突发量。
ATM端系统负责确保传输的流量符合QoS合同。ATM端系统通过缓冲数据来对流量进行整形,并按约定的QoS参数传输通信。ATM交换机控制每个用户的通信指标,并将其与QoS合同进行比较。对于超过了QoS合同的通信,交换机可以设置不顺从通信的CLP位。在网络拥塞时,CLP位被设置的信元被丢弃的可能性更大。
3、FR QoS
FR(Frame Relay,帧中继)是一种流行的适用于数据通信的广域网(WAN)分组技术。它是一种较简单的协议,消除了X.25网络中链路层流控和纠错功能,这些功能被留给端点站的应用程序处理。这种协议最适合于数据通信,因为它可以传送偶然的突发。
帧中继使用VC(Virtual Circuit)运行,VC提供了帧中继网络上两个端点之间的逻辑连接,网络可以使用帧中继VC代替私有的租用线。PVC是网络操作员在网络管理站创建的,而SVC是基于呼叫动态建立的。
帧中继报头中的3个位提供了帧中继网络中的拥塞控制机制,这3个位分别叫做向前显式拥塞通知(FECN,Forward Explicit Congestion Notification)位、向后显式拥塞通知(BECN,Backward Explicit Congestion Notification)位和丢弃合格(DE,Discard Eligible)位。可以通过交换机将FECN位置1来告知诸如路由器等目标数据终端设备(DTE,Data Terminal Equipment),在帧从源传送到目的地的方向发生了拥塞。交换机将BECN位置1则告知目标路由器,在帧从源传送到目的地的反方向上发生了拥塞。DE位由路由器或其他DTE设备设置,指出被标记的帧没有传输的其他帧那么重要,它在帧中继网络中提供了一种基本的优先级机制,如果发生拥塞时,DE位被设置的帧将在DE位没有被设置的帧之前被丢弃。
帧中继流量整形(FRTS,Frame Relay Traffic Shaping)对从帧中继VC输出的通信进行整形,使之与配置速率一致,它将超出平均速率的分组放到缓冲区来使突发通信变得平滑。根据配置的排队机制,当有足够的可用资源时,这些缓冲的分组出队并等候被传输。排队算法是基于单个VC配置的,它只能针对接口的出站通信进行设置。FRTS可对每个VC的流量进行整形,将其峰值速率整形为承诺信息速率(CIR,Committed Information Rate)或其他定义的值,如超额信息速率(EIR,Excess Information Rate)。自适应模式的FRTS还能够根据收到的网络BECN拥塞指示符降低帧中继VC的输出量,将PVC的输出流量整形为与网络的可用带宽一致。
4、MPLS QoS
于MPLS标签交换路由器(LSR)在标签交换的转发过程中并不检查IP头,所以MPLS标签交换路由器利用MPLS标签中的EXP比特来配置QoS策略。因此,在MPLS网络中可以利用MPLS标签中的EXP比特来设置MPLS报文的优先级别,从而实现区分服务。类似对IP报文实施的区分服务一样,我们可以利用class-map命令将MPLS报文分成一个类或者多个类别,可以利用policy-map命令对已经分好的类进行QoS策略设置。最后利用service-policy命令将已经配置好的QoS策略应用于接口上。
MPLS QoS即在MPLS网络上应用QoS。MPLS QoS并没有定义专门的QoS结构。在实际的MPLS网络中,MPLS QoS通常使用区分服务(Differentiated Services)结构(又称分类服务),区分服务结构是为IP QoS而专门定义的。MPLS QoS结构就是在区分服务结构基础上增加了MPLS对区分服务的支持。
区分服务的基本原理是:在网络边缘,根据业务的QoS要求将该业务映射到一定的业务类别中,如果是IP报文,可以通过6比特的区分服务代码点字段(DSCP)来设置报文的优先级别,从而唯一地标记该类业务,然后,骨干网络中的各节点根据该字段对各种业务采取预先设定的服务策略,保证相应的服务质量。与传统的IP QoS的不同在于,MPLS QoS是以MPLS标签中的EXP比特来设置MPLS报文的优先级别从而实现区分服务。
5、IP QoS
对于Ip QoS,QoS是由流量标记、拥塞管理、拥塞避免和流量整形构成,可以对IP报文实施WRR(带权重的队列轮转),DRR,SP等调度方式,实施加权随机早期检测(WRED),流量监管,以及流量整形。在为MPLS报文实施QoS的时候可以根据EXP比特来使用相同的特性。
三、QoS的关键指标
QoS的关键指标主要包括:可用性、吞吐量、时延、时延变化(包括抖动和漂移)和丢失。
1、可用性。可用性是当用户需要时网络即能工作的时间百分比。可用性主要是设备可靠性和网络存活性相结合的结果。对它起作用的还有一些其他因素,包括软件稳定性以及网络演进或升级时不中断服务的能力。
2、吞吐量。吞吐量是在一定时间段内对网上流量(或带宽)的度量。对IP网而言可以从帧中继网借用一些概念。根据应用和服务类型,服务水平协议(SLA)可以规定承诺信息速率(CIR)、突发信息速率(BIR)和最大突发信号长度。承诺信息速率是应该予以严格保证的,对突发信息速率可以有所限定,以在容纳预定长度突发信号的同时容纳从话音到视像以及一般数据的各种服务。一般讲,吞吐量越大越好。
3、时延。时延指一项服务从网络入口到出口的平均经过时间。许多服务,特别是话音和视像等实时服务都是高度不能容忍时延的。当时延超过200-250毫秒时,交互式会话是非常麻烦的。为了提供高质量话音和会议电视,网络设备必须能保证低的时延。产生时延的因素很多,包括分组时延、排队时延、交换时延和传播时延。传播时延是信息通过铜线、光纤或无线链路所需的时间,它是光速的函数。在任何系统中,包括同步数字系列(SDH)、异步传输模式(ATM)和弹性分组环路(RPR),传播时延总是存在的。
4、时延变化。时延变化是指同一业务流中不同分组所呈现的时延不同。高频率的时延变化称作抖动,而低频率的时延变化称作漂移。抖动主要是由于业务流中相继分组的排队等候时间不同引起的,是对服务质量影响最大的一个问题。某些业务类型,特别是话音和视像等实时业务是极不容忍抖动的。分组到达时间的差异将在话音或视像中造成断续。所有传送系统都有抖动,只要抖动落在规定容差之内就不会影响服务质量。利用缓存可以克服过量的抖动,但这将增加时延,造成其他问题。漂移是任何同步传输系统都有的一个问题。在SDH系统中是通过严格的全网分级定时来克服漂移的。在异步系统中,漂移一般不是问题。漂移会造成基群失帧,使服务质量的要求不能满足。
5、丢包。不管是比特丢失还是分组丢失,对分组数据业务的影响比对实时业务的影响都大。在通话期间,丢失一个比特或一个分组的信息往往用户注意不到。在视像广播期间,这在屏幕上可能造成瞬间的波形干扰,然后视像很快恢复如初。即便是用传输控制协议(TCP)传送数据也能处理丢失,因为传输控制协议允许丢失的信息重发。事实上,一种叫做随机早丢(RED)的拥塞控制机制在故意丢失分组,其目的是在流量达到设定门限时抑制TCP传输速率,减少拥塞,同时还使TCP流失去同步,以防止因速率窗口的闭合引起吞吐量摆动。但分组丢失多了,会影响传输质量。所以,要保持统计数字,当超过预定门限时就向网络管理人员告警。
四、QoS的重要性
QoS在确保网络服务的最佳性能、可靠性和安全性方面发挥着关键作用。它可以较好的解决以下相关问题:
1、减少延时:QoS有助于减少网络设备之间数据传输的延迟。通过对关键流量进行优先排序和分配足够的带宽,QoS确保时间敏感的应用,如VoIP电话或实时视频流确保最小的延迟,这促进了响应速度和用户体验。
2、减少抖动:为了确保实时应用中一致的音频和视频质量,减少抖动很重要——抖动是指数据包延迟的变化。为了帮助实现这一目标,服务质量可以通过为时间敏感的数据提供一致和可预测的传输速率来管理和减少抖动。这些迟来的和可能不符合顺序的数据包在终端用户看来是闪烁的显示器、音频和视频的空白等,而QoS最大限度地减少了抖动的发生。
3、预防数据包丢失:当网络中存在大量流量或资源有限时,可能会发生丢包。这可能对通信质量产生负面影响,并破坏数据的传输。QoS机制对重要的数据包进行优先处理,并分配足够的资源以减少数据包丢失。 通过管理网络拥堵和确保可靠交付,QoS有助于保持数据传输的完整性。
4、安全性提高:实施流量整形和带宽分配等QoS措施可以提高网络安全,QoS对关键流量进行优先排序,确保重要的应用程序有足够的资源,并保护它们免受潜在的网络攻击。此外QoS可以通过阻止或节制恶意流量来缓解DDoS攻击。
5、提高带宽:带宽指在一定时间内可以通过网络通信系统传输的数据量,这通常是以兆字节/秒(Mbps)为单位,不能与传输速度相混淆,服务质量旨在通过对需要更快的交付时间的数据包进行优先排序和资源分配来提高带宽。
6、拥堵管理:有时由于连接速度不稳定,数据流量承载了太多的负荷而导致无法处理。为了解决这个问题,路由器使用QoS将数据包分成不同的队列,特定服务队列对某些数据包进行优先处理,而不是将所有数据包存储在一个队列中并按顺序发送出去。
7、流量整形:流量整形是一种技术,用于保持网络流量的一致性并防止拥堵,它涉及控制数据包的传输速率,可用于将特定类型的流量优先于其他流量,以确保服务质量。
8、确定优先次序:QoS是根据重要性或特定需求给予网络流量不同优先级的方法,有了QoS,重要的和时间敏感的数据被赋予优先权,以确保像视频流这样的应用得到它们所需的资源,而不会受到不太重要的流量的负面影响。
五、QoS的主要应用场景?
QoS是网络与用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定,例如,传输延迟允许时间、最小传输画面失真度以及声像同步等,是用来解决网络延迟和阻塞等问题的一种技术。路由器一般均支持QoS。在正常情况下,如果网络只用于特定的无时间限制的应用系统,并不需要QoS,比如 Web应用,或E-mail设置等。数据包对延迟的敏感度比语音或视频包低,举例来说:一个网站晚一秒钟打开不会特别影响到大家,但视频会议、电话会议、网络研讨会、会议和音乐广播中的一秒钟中断可能都会让大家体验非常糟糕。所以对关键应用和多媒体应用就十分必要。当网络过载或拥塞时,QoS 能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。各类音视频传输应用场景,比如IP语音(VoIP)、视频会议和视频点播、专线服务、文件传递、存储转发、交互式视频和广播视频等相关领域,对延迟很敏感,是高带宽、实时流量的例子,因而QoS对它们至关重要。比如要经常使用文件传输服务和视频会议的应用程序,如腾讯会议、钉钉及ZOOM等产品来进行视频会议就都需要用到QoS。