QoS概述
浅谈QoS——QoS概述
网络抓包工具Wireshark下载安装&使用详细教程
在传统的计算机网络中,网络设备对于数据包的处理方式都是相同的,平等的对待所有的数据流量。但是,随着计算机网络规模的扩大和网络服务多元化的扩充,部分网络服务对网络设备和数据包转发提出了更高的要求。为了满足这些特殊服务的数据流量转发,因此提出了QoS的概念。
QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。QoS的保证对于容量有限的网络来说是十分重要的,特别是对于流多媒体应用,例如VoIP和IPTV等,因为这些应用常常需要固定的传输率,对延时也比较敏感。
当网络发生拥塞的时候,所有的数据流都有可能被丢弃;为满足用户对不同应用不同服务质量的要求,就需要网络能根据用户的要求分配和调度资源,对不同的数据流提供不同的服务质量:对实时性强且重要的数据报文优先处理;对于实时性不强的普通数据报文,提供较低的处理优先级,网络拥塞时甚至丢弃。QoS应运而生。支持QoS功能的设备,能够提供传输品质服务**;针对某种类别的数据流,可以为它赋予某个级别的传输优先级,来标识它的相对重要性,并使用设备所提供的各种优先级转发策略、拥塞避免等机制为这些数据流提供特殊的传输服务**。配置了QoS的网络环境,增加了网络性能的可预知性,并能够有效地分配网络带宽,更加合理地利用网络资源。
所谓QoS,类似于银行中VIP用户一样,给所有的网络流量分类,并赋予这些不同类别的网络流量以不同的服务质量。对于部分优先级比较高的流量,网络设备会保证其转发,而对于部分优先级比较低的流量,网络设备则尽量给齐提供服务。须知,对于计算机网路来说,在一段时间内其性能一般不会变化,因此,保证一部分网络流量的服务质量本质上是对其他类型的网络流量的损害。
在因特网创建初期,没有意识到QoS应用的需要。因此,整个因特网运作如一个“竭尽全力”的系统。每段信息都有4个“服务类别”位和3个“优先级”位,但是他们完全没有派上用场。依发送和接收者看来,数据包从起点到终点的传输过程中会发生许多事情,并产生如下有问题的结果:
下面从QoS服务模型出发,对使用最多、最成熟的一些QoS技术逐一进行描述。在特定的环境下合理地使用这些技术,可以有效地提高服务质量。
通常QoS提供以下三种服务模型:Best-Effort service(尽力而为服务模型),Integrated service(综合服务模型,简称Int-Serv),Differentiated service(区分服务模型,简称Diff-Serv)。
要学习QoS,首先先来看一下怎样衡量一个网络的服务质量,在一般情况下,我们说网络好不好,通常有以下五种关键指标:可用性、吞吐量(带宽)、时延、时延变化(包括抖动和漂移)和丢失(丢包)。下面详细叙述。
1、可用性
可用性是当用户需要时网络即能工作的时间百分比。可用性主要是设备可靠性和网络存活性相结合的结果。对它起作用的还有一些其他因素,包括软件稳定性以及网络演进或升级时不中断服务的能力。
2、吞吐量(带宽)
吞吐量是在一定时间段内对网上流量(或带宽)的度量。对IP网而言可以从帧中继网借用一些概念。根据应用和服务类型,服务水平协议(SLA)可以规定承诺信息速率(CIR)、突发信息速率(BIR)和最大突发信号长度。承诺信息速率是应该予以严格保证的,对突发信息速率可以有所限定,以在容纳预定长度突发信号的同时容纳从话音到视像以及一般数据的各种服务。一般讲,吞吐量越大越好。
所谓带宽,很好理解,就是接口转发数据包的效率,比如以太网口的带宽就是10M/S,意味着一秒钟可以转发10M大小的数据包,而吉比特以太网口的带宽就是1000M/S。上面介绍的都是一个设备端口上的带宽,但是在实际网络中,我们经常使用端到端带宽的概念。所谓端到端带宽,就是指网络通信的双发能够通信的最大带宽。端到端带宽遵循木桶原理,即端到端带宽是由两端设备路径上的最小带宽决定的。比如PC1要和PC2通信,他们之间要经过R1、R2路由器,如果PC1到R1的带宽为10M,R1到R2的带宽为100M,R2到PC2的带宽为64K,则我们说PC1到PC2的端到端带宽为64K。
3、时延
时延指一项服务从网络入口到出口的平均经过时间。许多服务,特别是话音和视像等实时服务都是高度不能容忍时延的。当时延超过200-250毫秒时,交互式会话是非常麻烦的。为了提供高质量话音和会议电视,网络设备必须能保证低的时延。
产生时延的因素很多,包括分组时延、排队时延、交换时延和传播时延。传播时延是信息通过铜线、光纤或无线链路所需的时间,它是光速的函数。在任何系统中,包括同步数字系列(SDH)、异步传输模式(ATM)和弹性分组环路(RPR),传播时延总是存在的。
4、时延变化(包括抖动和漂移)
时延变化是指同一业务流中不同分组所呈现的时延不同。高频率的时延变化称作抖动,而低频率的时延变化称作漂移。抖动主要是由于业务流中相继分组的排队等候时间不同引起的,是对服务质量影响最大的一个问题。某些业务类型,特别是话音和视像等实时业务是极不容忍抖动的。分组到达时间的差异将在话音或视像中造成断续。所有传送系统都有抖动,只要抖动落在规定容差之内就不会影响服务质量。利用缓存可以克服过量的抖动,但这将增加时延,造成其他问题。
漂移是任何同步传输系统都有的一个问题。在SDH系统中是通过严格的全网分级定时来克服漂移的。在异步系统中,漂移一般不是问题。漂移会造成基群失帧,使服务质量的要求不能满足。
5、丢包
不管是比特丢失还是分组丢失,对分组数据业务的影响比对实时业务的影响都大。在通话期间,丢失一个比特或一个分组的信息往往用户注意不到。在视像广播期间,这在屏幕上可能造成瞬间的波形干扰,然后视像很快恢复如初。即便是用传输控制协议(TCP)传送数据也能处理丢失,因为传输控制协议允许丢失的信息重发。事实上,一种叫做随机早丢(RED)的拥塞控制机制在故意丢失分组,其目的是在流量达到设定门限时抑制TCP传输速率,减少拥塞,同时还使TCP流失去同步,以防止因速率窗口的闭合引起吞吐量摆动。但分组丢失多了,会影响传输质量。所以,要保持统计数字,当超过预定门限时就向网络管理人员告警。
所谓丢包,就是网络设备对某些数据包不予转发,直接丢弃。在网络拥堵的时候,我们可能会发现,网络会出现丢包现象。一般而言,引起丢包的可能性有两点:一是网络设备自身的软件队列和硬件队列都已经被数据包填满,此时若还有数据包发送进来,则网络设备将不能处理多余的数据包,此时就会发生丢包现象。除此之外,还有一种情况就是网络设备预感到一会可能出现网络拥堵,为了保证部分高优先级的数据包传输,主动丢弃某些不重要的数据包。
Internet仅提供尽力而为(best-effort service)的传送服务,业务量尽快传送,没有明确的时间和可靠性保障。随着网络多媒体技术的飞速发展,Internet上的多媒体应用层出不穷,如IP电话、视频会议、视频点播(VOD)、远程教育等多媒体实时业务、电子商务在Internet上传送等。Internet已逐步从单一的数据传送网向数据、语音、图像等多媒体信息的综合传输网演化。这些不同的应用需要有不同的Qos(quality of service)要求,Qos通常用带宽、时延、时延抖动和分组丢失率来衡量。各种应用对服务质量的需求在迅速增长。
显然,现有的尽力传送服务已无法满足各种应用对网络传输质量的不同要求,需要Internet提供多种服务质量类型的业务。而尽力而为的服务仍将提供给那些只需要连通性的应用。
1、分类
Classifying即分类,其过程是根据信任策略或者根据分析每个报文的内容来确定将这些报文归类到以CoS值来表示的各个数据流中,因此分类动作的核心任务是确定输入报文的CoS值。分类发生在端口接收输入报文阶段,当某个端口关联了一个表示QoS策略的Policy-map后,分类就在该端口上生效,它对所有从该端口输入的报文起作用。
2、策略
Policing 即策略,发生在数据流分类完成后,用于约束被分类的数据流所占用的传输带宽。Policing动作检查被归类的数据流中的每一个报文,如果该报文超出了作用于该数据流的Police所允许的限制带宽,那么该报文将会被做特殊处理,它或者要被丢弃,或者要被赋予另外的DSCP 值。
在QoS 处理流程中,Policing 动作是可选的。如果没有Policing 动作,那么被分类的数据流中的报文的DSCP 值将不会作任何修改,报文也不会在送往Marking 动作之前被丢弃。
3、标识
Marking即标识,经过Classifying 和Policing 动作处理之后,为了确保被分类报文对应DSCP的值能够传递给网络上的下一跳设备,需要通过Marking 动作将为报文写入QoS 信息,可以使用QoS ACLs 改变报文的QoS信息,也可以使用Trust 方式直接保留报文中QoS 信息,例如,选择Trust DSCP 从而保留IP 报文头的DSCP 信息。
4、队列
Queueing即队列,负责将数据流中报文送往端口的某个输出队列中,送往端口的不同输出队列的报文将获得不同等级和性质的传输服务策略。
每一个端口上都拥有8 个输出队列,通过设备上配置的DSCP-to-CoS Map 和Cos-to-Queue Map 两张映射表来将报文的DSCP 值转化成输出队列号,以便确定报文应该被送往的输出队列。
5、调度
Scheduling即调度,为QoS 流程的最后一个环节。当报文被送到端口的不同输出队列上之后,设备将采用WRR 或者其它算法发送8 个队列中的报文。
可以通过设置WRR算法的权重值来配置各个输出队列在输出报文的时候所占用的每循环发送报文个数,从而影响传输带宽。或通过设置DRR算法的权重值来配置各个输出队列在输出报文的时候所占用的每循环发送报文字节数,从而影响传输带宽。