Qos

排队概述

当链路上发生拥塞时,由网络管理员实施的QoS策略将变为活动状态。排队是一种拥塞管理工具,可以在将数据包传输到目的地之前对其进行缓冲,确定优先级,并在需要时对其进行重新排序。

有许多排队算法可用。就本课程而言,我们将重点关注以下方面:

  • 先进先出(FIFO)
  • 加权公平排队(WFQ)
  • 基于类的加权公平排队(CBWFQ)
  • 低延迟排队(LLQ)

先进先出(FIFO)

以最简单的形式,先进先出(FIFO)排队(也称为先来先服务排队)按到达顺序对数据包进行缓冲和转发。

FIFO没有优先级或流量类别的概念,因此,不对数据包优先级做出决定。只有一个队列,并且所有数据包均被平等对待。数据包按到达顺序从接口发送出去,如图所示。尽管根据优先级分类,某些流量可能更重要或对时间敏感,但请注意,流量是按接收顺序发送的。

使用FIFO时,如果路由器或交换机接口上出现拥塞,则会丢弃重要或对时间敏感的流量。如果未配置其他排队策略,则除E1(2.048 Mbps)及以下的串行接口外,所有接口默认都使用FIFO。(E1及以下的串行接口默认情况下使用WFQ。)
在这里插入图片描述

加权公平排队(WFQ)

加权公平排队(WFQ)是一种自动调度方法,可为所有网络流量提供公平的带宽分配。WFQ不允许配置分类选项。WFQ将优先级或权重应用于已标识的流量,并将其分类为对话或流,如图所示。
在这里插入图片描述
WFQ然后确定每个流相对于其他流允许多少带宽。WFQ使用的基于流的算法同时将交互式流量调度到队列的前面,以减少响应时间。然后,它公平地在高带宽流中共享剩余带宽。WFQ允许您为低流量的交互式通信(例如Telnet会话和语音)提供优先于高流量的通信(例如FTP会话)的优先级。当同时发生多个文件传输流时,将为传输提供可比较的带宽。

WFQ根据数据包头寻址将流量分为不同的流,包括源和目标IP地址,MAC地址,端口号,协议和服务类型(ToS)值等特征。IP标头中的ToS值可用于对流量进行分类。

包含大部分流量的低带宽流量会收到优先服务,从而可以及时发送其全部负载。大流量流量将剩余容量按比例共享。

局限性

隧道和加密不支持WFQ,因为这些功能会修改WFQ进行分类所需的数据包内容信息。

尽管WFQ自动适应不断变化的网络流量状况,但它不能提供CBWFQ提供的对带宽分配的精确控制。

基于类的加权公平排队(CBWFQ)

Class Based Weighting Fair Quene

基于类别的加权公平排队(CBWFQ)扩展了标准WFQ功能,以支持用户定义的流量类别。使用CBWFQ,您可以根据匹配条件定义流量类别,包括协议,访问控制列表(ACL)和输入接口。满足某个类别的匹配标准的数据包构成该类别的流量。如图所示,为每个类别保留一个FIFO队列,并将属于一个类别的流量定向到该类别的队列。

根据匹配条件定义了类别后,即可为其分配特征。要表征一类,您可以为其分配带宽,权重和最大数据包限制。分配给类别的带宽是在拥塞期间传递给该类别的保证带宽。

为了表征一个类,还可以指定该类的队列限制,这是允许在该类的队列中累积的最大数据包数。属于一个类别的数据包要受表征该类别的带宽和队列限制的约束。
在这里插入图片描述
队列达到其配置的队列限制后,向类中添加更多数据包将导致尾部丢弃或数据包丢弃生效,具体取决于配置类策略的方式。尾部丢弃意味着路由器简单地丢弃到达队列尾部的任何已完全用尽其分组保持资源的分组。这是对拥塞的默认排队响应。尾部丢弃会平等地对待所有流量,并且不会在服务类别之间进行区分。

低延迟排队(LLQ)

Low Lag Queen
低延迟排队(LLQ)功能为CBWFQ带来了严格的优先级排队(PQ)。严格的PQ允许延迟敏感的数据包(例如语音)在其他队列中的数据包之前发送。LLQ为CBWFQ提供严格的优先级排队,从而减少了语音对话中的抖动,如图所示。

如果没有LLQ,CBWFQ将基于定义的类提供WFQ,而没有严格的优先级队列可用于实时流量。属于特定类别的数据包的权重是从您在配置它时分配给该类别的带宽得出的。因此,分配给一个类别的数据包的带宽决定了数据包的发送顺序。所有数据包均根据重量进行合理服务;任何类别的数据包均不得授予严格的优先级。该方案给语音业务带来了很大程度的容忍延迟,特别是延迟变化的问题。对于语音流量,延迟的变化会导致传输的不规则性,表现为在听到的对话中出现抖动。

LLQ允许先发送诸如语音之类的对延迟敏感的数据包(在其他队列中的数据包之前),从而使对延迟敏感的数据包具有比其他流量优先的待遇。尽管可以将各种类型的实时流量分类为严格优先级队列,但是Cisco建议仅将语音流量定向到优先级队列。
在这里插入图片描述

实施QoS的模型

在这里插入图片描述

避免丢包

以下方法可以防止敏感应用程序掉线:

  • 增加链路容量以缓解或防止拥塞。
  • 确保足够的带宽并增加缓冲区空间,以容纳来自脆弱流的突发流量。WFQ,CBWFQ和LLQ可以保证带宽并向对丢包敏感的应用程序提供优先转发。
  • 在拥塞发生之前先丢弃优先级较低的数据包。Cisco IOS QoS提供了排队机制,例如加权随机早期检测(WRED),可在拥塞发生之前开始丢弃优先级较低的数据包。

实施QoS的工具

在这里插入图片描述

分类和标记

QoS流量标记
在这里插入图片描述

在第2层进行标记

802.1Q是支持以太网网络第2层上VLAN标记的IEEE标准。当实施802.1Q时,会将两个字段添加到以太网帧。如图所示,这两个字段插入到源MAC地址字段后面的以太网帧中。
在这里插入图片描述
802.1Q标准还包括称为IEEE 802.1p的QoS优先级排序方案。802.1p标准使用标签控制信息(TCI)字段中的前三位。这3位字段称为优先级(PRI)字段,用于标识服务等级(CoS)标记。三位表示可以用图中所示的八个优先级之一(值0-7)标记第2层以太网帧。

以太网服务等级(CoS)值
在这里插入图片描述

在第3层进行标记

IPv4和IPv6在其数据包头中指定8位字段以标记数据包。如图所示,IPv4和IPv6均支持8位字段用于标记:IPv4的服务类型(ToS)字段和IPv6的流量类别字段。

IPv4和IPv6数据包头

IPv4 Header
在这里插入图片描述
HeaderIPv6 Header
在这里插入图片描述

  1. 哪个能检测流量何时达到配置的最大速率并丢弃多余的流量?
    traffic policing

  2. 哪个确定流量分组或帧属于什么类。
    classification

  3. 哪个会在数据包头中添加一个值?
    marking

  4. 哪个提供缓冲区管理,并允许TCP流量在缓冲区用尽之前回退?
    WRED

  5. 哪个将多余的数据包保留在队列中,然后将多余的数据包安排在以后随着时间的推移进行传输? traffic shaping