随着网络的发展,互联网流量迅速增加,网络产生拥塞,延时增加,有时还会造成丢包,导致业务质量下降。当网络出现拥塞时,如何保证重要数据的带宽和实时性数据能够快速转发呢?
QOS,服务质量。顾名思义,就是为了给现有的网络提供一个更好的性能,让各种网络应用更加顺畅的运作。当然了,如果你想让网络运作的更好,那你就得了解你自己的网络啊。看看这个网络中都运行着什么网络应用,且这些网络应用比较关心的网络因素有那些,比如网络延迟、抖动、丢包率等等因素。我们就是通过控制这些对网络应用有着关键作用的因素来调节网络的正常、高速运行的。可以这样说:QOS特性就是用来修理网络数据传输过程中的一些小瑕疵的特性。只要你把这个数据路径修理的足够光滑,在某种程度来说没有任何的阻碍了,那么数据跑起来就会相当的流畅,什么丢包啊,延迟啊,延迟抖动啊就都统统解决啦。速度和质量得到了双保障。当然了,我们得对症下药,知道问题出在了那里。并且,这样还不够,我们还要知道问题“可能”出在那里!这样的话,我们就会把这种数据传输过程中的一些不良的隐患全部消除掉了。
我们使用了QOS后,可以说是我们想让网络怎么地,网络就怎么地,完全处于你的控制中。不但实现了网络数据的流畅传输,并且对网络资源的使用也做到了精确的控制,不会浪费资源,也不会让资源出现极其紧张的局面,即使有可能出现紧张的局面,那么我们也有办法来预防这种情况的发生。废话了不少,这些都是使用QOS的好处。其实,仔细看看,也不是废话,其中也谈到了很多QOS的核心内容:
1、因为我们可以对各种网络应用做到了精确的控制使用资源,那么肯定就是对他们进行区别对待了,这也就是QOS中分类的概念啊。
2、上面说到的,修理数据传输路径上的小瑕疵,以求让数据传输的更流畅,这也就是后面我们将要降到的流量调节啊。
3、在最后面我们还提到了,出现资源紧张的局面,我们可以采取措施来搞定,这里也就说到了后面将要详细介绍的拥塞管理和拥塞避免。
QOS应用需求
1、网络拥塞
1)网络拥塞的产生
数据从高速端口进入设备,从低速端口转发出去。
流量汇聚,流量由多个端口进入设备,从一个端口转发出去,并且进入设备端口的速率之和大于转发接口的速率。
2)网络拥塞的影响
当网络出现拥塞时,可能对网络造成以下一些影响
报文传输延迟,延迟抖动和丢包率增加
由于过高的延迟和丢包导致报文重传,增加网络负担。
由于网络拥塞,报文重传导致网络的有效吞吐量降低。
3)网络拥塞的解决方法
在无法提高网络带宽的情况下,解决网络拥塞有效的方法是合理利用网络带宽,在网络发生拥塞时,根据业务的性质和需要使用QOS技术合理分配现有带宽,降低网络拥塞的影响。
QoS服务模型一共分为三种:
1、best-Effort service服务模型:它是一种单一的服务模型,也是最简单的服务模型,应用程序可以在任何时候发送任意数量的报文。网络尽最大可能发送这些报文,但是对于延时、可靠性不做保证,它是在互联网中默认的服务模型,其遵循先进先出的转发规则。
2、IntServ服务模型:IntServ服务模型在使用网络资源时,需要提前申请,申请的过程是通过RSVP(资源预留协议)完成的,应用程序会通过RSVP将需要的时延、带宽、丢包率等性能通知其他节点,这些节点收到资源预留请求后,会根据用户的合法性、资源使用情况来决定是否预留资源。
这个服务模型的扩展性很差,实施比较困难,并且RSVP存在一定缺陷,所以限制了它的广发应用。
3、Diffserv服务模型:它可以满足不同的QoS需求,与IntServ不同,它不需要预留资源,网络不需要为每个端到端的流量进行维护。Diffserv服务模型可以使用不同的方法来指定报文的QoS,如报文的优先级、MAC地址、源IP地址、目的IP地址等,网络可以通过这些信息来提供特定的服务(报文分类、流量整 形等)。
QoS的操作模型:
QoS涉及四大组件:分类和标记、整 形和监管、拥塞避免和拥塞管理。QoS操作模型如下所示:
浅谈Qos(服务访问质量)
首先,数据进入设备进行流分类,根据流量的重要程度划分不同的类别,并打上不同的标记。然后使用GTS或CAR技术进行整 形和监管,并根据策略对违规的报文进行操作,限制流量的速率。随后通过WRED技术随机丢弃相对不重要的报文避免网络拥塞,最后通过拥塞管理的队列技术将报文放入不同的队列。队列达到最大长度后,后到达的报文将被丢弃,通过队列的出队调度技术转发报文。
下图所示可以更加通俗的看出QoS对数据流的处理:
浅谈Qos(服务访问质量)
1、分类和标记:

QoS是一个整体的框架,不局限于一台设备,整个网络中设备相互配合,最终达到流量优化的目的。QoS的核心就是保证重要的流量有限通过网络设备。默认情况下,网络设备对任何流量都一视同仁,为了可以让任何设备都可以识别重要的流量,在网络的边界,也就是任何进入网络的流量都应该根据重要程度被分类,并打上不同的标记,后续设备基于这些标记来标识哪些流量是相对重要的。
1)、分类:流分类是进行区别服务的基础,流分类可以使用报文的优先级来识别不同优先级特征的流量;
流分类一般通过ACL区分不同的流量,尤其是扩展ACL,基本上可以定义大部分流量。如下命令定义了网络中所有的FTP流量:
R1(config)#access-list 101 permit tcp any any eq 21
2)、标记:在QoS技术的Diffserv服务模型中,对于IP报文中的DS字段使用DSCP(差异化服务编码点)作为QoS优先级描述,如下图所示:
浅谈Qos(服务访问质量)
DS字段一共八位,在Diffserv中使用DS的前六位,即DS0~DS5定义了0~63共64个优先级。
QoS也可以使用DS字段中的IP优先级,使用DS的前三位IP。优先级共八个等级,其中0表示正常流量,尽力转发。
默认情况下,如果不做设置,正常数据的优先级都是0,而像RIP、OSPF报文,默认优先级是6,优先级越高越优先发送;
在配置时,首先定义匹配类,然后定义流量控制策略,最后在端口实施策略。
定义匹配类:
R1(config)#class-map qwe
R1(config-cmap)#match access-group 101 101为创建的扩展ACL编号
除了配置ACL外,还可以配置端口、VLAN、源MAC地址或目的MAC地址等信息,配置如下:
R1(config-cmap)#match input-interface f0/1 匹配 F0/1端口进入的流量。
R1(config-cmap)#match any 匹配任意流量
2)、定义流量控制策略

通过policy map调用class map,然后为每一个class map 配置策略:

R1(config)#policy-map QoS 定义策略名称
R1(config-pmap)#class abc 调用class map
R1(config-pmap-c)#set ip dscp 5 定义优先级,范围为0~63;
也可以使用如下命令来定义优先级:
R1(config-pmap-c)#set ip precedence 7 与dscp一样,用来定义优先级,范围为0~7。
3)、在接口上应用策略
R1(config-if)#service-policy input qos service-policy为命令字,input表示入站。
可以使用output来表示出站,qos为定义的策略名称
4)、查看配置
可以使用命令show policy-map来查看配置:
R1#show policy-map
Policy Map df
Class abc
set ip precedence 7
Policy Map qos
Class abc
set ip precedence 0
2、整 形和监管:
经过分类和标记已经可以区分流量的优先级了,那么为了避免网络拥塞的出现,可以对流量进行控制,通过采用一定的策略控制流量的大小,以减少网络拥塞的出现。主要的流量管理技术是整 形和监管。
在对流量进行监控时一般可以设定三个参数:

  1. 承诺平均速率(CIR):允许流量通过的平均速率;
  2. 突发量(BC):允许突发产生流量的大小,设置的大小必须大于最大报文长度。
  3. 额外突发量(Be):表示流量超出突发量后还可以转发的流量大小。
    1)流量策略
    对于符合规定部分的流量视为合规流量,而对于超出规定部分的流量视为违规流量。设置流量策略时,既可以设置合规流量策略,也可以设置违规流量策略。一般流量策略有以下几种:
    转发:对于合规流量和违规流量都可以设置策略为转发。
    丢弃:对于合规流量和违规流量都可以设置策略为丢弃。
    标记:标记报文的优先级。例如,将合规流量报文的IP优先级设定为5,而将违规流量报文的优先级设置为0.
    进入下一级流量策略:流量策略可以多级处理,可以将流量提交给下一级流量策略来进行控制。
    2)整 形与监管
    流量整 形(GTS)是一种调节输出速率的措施,流量整 形使用缓冲区使流量均匀地进行转发。流量进入设备进行分类,不需要进行整 形的流量直接通过设备转发,需要进行整 形的流量根据配置分为合规流量和违规流量。当流量速率超过设定时,设备将多余的流量缓存到GTS队列,然后按照配置的CIR,将报文均匀地转发出去,以保证网络流量平稳。
    由于流量整 形使用缓存来保存违规流量,所以可以减少丢包率,避免了报文重发,但是使用缓存将导致数据转发时增加时延。流量整 形一般应用在整体流量较小,但有时出现突发流量的环境中。
    浅谈Qos(服务访问质量)
    基本的流量×××配置如下:
    R1(config)#access-list 100 permit udp any any
    R1(config)#in f1/0
    R1(config-if)#traffic-shape rate 80000 针对所有经过该接口的流量整 形。承诺平均速率为100kb/s
    R1(config)#in f1/0
    R1(config-if)#traffic-shape group 100 8000 8000 8000 针对于ACL组号为100的流量整 形。
    以上计量单位为比特
    R1#show traffic-shape f1/0 查看网络×××信息

流量监管是一种流量控制措施,监管使用的三个参数分别是承诺平均速率、Bc、Be。所以监管中,Bc+Be的大小是允许突发的最大流量的大小。监管的核心技术是承诺访问速率(CAR)
Bc和Be相当于信用的积累,如果一直守信(小于规定流量),其信用值就不断增加到某个数值(Bc);如果继续守信,则信用值就会继续增加到一个规定的最大值(Bc+Be)。这时,如果出现违规现象(流量速率超过规定速率),信用就会减少,知道信用值为0,。所以Bc、Be是一个积累使用的过程,而不是始终存在的(最初时Bc和Be为满的)。
在使用CAR技术限制流量速率时,违规流量一般会被直接丢弃而不进行缓存,所以呢,CAR技术保证了数据的延时,但是增加了丢包率。CAR技术多应用于接入层,对接入用户进行流量限制。