QoS(Quality of Service)服务质量,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。 在正常情况下,如果网络只用于特定的无时间限制的应用系统,并不需要QoS,比如Web应用,或E-mail设置等。但是对关键应用和多媒体应用就十分必要。当网络过载或拥塞时,QoS 能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。
在因特网创建初期,没有意识到QoS应用的需要。因此,整个因特网运作如一个“竭尽全力”的系统。每段信息都有4个“服务类别”位和3个“优先级”位,但是他们完全没有派上用场。 依发送和接收者看来,数据包从起点到终点的传输过程中会发生许多事情,并产生如下有问题的结果:
丢失数据包 - 当数据包到达一个缓冲器(buffer)已满的路由器时,则代表此次的发送失败,路由器会依网络的状况决定要丢弃一部份、不丢弃 或者是所有的数据包,而且这不可能在预先就知道,接收端的应用程序在这时必须请求重新传送,而这同时可能造成总体传输严重的延迟。
延迟 - 或许需要很长时间才能将数据包传送到终点,因为它会被漫长的队列迟滞,或需要运用间接路由以避免阻塞;也许能找到快速、直接的路由。总之,延迟非常难以预料。
传输顺序出错 - 当一群相关的数据包被路由经过因特网时,不同的数据包可能选择不同的路由器,这会导致每个数据包有不同的延迟时间。最后数据包到达目的地的顺序会和数据包从发送端发送出去的顺序不一致,这个问题必须要有特殊额外的协议负责刷新失序的数据包。
出错 - 有些时候,数据包在被运送的途中会发生跑错路径、被合并 甚至是 毁坏的情况,这时接收端必须要能侦测出这些情况,并将它们统统判别为已遗失的数据包,再请求发送端再送一份同样的数据包。
参数
QoS是通过给定的虚连接描述传输质量的ATM性能参数术语。这些参数包括:CTD、CDV、CER、CLR、CMR和SECBR 、ALL service classes 、Qos Classes、 traffic contract、traffic control。
QoS(Quality of Service)即服务质量。对于网络业务,服务质量包括传输的带宽、传送的时延、数据的丢包率等。在网络中可以通过保证传输的带宽、降低传送的时延、降低数据的丢包率以及时延抖动等措施来提高服务质量。
网络资源总是有限的,只要存在抢夺网络资源的情况,就会出现服务质量的要求。服务质量是相对网络业务而言的,在保证某类业务的服务质量的同时,可能就是在损害其它业务的服务质量。例如,在网络总带宽固定的情况下,如果某类业务占用的带宽越多,那么其他业务能使用的带宽就越少,可能会影响其他业务的使用。因此,网络管理者需要根据各种业务的特点来对网络资源进行合理的规划和分配,从而使网络资源得到高效利用。 下面从QoS服务模型出发,对目前使用最多、最成熟的一些QoS技术逐一进行描述。在特定的环境下合理地使用这些技术,可以有效地提高服务质量。
通常QoS提供以下三种服务模型:
l Best-Effort service(尽力而为服务模型)
l Integrated service(综合服务模型,简称Int-Serv)
l Differentiated service(区分服务模型,简称Diff-Serv)
Best-Effort服务模型Best-Effort是一个单一的服务模型,也是最简单的服务模型。对Best-Effort服务模型,网络尽最大的可能性来发送报文。但对时延、可靠性等性能不提供任何保证。Best-Effort服务模型是网络的缺省服务模型,通过FIFO队列来实现。它适用于绝大多数网络应用,如FTP、E-Mail等。
Int-Serv服务模型Int-Serv是一个综合服务模型,它可以满足多种QoS需求。该模型使用资源预留协议(RSVP),RSVP运行在从源端到目的端的每个设备上,可以监视每个流,以防止其消耗资源过多。这种体系能够明确区分并保证每一个业务流的服务质量,为网络提供最细粒度化的服务质量区分。但是,Inter-Serv模型对设备的要求很高,当网络中的数据流数量很大时,设备的存储和处理能力会遇到很大的压力。Inter-Serv模型可扩展性很差,难以在Internet核心网络实施。
Diff-Serv服务模型Diff-Serv是一个多服务模型,它可以满足不同的QoS需求。与Int-Serv不同,它不需要通知网络为每个业务预留资源。区分服务实现简单,扩展性较好。
分类
分类是指具有QoS的网络能够识别哪种应用产生哪种数据包。没有分类,网络就不能确定对特殊数据包要进行的处理。所有应用都会在数据包上留下可以用来识别源应用的标识。分类就是检查这些标识,识别数据包是由哪个应用产生的。以下是4种常见的分类方法。
(1)协议 有些协议非常“健谈”,只要它们存在就会导致业务延迟,因此根据协议对数据包进行识别和优先级处理可以降低延迟。应用可以通过它们的EtherType进行识别。譬如,AppleTalk协议采用0x809B,IPX使用0x8137。根据协议进行优先级处理是控制或阻止少数较老设备所使用的“健谈”协议的一种强有力方法。
(2)TCP和UDP端口号码 许多应用都采用一些TCP或UDP端口进行通信,如 HTTP采用TCP端口80。通过检查IP数据包的端口号码,智能网络可以确定数据包是由哪类应用产生的,这种方法也称为第四层交换,因为TCP和UDP都位于OSI模型的第四层。
(3)源IP地址 许多应用都是通过其源IP地址进行识别的。由于服务器有时是专门针对单一应用而配置的,如电子邮件服务器,所以分析数据包的源IP地址可以识别该数据包是由什么应用产生的。当识别交换机与应用服务器不直接相连,而且许多不同服务器的数据流都到达该交换机时,这种方法就非常有用。
(4)物理端口号码 与源IP地址类似,物理端口号码可以指示哪个服务器正在发送数据。这种方法取决于交换机物理端口和应用服务器的映射关系。虽然这是最简单的分类形式,但是它依赖于直接与该交换机连接的服务器。
在识别数据包之后,要对它进行标注,这样其他网络设备才能方便地识别这种数据。由于分类可能非常复杂,因此最好只进行一次。识别应用之后就必须对其数据包进行标记处理,以便确保网络上的交换机或路由器可以对该应用进行优先级处理。通过采纳标注数据的两种行业标准,即IEEE 802.1p或差异化服务编码点(DSCP),就可以确保多厂商网络设备能够对该业务进行优先级处理。 在选择交换机或路由器等产品时,一定要确保它可以识别两种标记方案。虽然DSCP可以替换在局域网环境下主导的标注方案IEEE 802.1p,但是与IEEE 802.1p相比,实施DSCP有一定的局限性。在一定时期内,与IEEE 802.1p 设备的兼容性将十分重要。作为一种过渡机制,应选择可以从一种方案向另一种方案转换的交换机。
一旦网络可以区分电话通话和网上浏览,优先级处理就可以确保进行Internet上大型下载的同时不中断电话通话。为了确保准确的优先级处理,所有业务量都必须在网络骨干内进行识别。在工作站终端进行的数据优先级处理可能会因人为的差错或恶意的破坏而出现问题。黑客可以有意地将普通数据标注为高优先级,窃取重要商业应用的带宽,导致商业应用的失效。这种情况称为拒绝服务攻击。通过分析进入网络的所有业务量,可以检查安全攻击,并且在它们导致任何危害之前及时阻止。
在局域网交换机中,多种业务队列允许数据包优先级存在。较高优先级的业务可以在不受较低优先级业务的影响下通过交换机,减少对诸如话音或视频等对时间敏感业务的延迟事故。 为了提供优先级,交换机的每个端口必须有至少2个队列。虽然每个端口有更多队列可以提供更为精细的优先级选择,但是在局域网环境中,每个端口需要4个以上队列的可能性不大。当每个数据包到达交换机时,都要根据其优先级别分配到适当的队列,然后该交换机再从每个队列转发数据包。该交换机通过其排队机制确定下一步要服务的队列。有以下2种排队方式。
(1)严格优先队列(SPQ) 这是一种最简单的排队方式,它首先为最高优先级的队列进行服务,直到该队列为空,然后为下一个次高优先级队列服务,依此类推。这种方法的优势是高优先级业务总是在低优先级业务之前处理。但是,低优先级业务有可能被高优先级业务完全阻塞。
(2)加权循环(WRR) 这种方法为所有业务队列服务,并且将优先权分配给较高优先级队列。在大多数情况下,相对低优先级,WRR将首先处理高优先级,但是当高优先级业务很多时,较低优先级的业务并没有被完全阻塞。
Qos可以根据报文中的802.1Q判断优先级
补充:现在的路由器一般均支持QoS。
路由器上的QoS可以通过下面几种手段获得:
1.通过大带宽得到
在路由器上除增加接口带宽以外不作任何额外工作来保障QoS。由于数据通信没有相应公认的数学模型作保障,该方法只能粗略地使用经验值作估计。通常认为当带宽利用率到达50%以后就应当扩容,保证接口带宽利用率小于50%。
2.通过端到端带宽预留实现
该方法通过使用RSVP或者类似协议在全网范围内通信的节点间端到端预留带宽。该方法能保证QoS,但是代价太高,通常只在企业网或者私网上运行,在大网公网上无法实现。
3.通过接入控制、拥塞控制和区分服务等方式得到
该方式无法完全保证QoS。这能与增加接口带宽等方式结合使用,在一定程度上提供相对的QoS。
4.通过MPLS流量工程得到
流量约定(SLA, Service Level Agreement服务等级协议)给数据流设定优先级,以此在网络/协议层面上,根据相互商定的尺度,设定有保障的性能、通过量、延迟等界限。一些特定形式的网络数据流需要定义服务质量,例如:
这些类型的服务被称为非弹性,意思是它们需要固定的带宽才能运作--如果得到多余的带宽,它们也无法使用;如果得到较少的带宽,则根本无法工作。相形之下,弹性应用可以从多余的带宽中受益。
QoS是网络与用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定,例如,传输延迟允许时间、最小传输画面失真度以及声像同步等, 是用来解决网络延迟和阻塞等问题的一种技术。现在的路由器一般均支持QoS。QoS 是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。在正常情况下,如果网络只用于特定的无时间限制的应用系统,并不需要QoS,比如 Web应用,或E-mail设置等。但是对关键应用和多媒体应用就十分必要。当网络过载或拥塞时,QoS 能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。
在Internet等计算机网络上为用户提供高质量的QoS必须解决以下问题:
QoS的分类与定义。对QoS进行分类和定义的目的是使网络可以根据不同类型的QoS进行管理和分配资源。例如 ,给实时服务分配较大的带宽和较多的CPU处理时间等,另一方面,对QoS进行分类定义也方便用户根据不同的应用提出QoS需求。
准入控制和协商。即根据网络中资源的使用情况,允许用户进入网络进行多媒体信息传输并协商其QoS。
资源预约。为了给用户提供满意的QoS,必须对端系统、路由器以及传输带宽等相应的资源进行预约,以确保这些资源不被其他应用所强用。
资源调度与管理。对资源进行预约之后,是否能得到这些资源,还依赖于相应的资源调度与管理系统。
目前的Internet仅提供尽力而为(best-effort service)的传送服务,业务量尽快传送,没有明确的时间和可靠性保障。随着网络多媒体技术的飞速发展,Internet上的多媒体应用层出不穷,如IP电话、视频会议、视频点播(VOD)、远程教育等多媒体实时业务、电子商务在Internet上传送等。Internet已逐步从单一的数据传送网向数据、语音、图像等多媒体信息的综合传输网演化。这些不同的应用需要有不同的Qos(quality of service)要求,Qos通常用带宽、时延、时延抖动和分组丢失率来衡量。各种应用对服务质量的需求在迅速增长。
显然,现有的尽力传送服务已无法满足各种应用对网络传输质量的不同要求,需要Internet提供多种服务质量类型的业务。而尽力而为的服务仍将提供给那些只需要连通性的应用。
服务质量Qos系指用来表示服务性能之属性的任何组合。为了使其具有价值,这些属性必须是可提供的、可管理的、可验证和计费的,而且在使用时它们必须是始终如一的、可预测的、有的属性甚至是起决定性作用的。为了满足各种用户应用的需要,构建对IP最优并具备各种服务质量机制的网络是完全必要的。专线服务、语音、文件传递、存储转发、交互式视频和广播视频是现有应用的一些例子。
QoS的关键指标主要包括:可用性、吞吐量、时延、时延变化(包括抖动和漂移)和丢失。下面详细叙述。
可用性
是当用户需要时网络即能工作的时间百分比。可用性主要是设备可靠性和网络存活性相结合的结果。对它起作用的还有一些其他因素,包括软件稳定性以及网络演进或升级时不中断服务的能力。
吞吐量
是在一定时间段内对网上流量(或带宽)的度量。对IP网而言可以从帧中继网借用一些概念。根据应用和服务类型,服务水平协议(SLA)可以规定承诺信息速率(CIR)、突发信息速率(BIR)和最大突发信号长度。承诺信息速率是应该予以严格保证的,对突发信息速率可以有所限定,以在容纳预定长度突发信号的同时容纳从话音到视像以及一般数据的各种服务。一般讲,吞吐量越大越好。
时延
指一项服务从网络入口到出口的平均经过时间。许多服务,特别是话音和视像等实时服务都是高度不能容忍时延的。当时延超过200-250毫秒时,交互式会话是非常麻烦的。为了提供高质量话音和会议电视,网络设备必须能保证低的时延。
产生时延的因素很多,包括分组时延、排队时延、交换时延和传播时延。传播时延是信息通过铜线、光纤或无线链路所需的时间,它是光速的函数。在任何系统中,包括同步数字系列(SDH)、异步传输模式(ATM)和弹性分组环路(RPR),传播时延总是存在的。
时延变化
QoS流程是指同一业务流中不同分组所呈现的时延不同。高频率的时延变化称作抖动,而低频率的时延变化称作漂移。抖动主要是由于业务流中相继分组的排队等候时间不同引起的,是对服务质量影响最大的一个问题。某些业务类型,特别是话音和视像等实时业务是极不容忍抖动的。分组到达时间的差异将在话音或视像中造成断续。所有传送系统都有抖动,只要抖动落在规定容差之内就不会影响服务质量。利用缓存可以克服过量的抖动,但这将增加时延,造成其他问题。
漂移是任何同步传输系统都有的一个问题。在SDH系统中是通过严格的全网分级定时来克服漂移的。在异步系统中,漂移一般不是问题。漂移会造成基群失帧,使服务质量的要求不能满足。
丢包
不管是比特丢失还是分组丢失,对分组数据业务的影响比对实时业务的影响都大。在通话期间,丢失一个比特或一个分组的信息往往用户注意不到。在视像广播期间,这在屏幕上可能造成瞬间的波形干扰,然后视像很快恢复如初。即便是用传输控制协议(TCP)传送数据也能处理丢失,因为传输控制协议允许丢失的信息重发。事实上,一种叫做随机早丢(RED)的拥塞控制机制在故意丢失分组,其目的是在流量达到设定门限时抑制TCP传输速率,减少拥塞,同时还使TCP流失去同步,以防止因速率窗口的闭合引起吞吐量摆动。但分组丢失多了,会影响传输质量。所以,要保持统计数字,当超过预定门限时就向网络管理人员告警。
现在,IP网络如何提供服务质量QoS支持这一问题现已成为业界关注的焦点。对于由QoS控制来实现QoS保证,国际上不同组织和团体提出了不同的控制机制和策略,比较著名的有:
ISO/OSI提出了基于ODP分布式环境的QoS控制,但至今仍只停留在只给出了用户层的QoS参数说明和变成接口阶段,具体实现QoS控制策略并未提出;
ATM论坛提出了QoS控制的策略和实现,ATM控制是“连接预定”型(connection and reservation),它的核心内容是在服务建立之前,通过接纳控制和资源预留来提供服务的QoS保证,而在服务交互的过程中,用户进程和网络要严格按照约定的QoS实现服务QoS保证;
3.IETF组织也已经提出了多种服务模型和机制来满足对QoS的需求,其中比较典型的有:RFC2115,RFC2117以及1998、1999年提出的 RFC26xx系列中的综合业务模型(Int-Serv)、差分业务模型(differentiated services)、多协议标签MPLS技术(Multi-Protocol Label Switching)、流量工程(traffic engineering)和QoS路由(QoS-based routing)等均用于解决Internet网络的QoS控制和管理。
参考资料:
http://zh.wikipedia.org/wiki/QoS
http://article.wxiu.com/wxjs/network/200907/15-6002.html
http://article.wxiu.com/wxjs/network/200907/15-6001.html